仕事が楽しくない
指示されてやる仕事なんて、面白くもなんともない。自分の意思で選択した仕事をプロフェッショナルにこなしていきたいのだ。
世界一流エンジニアの思考法
仕事が楽しくないのは、自分で選択してないからかもしれません
自分で選択するって、どういうこと?
実は、「基礎を丁寧に学ぶこと」だそう
丁寧に学ぶ
(理解に時間をかける習慣が)私が人生で心から欲しかったものを与えてくれた。
自分が仕事をコントロールできているという感覚、何かわからないことがあっても「自分ならやれる」と思える感覚だ。
世界一流エンジニアの思考法
「楽しい」とは、自分で「コントロールできている」という状態。
コントロールなんて、できないよ
そこで必要なのが、「丁寧な学び」
1.理解に時間をかける
- 説明可能
- 人に説明ができる
- 応用可能
- 別のことにも応用できる
- いつでも使える
- 調べなくてもパッとできる
わからないことにぶつかると、サッと流したり、考えないようにしてしまうことが多々あります。
あるいは、なんとなく解決できたら、それで満足したり。
だって、頭が疲れちゃうから
そのまま放置すると、「コントロールできない状態」になる
放置しないなら、何をするの
基礎レベルのことを、自分で説明できるようにする
「理解できる」とは、「他人に説明できる」状態のこと
単に「できた」ではなく、少なくとも「説明可能か?」というセルフチェックを入れたほうがよい。
世界一流エンジニアの思考法
「理解に時間をかける」と、仕事がみるみる変わるそう。
具体的にやることは何
- 初歩の学習(ベーシック)を一からやり直す
- 例)データ型、キーワード、クラスなど誰でも知っていることを学ぶ
- 誰でも知っている方法で学ぶ
- 難易度の低いものこそ重要&楽しい
- 定時後や週末に学ぶ
- 同じ毎日を送っていても何も変わらないから
- メールや書類は、ゆっくり理解して読む
- わかった気になって読み飛ばさない
「定時後や週末に学ぶ」のは、しんどい
ただ、学習を軽視すると、必ず次のループにハマります
理解が十分でないまま手を動かして努力しても、空回りになるだけ
空回りの日々を続けるか、学習の時間を作るかの選択…
優秀な人ほど、理解に時間をかけているそう
「頑張ってるのに空回り」ではなく、「理解してないから空回り」?
「空回りしない状態」とは、「試行錯誤が減ってる状態」のこと
2.基礎に時間をかけて得られるもの
「理解は時間がかかるもの」として、急がず、徹底的に理解する習慣をつけていくと、自分の人生でかつて経験したことがないことが起こった。以前はメモを取りまくっていたコードリーディングもゆっくり理解することで100%挙動が理解できているし、その確信がある。
圧倒的に試行錯誤が減って問題を一直線に解決できるようになってきたのだ。
世界一流エンジニアの思考法
「あれこれ」試すより、「一気に」解決…
そんなのできる?
それが、基礎のすごさ
手を先に動かす悪習慣を捨て、プログラミングを基礎からやり直す
なぜ基礎が大切なんだろう
3.生産性とは「レベル1」を増やすこと
調べずに(ググらずに)すぐ実践できるレベル
ググらないと何もできない
ググってる自分は、生産性が低い
- ググらなくてもすぐにできること
- 頭を使わなくてもサッとできること
レベル1のものが増えると脳の負担は激減する
頑張っても疲れないってこと?
ピアノを弾くように仕事をする
振り返ると、自分のプログラミングは、シンプルなコードなら「簡単だ。すぐできる」と思い込んでいた。実際プログラムは書けるが、深く理解していないから毎度Googleでサーチして、「こんな感じ」かなとコーディングする。一応ものはできるが、覚えていないから次回も調べることの繰り返しだった。言ってみれば、Googleプログラマだ。
同僚はみな、ややこしい構造でもすぐ理解できて、まるでピアノを弾くようにコーディングしている。
世界一流エンジニアの思考法
ピアノを弾くように仕事できたら、たしかに生産性も高いし楽しいだろうな
ピアノを楽しく弾くのも、練習の積み重ね
やっぱり練習量
「世界一流」の話なので、同じことをするのは難しいかもしれません。
でも、一流の真似をする努力は、してみる価値がありそうです。
努力の方向性も大事だといいます
努力の方向性を変える
従来のやり方にこだわるよりも、自分がより良い仕事をして楽に成果を出せるよう、恐れずに変化へと踏み出そう。
世界一流エンジニアの思考法
- 作業量を減らして楽をする
- たくさん仕事をしない
- 大事なこと(インパクトのあるもの)に集中する
- わからないことは、優秀な人(or 機械)に頼る
- 行動する前に頭を整理する
- たくさん試行錯誤しない
- まず仕様(Design document)を書く
- まずログを読み込む
- 早く失敗する
- たくさん考えない
- スピーディーに軌道修正していく
1.作業量を減らして楽をする
「何をやらないか」をどんどん決める
楽をしていいの?
たとえば、「ググる」をやめて、BingやChatGPTを使う。
今は、調べ物さえ、楽な方法がいろいろあります。
実際にChatGPTを使ってみたら、とても楽でした
あるいは、「一人で全部やる」をやめて、誰かに頼ってみる。
たしかに、一人で抱え込んでるときはメンタルが弱ってる
2.行動する前に頭を整理する
まずじっくり読む・書く
「まず行動」じゃないの?
やみくもに動くのは良くないそう
- まず、事実を見つける
- 状況を把握する
- ログを読み込む
- まず、仮説を立てる
- 原因を推測する
- まず、デザインドキュメント(Design document)を書く
- 整理する
試行錯誤は「悪」である
ドキュメントは必要ないと思ってた
著者は、優秀な同僚から次のように言われたそう
「できるプログラマは、みんなやってるよ。もちろんたくさんじゃなくて、ワードで数枚程度のものでいいから」
世界一流エンジニアの思考法
じゃあ行動する前に、じっくり考えてみよう
ここでやるべきは「じっくり考える」では、ないんです
3.早く失敗する
頭を整理したら、考えすぎない
「まず考える」も、違うの?
「整理はするけど、考えすぎない」というのが面白い点
比較検討に過大な時間をかけることは無駄である。それより早く前に進もう。実践経験を積み重ねるほうがよっぽど重要なことだから。
世界一流エンジニアの思考法
理解に時間をかけて、整理して、でも早く前に進む。
一流ってすごいな。
失敗は避けない、ということ
早く失敗することはそれ自体に価値がある
いいと思うことはやる
これには衝撃を受けました
技術イケメンの彼は、既存のプログラムにガッツリ変更を入れてシンプルなソリューションにした。私の思考回路では、プラットフォームに対して自分が大きく変更を加えるという発想がなかった。
世界一流エンジニアの思考法
自分の責任じゃないと思ってた
責任があるかどうかより、プロとして思うことをやるのだそう
そんなに仕事ばっかりできないよ
実は、休息も大事
多趣味でいる
できる人は多趣味でいろいろなことができる
世界一流エンジニアの思考法
- いつもと違うことをする
- 毎日30分有酸素系を含む運動をする
仕事もつらいけど、毎日の運動もつらいな
「1つだけに執着」は、むしろ体に悪い
脳が飽きる頃に違うことをやったほうがリフレッシュになる
まとめ
- 丁寧に学ぶ
- 説明可能・応用可能・いつでも使えるよう時間をかけて学ぶ
- 試行錯誤を減らす
- ググらずにできるレベル1領域を増やしていく
- 努力の方向性を変える
- 作業量を減らして楽をする
- 行動前にドキュメントを書いて頭を整理する
- 早く失敗する
- 多趣味でいる
- 特に有酸素運動や筋トレは最適
これをやれば、仕事が面白くなるのかな
自分でコントロールできている感覚は、幸福感にもつながります
私は、世界基準で自分の仕事を磨いて、もっと世界に貢献したいといつも思っている。私の職業上のゴールは、「世界のどこでもご飯を食べられるようになること」だから。
世界一流エンジニアの思考法
仕事が面白くないのは、練習量・勉強量が足りないせいかもしれません。
プロフェッショナルな気持ちで仕事に取り組むと、見える世界がまったく違ってくるそうです。
この本を読んだら、今まで思ってたことと全然違うことがたくさんありました。
一流は、基礎が違う
まずは、仕事に関することを学び直してみよう