• ベストアンサー

プログラミングでどうしてもよくわからない時

こんにちは。 エキスパートの方々はこういうことはめったにないと思うのですが、新しいプログラム言語を習得していて、どうしても理解できなくて行き詰まる時ってどのようにしていますか? 気分転換をしても、結局はその問題の場所に戻ってこざるを得ないのでやっぱりひとつひとつ理解していかなければ前に進めないなー、と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、なんせ時間がかかってしょうがないです。 これまで芸術系の勉強をしてたので、プログラミングとは殆んど関わりのない世界で育ってきたのですが、とあることでphpのサイトをデザインすることになり、コードを組むまでいかなくとも、少なくとも読んでレイアウトの編集をできるくらいになれれば、と思っています。 答えは整然と存在しているにもかかわらず、理解できないとき、その道筋を見出すための秘訣みたいなものがあればぜひ教えていただけないでしょうか? エキスパートの方でも、その昔、どのようにしてわからないことを理解していたかを思い出せるようでしたら教えていただければうれしく思います。

  • jyuu
  • お礼率83% (553/665)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ソフトウェア開発会社に勤める女性SE・プログラマーです。 そうですね~~。 世の中には、プログラミングの参考書籍として2種類あります。 ○「~~入門」とか「はじめて~~」:実例を使いながら逐一説明している書籍 ○「~~リファレンス」:説明は極々少なくて個々の機能と全体の体系が見える書籍 わたしは、なにかにつまった時は、後者の書籍をパラパラめくってました。 もしくはオンラインマニュアルとかあれば、そのインデックスの部分を眺めました。 そうすると、そのプログラミング言語の全体像が見えてきたり、現在の全体像の認識が 改められたりして、どういう考え方でこの言語が設計されているかがわかるんです。 その後で、解説書の説明でわからないところとか、実際のプログラムのつまっていた部分 を見ると、言語の思想からするとおかしいな理解をしている箇所がわかりました。 それは小さな誤りだったり、かなり範囲の大きい考え違いだったりいろいろですが、 結局、それでつまっていたところはブレイク・スルーできました。 プログラミング言語は、最初は少しづづ端から理解していくでいいと思います。 ですが、途中からは、全体の体系に目を向けてその言語の思想・スタイルみたいなものを 把握した方がいいと思います。 これをすると、体系を把握しているので一種の勘が働くようになります。 そして、未経験の関数とかでも、パラメータがだいたい予想できたりするようになるし、 処理上あの機能の関数が欲しいなと思った時、その関数がビルトインされているかどうか が大体わかるようになります。 以上、ご参考までに。

jyuu
質問者

お礼

なるほど、リファレンスをぱらぱら眺めるのは効果がありそうです。ありがとうございます。 最近はようやく勘が働くようになってきました。

その他の回答 (3)

  • nerosuke
  • ベストアンサー率33% (39/115)
回答No.4

PG歴12年目です。 あくまで私個人の意見として書かせてもらいます。 まず、何年キャリアを積もうが行き詰る事はあります。 ただし、なんとかします。 この「なんとかする」という事こそが大事だと私は思っております。 なぜなら なんとかしないと多大な被害が生まれるからです。 私はゲームプログラマなのですが納期遅れになろうものなら 多大なペナルティーを受けます。 だからなんとかするのです。 その手段は色々です。 書籍、WEB、他人のソース 最近はWEBでほとんどが解決できます。 できないで終わってしまうくらいなら、人に聞いたり こういったサイトを利用するのも有りではないかと思っています。 人に聞いた知識も知識は知識ですからね。 >気分転換をしても、結局はその問題の場所に戻ってこざるを得ないので >やっぱりひとつひとつ理解していかなければ前に進めないなー、 >と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、 >なんせ時間がかかってしょうがないです 私は若手を指導する立場にいますが、必ず「解らないところは飛ばして進みなさい」と言います。 ある程度ブラックボックスのままでいいので取り合えず形にさせます。 形にしていく過程、または形になったものを管理した時に躓いた所が理解できる事が多々あります。 まずは質問者もこういう物をつくるというのを形にして行く事が早道かと思います。 それにはまずソースを書く事です。 書籍は1から読まず、やりたいと思ってる処理に似ている例題があったらその例題だけを紐解いてみる感じで十分だと思います。 そういった例題がなければ、WEBで調べましょう。必ずヒントになるものがあります。 理解できない処理があれば理解できないままにして、とりあえず形にしたら ソースに自分なりのコメントを打ち込むのも有効です。//解らないけどここはこういう処理してるんじゃないかな? みたいに自分の言葉でコメントを打ち込んでいくと、あれ?ひょっとして?ってな感じで閃く事もあります。 とにかく本を片手にその例題だけを解いてくような学習は私はお勧め致しません。 入門書は1冊あれば十分です。 まずは難しく考えずに書いて行く事だと思います。

jyuu
質問者

お礼

参考になりました。

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.3

私も20年ほど前に Lisp というプログラム言語を学んでいて, わけがわからなくなったことを覚えています. Lisp はプログラムとデータが同じ形式をしているので, どこまでがプログラムでどこからがデータとして解釈されるのか, 両者を区別するための判断基準が,本を読んだり,ただ頭の中で 考えただけではなかなかわからなかったのです. そこで色々なプログラムを打ち込んでみたり,プログラムを少しずつ 変更してみたりして動作や実行結果がどう変化するかを色々と調べ, それらのデータから帰納的にプログラムの動きを推測し, ようやく理解できるようになりました. 本を読むのも大事ですが,知りたいことがすべて本に書かれているとは 限らず,書かれていないことを初心者が推測することは困難でしょう. また本に書かれていることでさえ,スンナリ理解できるとは限りません. そこで,自分の手を動かして,能動的に相手 (プログラム) に働きかけ, 情報を収集しながらそのプログラムの動作を理解することが必要だと思います. 例えば,ある程度理解しているサンプルプログラムがあったとして, よくわからない部分を少し変更してみて結果がどう変わるかを調べたり, プログラムのところどころで変数の値を表示させ,その変化を追跡して みたりといったことを繰り返し,それらの結果をもとに考えることで, より理解が深まると思います.

jyuu
質問者

お礼

やっぱり本の情報に頼ってばかりだとだめなんですね。 いろいろ試すのがいいというのは納得です。ありがとうございました。

  • fxdwg99
  • ベストアンサー率45% (43/94)
回答No.1

複数の書籍を読んで多方面から解釈して理解しようとします。 今ならWEBページも検索していろいろな解説も見るでしょうね。

jyuu
質問者

お礼

PHPの本は現在で5冊目になってしまいました。全部わかりにくかったです。 1~2年ほど前はPHPでもWEBでの情報が少なかったため、大変苦労しました。 回答ありがとうございました。

関連するQ&A

  • プログラミングが超苦手・・・悩んでいます

    はじめまして、現在、一般企業にてITヘルプデスクとして働いているものです。 業務の一環として業務アプリの作成(=プログラミング)作業があるのですが、これが昔から非常に苦手で苦戦しております。 実はかつてプログラマーとして勤務していたのですが、適性の無さを痛感し挫折しました。 新しい言語を習得する度に参考書を買い込んだり人に聞きまくったりして得意な人の何倍も努力しても、そこまでやってもどうしても読み解くことができないプログラムがあったり、良いプログラムのロジックが思い浮かばないことが度々ありました。 現在はプログラミングはあくまで業務の一部でしかないので、何とかして乗り切りたいと考えてはいるのですが・・・新しい言語なので今までの経験が生かせず、またしても苦しんでいます。 (ちなみDBMagicという、市販の参考書も存在しないようなマイナーな分野です。) うまく説明できないのですが・・・ 例えば、人の話を聞いて理解する時や、本を読んで内容を理解する時などは順番に頭の中で単語を理解したり文脈を理解/推測しながら全体の内容を把握していく、というような感じだと思うのですが、それがプログラミングの場合だと何をどこからどのように考えていけばいいのか、いわゆる思考のプロセスのようなものが分からないのです。どこから考えていけばよいのか考えているうちに頭が混乱状態におちいってしまう、という感じです。 今回のように新しい言語の仕様を覚えていくのが特に苦手で、自分は頭が固いせいなのか言語に付属しているヘルプやチュートリアルのようなものを参考にしても、とても分かりづらい日本語で書かれている場合が多く、何度読んでもすんなりと頭にはいってきません。VBやJAVA、SQLなどのメジャーな言語であれば初心者向けに分かりやすく解説された参考書や勉強サイトなどが膨大にあるので今まで何とかなってきたのですが、今回は言語がマイナーすぎてそういった情報が一切なく、ヘルプを調べたり上司に聞くしか調査する手段がありません。 結局ゆきづまって上司に聞くことが多いのですが、答えを聞いたら以外と単純なことだったり、「なるほど!」と感心してしまうばかりで、自分はなぜそんなことが思い浮かばないのだろう、考えられないのだろうと思うと、そのたびに落ち込んでばかりいます。 当カテゴリにはプログラミングを職業にしていらっしゃる方も多くいらっしゃると思うのですが、プログラミングが上達するコツや考え方のプロセスなど、苦手だったプログラミングが得意になった方の打開策や思考法などがありましたら、是非とも参考にしたいと思いますので、アドバイスよろしくお願いいたします。

  • 初めてのプログラミング【なでしこ】

    こんにちわ。 プログラミングに興味があり、初心者でもとっつきやすいと評判の 日本語プログラミング言語「なでしこ」をダウンロードしてみました。 あわせて解説書も購入・・・してみたのですが、書いてある内容を上手く 理解できないというか、どこから勉強すればいいのかが分からなくなって しまいました。 10行プログラミングのコラム(http://journal.mycom.co.jp/column/nihongoprog/004/) にも目を通しているのですが、覚えるべきものが多くて・・・。 何だか漠然とした気持ちになったまま、すでに数ヶ月。 でも、諦めたくないんです。せっかく始めようって思ったのだし。 そこで、プログラムを覚える「コツ」のようなものがあれば、教えて いただきたいなと思うのです。 ちなみに、まず作りたいなーと思っているのは「デスクトップキャラクタ」 のようなものです。 では、回答お待ちしております。

  • プログラミングのセンス・技術とは.

    こんにちは.はじめて書き込みするtoroimoです. 私は,理工学系の大学院の修士課程に在学しています. 来春から社会人です. プログラミング暦は,研究に取り組んでから2年半たちます. 使用言語はCです. 最近,自分のプログラミングのセンスというか技術について 考えてしまいます. ある権威者の人は,プログラムは慣れであり,プログラミングは芸術といいます. 芸術であるがいえに万人が優れた美しいコードはかけないと… それを聞いてはじめは落胆しました. けれど,その後は少しでも優れたコードを書けるようにと 書籍・サイトを探り読んでいます. 私は,Cに関する初級本 改訂 新C言語入門 シニア編 など4冊,アルゴリズムに関しては,1冊. また,日経ソフトウエアやC_MAGAZINEなどをよんで知識の習得に 勤める努力はしています(実力として初級はクリアしてると思うのですが.). しかし,実際研究でコードを書くとなると アルゴリズムに悩む時間ばかり費やし手が止まってしまう状態です. こんな私に社会で働いている人(SEやプログラマ)や 学生の方から御叱咤・御忠告を賜りたいです. どうかよろしくおねがいいたします.

  • 高校に入ったら独学でプログラミングを学習しようと思います。言語のアドバイスください。

    高校に入ったら部活に入らずに1時間ほどプログラミングを勉強しようと思っています。今のところパソコンがすきなのとプログラミングに興味がある、ゲームを作ってみたいというのがあります。 SEという仕事にも本当は興味があるのですが、忙しい、過労死が多い、うつ病になる人がおおいなど評判があまりよくないので残念ですが考えていません。 実際のところこのSEはどうなのでしょうか? また、ゲームプログラミングは、趣味でもやりたいというのがあります ゲームで習得していたほうがいい・比較的初心者が習得しやすい言語は何ですか? やはりCから入ったほうがいいでしょうか? また順序を教えていただきたいです。 例えば html→javascriptで学習するとjavascriptがすぐ理解できるとか、CからC++に入ると習得が早いとか・・・。 また、いきなりjavaというのはきついでしょうか? 作ったソフトは売ることもできるのですか? 質問ばかりですいません。

  • 8085系プログラミングについて

    ついこの前、同じを質問したのですが、私の理解不足と説明不足により質問の仕方が悪いと回答され、自分なりにアセンブラ言語について学習してみました。学習してみるとたしかに私は何も理解しておらず、8085系のプログラミングということも書き忘れていました。ここでのスレでまずお詫びしたいと思います。誠に申し訳ありませんでした、こんな私ですが、もしよければアセンブリ言語での8085系のプログラミングでこの質問に対する回答と解説のご教授お願いします。 9000H番地の1バイトデータをa、9001H番地の1バイトデータをbとしたとき、axbを16ビットで求め、下位1バイトを9002H番地、上位1バイトを9003H番地に格納するプログラムを作りなさい。またこのプログラムの実行時間をデータがA=65H、B=0AEHのときに計算しなさい。実行時間の計算では各命令の実行回数を示し、計算式を詳しく書くこと。 8085系のプログラミングでは、掛け算の関数がないので、掛け算についての表わし方だけでもいいので教えてください、お願いします

  • プログラミングってどうやって勉強したらいいですか?

    元高卒ニートで大学受験をするも見事に玉砕しメンタル病んで 長く鬱屈とした日々を過ごした、勉強に不向きな人間です。 そんな体たらくの人間なので勉強には期待できないと自負しているのですが、 そんな私でもプログラミングを習得するにはどうしたらいいでしょうか? とりあえず、C言語、VBA、VBSCript,Ruby、Javaの書籍は家にあります。 これらの本を読んでいるようで読んでいないので、 時間を決めしっかり読んで頭にいれることとともに実際のサンプルを動かして覚えていくのが効率的でしょうか? いつもなんとなく問題の答えだけみてプログラミングをやった気になって全然身につかないことが多いのですが、どうすればいいんですかね? いろいろと疑問におもったことを調べながらしっかりした本を読んで勉強していくのがいいでしょうか? 昔、Cを勉強したとき(20年前専門学校時代)は出来る事がCUIのプログラムを作り何かするというのでそれに飽きて、Windowsのプログラミングを中途半端な状態で、すべて理解しようと取り組みつぶれて嫌になって 恐怖症、絶対拒絶の精神的大ダメージを受け、プログラミングという言葉を 3年ぐらい聞くのすらいやなぐらいメンタルの闇として抱えるにいたりました。 そういうこともあったのですが、少しプログラミングに興味があり、やはり やりたいと考えています。 出来ることを理解し、そのことを実現するためにはどうすればいいかということを シンプルに考え、最短の方法を構築していくのが勉強ですかね? どうすればいいでしょうか? アドバイスよろしくお願いします。(・´з`・)

  • PHPについて

    プログラミングの知識は皆無ですが質問させて下さい。 PHPの独学で躓く方がいらっしゃるようですが、「プログラミング言語に触れるのはPHPが初めて」という方限定での話なのでしょうか?それとも1~2つのプログラミング言語を習得した上で独学を進めても簡単に理解出来るものではないのでしょうか? また、PHPの独学を進めていく上で特に理解の手助けとなる(関連性の高い?)プログラミング言語といったものはありますか? 以上お手数ですがご回答お願いいたします。

    • 締切済み
    • PHP
  • どこまで進んだの?という質問への回答

    プログラミング言語(php、javascript、c)を勉学中、習得中に 「どこまで知っているのか」、「どこまで理解しているのか」、「どこまで進んでいるのか」 というざっくりとした質問がきたとき、なんて返せばいいと思いますか。

  • プログラミング超初心者なのですが

    過去の質問なども検索しましたが、それらを読んでも「??」ぐらい超初心者なので新たに質問させていただきました。 現在の知識:エクセルで簡単なマクロを作成したりVBAの基礎を学び始めた段階。環境はWindowsXP 今後の希望:派遣で働いているので、エクセルやアクセス以外にももっとスキルアップし、通信系の職場で活かしたい。 またこういった勉強は終わりはないと思うので新しい分野が出来てもどんどん勉強していきたい といったバックベースなのですが、現在はVBAエキスパートの検定の勉強中です。 他にももっと知識を増やしたいのですが、過去の質問等にも多いJAVAやC言語など、なんのこっちゃ??という感じで、 IT用語辞典などで調べてもいまいち完全に理解していません。 VBA以外にプログラミング言語を勉強し始めるなら、まずどんな勉強からするのがおススメですか? またその場合環境設定はどのようにしたらよいのですか(インストールしなければいけないソフトはあるのかどうか等) 詳しい方がいらっしゃいましたらどうぞよろしくお願いします。

  • VisualStudioでのプログラム勉強(初心者)

    数ヶ月前、プログラミングに興味を持ち、いろいろ調べてみてC++言語を習得したいと思いVisualStudio .NETを購入しました。 しかしいろいろといそがしく、特に何もできずに今に至ったのですが、夏休みということもあり、じっくりとプログラミング学習に打ち込めそうです。 書籍は「Cの絵本」「C++の絵本」というものをVisualStudio購入に合わせて買ったので、そこに載っていた本当に基本的なことは理解しているつもりです。 当面の目標はMFCを使ったGUIのプログラムを作ることができるようになることなのですが、どのようなことをしたらよいのか分かりません。 そのようなことが解説されているサイトをご存知の方、教えてください。 もしくは、アドバイスをお願いします。 プログラミングの経験はなく、HTMLくらいです。

専門家に質問してみよう