- ベストアンサー
プログラミングでどうしてもよくわからない時
こんにちは。 エキスパートの方々はこういうことはめったにないと思うのですが、新しいプログラム言語を習得していて、どうしても理解できなくて行き詰まる時ってどのようにしていますか? 気分転換をしても、結局はその問題の場所に戻ってこざるを得ないのでやっぱりひとつひとつ理解していかなければ前に進めないなー、と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、なんせ時間がかかってしょうがないです。 これまで芸術系の勉強をしてたので、プログラミングとは殆んど関わりのない世界で育ってきたのですが、とあることでphpのサイトをデザインすることになり、コードを組むまでいかなくとも、少なくとも読んでレイアウトの編集をできるくらいになれれば、と思っています。 答えは整然と存在しているにもかかわらず、理解できないとき、その道筋を見出すための秘訣みたいなものがあればぜひ教えていただけないでしょうか? エキスパートの方でも、その昔、どのようにしてわからないことを理解していたかを思い出せるようでしたら教えていただければうれしく思います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ソフトウェア開発会社に勤める女性SE・プログラマーです。 そうですね~~。 世の中には、プログラミングの参考書籍として2種類あります。 ○「~~入門」とか「はじめて~~」:実例を使いながら逐一説明している書籍 ○「~~リファレンス」:説明は極々少なくて個々の機能と全体の体系が見える書籍 わたしは、なにかにつまった時は、後者の書籍をパラパラめくってました。 もしくはオンラインマニュアルとかあれば、そのインデックスの部分を眺めました。 そうすると、そのプログラミング言語の全体像が見えてきたり、現在の全体像の認識が 改められたりして、どういう考え方でこの言語が設計されているかがわかるんです。 その後で、解説書の説明でわからないところとか、実際のプログラムのつまっていた部分 を見ると、言語の思想からするとおかしいな理解をしている箇所がわかりました。 それは小さな誤りだったり、かなり範囲の大きい考え違いだったりいろいろですが、 結局、それでつまっていたところはブレイク・スルーできました。 プログラミング言語は、最初は少しづづ端から理解していくでいいと思います。 ですが、途中からは、全体の体系に目を向けてその言語の思想・スタイルみたいなものを 把握した方がいいと思います。 これをすると、体系を把握しているので一種の勘が働くようになります。 そして、未経験の関数とかでも、パラメータがだいたい予想できたりするようになるし、 処理上あの機能の関数が欲しいなと思った時、その関数がビルトインされているかどうか が大体わかるようになります。 以上、ご参考までに。
その他の回答 (3)
- nerosuke
- ベストアンサー率33% (39/115)
PG歴12年目です。 あくまで私個人の意見として書かせてもらいます。 まず、何年キャリアを積もうが行き詰る事はあります。 ただし、なんとかします。 この「なんとかする」という事こそが大事だと私は思っております。 なぜなら なんとかしないと多大な被害が生まれるからです。 私はゲームプログラマなのですが納期遅れになろうものなら 多大なペナルティーを受けます。 だからなんとかするのです。 その手段は色々です。 書籍、WEB、他人のソース 最近はWEBでほとんどが解決できます。 できないで終わってしまうくらいなら、人に聞いたり こういったサイトを利用するのも有りではないかと思っています。 人に聞いた知識も知識は知識ですからね。 >気分転換をしても、結局はその問題の場所に戻ってこざるを得ないので >やっぱりひとつひとつ理解していかなければ前に進めないなー、 >と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、 >なんせ時間がかかってしょうがないです 私は若手を指導する立場にいますが、必ず「解らないところは飛ばして進みなさい」と言います。 ある程度ブラックボックスのままでいいので取り合えず形にさせます。 形にしていく過程、または形になったものを管理した時に躓いた所が理解できる事が多々あります。 まずは質問者もこういう物をつくるというのを形にして行く事が早道かと思います。 それにはまずソースを書く事です。 書籍は1から読まず、やりたいと思ってる処理に似ている例題があったらその例題だけを紐解いてみる感じで十分だと思います。 そういった例題がなければ、WEBで調べましょう。必ずヒントになるものがあります。 理解できない処理があれば理解できないままにして、とりあえず形にしたら ソースに自分なりのコメントを打ち込むのも有効です。//解らないけどここはこういう処理してるんじゃないかな? みたいに自分の言葉でコメントを打ち込んでいくと、あれ?ひょっとして?ってな感じで閃く事もあります。 とにかく本を片手にその例題だけを解いてくような学習は私はお勧め致しません。 入門書は1冊あれば十分です。 まずは難しく考えずに書いて行く事だと思います。
お礼
参考になりました。
- noocyte
- ベストアンサー率58% (171/291)
私も20年ほど前に Lisp というプログラム言語を学んでいて, わけがわからなくなったことを覚えています. Lisp はプログラムとデータが同じ形式をしているので, どこまでがプログラムでどこからがデータとして解釈されるのか, 両者を区別するための判断基準が,本を読んだり,ただ頭の中で 考えただけではなかなかわからなかったのです. そこで色々なプログラムを打ち込んでみたり,プログラムを少しずつ 変更してみたりして動作や実行結果がどう変化するかを色々と調べ, それらのデータから帰納的にプログラムの動きを推測し, ようやく理解できるようになりました. 本を読むのも大事ですが,知りたいことがすべて本に書かれているとは 限らず,書かれていないことを初心者が推測することは困難でしょう. また本に書かれていることでさえ,スンナリ理解できるとは限りません. そこで,自分の手を動かして,能動的に相手 (プログラム) に働きかけ, 情報を収集しながらそのプログラムの動作を理解することが必要だと思います. 例えば,ある程度理解しているサンプルプログラムがあったとして, よくわからない部分を少し変更してみて結果がどう変わるかを調べたり, プログラムのところどころで変数の値を表示させ,その変化を追跡して みたりといったことを繰り返し,それらの結果をもとに考えることで, より理解が深まると思います.
お礼
やっぱり本の情報に頼ってばかりだとだめなんですね。 いろいろ試すのがいいというのは納得です。ありがとうございました。
- fxdwg99
- ベストアンサー率45% (43/94)
複数の書籍を読んで多方面から解釈して理解しようとします。 今ならWEBページも検索していろいろな解説も見るでしょうね。
お礼
PHPの本は現在で5冊目になってしまいました。全部わかりにくかったです。 1~2年ほど前はPHPでもWEBでの情報が少なかったため、大変苦労しました。 回答ありがとうございました。
お礼
なるほど、リファレンスをぱらぱら眺めるのは効果がありそうです。ありがとうございます。 最近はようやく勘が働くようになってきました。