これからプログラミングを始める方の参考になればと思い書きます。
対象は高校生、大学生、プログラム未経験の社会人です。
【参考】僕のプログラム遍歴
僕のプログラミング歴は大学で2年、職業で17年くらいです。
言語
・JavaScript、HTML、CSS
・Perl、PHP
・Java
・Flash(ActionScript1.0, 2.0, 3.0)
・Python
・C/C++
・C#
業界的にはウェブ、スマホゲーム、スマホアプリあたりをうろうろしてます。
言語選びは作りたいものから逆算する
プログラミングを始めるにはまずプログラミング言語を選ぶ必要があります。
言語は多数あり一体どれにしたら良いかわからないと思います。
そこでまず自分が何を作りたいかを考えましょう。
プログラム言語というのは業界によって使用する言語がある程度決まっているので、作りたいものが決まればだいたい言語が決まってきます。
ウェブ
ホームページやWebサービスが作りたい場合。
フロントエンド、サーバーサイドどちらか良いかわからない場合はフロントから始めると入りやすいと思います。
フロント
Javascript、HTML、CSS ← 3つで1セット
サーバー
Perl、PHP、Java、Go、Rubyなどなどなど(のどれか)
ゲーム
コンシューマーゲーム機やスマホゲームを作りたい人向け。
今だと、C/C++、C# どちらかでしょうか。
Unityで始めるのが手っ取り早いと思います。
iOSアプリ
iOSのアプリを作りたい場合はSwift ですね。
Android
Androidのアプリの場合はKotlinです。
他業界・・
他の業界のことはよくわかりません・・が、とりあえずなんでも良いんじゃないかなぁ・・と思います。
とりあえず始めることが大事。
プログラミング言語には共通点が多いので一つ覚えれば、他の言語は数ヶ月あれば比較的容易に切り変えが可能です。(言っても大変ですが)
どれをやるか決められずに立ち止まってしまうくらいなら、適当に一つ決めてプログラミングをはじめてしまうのが良いです。
勉強のはじめ方
プログラミングを始めるにあたって、勉強する方法はたくさんあるのですがまずは自分で勉強してみましょう。
簡単そうな(これが大事)本を買っても良いですし、ネットで調べても良いです。ちなみに、簡単なのを探すのも大事なスキルになってくるので諦めずに探してみてください。
言語をなんとなくわかってきたら一つテーマを決めて作ってみてください。
アプリでもウェブサイトでもゲームでもなんでも良いです。
作ることでより理解が深まっていくことを体感できると思います。
専門学校に行って教えてもらった方が効率が良いのでは?と思うと思いますが、自分で勉強することにとても意味があります。
プログラミングには才能が必要です。
その才能とは自分で調べて覚えて作ることが楽しいか?
です。
就職してプログラマーになった後もこの才能はとても大切になります。
写経は意味があるか
写して暗記すること自体にあまり意味があるとは思いません。
それよりは何か作りたいものに沿って、プログラムの機能を使って覚えていく方が意味があるかなと思います。
進路
高校生ならば専門学校、出来たら理系大学進学を選ぶと良いと思います。
プログラミングに重要なのは”言語”の理解だけでなく、数学、物理などの学術や大学生活を通しての広い視野が必要になってくるためです。
すでに働いている方であれば転職して現場で揉まれるのが一番早いと思います。
就職する
プログラミングの勉強は終わりがありません。
勉強が終わったら就職しよう。では就職できません。
ある程度覚えたらなんとか就職してしまいましょう。
「ある程度」の基準がわからないところですが、アプリを2本とかウェブサイト2つとかそういう決めで良いと思います。
現場に入ると、とにかく作らないといけません。
プレッシャーの中で制作することで、とてつもない速さで成長できると思います。
運良く良い先輩に巡り会えたら正しい方向に導いてくれると思います。
最初の数年は「勉強させてもらっている」という気持ちもを忘れずに仕事をしましょう。僕はいまだbotに毎日通知させています。
時には逃げても良い。
すぐ辞めてしまうのは良くありませんが、精神病むほどでしたら異動や転職は考えても良いと思います。
制作会社の中にはブラックな会社も多数存在するという事実があります。
自分を守るためには時には逃げるのは恥ではありません。
長く続けるには結構大事なことです。
プライドは捨てた方が良い
プログラマ35年定年説の一つ「技術に追いつけなる説」ですが、あれの原因の多くは、プライドが邪魔して年下に質問できない。だと思います。
逆に年下のプログラマーは年上に指摘しにくいものです。
結果、古い技術のまま衰退していくということだと思います。
僕は随分前からそのプライドがなくなりました。
わからない時は、恥ずかしげもなく質問するようにしてます。
むしろ、チーム全体の質問ハードルを下げるためにあえて質問してる時さえあります。
まとめ
プログラミングの仕事は僕が就職してから20年ほどずっと需要があります。
AIによって仕事がなくなる?と言われたりしますが、プログラマについては少なくとも今後20年は仕事があるんじゃないかぁと思います。(AIに何をさせるかはプログラマが決めているので、今は。)
安心して勉強に取り組んでいただけるんじゃないと思います。
ただ、繰り返しですが、
自分で調べて覚えて作ることが楽しいか?
これがあるかないかで、楽しくも辛くもなるということを最後にいっておきます。
楽しければきっと楽しい仕事が待っているんじゃないかなと思います。
では。