勉強しない人はエンジニアには向いていない

要約
・勉強できないのは必要とされる知識が膨大になったため
・社会人の勉強と学生の勉強は異なる
・社会人の勉強は「問いを見つけること」
・まずは業務で疑問に思ったことを書き出し調べる
・言語の勉強はOUTPUT重視。ひたすら基本を「写経」。本を見ずに書けるようになったら合格

はじめに 

どうもトクハラです。
休日にネットをウロウロしてたら良い記事を見つけました。
https://axia.co.jp/2018-09-07
ほぼほぼ同意で付け加えることはないです。

勉強できないのは必要とされる知識が膨大になったため

ただ新人さんには同情すべき点がある。
それは、ネットやクラウド環境など整って、かつてなく勉強しやすい反面、
テクノロジーの進化が早すぎて、とてつもなく勉強しにくい環境にある点です。
自分が新人だった頃は奇跡的にちょうど良かったんです。
最初の会社はMSAccessでほどよく小さなシステムを作っていたのでとっつきやすかった。
その後、転職してCやCOBOLなどのレガシーの勉強もできたし、
Javaや.netが出始めて、webの黎明期でもあった。
昔は良かったと言いたいのではありません。
君らの世代は、SQLだミドルウェアだサーバだと
とにかく覚えることが多すぎるのは判る。
でもチャンスなのは間違いないです。
昔は「けもの道」しかありませんでしたが、今は高速道路が整備されてます。
ひたすら道案内に従って高速に覚えていけばいいのだから。
学校の授業を聞いてるだけで家で一切勉強せずに
大学に行った人はいるかもしれませんが、それはよほどの天才です。
学問に王道なしというようにプログラマに王道なしです。
巷に流れてる「簡単にプログラマになれる」説は、
多分どこかの人買い会社の流したデマです。
あとオンラインプログラミング講座とかですすめられている
「簡単」にできるフレームワークの勉強はやめたほうが良い。
はっきり言ってRailsやlaravel、Djangoなどイケてるフレームワークをわからないまま使うのは危険です。
詳しくは有名なエントリーがあるのでそこを読んでください。
今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」

社会人の勉強と学生の勉強は異なる

じゃあ、何を勉強したらいいのか?
ズバリ「勉強の仕方」です。
上のエントリで書かれていたことは「勉強」と抽象的に書かれているのでよくわからない。
アクシアの社長さんと退職した方との「勉強」の考え方がズレていたのだと思います。
おそらくアクシアの社長さんは社会に出てからの勉強、
退職した方は学校の勉強をイメージしていたのでしょう。
お互い話が噛み合わないのも無理はないです・・。
学校の勉強と社会に出てからの勉強は大きく違います。
学校「これをいつまでに覚えなさい」
生徒「はい!」
学校「君は○○点だね。次がんばって」
社会に出てからはこうです。
上司「これをエエ感じに作って○○日までに納品して」
貴方「これってなんのシステムだろ?」
貴方「仕様書どこ?」
貴方「仕様書にある○○システムに接続って何のこと?」
貴方「この関数の意味は?」
貴方「デバッグ環境は?ログは?バージョン管理システムは?テスト仕様書はどう書く?リリースは?」
延々と技術なのかその職場特有なのか区別もつかない問いが続きます。
普通の人は上の状態でもうヘトヘトで上司の悪口をいいながら酒を飲んで終了です。
 

まずは業務で疑問に思ったことを書き出し調べる

でも、これを読んでいるあなたは違う。ここからが勝負です。
昼間の質問のゴミ貯めには技術的な質問がまばらに含まれています。
それを拾い集めてください。
そして上記の質問がどの分野にあるか切り分けてください。
まず、業務なのかフロントエンドなのかバックエンドなのか。
「仕訳」の意味がわからなければそれは業務です。
簿記の薄い本を買って読めば良し。
「DOM」の意味がわからなければそれはフロントです。
およそwebシステムであればフレームワークを使っても最後に出力されるのは
HTMLとCSSとJavaScriptです。
「JOIN」「SQL」または「抽出」などがわからなければそれはバックエンド。
 

言語の勉強はOUTPUT重視

webで断片的な知識を読んで理解した気分になってはいけません。
ダイエットでも何でもそうですが、INPUTとOUTPUTのバランスが崩れるとおかしなことになります。
まずはINPUTです。
本を買って読んでください。技術書は高いというのであれば図書館で予約してください。
有名どころの本はたいていそろっています。お金がない場合、ひとまず古い版でも良いので借りる。
流行りのフレームワークでない限り、そんなに大きくは変わってません。
次にOUTPUT。
ここからが大切なのですが、必ず手を動かして書いてください。
みんな写経をして終わりますが、何回も繰り返し写経をして、教科書を見ないで動くようになるまでやってください。
見ないと書けないのであれば、・・・それは本を買っただけ。つまりカネをドブに捨てただけ。
自分のものになってないのです。
本を買っただけで満足してはいけません。
BOOKOFFに大量の新品技術書がある理由を今一度考えるべき。
みんな買っただけで偉くなったような気がして半年たってBOOKOFFに売りに行ったんです。
あなたは違う。モトを取ってください。
ここまで頑張れば最先端のフレームワークを使ってるようで
実際はフレームワークに使われてる人達を簡単に追い越せますよ。
最初の1年は進んでるのかどうかすら分からないと思いますが
2年続けると気がついたときには周りの人間をブチ抜いてます。
なぜなら周りの人間は勉強しないし、したとしても基礎をおろそかにしているから。
倦まず弛まずがんばれ〜。
その後、「勉強する人はサラリーマンには向いていない」という記事を書きました。
2019.06.18 追記
この記事のアクセス数が伸びているようです。感謝。
見てくれている人にちょっとしたアドバイス。
最近、SESか自社開発かでマウントの取り合いが行われているようです。
が、我々技術者の評価基準はたった一つのはず。
「一人でゼロから動くモノを作ることができるか」です。
空いた時間に自分でコードを書いている人は問答無用で素晴らしいし、どこに行っても通用します。
勤務体系がSESか自社かどうかは関係ありません。
自社開発の人も他人が書いたソースをちょこちょこ直したりしているだけなら、あまり自慢にならないのでは・・・と思います。
「飛べない豚はただの豚だ」