ITの学校で底辺だった私が急にプログラムが書けるようになった嘘のような話
4年制の専門学校に行って、HTMLもCSSもPHPもJavascriptも理解できず3年間底辺で、残りの1年でトップクラスにプログラムが書けるようになった嘘のような話をします。
他にもいい方法はあるだろうから、実際にやるかは自分で判断してほしい。
こんな人におすすめ
これからプログラミングを学びたいと思っている
参考書読んだけど、身に付かなかった
学び方を間違いたくない
確実に身に付き、応用力も付くなら少し遠回りでもいい
4年制専門学校の3年間ダメだった当時の私の勉強方法
小さなアプリが作れる体験の参考書はクソ
授業を受けても全く分からなかった私は、学校の教材以外にも、参考書を通して小さなミニアプリができるような参考書を読み漁っていました。
「Pythonの基礎と、ミニ掲示板が作れます!」
とか、
「PHPの基礎と、ミニブログが作れます!」
みたいな。
こういうのAmazonにたくさんあるよね。
これは絶対やめたほうがいい。
"作る"よりも"なぜ動くのか"が大事だった
参考書を読んで何かを作り上げても、1か月後には「で?」っていう状況になる。そうならないためには"なぜ動いているのか"を自分なりにイメージできていることが大事。
例でいうと15年前にあったコカ・コーラCM。
コカ・コーラができる過程はそんなはずがないんだけど、出来上がるコカ・コーラがおいしければOKだよね?
プログラムも一緒。過程がどうであれ、自分なりに結論が正確に導き出せるイメージさえ持ってれば良いんです。
曖昧なルールの言語はダメ。堅牢なルールを覚えろ。
例えば「PHPは簡単だから初心者におすすめ~」っていう人いると思うけど、それは違うと思っています。
PHPとか曖昧なルールが許される言語で始めるのはやめたほうがいい。
PHPのifには0も1も書ける。なんだったら文字列もいける。
だけどJavaだと真偽値しか書けない。この本来の堅牢なルールを覚えることが重要なんだ。
[本題] Javaを通してほかの言語も書けるようになった
当時の私はPHPとか、Javascriptとか、wordpressとか、Phythonとかいろんな参考書読み漁ってたけど過去の無駄な3年間はJavaが3ヵ月で解決してくれた。
※ちなみに仕事でJavaの案件は一度もないです
ガチガチのオブジェクト指向が基礎力を高める
Javaはオブジェクト指向の中でもルールがしっかりしていて、難しいと言われるんだけど、逆にこの厳しいルールが自分にハマって良かったと思っています。
Javaほどガチガチな言語は無いので、多言語に移行する際も若干の文法の違いを把握するだけで書けるようになります。
SJC-P / SJC-WCを取得したときから世界が変わった
Javaの認定試験になります。これを目指しながらプログラミングを学ぶのがベスト。
今はOracleが買収してOJC-PとOJC-WCという資格になっています。
OJCになってからブロンズ/シルバー/ゴールドと試験が3段階になっているんですが、シルバー位取れたらOKだと思う。
SJC-WCに関しては取るべきかどうかは置いといて、私の場合だとパソコンで検証とか全くせず、参考書だけで合格したんですけど、これでwebプログラミングができるようになっていて、この時既に、PHPも書けるようになっていました。
問題集を解くのが最短。タイパ最強!
私の場合、プログラムを書かずに、とにかく参考書と問題集でプログラムの理解を進めました。
この後紹介しますが、問題集の場合だと、4択から答えを選びます。
1つの正解と、3つの間違いを学ぶことができます。
めっちゃ効率良くないですか?
プログラムなんてエラーとの闘いなんだから、エラーになる文法をたくさん知っておくのは大事だと思うんだよね。
書くより正確に読むことが大事
私はプログラムを勉強するうえで、コードを書いて動かすことはほとんどありませんでした。
本と紙だけでプログラムが書けるようになったのです。
プログラム初心者の段階では、書くことよりも正確に読むことが大事だと思います。そして正確に読めたら、ネットに落ちてるコードも正確に理解できるようになるので、学習効率も上がります。
私の場合、PHPのLaravelの時に救われた
プログラムはそのまま使うのではなく、フレームワークというもので使いやすく加工されて開発してたりします。
同時に求められるレベルも上がってきますので、入門書レベルの参考書の知識では太刀打ちできなくなってきます。
PHPの場合だとLaravelというフレームワークが人気で、オブジェクト指向で書かれています。
Javaの知識がここで大活躍しました。
たぶんSJC-P取ってなかったら、laravelをここまで理解はできていなかったのかもしれない。
私が使った参考書
黒本(問題集)
黒本と呼ばれているやつです。
これ一冊で制御文とかもかなり理解できると思います。
if文の問題だけでもいろんな角度から15問くらいあります。
とにかく問題が多いから、様々なケースの制御文に対処できるようになります。
解説がかなり丁寧なので、参考書をある程度やっていれば、これだけでプログラム能力を底上げできるようになります。
紫本(参考書)
参考書ですが問題も少しだけある。黒本のほうが重要だが、ある程度紫本で理解しておかないと解けないので必要な書籍です。
認定ガイド(これが最強)
OJC-P版は残念ながら無い。
16年前だけど今も通用する内容になっているはず。
参考書と問題集がセットになった辞書のような分厚い本。
解説部分もかなり難しい説明になっていてある程度理解しているレベルじゃないとわからないと思う。
問題の数は少ないが他の参考書より難しくなっていて、逆に理解できれば強くなれるようになっている。
OJC-P取るなら、力試しに買うのもいい。
試験代はかなり高いから一発で受かりたいならこの価格は安い。
さいごに
検索にヒットしてほしいので、私の使っている技術を羅列しておきますw
Laravel
PHP
Javascript
jQuery
Vue
Docker
Linux
HTML
CSS
Tailwind
プログラミング頑張ろう~!