プログラミングを学習するということ(前編)
これからプログラミング学習を始めて最終的には就職、転職を目指す人のためにこの記事を書く。
プログラミングは「始めたい」という気持ちがあれば、だれでも簡単に始めることができる。だが、「難しい」というのが本音である。では、どこが難しいのだろうか。この記事では、そういった点を含めて述べていこう。なかにはTwitterでつぶやいたことも含まれるが、その点はご了承願いたい。また、文章量が多くなったため、前編・後編にわけさせていただいた。
どうしてプログラミングしたいのか?
まずは、はっきりしておきたいのが「どうしてプログラミングしたいのか?」ということである。プログラミングを始めるのであれば、動機をはっきりさせておこう。新しいことを学んで転職したいとか、あの会社に就職したいからとかあると思う。こういったことでよいのではっきりさせておくことが大事である。動機も何もなく、単にプログラミングのスキルを身につけたいとか、プログラミング始めたいけど、なにをやったらいいのかわからないといったことであれば、あまりプログラミングの学習はおすすめしない。長続きしないことが多いからだ。
目的はなぜ必要なのか
何ごともそうだが、学習には目的が必要である。目的があるということは、学習の方向性がはっきりしていることになる。何が必要でどのように学習していけばよいかというように、スムーズに学習に取り組むことができ、比較的短い学習期間で終わらせることができる。
目的がない場合はどうだろうか。なにから始めたらよいかわからない。とりあえずPythonという言語が人気で初心者向けというから始めてみようかとなる。学習していくうちに、方向性に一貫性がなく、あちこちに手を出してしまう傾向が強いだろう。そのうちになんでこんなことをやっているのかわからなくなってくる。
目的は、学習いていくうちに見つければ良いと思うかもしれない。もちろん、否定はしない。それでも続けることができれば問題はない。個人的には、覚えることに一生懸命であり、そんな余裕はないだろうと考えている。気がついたら終わってた。「さあ、次は何をしたらいいんだろう」そうならないためにも、目的をはっきりさせておきたい。
プログラミング学習の難しさ
プログラミングは難しいと言った。難しさはどこにあるのだろうか。個人的には、プログラミング言語を覚えただけで終わらないということだと考えている。言語の基礎文法を理解するだけなら、1ヶ月もかからないで覚えられるだろう。だが、プログラミング言語はあくまでも手段であるということだ。覚えたら終わりではない。むしろスタート地点に立ったというだけである。ここから様々なことを学習していくことになる。そして、継続していくことに難しさがある。
プログラミングの学習量は多い
例をあげよう。Web上でデータ分析提供サービスを作りたいとしよう。どんなことを学習したらいいのだろうか。ざっと上げてみると、ライブラリの多さから、プログラミング言語としてPythonがあげられる。次に、HTML、CSS、データベース、SQL、Webに関する知識、技術、統計やデータ分析に関する知識・技術といったものがあげられる。こういったものをすべて学習していくことになる。単にプログラミングだけ学習すればいいというわけではない、というのがわかるだろう。とんでもない学習量である。
「いや、そこまで考えていないし、メルカリのようなサービスを作りたい」ごもっともである。プログラミング言語としてはPHP。次にHTML、CSS、データベース、SQLになるだろう。もちろんこれで終わりではない。サービスやワン・トゥ・ワンマーケティングなどの知識や技術が必要になる。なぜなら、単に作りましたではなく、そういった知識を踏まえてUIを考え、お客様が迷わないようにしたり、使いやすいようにすることが重要だからだ。サイトで迷ったり、使いづらいものではダメなのである。
プログラミング学習のゴール
ここでいうゴールは、次のように考える。
- 目的を達するのに必要な知識・技術を得たこと
- プログラミング学習の成果物として実現させることできる
ということになろう。
就職・転職・フリーランスで活動するにしても、何らかの形で成果物つまりポートフォリオの提出を求められる。ポートフォリオはプログラミング学習の成果であり、たとえ、提出要求がなくとも制作しておくことは大事である。
どのプログラミング言語を学ぶべきか
作りたいものに合わせて学ぶというのが基本である。Web制作やアプリの開発にはどんな言語が使われてるのか、組み込み開発ではどんな言語が使われているのか、といろいろ調べることだ。また、ITエンジニアとして働きたいと考えるのであれば、どの職種につきたいのかによっても、使用する言語が変わってくる。そうしていくうちに、自分が作りたいものは、この言語がいいと選べるようになる。
よく「初心者向けの言語はなんですか?」という人がいるが、初心者向けの言語はない。どの言語も学習を始めるスタートは同じであり、学習する難易度も同じと思ってよい。
ポートフォリオについて
個人的見解とする。いくら、就職や転職のためにポートフォリオを作ったとしても、相手先会社に合ったものかどうかを考える必要がある。Javaによる開発を行っている会社へ、Pythonで作ったポートフォリオを見せても、会社から見れば技術的には認めるが、Javaによる開発したことがなければ二の足を踏むことになるかもしれない。もちろん、教育コストをかけてもいいので採用となることもあるが、あまり期待しないほうがいいだろう。その会社に入社を望むのであれば、Javaで制作したWebアプリケーションのポートフォリオを提出することである。案外、知らないかもしれないが、JavaでもWebアプリケーションを開発できるのである。
ここでいいたいのは、ポートフォリオさえ作ればどこの会社へ面接にいっても採用されると思わないことである。採用される確率をあげたければ、就職・転職したい会社をいくつか絞って、できるだけ、その会社に合った形のポートフォリオを作ることだと思う。ただし、これだけではないことを申し上げておく。
次回は、プログラミング学習方法とメリット。デメリットについて述べることにする。
(後編へ続く)