「エンジニアの知的生産術」を活かす

f:id:ryoutaku_jo:20190114173559p:plain

【結論】
・ゴールは明確に設定する
・知りたいこと(やりたいこと)から学習する
・今必要なことだけ学習する(YAGNI原則)
・タスクを一つに絞る/時間を区切る(ポモドーロ)
・忘れたタイミングで復習する
・シンプルに分けて覚える
・本は段階別に読み進める

【目次】

【本題】

「エンジニアの知的生産術」を読みました

「エンジニアの知的生産術」という本を読みました。
今回は、そこから得た知見を基に、
今後実践していくことをまとめてみました。


読むきっかけ

最近、先輩方のアプリ発表会に参加する機会が何度かあったのですが、
Python機械学習を取り入れて、アプリを作成されている方が、
何名かいらっしゃいました。

スクールのカリキュラムでは、Pythonはカバーしていないので、
独学で勉強されたのだと思いますが、
よくスクールのカリキュラムと並行して実施できたな
感心させられました。

私は、まだRailsのテストコードを上手く書く事が出来ないですし、
オブジェクト指向についても理解ができていないし、
jqueryでの非同期通信の実装もかなり手こずるなどなど・・・
カリキュラムの内容を理解するのに精一杯で、
とても他言語の習得に時間を割く余裕が無いです。

プログラミング学習を開始して、一ヶ月がたちますが、
私も怠けていたつもりは一切なく、
一日10〜14時間ほど学習時間は確保しているので、
学習量については、他の方に引けを取らないと考えています。

既に持っていた知識で差が付いている面もあるけど、
この差を埋めるには、量だけではなく、
学習方法を見直す必要があると考えるに至りました。

今までは、量を確保していない段階で、
質を高める取り組みをしても無意味だと考えて、
とにかく量を確保することに専念し、
質を向上させることを疎かにしていました。

今後については、より良い学習方法を取り入れて、
学習の効率化を図ることにしました。

その第一歩として、
「エンジニアの知的生産術」を購入しました。



選んだ理由

エンジニア向けの学習方法を紹介した本の中では、
インターネット上の評判も良かったので、こちらに決めました。


読書目的

日々に学習に取り入れられる学習効率を高めるノウハウを収集する


実践すること

・ゴールは明確に設定する
例えば「pythonをマスターする」といった目標では、
不明確で、モチベーションを維持できない。
python機械学習を用いて、人より強い将棋のAIを作成する」
といった様な、実現したか明確に分かる目標が、
モチベーションの維持に欠かせない。


・知りたいこと(やりたいこと)から学習する
教科書通りに順番に進めるのではなく、
知りたい・やりたいと思ったことから学習をスタートすることで、
モチベーションを継続しやすくなる。


但し、下記の前提条件を満たしておく必要がある
ーゴールが明確である
ー達成方法が明確である
ー大まかな全体像を把握している


・今必要なことだけ学習する(YAGNI原則)
「いつか役にたつ」の「いつか」は来ない事もある
時間の無駄になるので、必要なことだけに注力する


・タスクを一つに絞る/時間を区切る(ポモドーロ)
1:一日のタスクを作る
2:1ポモドーロは、そのタスクだけ集中
3:割り込みがあったら、記録を残す
4:1ポモドーロが終わったら、数歩あるいて視点変更
※視点変更することで、煮詰まっていた問題が解決する事もある


・忘れたタイミングで復習する
一ヶ月後が最適


・シンプルに分けて覚える
複雑なことは、細かく分割して覚える


・本は段階別に読み進める
速読法などで良く紹介されているやり方。
本書にも具体的な方法が紹介されているが、
私は若干自己流に調整した下記の方法で実践しようと思う。

1:準備・・・本を読む目的を明確にする
2:プレビュー・・・表紙/裏表紙/目次/まえがきなどから全体像を把握
目的に見合う内容か判断する(約5分)
3:質問を作る・・・軽く読み進めながら、
どういった情報が欲しいか具体的な質問をリストアップ
この時点で答えを探さない(約5〜15分)
4:熟成・・・一日置く(最低10分)
5:答えを探す・・・作った質問の答えを探す
6:ブログ・・・得た内容をブログにまとめる
7:マインドマップ・・・マインドマップを作成する ※体系的に学びたい場合のみ


所感

本書は、ノウハウ集というよりは、
人が学ぶ上で、どういった心理的作用が働くか?などといった
理論的な要素が強い内容だった。

そういった抽象概念を理解できれば、
本書に記載されているノウハウ以外にも、
様々な応用ができると感じる一方、いま必要な知識では
無いと考えたので、今回は読み飛ばしています。

また、本書ではアイディアの発想法なども紹介されていましたが、
今回の読書目的は、学習方法の収集にあったので、
この辺りは読み飛ばしています。

また必要になった時に、読み返そうと思います。

なお、一番興味深かったテーマは、
「知りたいことから勉強を始めた方が良い」という内容です。

プログラミングにおいては、前提となる知識が不可欠だから、
順に学んだ方が良いと考えていたので、これは意外な発見でした。
但し、前提条件を満たしていないと、学習効率は落ちるので、
その点は注意しておいた方が良いでしょう。

《今日の学習進捗》

JavaScript, jQueryを用いた非同期通信の
実装方法を学習中。
基礎からやり直さないと、動きが理解出来ないかもしれない・・・

学習開始からの期間 :38日
今日までの合計時間:374h
今日までに到達すべき目標時間:347h
目標との解離:+27h
「10,000時間」まで、

残り・・・「9626時間!」