こんにちは。
エキスパートの方々はこういうことはめったにないと思うのですが、新しいプログラム言語を習得していて、どうしても理解できなくて行き詰まる時ってどのようにしていますか?
気分転換をしても、結局はその問題の場所に戻ってこざるを得ないのでやっぱりひとつひとつ理解していかなければ前に進めないなー、と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、なんせ時間がかかってしょうがないです。
これまで芸術系の勉強をしてたので、プログラミングとは殆んど関わりのない世界で育ってきたのですが、とあることでphpのサイトをデザインすることになり、コードを組むまでいかなくとも、少なくとも読んでレイアウトの編集をできるくらいになれれば、と思っています。
答えは整然と存在しているにもかかわらず、理解できないとき、その道筋を見出すための秘訣みたいなものがあればぜひ教えていただけないでしょうか?
エキスパートの方でも、その昔、どのようにしてわからないことを理解していたかを思い出せるようでしたら教えていただければうれしく思います。
No.2ベストアンサー
- 回答日時:
ソフトウェア開発会社に勤める女性SE・プログラマーです。
そうですね~~。
世の中には、プログラミングの参考書籍として2種類あります。
○「~~入門」とか「はじめて~~」:実例を使いながら逐一説明している書籍
○「~~リファレンス」:説明は極々少なくて個々の機能と全体の体系が見える書籍
わたしは、なにかにつまった時は、後者の書籍をパラパラめくってました。
もしくはオンラインマニュアルとかあれば、そのインデックスの部分を眺めました。
そうすると、そのプログラミング言語の全体像が見えてきたり、現在の全体像の認識が
改められたりして、どういう考え方でこの言語が設計されているかがわかるんです。
その後で、解説書の説明でわからないところとか、実際のプログラムのつまっていた部分
を見ると、言語の思想からするとおかしいな理解をしている箇所がわかりました。
それは小さな誤りだったり、かなり範囲の大きい考え違いだったりいろいろですが、
結局、それでつまっていたところはブレイク・スルーできました。
プログラミング言語は、最初は少しづづ端から理解していくでいいと思います。
ですが、途中からは、全体の体系に目を向けてその言語の思想・スタイルみたいなものを
把握した方がいいと思います。
これをすると、体系を把握しているので一種の勘が働くようになります。
そして、未経験の関数とかでも、パラメータがだいたい予想できたりするようになるし、
処理上あの機能の関数が欲しいなと思った時、その関数がビルトインされているかどうか
が大体わかるようになります。
以上、ご参考までに。
なるほど、リファレンスをぱらぱら眺めるのは効果がありそうです。ありがとうございます。
最近はようやく勘が働くようになってきました。
No.4
- 回答日時:
PG歴12年目です。
あくまで私個人の意見として書かせてもらいます。
まず、何年キャリアを積もうが行き詰る事はあります。
ただし、なんとかします。
この「なんとかする」という事こそが大事だと私は思っております。
なぜなら なんとかしないと多大な被害が生まれるからです。
私はゲームプログラマなのですが納期遅れになろうものなら
多大なペナルティーを受けます。
だからなんとかするのです。
その手段は色々です。
書籍、WEB、他人のソース
最近はWEBでほとんどが解決できます。
できないで終わってしまうくらいなら、人に聞いたり
こういったサイトを利用するのも有りではないかと思っています。
人に聞いた知識も知識は知識ですからね。
>気分転換をしても、結局はその問題の場所に戻ってこざるを得ないので
>やっぱりひとつひとつ理解していかなければ前に進めないなー、
>と思い、解るまで解説している文章を繰り返し読むようにしているのですけど、
>なんせ時間がかかってしょうがないです
私は若手を指導する立場にいますが、必ず「解らないところは飛ばして進みなさい」と言います。
ある程度ブラックボックスのままでいいので取り合えず形にさせます。
形にしていく過程、または形になったものを管理した時に躓いた所が理解できる事が多々あります。
まずは質問者もこういう物をつくるというのを形にして行く事が早道かと思います。
それにはまずソースを書く事です。
書籍は1から読まず、やりたいと思ってる処理に似ている例題があったらその例題だけを紐解いてみる感じで十分だと思います。
そういった例題がなければ、WEBで調べましょう。必ずヒントになるものがあります。
理解できない処理があれば理解できないままにして、とりあえず形にしたら
ソースに自分なりのコメントを打ち込むのも有効です。//解らないけどここはこういう処理してるんじゃないかな?
みたいに自分の言葉でコメントを打ち込んでいくと、あれ?ひょっとして?ってな感じで閃く事もあります。
とにかく本を片手にその例題だけを解いてくような学習は私はお勧め致しません。
入門書は1冊あれば十分です。
まずは難しく考えずに書いて行く事だと思います。
No.3
- 回答日時:
私も20年ほど前に Lisp というプログラム言語を学んでいて,
わけがわからなくなったことを覚えています.
Lisp はプログラムとデータが同じ形式をしているので,
どこまでがプログラムでどこからがデータとして解釈されるのか,
両者を区別するための判断基準が,本を読んだり,ただ頭の中で
考えただけではなかなかわからなかったのです.
そこで色々なプログラムを打ち込んでみたり,プログラムを少しずつ
変更してみたりして動作や実行結果がどう変化するかを色々と調べ,
それらのデータから帰納的にプログラムの動きを推測し,
ようやく理解できるようになりました.
本を読むのも大事ですが,知りたいことがすべて本に書かれているとは
限らず,書かれていないことを初心者が推測することは困難でしょう.
また本に書かれていることでさえ,スンナリ理解できるとは限りません.
そこで,自分の手を動かして,能動的に相手 (プログラム) に働きかけ,
情報を収集しながらそのプログラムの動作を理解することが必要だと思います.
例えば,ある程度理解しているサンプルプログラムがあったとして,
よくわからない部分を少し変更してみて結果がどう変わるかを調べたり,
プログラムのところどころで変数の値を表示させ,その変化を追跡して
みたりといったことを繰り返し,それらの結果をもとに考えることで,
より理解が深まると思います.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 発達障害・ダウン症・自閉症 中学の時にIQ82の境界知能と診断されました。 今の私も、やはり境界知能でしょうか? そしてこれは、 3 2023/02/19 00:37
- その他(コンピューター・テクノロジー) AIに関連する用語を理解したい、RNN、LMM、LSTMなど、書籍で理解したい 1 2023/07/06 22:18
- 宅地建物取引主任者(宅建) 未経験・知識ゼロからの宅建取引士勉強方法について 2 2022/06/10 14:38
- 国家公務員・地方公務員 公務員試験の数的処理で苦戦しています。 1 2023/01/30 08:56
- 高校 勉強ができない。 4 2022/07/03 08:13
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- 大学受験 模試の直しについて質問いたします。かなり長くなります。 多くの人が模試の復習は自分の弱点を見つけ出す 2 2023/01/14 23:50
- その他(職業・資格) 弁理士試験の勉強方法について 1 2022/09/11 07:32
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- その他(恋愛相談) 小説を読み終わった後、人物の心情の読み取りとか、文章から情景を想像するのが難しくて、結局何を伝えたか 2 2022/03/27 18:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBプログラムをEXCEL VBAに移植...
-
出欠表のプログラム制作の難易...
-
php+mysqlのサーバを作ろうと思...
-
基本情報技術者 午前 リバース...
-
PHP+MySQLで家計簿を作りたい
-
イメージコントロールについてVB6
-
簡単で実用性のあるプログラミ...
-
stdio.hのバッファについて。
-
バトルプログラマーシラセでや...
-
ホームページを作成中、その中...
-
プログラムを作るまえにすべきこと
-
プログラミングのイメージ像
-
Borland C++Builder 6 Personal?
-
win版とmac版などがあるのはなぜ?
-
C言語の練習
-
小中学校でプログラミングなん...
-
まったくの初心者ですが、独学...
-
個人で使用する株の自動売買ソ...
-
これをWindows上で動かすことは...
-
c言語の勉強方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
SNMPトラップ情報をC#.netで作...
-
このプログラミング誰か教えて...
-
OSとCPUの関係について
-
コンソールアプリでファイル選...
-
UNIX環境でのCプログラム上でC...
-
Ryzen 3700(無印)はWin11に対応...
-
DLLってなに?
-
C言語のHP-UXからLinuxへのポ...
-
VB.net エラーメッセージを英文...
-
VBS:コンピュータ名を取得し、...
-
Sleep命令で指定した待機時間が...
-
Perl5とActivePerl
-
大至急!!! ピクトグラミング...
-
printf系の書式「w」ってなに?
-
サイクロイドの軌跡
-
初心者にEXCELのVBAを教えると...
-
三目並べ
-
小中学校でプログラミングなん...
おすすめ情報