🦁

100名以上のメンターをやって見えた「めちゃくちゃ伸びる人」の共通点

2022/08/21に公開4

どうも、株式会社プラハCEO兼エンジニアの松原です。

弊社では中級エンジニアを育成するプログラミングブートキャンプ「PrAha Challenge」を2年近く運営しています。累計100名近くの方々が参加して、日々実践的な技術課題に取り組みながら、メンターと技術的な質疑応答を繰り返しています。

実はプラハチャレンジの第1期から第5期までのメンターセッションは全て私が担当しているため、累計100名近くのエンジニアの成長を間近に見てきた経験から「めちゃくちゃ伸びるエンジニアの共通点」を見つけた気がしたので、何かの役に立てばと思い、Zennにも書き残そうと考えた次第です。

ちなみに弊社が運営しているpodcastでも同じテーマについて話しているので、耳で聞く方がお好みの方がいたらぜひ以下のpodcastへ!

https://anchor.fm/praha-inc/episodes/31-e1mmk33

TL;DR

めっちゃ伸びる人は

  • 分からないことを言葉にするのが上手
  • 情報を鵜呑みにしない
  • 人当たりが良い
  • 学習量が半端ない
  • 好奇心にあふれている

分からないことを言葉にするのが上手

課題を言葉にできたなら、その課題はもう半分解決している」という名言をご存知でしょうか。僕が今3秒でテキトーに作ったので知っている人は居ないはずなのですが、めっちゃ伸びる人ほど自分が理解できていないことを具体的に言葉にするのが大変上手です

例えば「DDD何も分からん」で終わるのではなく、自分が理解していることと理解できていないことを区別して、根気強く細かな疑問に分解できるかどうか:

  • 値オブジェクトが何の問題を解決するために生まれた概念なのか分からない
  • まだ実践していないため本当に自分が理解できたのか不安が残っている
  • 境界づけられたコンテキストが無いと困るケースが想定できていない

より細かい疑問に分解できる人ほど欲しい情報に効率的にアクセスできるため学習効率が高いように感じます。なのでPrAha Challengeのメンターセッションで粗すぎる質問を受けた時は、 自分が既に理解していること、まだ理解できていないことを書き出してもらったり、理解できていないことをより詳細に明文化してもらったり、違う言葉に言い換えてもらう 、みたいな取り組みを通して「質問を細かく分解する技術」を身につけてもらおうとしています。

自分の疑問を「DDD何も分からん」としか表現できていないと、いざ壁にぶつかった際「DDD何も分からん」としか検索できないので解決の見込みがありません。「分からないことを言葉にしてネットで検索する力」はどの職業にも役立つ能力ですが、特にエンジニアはネット検索で解決することが他の職種より多いので、この能力がより大切な気がしています。

検索してもなかなか望む回答が得られない時は「理解できていること、できていないことを書き出してみる」「理解できていないことをより詳細に明文化してみる」「異なる単語を使って理解できていないことを書き直してみる」などの練習を繰り返してみるのが個人的にはオススメです。

情報を鵜呑みにしない

「ハンマーを持つと周りのものがすべて釘に見える」という名言がありますよね。

エンジニアに置き換えると、例えば「デザインパターンを学んだら、いついかなる時もそれを適用することが正解だと思い込んでしまう」みたいな感じでしょうか。カーゴカルト的な。

その情報が成立する前提条件や適用すべきコンテキストを見落としてしまうと「でも、こういう時はその情報正しくないよね」と簡単に反証されてしまい、実際の課題解決には役立ちません。

逆にめっちゃ伸びる人ほど情報を鵜呑みにせず自分が納得するまで疑い続けるので、身につけた知識が深く、反証されづらいように感じます。

例えば「水は100度で沸騰するんだよ」と言われたとします。

鵜呑みにする人はそこで理解が止まりますが、鵜呑みにしない人は

「本当にどんな条件でも同じ温度で沸騰するのかな?何か前提条件があるんじゃないか?」と疑い続けて

「1気圧の時だけ100度で沸騰するみたいだ。これが正しいとしたら富士山の頂上では100度より手前で沸騰するはず」みたいな形で、もう一歩深い理解に到達します。

この「もう一歩深い理解」を一問一答のたび毎日繰り返している人と「水は100度で沸騰するんだよ〜」としか覚えていない人では、1年も経てばとてつもない差が開いているように感じます。

なので新しい知識を取り入れたら以下のような流れで一度疑ってみると良いのではないか?と考えました:

  • 隠れた前提条件がないか、疑う
    • →本当にどんな状況でも水は100度で沸騰するのか?
  • その知識が正しく成立するための前提条件を考える
    • →容器の材質とか、気圧は関係ないのか?
  • 得た知識から新たな仮説を立てる
    • →沸点に気圧が影響するなら富士山の頂上では沸点が下がるはずだ

特に自分が得た知識から自分なりの仮説を作って、実際に手を動かしてその仮説を検証してみるのは非常に良い学習習慣なので是非試してみてください。

人当たりが良い

めっちゃ伸びる人ほど人当たりがよく、技術的な議論をする仲間が周りにいるので、いつも他人の頭脳も借りながら新しいことを学んでいる印象を受けます。

他人と議論しながら新しいことを学ぶと、自分の誤った理解を修正したり、自分が焦点を当てられていなかったところに触れられて、非常に効率的かつ深く学習が進みます。弊社でも平日は毎朝「A Philosophy of Software Design」を4名で輪読していて、周りの人と一緒に学習する効果をヒシヒシと感じています。仲間がいることは本当に大切です。

右の頬を打たれたら左の頬を差し出すような聖人君子である必要はありませんが、自分の意見が否定されたときにムキにならないとか、自分が知っていることを知らない人を馬鹿にしないとか、知らないことは知らないと謙虚に認められるとか、そういう基本的なことさえ守れていれば問題はありません。周りと一緒に切磋琢磨できる人ほど伸びるなぁ、という印象を受けます。

めっちゃ伸びる人は学習量が半端ない

身も蓋もない話ですが、伸びる人は総じて学習時間がずば抜けています。平日の仕事終わりに毎日2~3時間は勉強して、週末も必ずコードを書いて、一日の大半を学習に費やしている人が伸びないはずないよね、という納得感のある共通点です。

実際、僕自身が今まで出会って「この人には絶対に追いつけないな」と思うエンジニアは全ての自由時間をコードを読むか書くことに費やし、日常の些細な時間も切り詰めて「食事の時間が無駄だから」とCOMPやBASEシリーズで統一したり、トイレにもスマホを持ち込んでOSSのコードを読んでいるような方でした。さすがに極端すぎるかも知れませんが、周りの「すごいエンジニア」に学習時間が少ない人は一人も居ないように思います。みんなめっちゃ読むし、めっちゃ書く。

地球上の全エンジニアのトップ1%を目指すのであれば持って生まれた資質も多少は影響するのでしょうが、一般的な企業の業務レベルで生じる優劣は学習量だけでも十分カバーできるように感じます。

好奇心にあふれている

じゃあそこまでの学習時間を確保する情熱がどこから生まれるのかといえば、強い好奇心ではないかと感じています。夢中になれるテーマを自分で見つけて、飽きたらすぐに新しいテーマを見つけてまた夢中になる。環境に左右されず、自分が没頭する時間を自分で絶えず作り出せる人は高い学習モチベーションを維持できて有利です。

知的好奇心にあふれている人ほど他人の意見や知識も面白がって取り入れる人当たりの良さを兼ね備えている傾向があり、どんどん周囲に学習仲間が増えていく印象を受けます。エンジニアリングに限らず「これは面白そうだ!」と思うものを探し続ける姿勢は常に忘れたくないですね。

まとめ

PrAha Challengeで100名近くメンターとして接してきた中で、めちゃくちゃ伸びる人の共通点は

  • 分からないことを言葉にするのが上手
  • 情報を鵜呑みにしない
  • 人当たりが良い
  • 学習量が半端ない
  • 好奇心にあふれている
アガルートテクノロジーズ/PrAha

Discussion

さざんかぬふさざんかぬふ

こんにちは、とても興味深い記事ですね!私もめちゃくちゃ伸びるエンジニアを増やしたいので、方法論として興味があります。

以下の点が気になりました。

  • この共通点は、「めちゃくちゃ伸びる人」の多くの人が満たす性質という意味でしょうか?それとも、部分的にでも満たしていれば伸びるというものでしょうか?
    • 例えば、本文中に「一日の大半を学習に費やしている人が伸びないはずないよね」という記述があるのですが、これが真であれば他の要素を満たしていなくても一日の大半を学習に費やせば伸びるという事になり、その他の性質は因果的なものではなくて結果的にそうなっている、みたいな解釈ができるのかなと思いました。
  • ここでいう「めちゃくちゃ伸びる人」というのは、どれぐらいの割合をイメージしたものでしょうか?
    • 例えば、本文中に「地球上の全エンジニアのトップ1%を目指すのであれば持って生まれた資質も多少は影響するのでしょうが」という記述があるのですが、トップ1%というのは大学受験で言えば東大に限らないある程度の難関大学、野球で言えば都道府県大会でベスト4〜2ぐらい(少なくとも甲子園よりは簡単)なので、「めちゃくちゃ伸びる人」と言われるとそれぐらいの集団のイメージはあっても不思議ではないので、どれぐらいの対象を表しているのかが気になりました。
  • これは個人的な意見ですが、「情報を鵜呑みにしない」という事については、自分が納得するまで疑い続けるという姿勢が重要な場合もありますが、それ以上にそもそもの定義やきちんとした説明・研究・定説について調べた上で考えるという事が重要かなと思います。
    • 例えば、100度で沸騰するという事と気圧の概念を結びつけることは、前提となる知識がなければ容易ではなく、素朴に考えるなら湿度の方が影響しそうに思いますが、そうした仮説を一つずつ検証するのは難しく、そもそも思いつかない場合もあります。それよりは、パッと出てきた言説が正しいかどうかの判断を保留した上で、調べるという事が重要なのかなと思いました。これは、いわゆる"公式"を参照するといった姿勢にも通じるものと思います。
dowanna6dowanna6

この共通点は、「めちゃくちゃ伸びる人」の多くの人が満たす性質という意味でしょうか?

はい!

それとも、部分的にでも満たしていれば伸びるというものでしょうか?例えば、本文中に「一日の大半を学習に費やしている人が伸びないはずないよね」という記述があるのですが、これが真であれば他の要素を満たしていなくても一日の大半を学習に費やせば伸びるという事になり、その他の性質は因果的なものではなくて結果的にそうなっている、みたいな解釈ができるのかなと思いました。

他より重要な要素はありそうですが、個人的には全てを兼ね備えた時に一番伸びるのかな〜(つまり掛け算なのかな)と考えています。1日10時間かけて情報を鵜呑みにし続けても伸びないし、どれだけ疑って深く考えても1日5分だけでは伸びない、みたいな

ここでいう「めちゃくちゃ伸びる人」というのは、どれぐらいの割合をイメージしたものでしょうか?

エンジニアになって1~2年程度で新規事業のサービスをフロントからインフラまで技術負債を最小限に抑えながら開発できる人をチラホラ見かけるため、こういう方をイメージしておりますが、それが全体の何%か、という質問には具体的に答えられない気がしますね...

トップX%を高校野球とか卑近な例に換算して考えるのは凄く良いアイデアですね...今度使わせてください!w全参加校4112校のうち甲子園に出場するのは49校なので、トップ1%というのは甲子園出場校と同じレベルなんですね。

自分が納得するまで疑い続けるという姿勢が重要な場合もありますが、それ以上にそもそもの定義やきちんとした説明・研究・定説について調べた上で考えるという事が重要かなと思います。

「きちんとした説明・研究・定説について調べる」といった調べ方を習得するのも非常に重要なことだと思います。ただ、情報を鵜呑みにする癖がついてしまうとそもそも調べようとすらしないので、鵜呑みにしない姿勢のほうが重要かな?と考えて今回の5選からは除外してみました!

さざんかぬふさざんかぬふ

ご回答ありがとうございます!大変参考になります。

個人的には全てを兼ね備えた時に一番伸びるのかな〜(つまり掛け算なのかな)

なるほど、そうなんですね。そうすると、やはり一日の大半を学習に費やしても伸びない人はそれなりに居るのですかね。

それが全体の何%か、という質問には具体的に答えられない気がしますね...

なるほど、PrAhaチャレンジで100名近くのメンター(100名以上のメンター?)をされた経験から、そのうち何人ぐらいというのでPrAhaチャレンジ内での比率ぐらいは出せるのかなと思ったのですが、難しいのですね。(さらに可能であれば、PrAhaチャレンジに来る人がどれぐらい...という目算をつければ、比率の掛け算によってざっくりどれぐらいの水準の人なのか、というのがわかるかもと思いましたが、難しいかもしれないですね。)

甲子園は、試合に立つメンバーベースだともっと少ないのかと思っていたのですが、学校数だとたしかに1%を超えるのですね。

鵜呑みにしない姿勢に関しては、その姿勢を踏まえての具体的な行動について、単に闇雲に疑うだけだとあまり効率的でないので、鵜呑みにはしないという前提で、信頼する知識の条件や調べ方の部分が重要なのかな、といった意味でした。