学習の前に

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

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

プログラミング言語は日々進化しており、これを完璧に学習することに必要な時間は膨大ですが、実務では結局使わない機能も膨大です。このようなことに時間をかけるべきではありません。幸いなことに、多くのプログラミング言語では「資格試験」が実施されています。言語仕様(文法)の学習については、これを目標としてください。

資格を取得しておけば、客観的にご自身の知識レベルを他人に伝えることができます。なお、資格取得はあくまで中間的な目標です。実務で必要な知識は、常に更新が必須です。これはプログラマー(エンジニア)の宿命と言えます。

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

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

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

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

学習時の三大原則

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

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

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

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

必要な部分だけ学習する

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

学習サイクル

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

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

アルゴリズムの訓練

ぜひ、チャレンジしてみましょう!

アルゴロジック