はじめに
自分のプログラミング学習過程を振り返る機会があったので、ついでにQiitaに投稿しようと考えました。
ゼロからどうやって学んでいったかを書いているので未経験者にも役立つ話になっているかもしれません。
なぜゼロから
現在ブイブイいわせているエンジニアさんも元を辿れば未経験でゼロから学びはじめた方です。
どんな方でもゼロの時期があったわけです。
というわけでイチからではなくゼロからどうやって学んだか記述するので、若干長ったらしく感じるかもしれません。
学習過程
自分はゼロから学ぶ際に、おおよそ以下の3つのステップを意識して学習していました。
プログラミング基礎(プログラミング言語)
↓
コンピューター基礎
↓
専門知識
ゼロから学ぶにはやはりなによりもまずはプログラムが書けるようになることが第一だと考え、初めにプログラミング言語を学ぶことになります。
その後、専門的な知識をつけるための土台となるコンピューターの基礎を学び、最終的には専門的な知識をつけていくことになります。
とりあえずゴールは専門知識です。ここからは完全にアナタ次第となるでしょう。
プログラミング言語
私はC、Java、Pythonの3つの言語を最初の数ヶ月学びましたが、今となって振り返ると、最初はPythonの学習のみでよかったと思います。
他の言語は必要になってから学べば十分です。というのも、時代によって求められるプログラミング言語というのは変わっていくので、どの言語を学んでおいたほうがよいというのはあてにならないでしょう。
もちろんそれはPythonも例外ではありませんが、プログラミングの学習にしばしばPythonが推奨されていることを考えるとPythonのこの立ち位置はしばらく変わらないと考えられます。
おすすめの書籍は今だと、Python言語によるプログラミングイントロダクションが良いと思います。
最初にPythonの基本的な文法などが説明されており、中盤から少し学術的な記述がされています。理系分野を専攻していた場合は十分読めると思いますが、難しいと思った部分は飛ばしてもよいでしょう。
学術的な関心はいいからPythonだけを学びたいという場合はオライリーの入門Python3がおすすめです。
途中、ライブラリやフレームワークの列挙になりますが、飛ばしてもらって構いません。
コンピューター基礎
プログラムがある程度書けるようになったら次はアルゴリズムやハードウェアなどのコンピューターの基礎的な知識を学びました。
時間に余裕があるならば、OSやコンパイラ、ネットワーク、計算理論などの知識もこの時点で学ぶとよいでしょう。
アルゴリズムのような基礎的な知識はあまり学ばれないこともありますが、次の専門的な知識を学ぶステップにおいて役に立つ事が多いので学ぶに越したことはありません。
勉強方法ですが、例えば私の場合は、
- 理論
- 演習
のように書籍を分類して「理論を学んだら演習をする」もしくは「理論と演習を同時にやる」といったように学習していました。Amazonのレビューなどでどちらに属する書籍か判断して学習すると良いでしょう。
また正直に言うと、この学習ステップは真面目にやっていたらかなりの時間がかかること間違いないので、次のステップとある程度並行してやってしまったほうがよいかもしれません。かくいう私もある程度並行してやっていたところがあります。
情報処理試験だと基本情報技術者試験の内容がこのあたりに該当するのではないでしょうか。
応用情報技術者試験も割と当てはまりそうです。
専門知識
コンピューターの基礎的な知識を学び終えたら、自分がその道へ行きたい専門的な知識を身に着けることになります。
社会に出て働いているエンジニアはみんなこのステップにいると思います。
また、コンピューター基礎のステップで飛ばしてしまった項目はこの時点で学んでしまいましょう。
おすすめの書籍はオライリーシリーズです。実際の現場で役に立つ知識が学べます。
また、高度情報処理の資格もここで取れるなら取ったほうが後々役に立つでしょう。
さいごに
これは私の一例ですが、みなさんはどのような学習過程を歩んできたのか少し気になるところです。
これを機にみなさん振り返ってみてどうだったか書いていただけると面白そうです。