エンジニアがスキルを獲得するときにしていることは何かっていうのを改めて考えた

魔法使いのイラスト(男性)
情報が最初から全て頭に入った状態で働いてる人なんてそう多くないわけで、じゃあどうやってエンジニアの能力は高まるのかという話






まとめ

話の基本的な部分は全部こちらに書かれているので、能力を高める方法を知りたい人はこちらを読んでください。


タイトルは雑に書いたけど、能力を高めるというと範囲が広過ぎるので、技術的な意味でできる事が増える、ということをテーマとして話をしていこうと思う。基本的に自分の考え方の話なのでそこは御留意ください。

ソフトウェアエンジニアとしての能力を高める方法について考えてみた – joker1007’s diary


枝葉末節なことを言い出すといろんな学習法や工夫はあるんだろうけど、最終的には、


実際には、とにかく公式ドキュメントを読んで書いてを繰り返すことが多い。つまり、ただ読んで書いてをやり続けるだけということになる。

公式のドキュメントが分かり辛いという例は無くは無いと思うが、基本的に技術要素として重要なことは公式のドキュメントかソースコードを見れば大体書いてあるので、改めて他の人が説明することはほとんど無い。

ソフトウェアエンジニアとしての能力を高める方法について考えてみた – joker1007’s diary


ということに落ち着くし、まずそれを修めてから「もう一工夫」みたいな領域に入っていくんだろうと思うんですけど、上手くやれてないエンジニアの人を眺めていた時期に思っていたのは、色んなことが中途半端な人に限って「もう一工夫」の方ばかりを集めがちで、公式ドキュメントやソースコードをまったく見ていないっていう人が結構多かった印象です。エンジニアの話でなければ気持ちは解るんですけどね。鍋を買って料理する前に鍋の取扱説明書を読み込む人はそんなにいないでしょうしね。



何をやってきて「スキルになった」か

僕が今仕事を得る際に「スキル」と呼び認められている技能や知識というものは、元々は僕にはなかったものです。多くの場合、なにがしかの局面で必要に迫られて学習することになり、その学習の過程で「公式ドキュメントを読んで書いて」を繰り返していってだんだん知識が蓄積されていって、最終的にレベルが上がってスキルを覚える……みたいな感じ。


RPGではレベルが上がると自動的に「メラ」とか「ブリザド」といった魔法を覚えますけど、実際にはレベルが上がる前にもそれを獲得するための経験ってのは積んでると思うんですよね。まだ「メラ」と呼べないような小さな炎しか出せないけどそれでローソクに火を付ける練習をしてただとか、淹れ立ての珈琲を冷まして飲んでただとかそういうの。そういう経験が積み重なってあるとき「スキル」と呼べる物に昇華してるんじゃないかなーと思うんです。


そういうのなしに「メラ 簡単な出し方」とかで検索して薪に火を付けられるようになっても、作用機序がわかっていないことで威力が十分でなかったり、より上位の魔法(例えば「メラミ」とか)の習得条件を満たせなかったりして、なかなか難しいよねっていうね。



この話と英語の話の関連性

もういっこ、界隈で話題になってた話がこれ。


開発でエラーが出て、上司に聞くと「ちゃんとエラーを読んで」と指摘を受けました。ただ大半が英語です。ここがいけない等と印や色で何かを示してくれる事もありません。この私がエラーを読んで何か解決出来ますか?

開発でエラーが出て、上司に聞くと「ちゃんとエラーを読んで」と指摘を受けました。ただ大半が英語です。ここがいけない等と印や色で何かを示してくれる事もありません。この私がエラーを読んで何か解決出来ますか? – Quora


何かまたもう恐ろしい投稿を読んでしまった

開発でエラーが出て、上司に「ちゃんとエラーを読んで」と指摘を受けました。でも大半が英語でわからない→「ググらないのか…?」「こういう人はどこにでもいる」 – Togetter


「英語なのでエラーを読まない」という感覚はまったく理解出来ないのですけど(情報の宝庫やんけ)、以前いたプロジェクトには実際にそういう人がいて、1週間スクラムで進捗がなくPMがSlack上で聞き取りをした結果がこんな感じ。


―― ○○を実装してるんですが詰まってます
PM「何ができないの?」
―― ググって調べた方法で書いたんですけどエラーが出て上手く行かないんです
PM「エラーはなんて?」
―― いや、なんかいろいろ警告?が出てて
PM「1つ読んでみてくれる?」
―― わーにんぐ、みっしんぐあーぎゅめんとふぉー……


全員が頭を抱えました。書いてあるやんけ。
(実際はこんな初歩的なエラーではなかったですが、詳細忘れたので誇張してます)


これを公式ドキュメントの話に置き換えてみると

これと相似形の話として「公式ドキュメントが英語なので読まない」という人も一定数いる印象です。ゲームのMODが日本語化されてないから使わないって言ってる人と同じような感じですかね(わかる人を減らす例え)。日本語環境で動作しないっていうのならまあわかるけど、動いているもののドキュメントが日本語じゃないといわれても。。


プログラミングの公用語は英語なのだし、それぐらいは読んでくれないとと思うんですけど、そうじゃないんだろうなあ。たぶんそういうことを言い出す人は、ドキュメントが日本語であっても読まない気がしますね。全部そこに書いてあるんですけどね。



楽しんで、頑張りましょう

というわけで、エンジニアとして生きていくならやるしかないですよねという話でした。


僕個人の話でいえばそういうことの繰り返しでいまこうやって食えるようになっていて、それは僕に天賦の才があったとかそういうことではなくただ積み重ねてきたっていうだけのことなので、誰でも出来ることです。今いるプロジェクトでも、得意なこと・苦手なこと・やったことないことが入り交じっていてそれらから学べることがとてもたくさんあり、その繰り返しがきっと次のキャリアに繋がるんだろうなと思っています。エンジニアとして生きるなら、一生その繰り返しですからね。


最近印象的だった記事があるんですけど、エンジニアも、インプットを止めたらゆるやかに死にます。大事ですよね。技術の使い方だけ学んで促成栽培というのもわかるんですけど、本当に大事なことはそういうことです。


アダルト業界でデザイナーとして働いていた頃、 あるデザイナーの「ゆるやかな死」を見たことがある。

ここでいう「ゆるやかな死」というのは、 「アウトプットの決定的な低下」のこと。

デザイナーとしての「ゆるやかな死」|モンブラン|Designer × VTuber