技術系同人誌書くとか、カンファレンス出席とか、1〜3年目くらいのエンジニアがキャリアアップのためにすべきことみたいなんをまとめると需要あっかな
— 11月はドメイン駆動開発を勉強する (@eg_19_) November 28, 2019
ふと思いついたので、パパっと表題について書きます。
問題意識
無事モバイルエンジニアとしてのキャリアチェンジに成功したものの、
「こっから何したら圧倒的成長できるんだ……?」
という焦りがあります。
インターネットやカンファレンスですごい人を見ると、すごいなと思う反面、
自分のスキルの低さを改めて感じて、
「俺は後何年やったらあの領域に行くんだ……?」
「というか行けるのか……?」
「俺は本当に正しい道を進んでいるんだろうか……」
みたいな辛い気持ちになりました。
(今年9月くらい)
そこで、どうしたらスキルを伸ばしていけるか、
自分のエンジニアとしての市場価値を高めていけるか、その戦略について僕の現時点で知っている選択肢を並べてみたいと思います。
仕事をがんばる
何を当たり前な、という話ですが、ソフトウェアエンジニアとして手動かす仕事していれば、
仕事がんばってるとスキルも伸びていくので、まずは仕事がんばるのが1番いいと思います。
人によっては、手動かす以外にも、採用やったりマーケティングみたいなことやったりで、
仕事するのが技術力向上につながらない状況になっている人もいると思いますが、
その辺は自分のやりたいことに合わせて、仕事を選ぶといいと思います。
勉強をがんばる
これも当たり前ですが、勉強しましょう。
本でもネットでも動画でも資格でも、媒体はなんでもいいと思います。
「何見たらいいかよくわからない……」という人は、下記の記事がちょうどいいと思います。
仕事を頑張り、勉強を続ければ、1〜3年目くらいのエンジニアだったら普通に成長していけると思うので、
これだけでもいいんですが、「普通のエンジニア」から頭1つ抜けて、「すごいエンジニア」と呼ばれるような存在になりたければ、+αで下記をやる選択肢があります。
勉強会/カンファレンスにコミットする
たぶん王道がこれじゃないでしょうか。
ちなみに僕自身は、「参加する」の段階で止まっています。
参加する
普通に参加するだけでも、刺激受けると思います。
運営する
発表のためのスライドつくるのは、なかなか負担が大きいので、時間的にも技術的にもハードル高いですね。
でもただ参加して受動的に話聞いてるだけだとつまらない……
そこで、運営に回る、という手があります。
大規模なカンファレンスだと、運営の人たちも有名企業の若手エンジニアがやってるので、人脈を築けるっぽいです。
iOSDCは見てましたが、文化祭みたいで楽しそうでした。
登壇する
ここまでできれば素晴らしい!
最近知ったんですが、有名カンファレンスだと、応募倍率も相当あるみたいなので、
登壇したいと思っても、内容がショボいと落とされちゃうみたいですね……😰
社内勉強会のようなこじんまりしたところで、デビューして、だんだん大きなところで登壇する、みたいなステップアップが理想ですね〜🐧
技術情報発信をする
媒体はなんでもいいと思いますが、情報発信すると、売名にもなります。
また自分のスキルが上がっていくのを自分自身が可視化できるので、モチベーション的にもいいですよ。
僕はQiitaで月2〜3本くらいは書いています。
仕事上困ったネタ、自分の勉強ノートの延長、あとこんなこと書いたらウケるかな、みたいなのを書いています。
勉強会の登壇も正確に言うとこのジャンルですが、編成の都合上、別カテゴリにしています。
社内
会社のSlack、社内Wiki、社内SNS、口頭、なんでもいいですが、社内で情報発信するの大事です。
インターネット
ただ社内で閉じちゃうと、その会社の外の人はあなたの実力がわからないので、もったいないです。
ぜひインターネットで開かれた世界に情報発信しましょう。
Qiitaがオススメですが、WordpressでもはてなブログでもnoteでもMediumでもなんでもいいと思います。
あと最近のトレンドで言うと、英語得意な人は、海外でバズってる英語記事の翻訳記事書くと、人気出ると思います。
@baby-degu さんみたいなスタイルで。
本
何かしら専門性を深めて、本を書けるとエンジニアとして強いと思います。
できれば初心者の入門本じゃなくて、特定のジャンルで定番の参考書みたいなのを書けると、エンジニアとしての評価は盤石じゃないでしょうか。
同人誌
本を書く、というのはハードルが高いですが、最近盛り上がっている技術同人誌なら、もうちょっとハードルが低くなります。
Youtube
僕的にはあまりオススメじゃない媒体ですが、技術系Youtuberとして活動する手もあります。
オススメしないのは、ちょっとイロモノ感👽が出ちゃうところがあるからです。。。
個人開発する
そもそもプログラミングするモチベーションってなんですか?
何かをつくりたいからじゃないですか?
キャリアアップとかじゃなくて、自分がつくりたいものを好きなようにつくるのが、本当じゃないか?
何が勉強会だ、何が情報発信だ、何が人脈だ、何がキャリアだ。
そんなんじゃないだろ? オイ! そんなんエンジニアじゃなくて、ただの意識高いサラリーマンだ!!!
そう思うあなたは個人開発をしましょう!
メリ/デメは下記の記事にすべて書きつくされているので、見てください。
僕は個人開発やりたい気持ちはずっと持ってますが、怠惰に負けて、やれていません。
来年のテーマですね……
OSSにコミットする
個人開発するアイディアは思いつかない、俺が興味あるのは純粋に技術なんだ! という方もいるかと思います。
そんなあなたはOSSのコミットを目指すとどうでしょうか?
僕はこの方向性は全然です。
競技プログラミングをする
「競プロは実務の役に立たない」(コードが汚すぎる、テクニカルすぎて保守性がないなど)論はそれなりにあるみたいですが、
競技プログラミングはデータ構造とアルゴリズムの力がめちゃくちゃつくと思うので、あらゆるコーディングで役立つと思います。
AtCoderが有名です。
僕は転職活動中はとりあえず緑コーダーを目標にしてたんですが、結局5回参加して灰色のままです😷
フレームワークの知識は要らないんですが、動的計画法など、競プロでよく使う頻出アルゴリズムの理解が必要で、その勉強を一切しないとこんな感じです。
競プロではないですが、paizaでも似たようなことができます。
システム的にはpaizaの方がイケてます。
質問系サイトで丁寧な回答をする
stackoverflowのような、著名な技術系質問サイトで、丁寧な回答を積み重ねるのも、エンジニアとしての評価があがる道です。
(僕は一切やってません)
大学院社会人入学
自分の技術力の低さに悩んだ結果、大学院入学を考えた時期がありました。
選択肢としてはかなり思い切ったものとなります。
国内大学院
社会人入学を受け入れている、技術系の大学院が下記3つです。
JAIST:北陸先端科学技術大学院大学
NAIST:奈良先端科学技術大学院大学
AIIT:産業技術大学院大学
米国の有名大学院と比べると、入学難易度は低いので、現実解としてアリかなと思います。
文系プログラマでコンピューターサイエンスの基礎が欲しくなった人、
むしろエンジニアだけどビジネス寄りの基礎が勉強したくなった人がターゲットみたいです。
海外大学院
カーネギーメロン大学の大学院を調べたんですが、
まず学費が年500万くらいで、入学のために推薦状が3枚必要、などなど条件が相当厳しくてすぐ諦めました。
行ければ強いですが、ちょっとハードル高いですね……
エンジニア系シェアハウスに引っ越す
会社だけじゃなくて、日常もすべて技術力に全振りしたいよ〜って方は、そんなシェアハウスがあります。
技術力あがるかは同居人ガチャみたいな要素がありますね🐧🐧🐧
まとめ
僕が思いつく限りの仕事・勉強以外のスキルアップの選択肢を並べてみました。
箇条書きで一覧にするとこんな感じです。
- 仕事をがんばる
- 勉強をがんばる
- 勉強会/カンファレンスにコミットする
- 参加する
- 運営する
- 登壇する
- 技術情報発信をする
- 社内
- インターネット
- 本
- 同人誌
- Youtube
- 個人開発する
- OSSにコミットする
- 競技プログラミングをする
- 質問系サイトで丁寧な回答をする
- 大学院社会人入学
- 国内大学院
- 海外大学院
- エンジニア系シェアハウスに引っ越す
色々あげた中から、自分に合いそうな活動をしてくと幸せになれるかと思います。
もし他にもこんな方法あるよ、というのがあったらコメントください🐧🐧🐧