今回はプログラミング初心者向けのロードマップを取り上げます。
これからプログラミングを始めたい人や、最近プログラミングの学習が重視されているけどどうしよう…という人に向けて話していきたいと思います。
前提として
エンジニアにプログラミング初心者などと書いている人がいますが、プログラミングに初心者も中級者も上級者もいないと思っています。プログラマーやエンジニアは常に勉強しているのです。プログラミングと一括りにしていますが、サーバーやインフラをやっている人からデータベースやロボットをやっている人もいるので、ジャンルが全く異なります。
その中で上も下もないわけです。では何が重要かというと初心者かどうかということではなく、自走できるかできないかということです。結局なにかサービスを作りたいというときや、こんなサービスを作ってくださいという依頼があった時に自分で動けるのかということなんです。自分で動くといっても、これは調べてもいいですし、他人と話し合っても問題ありません。
例えば流行りのサブスクリプションを搭載した会員のECサイトを作ってほしいと言われた時にどうすればいいかわからないというのが「自走できていない」ということを意味しています。「自走できる人」はすぐに作業に取り掛かったり、クライアントに向けてすぐに構築の方法を説明できます。これが自走できる人とできない人の違いです。
まず達成しなければいけないのは、自走していない状況を脱することですから、どのようにして脱するまでに自分のスキルアップをしていくのかということについて話していきます。
言語を選ぶ
はじめに、プログラミング言語にはいろいろありますが、まず何をやったらいいでしょうか。実は最初に何をやるかはさほど重要ではありません。どの言語でも自走できる状態までの学習範囲というのはどれも同じです。PHPやRubyやPythonなどの言語を英語ドイツ語イタリア語のような違いだと思っている人が多くいますが、これは大きな間違いです。各言語ごとに得意分野も文法も異なることはありますが、基本的な考え方やアルゴリズムの構成の考え方はさほど変わりません。まずは、自分が少しでも興味のある分野でいいので、それに絞って基礎の部分をしっかりと勉強し、プログラムやアルゴリズムとはどういうものなのかを学ぶことで、他の言語でも役立つことになります。私も今8言語ほど使えますが、ものすごい大変だったかといえばそうではなく、一つの言語を理解できれば他の言語も理解することができました。
ではどのような言語を選べば良いでしょうか。
ウェブに興味があればPHPやRubyなどのバック、データ分析や機械学習であればPythonなどがいいと思います。私が特にいいと思うのはPHPとPythonで、特にPHPは今ウェブでものすごい需要があるし、Pythonは今後人工知能などで需要が上がってくると見込めるので、特にこだわりがない人はこの二つをせめてみるのがいいと思います。
環境構築
まずやらなければいけないことは環境構築です。しかし、初心者に環境構築をやらせるか否かというのは意見が分かれるところでもあります。環境構築の部分で挫折してしまう人も多くいます。環境構築というのは言語によっては難しいものもあって、サーバーサイド言語であるRubyなどはこれが結構難しく、私でも手こずるくらいのものだったりします。一方でPHPやPythonは比較的簡単というイメージです。環境構築というのはプログラムを書いたり実行したりデバッグしたりする一連の動作を行える環境を作ることです。
環境構築を自分でできるようにしていくというのがはじめの一歩です。
基本文法の理解
その次が基本文法の理解です。基本文法というのは変数、関数、引数、演算子、if文、for文、while文、それ以外にもクラスの定義や関数の定義であったり、エラー時の処理があります。最後の3つは応用ですが、最低限前半部分は学んでおかなければいけません。これはどの言語にも当てはまるものです。
その後は・・・
そこまでいったら次にサンプルプログラムをネットから拾って来て、自分でいじってみましょう。環境構築ができて、基礎文法の理解ができたら他人が作ったプログラムでいいので、それを自分でいじってみたり、コメントアウトといって一行ずつ和訳していくトレーニングをしていくと、プログラムの理解が進みます。そして、プログラムを英文として読むのではなくて、ブロックとして考えることが大切です。英語が並んでいるせいで、普通の英文のように捉えてしまいがちですが、プログラムはブロックを単純に文字化しただけなので、必ずフローチャートがかけるようなものになっています。ですからブロック的な考え方をしていくというのが大切です。ここまでできればある程度プログラムは理解できているので、次にはまっさらな状態から自分で簡単なプログラムを書いてみる。ここまでできれば、ネットで調べたり書店で書籍を買って来て自走できる状態になってきていると言えます。
ですのでこの先は自分の好きな分野に進んでいけばいいでしょう。
プログラミングの世界はものすごく広いので、はじめから全てを網羅しようとせず、一つ一つベースを固め、自走できるようになれば自分の好きな分野に進んでいけば良いといえるでしょう。
プログラムをやってみたい方は参考にしてみてはいかがでしょうか。