プログラミング言語を学習する前に、プログラマーを目指すなら必須能力の鍛錬のお願いです。

まず初めに、求められる能力は「言語仕様の知識」ではなく「設計能力」です。(IT業界では、アルゴリズムを考える能力とも言えます。)

プログラミング言語は日々進化しており、これを完璧に学習することに必要な時間は膨大ですが、実務では結局使わない機能も膨大です。このようなことに時間をかけるべきではありません。また、実務で必要な知識は、常に更新が必須です。これはプログラマー(エンジニア)の宿命と言えます。

話を戻して、鍛えて頂きたい能力は「設計」です。「構造化(プログラミング)」も「オブジェクト指向(プログラミング)」も、「設計」を行うための手法です。「設計」が誤っていれば、どんなに優れた手法でプログラミングしても、期待通りの結果を得ることはできません。「設計」を上級者が分担することが多いのは、このような問題を起こさないように配慮しているからです。

では、初学者は「設計」を行わなくても良いのでしょうか。答えは「いいえ」です。「設計」は突然、魔法のようにできるものではありません。常日頃からの鍛錬が必須です。

どんなに小さな練習用のプログラムであっても、常に「設計(アルゴリズム)」⇒「コーディング」⇒「テスト(デバッグ)」という手順を意識しながら作業を進めるようにしてください。

なお、初学者の間は、いわゆるコピペ(写経?)は有効です。とにかく沢山動かしてみましょう。少し興味が湧いてきたら、「どうしてこうなるのか?」を考えてみましょう。可能なら、そのプログラムを改造もしくは機能アップしてみましょう。この繰り返しが、技術力向上にとても有効です。


学習時の三大原則

☆暗記は不要(残念ながら受験時には必要)

 「思考」が重要です。暗記しても、すぐに陳腐化する業界です。また、インターネット検索の技術を磨いてください。

☆学習(インプット)したら、必ず作成(アウトプット)

 学習に偏りがちですが、むしろ作成が重要です。なんでもよいので、とにかく沢山作成しましょう。

☆必要な部分だけ学習する

 「最低限」とか「一通り」とかいう目標はありません。必ず目標(ゴール)を定めてから、学習を開始してください。(そうしないと、一生終わらない無限ループに陥ります。)

学習サイクル

上記の学習サイクルをとにかく沢山回してみましょう。回数を重ねるに従って、驚くほど技術力が高まっていることに気付くはずです。

ネット上には、「一人前のプログラマーになるには、〇〇時間必要」といった情報を見受けますが、学習時間と技術力は比例するとは限りません。学習サイクル数と技術力が比例すると考えた方が合理的です。

実際に取り組んでみると、このサイクルを回すことが意外と難しいことを実感できると思います。途中で終わってしまうことの何と多いことか!ここで重要なのは「好きになること」です。昔から「好きこそものの上手なれ」などと言いますが、プログラミングが「面白い」「楽しい」と思えることが重要です。