エンジニアの育成、時間がかかりますよね。つよつよになるには・・・みたいな話は、エンジニアクラスタのSNSで定期的に話題に上がるような気がします。
エンジニアの育成について考えたので、とりあえずアウトプットします。
エンジニア、覚えることが大杉
プログラミングは、基礎文法を覚えるだけなら1ヶ月で一通り学習できますが、仕事にする場合は基礎文法だけでは「全く」足りない。
- HTTPなどの通信規約・TCP/IPの仕組み
- Webサーバ構築などのインフラ・GCP/AWSなどのクラウドサービスへの理解
- GitHub Actionsに代表されるCI/CD
- 認証認可の仕組み(鍵認証/JWT/OAuthなど)
- Webアプリのセキュリティ対策
- HTML/CSS/Reactなどのフロントエンド
- フレームワークなどのライブラリの理解
- SQL/DBなどのデータベースに関する理解
- アプリやるならiOS/Androidのビルドシステム、Flutterの理解
- コードを読み解く技術
- テストコードの書き方・テスト設計に対する理解
- 特定のアルゴリズムへの理解(LLMの仕組みとか)
- 要件定義やプロジェクト立ち上げなどの立ち回り方
( ゚∀゚) アハハハハノヽノヽノ \ / \ / \
書きあげて、改めてとんでもないって思いました。陸上競技の十種競技みたい。全部精通するのは無理だけど、得意分野は持たないと認めてもらえない世界だと思われる。
勝手に育つしか答えがないのか
結論から言えば、YES。きっかけは与えられるけど、そのきっかけをモノにできるかは、自分次第なので。
ジュニア層は等幅で成長するのではなく、飛躍するもんだと思ってます。1.0 -> 1.1 -> 1.2 で1歩ずつではなく、1.0................1.3!!! って感じ。
なんでかって言うと、手を動かした内容が整理して抽象化できて、自分の言葉で説明ができるようになるのに、じっくりコトコト煮込む時間が必要だから。自分の言葉で説明できるようになるには、具体と抽象を行き来しないといけない。相当時間かかる。
課題や知識も与えられるけど、具体と抽象を行き来できる思考回路の構築は、変わることができない。
300時間程度では漢字書き取りドリルをやっただけ
ゼロベースでプログラミングスクール等で基礎文法覚えて、WordPress入れて動かした/Rails入れてTodo作ったっていうのが、300時間ぐらいではないかと思われる。1日3時間で100日だから、3ヶ月。プログラミングスクールの受講期間は「3ヶ月間」が最多【調査レポート】 | Textradeのプレスリリースとも合致するし、スクールだとこれぐらいの期間で結果出るって謳わないと、続けてもらえなさそう。
不都合な真実で恐縮ですが、この状態は漢字書き取りドリルをこなしただけ。文章が書けるわけじゃない。漢字と語彙は全く別で、300時間ではコードを書くための語彙が圧倒的に足りていないと思う。
WordPressが他のWebアプリのライブラリに変わった瞬間、漢字は書けても語彙が無いから、コードで書かれている内容の意味がわからなくなります。語彙力をつけるには時間が必要。具体と抽象の行き来ができる回路の構築に時間がかかります。
自分の体感では、1000時間。1000時間やってみて、これ以上「わかりたい」と思えなかったら、そこで立ち止まって考えたらいいと思う。
フルリモで育成を行うのは極めて困難
技術者教育について | さにあらずで太一が書いたように、リモートで素人やジュニアを育てるのは極めて難しい。「自分がどれだけノウハウが足りていないのか」を言語化できないから。
- 何がわからないのか、わからない。
- 進め方が間違っていることすら、気付けるわけがない。
- 調べたところで正しい情報をつかめるわけがない。
仕事で育成する以上は費やした時間の密度が求められるので、リモートを望むのは無理がある。
来年の春頃から育成前提の採用を行う予定で、カリキュラムなどを作る準備を始めています。でも、フルリモでやりきれる自信がまったくわかない。
リモートでも育成されている会社さんもあると思うので、「やり方はなんぼでもありますわ!」っていう叱咤激励の記事、伏してお待ち申し上げております。
ストイックさが感じられるか
贅沢言うなって言われそうだけど、僕が未経験やジュニアのエンジニアに求めるのは、前述した「具体と抽象を行き来する思考回路」を組み上げる工程に時間がかかることを知ったうえで、時には寝る時間を削ってコードを書くのも厭わない姿勢と踏ん張ってみようとしてくれるか。「このままでは終われんぞ!」っていう気持ちが、少しでも持てるかどうか。
一言で言えば、「もっとわかりたい」と思えるストイックさがあるかどうか。それが全くないなら、この領域は向いてない。この一コマがすごい好きです。
(湾岸MIDNIGHT. 第29巻より引用)
別の領域で同様のストイックさをもてることはあるので、そちらの適性があるってだけ。それに気づけるのだけでも、良かったと思います。
プログラミング、逃げ場がない
ソフトウェア開発は、逃げ場のない仕事だと思います。誰のせいにもできないですから、自分のコードが動かないのは。会社のせい!顧客のせい!同僚のせい!それはできない!書いたのは自分!
自分のスキルはどんどん陳腐化するので、アップデートする必要がある。自分自身でアップデートしていける基礎体力と思考回路がどうしても必要。思考回路が未成熟なら歩みが止まる。そのため、ストイックに自分で自分をアップデートする情熱が必要になる。
20年前に私が新人だった時代は書籍とコミュニティが大きな助けとなった。本代はケチるなと教えてもらったので、毎月数千円の本を何冊も買った。1行でも気づきがあれば、余裕で元は取れる。
コミュニティ、今はどうなんだろう。java-ja黎明期のテンションのコミュニティ、もう作れないのかも。時代が変わったし。でも、外に同士を求めるのは、とても正しい。仲間がほしいなら自分のことを知ってもらう努力が必要で、それは初心者であることを恐れずに自分をWeb上でアウトプットする必要がある。境遇が近い人を惹きつけないと。
懐かしい言葉を言う時が来たか・・・!自嘲はダークサイドだ!
昔は自重だったんだが、これは自分を重んじて良くない行動を慎むという意味らしいから、誤用していた。
自嘲は要らんねん。自分を必要以上に過小評価することは、あなたを認めてくれている人にとっても失礼だよって話 - そーだいなるらくがき帳で、そーだいさんも言ってたように。
未経験・ジュニアエンジニアの方、応援します
この仕事選んで良かったわーって人が1人でも多いほうがいい。教わる側・教える側で色々お話したいなと思いますので、お気軽にどうぞ。https://twitter.com/gothedistanceです。DM解放してます。
Wish You Have a Happy Merry Xmas and your New Year of peace and happiness!!
今年も本ブログをありがとうございましたー!