訳者 前書き
zamisさんの記事「最初から強いやつの特徴」を非エンジニア向けに翻訳(解釈)しました。
技術者(非エンジニアリング含む)としての成長をエンジニアがロジカルに考えたらこうなる。というのを、幅広く知ってほしいと思い翻訳しました。
翻訳と言っても、元の記事も日本語です。あくまで、専門用語をなるべく多くの人に読みやすくなるように別の単語に置き換えたものです。
また、このように自分なりの解釈を書くことにより、私がこの記事をより理解することができたと思います。
私の意訳が多く含まれますが、ご容赦ください。
引用元:
はじめに
どんな仕事でも強い人1は存在する。
でも最初から強い人は珍しい。
これは、web 業界に身を置いてみて、信じられないくらいムキムキになっていった人たちを見てきた私(zamis氏)が送る こうしたら強くなれるかもしれない?指南書である。もしエンジニア職に興味があるのであれば、一考になるかもしれない。
(訳者追記)エンジニアにとどまらず、幅広い職に当てはまると思います。
最初から強いやつの特徴
例外
- 平日の稼働時間以外も勉強 or 作業2する
- 土日も勉強 or 作業する
- 公式ドキュメントや参考書を読む
以上のような当たり前のことは、最初から強い人じゃなくてもやるので特徴に入れません。
1. 読解能力が異常に高い
- 国語の力です。
- これは、公式ドキュメントやWebのHow to記事に書いてあることがちゃんと理解できるということです。
- そしてこれが本当に大事です。
- 強くない人は、本やWebの記事を読んでもサッパリかもしれませんが、それは読んだだけです。内容をちゃんと汲み取れてない可能性が非常に高いです。
- (訳者追記) また、読解能力の高い人は、発信するときの言葉や文章もわかりやすいことが多いです。
2. 「そもそもそれいる?」を考え、発信する。
- 強くない人では、業務を振られたら、何がなんでもその通りにしないといけない! という強迫観念に苛まれることがあります。
- それは幻想らしいです。
- 「そもそもそれやる必要ある?」という呪文を強い人はみんな何故か口を揃えて詠唱してきます。
- これは最終的なゴールがちゃんと見えているからこそ言えると思っています。
- (訳者追記) やるorやらない だけでなく、どんな方法を使うか、自分以外の人の技術のほうが効率的でないかを考えることでもあります。 ゴールを見て、そのための手段を選ぶことから強い人の思考は始まっています。
3. タスクを適切な粒度で実行する
- タスク1個あたりの捉え方が広範囲すぎると、自分でもゴールを見失いやすくなります。
- また、作業範囲が広くなるので、作業に時間がかかってしまい、どうしても停滞している感がでてきます。
- 最初から強い人は、何故かこのタスクの粒度設定が信じられないくらいうまいです。タスクが大きすぎたり難しすぎたりすると、細かくタスクを分割し、周りの人の協力を得ながら、着実に階段を登って行きます。
- ベテランのエンジニアと一緒にストーリーの作成をすることがあるが、抽象的なイメージでモヤモヤしている状態から、明確にストーリーが出来上がってくる様は、ある種の感動を覚えます。最初から強い人は、ベテランのエンジニアと同じ視点を持っていると思っています。(体験談なので原文ママ)
4. 優先順位を理解している
- これはベテランになればみんな到達するかもしれないですが、最初からできる人はなかなかいません。
- でも最初から強い人は不思議とできます。
- ゴールが明確に見えている証拠ですね。
5. Log をちゃんと追える
- (訳者追記)Logとは、エンジニアが使う、これまでの変更履歴を見るものです。"追える"というのは、Logを見てこれまでの変更を理解したり、変更の意図をりかいすることです。
- これも強い人は何故か最初からできる。
- というか何で最初の頃はあんなにできなかったんだろうってくらい私はできなかった。
- そして error 箇所がわかったら、その内容をググるんだけど、見に行くところが強い人達は共通している。もう、びっくりするくらい一緒。
- 公式ドキュメント
- GitHub の Issue3
6. 横着な作業完了報告4をしない
- これは 3 と似ているが、確実にできるようになったところで一旦 完了報告 をするというものだ。
- そのまま変更を 報告 せずに開発すると、うまく動作しなくなったときに、どこで躓いたかのかが分かりづらくなり、速度が落ちてしまう。
- 強い人は綺麗な 報告 メッセージを残す。
7. 質問がまとまっていて、質問される側が回答しやすい
- 何がわからないかを言語化するというのは、思っている以上に難しいです。
- 今どこまでできているのか? そして何ができていないのか? できないことに対しては、何が障壁になっているのか? どういうアプローチを実践してみたのか? を簡潔に文書に起こす力が強い人にはあります。
- 自分だけなのかもしれないのですが、私は説明を端折る癖があり、いっつも PM(注釈:プロジェクトマネージャー) に「5W1H を適切につけて説明してくれ...」と呆れられます。(とは言っても PM はエスパーなので高確度で捕捉してくれるんですが...)
- 自分の中にしか前提条件はありません。
- 最初から強い人は、誰が聞いたって意味が一意に決まるものの言い方 or 書き方しかしません。
8. 新しいことに対して一切物怖じしない
- 羨ましい限りである。
- どうしても私は「うわっ!」って思ってしまう。
- 強い人たちは「ちゃんと読めばわからないわけがない」というマインドもさることながら、常に何か新しいことを探していて、隙あらば使おうとしている。(個人ではすでに使用している。)
- 「もう動くから今のままでええやん..」というのは普通の人の考え方である。
強くなるには?
強くなるには上にあげたようなことをすれば、多分強くなれると思います。
加えて、私が大事だと思っていることを書きます。
-
強い人とディスカッションする
- これは凡人にとって非常に有効です。
- 我が社には Boot camp という制度があるのですが、これは、Java をベースとしてプログラミングの大事な概念を勉強し、強い人に理解度をチェックしてもらうというのです。
- この強い人が強すぎて大抵の理解度チェックはボコボコにされ、1 回ではなかなか pass できません。
- ちなみに以前の記事 Web 業界に参入して 1 年経ったけど、なにしてきたん? でもちらっと書いたんですが、私はクラスとインスタンスの章で 3 回やり直しをくらいました。
- しかし、このディスカッションを経て、正解に辿り着いた時には新しい自分に出会えます。
- 読解力の低い人間は、ちょっと本を読んだくらいでは、その真髄に辿り着くことはできません。
- 強い人は、弱い人がわかるレベルにまで落として基本となる概念を説明してくれます。
- なので、できるなら強い人にたくさんのことを聞きましょう。
-
頑張っている人は、夢中になっている人には勝てない
- これは私の PM の言葉ですが、我々が強くなるには最も有効かもしれません。
- 結局、夢中になれるからこそ、今の自分がいると思っています。
最後に
ここにあげたものはあくまでも私の観測範囲内のことで、サンプル数が少なすぎますが、参考になれば幸いです。また、思いついたらこっそり継ぎ足していきます。
最後まで読んでいただきありがとうございました。
訳者 あとがき
以下に、私(:訳者)が感じたことをまとめようと思います。
特に最初から強い人の特徴の共通点として、
- 読解能力
- ゴールを見ている
があると思います。
これらは決してプログラマーに限った重要ポイントではないはず。
そう思ったのが、非エンジニア向けに翻訳しようと思ったきっかけです。
また、この2つがあるからこそ、
- 調べてやれば出来る という成功体験
- ゴールまでの方法を選択するための選択肢
このような思考に至るのではないでしょうか。
その結果、常に新しい技術や挑戦を欲し、それが楽しくて夢中になり、強い人になるのではと考えます。
がむしゃらに頑張るのではなく、読解能力とゴールを見る力を意識することから初めてみるのはいかがでしょうか。
さいごに、zamisさんの気づきや、それを記事にまとめようとし、そして書き起こしてくれたことに感謝します。