質問: 場違いな質問大変失礼します。 僕は、将来プログラマになることを夢見ています。 そのために、現在プログラミングの勉強をしています。 現在は主にpythonの勉強をしています。 しかし、いまいち勉強の仕方が分からずこのままでいいのか不安です。 そこで質問なのですが、皆さんはどのようにして実用レベルまで能力を引き上げられたのでしょうか。勉強方法などを教えていただけると幸いです。
回答: > > どのようにして実用レベルまで能力を引き上げ > > > 最終的に作りたい物が**高度**で、すぐにできない場合があります。 とくにPythonだと、人工知能に関連したものとか。 そこで、**制作可能なところまで、作成物のレベルを引き下げ**、 **作りながら学んでいく**と、モチベーションを保ちやすいです。 学んでから作ろうとすると退屈でしょうし、 学ばないでただ作るだけでも上達していきません。 だから両方を並行してやるのがいいです。 そして、学習を続けていけば、自然に実用レベルまで上がっていきます。 **続けること**自体が一番難しいので、まず続けられるようにしましょう。 それには、目標を分割して、断崖絶壁を**階段**にすると、昇りやすいです。 目標が高すぎると、現実味を感じられず、かえって動機を失いやすい。 たとえば、「データを自動的に整理してくれる人工知能を作ろう」としても、 いったい何をしていいか、分からなくなります。そこで、目標を分割して、 「古い日付順にファイルをリスト化して、表示するプログラムを書こう」ならできます。 そこにいろいろ工夫を重ねていって、実用レベルを目指すわけです。 コードの書き方も分割していきます。たとえば先の例で、 「古い日付順にファイルをリスト化して、表示するプログラム」なら、 「日付」「ファイル」「リスト化」「表示」をそれぞれモジュール化します。 もちろん、分けなくてもできますが、全体が一枚岩だと、**変更**するときに大変です。 「最新一ヶ月分だけ表示して、残りはテキストファイルに出力」とか挙動が細かくなるほど、 IF文の分岐とフラグとかで、ゴチャゴチャ分かりづらくなります。だから分けます。 **分割統治**がプログラミングの王道です。**分けると分かりやすい**です。 日付モジュールを作っているときは、ファイルアクセスのことを忘れられます。 おそらくプログラミングで、デバッグやエラー処理が一番大変でしょうから、 その負担を減らすことを一番に考えます。**部品の切り分けは、問題の切り分け**です。 ここで最初の話に戻ると、分割することで、勉強もしやすくなっています。 なぜなら、「Python 日付」など、**検索**もしやすくなるし、 座学で一度に詰め込まず、作るコードと仕様が**対応**してるから覚えやすいです。