はじめに
そろそろ研修が終わる金融系の新卒SEです。
本業ではJavaの開発研修中ですが、
最近は個人開発のためにGraphqlやHasuraを勉強しております。
さて、
「文系の自分がエンジニアになる=たくさんの勉強が必要になる」
これは頭ではわかっているけど、いざ生活に大量の学習を落とし込むのは非常に難しいなと、
最近実感しております。
そんな中でエンジニアは、どのように学習していけばいいのかを指南してくれる本を探しており、
そしてこの本を買いました。
エンジニアの知的生産術――効率的に学び,整理し,アウトプットする
読んでみての感想
大学時代からビジネス書やライフハック、勉強法などを調べてきました。
それこそ、ジャンルを横断して年100冊を超える読書をしてきました。
しかしこの本を読んだ後は、
「学習関係の本ってこの1冊だけ読めばよくね??」ということをまずはじめに思いました。
それぐらいよくまとまっておりました。
この本の対象者:
エンジニアをはじめとする全ての学習愛好家
新しいことを学ぶ
新しいことを学ぶためには土台が必要。
この当たり前な考え、実は忘れ去られているように思えます。
例えば、何かプログラミング言語を学ぶにもQiitaやzennの記事に頼ったりしていませんか?
それが悪いことだとはもちろん思いません。しかしそれらの記事の土台になりそうな情報(公式ドキュメントなど)へのアクセスが、
ないがしろになってしまうことは避けていきたいですね。
また、ゴールは具体的かつ明確、定量的に設定することが大事ですね。
組織のフレームワークである「SMART」が役に立ちます
Specific…具体的に(より詳細な目標)
Measurable…測定可能に(定量的、数字を盛り込む)
Assignable…誰が実行するかが明確
Realistic…現実的に達成可能か(例えば空を飛ぶとか右腕から火を出すとかは無理ですもんね、、、)
Time-related…いつ達成するかが明確である
そして学ぶ目的も明確にしましょう。
例えば、Pythonという言語を学んだ先には様々なライブラリやフレームワークを扱うことを求められます。
(Django,Selenium,Pandas,etc...)
全て一気に学ぶのは難しいため、「なぜ自分はこれを学びたいのか、学ぶ必要があるのか」を明確にしていきましょう。
仮に「web applicationを作りたい」という理由だけだったら、そもそもPythonじゃなくてもできますしね。
少なく切り分ける
「因数は分割せよ」
かの著名哲学者デカルト氏の有名な考え方です。
考えなしにプログラミング言語を身につけるという大きすぎる目標を果たそうとするのは、
非常に骨の折れる作業になります。
ですので、マイルストーンを置いて着実に一つずつこなしていく事が大事になります(本書では休憩所と表していました)。
また、目標だけではなく作業やタスクも切り分けましょう。
有名な研究でも、短時間作業×短時間休憩で作業をすることで、効率を落とさず作業をすることができるとあります。
ですので、「ポモドーロテクニック」や「小学校の授業リズム」などを取り入れていきましょう。
読書は手段である
ついつい見落としてしまうのは、「読書は手段である」ということです。
僕も、ボーナスで技術書を積読していい気になっていましたが、ハッとさせられました。
読むことで知識を身に着けて活用することが本質的な目的です。
ですので、それを活用する機会を自分で作り出すのが大事だと思いました。
もちろんQiitaに書くことや、Notionにまとめたり、手元のメモにアクションプランを書くなど、
より「アウトプット」をすぐにやることが大事だと感じました。
終わりに
技術用語が少なかったり、かなり著名な方法論がまとめてあったりと、
文系卒IT業界ビギナーの自分でも読みやすかったです。
つよつよエンジニアの方は一度、学習効率の見直しとして、
そうでない人も学ぶことについて考える機会にいかがでしょうか?