LVLPATH

日本最強無料プログラミングスクール

PATHSERVICEHANDS ONMANZI
ぼくがソフトウェアエンジニアでレベルアップ(成長)したタイミング

ソフトウェアエンジニアでレベル上がったタイミング

まんじ
まんじ

🔰 概要

こんにちは、まんじです。

今回はぼく自身、ソフトウェアエンジニアでのレベルが上がったタイミングがいくつかあるので、そこらへんについて書いてみたいと思います。

これからソフトウェアエンジニアをやる人も、すでにやってる人も参考になる箇所もあるかもしれないので、参考になる部分は日々の作業やアクションに取り入れてみてください。

✅ タイミング別に解説

image

タイミング1: ベンチャーで長期インターンに入った時

自分で独学で勉強してポートフォリオ作ってから高田馬場にあるベンチャー企業に長期インターンで入った時に間違いなくレベルアップしました。

自分で1人でやってる頃はエディタはatom、言語はPython、フロントエンドは素のJavaScriptでGitとかは適当に使う〜みたいな感じだったんですけど、そこらへんがまるっと実務仕様に変更されました。

変更後)

  • エディタ: vscode
  • 環境構築: devcontainer(docker)
  • バージョン管理: Git, GitLab
  • CI/CD: Jenkins
  • 言語: JavaScript
  • フロントエンド: React
  • API: Express
  • データベース: MySQL
  • ORM: Sequelize
  • タスク管理: Jira

技術スタック以外にも、ソフトウェアエンジニアでの仕事の進め方なども周りにいるエンジニアやデザイナーと関わって仕事をすることになったので、自分の周りの環境がかなり変わりました。

その状態で数ヶ月とりあえず通っていてコードレビューでボコボコにされ、スクラムミーティングでもつっこまれまくり、自分の当たり前の基準値が更新されていきました。

(最初は自分で勉強もせずに惰性で通っていたけど、着実にレベルが上がっていた。)

タイミング2: ベンチャー社長から認められ始めた時

高田馬場ベンチャーでインターンしてた頃にちょうど半年目ぐらいから、ベンチャー社長PMのチームに移動することになって、ベンチャー社長にコードレビューやタスク管理などをマネジメントしてもらうようになりました。

そのタイミングで心機一転して、1日の業務時間6時間 + その前に1~3時間程度(タスクが終わらない時や実装方法がわからない時に)実務に関する作業をすることに自分で決めました。

なんとなく「こいつについていけば伸びるんでね???」と実感があったので、その自分のフィーリングを実行したという感じです。

結果的に、そんな日々を3ヶ月程度行っていて、みんながみんなにコメントする会みたいなやつ(名前不明だけど会社だとわりとそういうのある)のタイミングで

ベンチャー社長: 「きみはもっとできる」 ← なんかかっこいい

みたいな、コードレビューやらプロジェクトリードができるだのそういうコメントがベンチャー社長から自分に来て風向きが変わりました。

周りからの評価)

昔: 「まんじはクソ雑魚すぎる」

それ以降: 「まんじは結構できる」

周りからの評価が変わったのもそうですし、その3ヶ月程度でベンチャー社長のコードレビューの水準値に合わせていってベンチャー社長にとっての基準値が分かってきたことや、枝葉の技術的な部分のReactやAPIやCI/CDなどの技術力も向上していました。

高田馬場ベンチャーのインターンをやめる頃には、フロントエンドとAPI側なら安定してタスクがこなせるようになっていました。

いわゆる、わりと自走できるエンジニアみたいな。

マネージャーにサポートを受けながらジュニアレベルの開発がメンバークラスとして一人称でできる状態になった、みたく表現したいと思います。

そこらへんのタイミングで、本当にぴよぴよクソ雑魚駆け出しエンジニアから、ギリ雑魚ソフトウェアエンジニアになり始めた、、、というレベルアップ具合でした。

タイミング3: フリーランスエンジニアになった時

  • 独学でプログラミング -> 高田馬場で長期インターン -> 上場企業でJava研修2ヶ月やってやめてニート

こんな感じのルートを辿ってきて、ニートも完全に飽きていたのと病んでいたので、フリーランスエンジニアになることにして案件を探し始めました。

QiitaやZennでそこらへんの情報を調べていたんですが、イマイチ具体的には書かれていなくて(どれくらいの経験年数とかでどれくらいの単価なのか?など)、よくわかりませんでした。

とりあえず脳死で案件があるサイトには片っ端から登録して、エージェントとも複数面談をして、書類が全く通らないということが分かりました。

当時のぼくのエンジニアのレジュメ。

  • 長期インターンで実務11ヶ月
  • Java研修2ヶ月
  • 日本ではなく海外からフルリモートで参画したい

冷静に考えてこの経歴で海外からフルリモート希望というあまりにも無理ゲーすぎる条件で、奇跡的に2社だけ書類が通ってそこの1社で働けることになりました。

時給は3000円税込(エージェントがマージン率などを公開していなかったため、結構取られていたような気がする)で決まって、当時はすごく興奮しました。

ぼく「に、日給24,000円!!!(興奮)」

このタイミングで明確にソフトウェアエンジニアでフリーランスエンジニアをやることに対する解像度が超高まりました。

また、フリーランスエンジニアを仲介して稼ぐビジネスモデルや、どういったITの会社が多いのかなどもこのタイミングで実際にリアルをベースに学べたのでかなりレベルアップした気がします。

  • フリーランスエージェントにはどういう形態があるのか
  • 一般的なソフトウェアエンジニアの時給の市場感
  • どういったTech Companyは良さそうか、微妙そうか

ちなみに後述しますが、この偶然入れた会社でぼくはまた成長をすることになります。

フリーランスエンジニアの案件を取れたタイミングでは全然雑魚というか、ムーブメント?まとっている雰囲気?は雑魚でした。

ただ、フリーランス案件を探して無理やり入り込んだ時は確実にレベルアップしたと思いました。

タイミング4: 外資出身役員エンジニアに認められ始めた時(フリーランス後)

フリーランスで稼働し始めて、自分のマネージャーが外資出身で年齢は1個年下の役員のソフトウェアエンジニアの人になりました。

その人がぼくを工数として扱って仕事を進めていくような感じです。

フリーランスになってからも正直最初の6ヶ月ぐらいは、今振り返ってもぼくのパフォーマンスは微妙だった気がします。

ギリ切られないぐらいです。

ぼく「す、すいません、終わりませんでしたああああ、ブランチはこれです。」

役員エンジニア「分かりました。お疲れ様です。」

こんな感じのやりとりを複数回はした記憶があります。

そんで印象深かった思い出の1つに、フリーランスになってから6ヶ月経過したぐらいの頃に、ぼく自身ソフトウェアエンジニアをやめたいと思い始めていたり仕事が嫌になっていた頃でした。

  • 仕事が全然終わらなくても時間になったら作業を終える
  • そもそも作業スピード自体も普通

モチベーションが落ちていて、かつ、それがパフォーマンスに出始めていた頃でした。

役員エンジニア「最近どうですか?」

まんじ「うーん、まあ普通ですね、、、中国の女の子に振られました」

役員エンジニア「まんじさんは今パフォーマンスが落ちていると思っていて、昔のほうがもっとPRとか出してくれていた気がします」

まんじ「すいません、改善します」

ここでなぜかスイッチが入り、ぼくは振られたプロジェクトやタスクを気合いを入れてこなすようになりました。(目標の納期までに可能な限り気合いで終える)

そしてこのタイミングでなぜか分からないんですが、Reactの状態管理が複雑な箇所もリッチめなUI(状態管理が複雑)もかき分けて捌いていけるようになぜかなってReactをハンドリングする力が急激に上昇し始めたのを覚えています。

フロントエンドのレベルがクソ上がり始めて、それがPRなどにも出始めて、ベンチャー社長に教わってた頃に近い感覚でレベルが急激に上がり始めました。

役員エンジニア「たくさんスピーディーにタスクをこなしていただき、ありがとうございます!」

まんじ「いえ!」

といった具合に昔とデジャビュ感のある自分に対する評価変更が起こり始めました。

結局のところ、少しのセルフブラックをするとリターンが得られる、てきな。

タイミング5: Google出身エンジニアに認められ始めた時(フリーランス後)

マネージャーが役員エンジニアの人から、次はGoogle出身のソフトウェアエンジニアの人が自分のマネージャーになりました。

役員エンジニアの人も経歴が誰が見ても強かったんですが、こちらのGoogleエンジニアも誰が見ても強いなんてレベルではないレベルで誰が見ても強いソフトウェアエンジニアの人でした。

「Googleエンジニアの人が毎週自分にタスクを振って、それを自分がひたすらこなす」という一週間のルーティーンが始まりました。

実はぼく自身、プログラミング?ソフトウェア開発を教わった期間が1番長くなった(っている)のがこのGoogle出身のエンジニアの人です。

  • コードレビュー
  • コードの書き方
  • 仕事の進め方

コンテキスト踏まえて本当にいろんなことをこの人から継続的に学ばせてもらって、一緒に仕事を進められる期間が半年、1年となっていく過程でぼくのレベルはさらに上がっていったような気がします。

たまに納期がめちゃくちゃきついプロジェクトとかもあったんですが、ある意味でそういうギリいけるかいけないかみたいなプロジェクトを振られた時に自分の開発スピードは上がったり、メンタルのタフさみたいな能力も上がったような気がしています。

とりあえず、当然なんですが、レベルがすごく上がりました。

タイミング6: 世間的に優秀なクラスタに混じっても別に普通になってきた時

フリーランスになってから稼働している会社がグローバル勢(日本人率10%程度)で、GAFAM出身やメガベンチャー出身や日本人でもみんな英語は当然できたり超高学歴(東大とか旧帝とか)など、ぼくの周りにいる人がいわゆる強い人が多くなりました。

そこの中に混じって作業をしていくなかで、自分の中の当たり前の基準値が変わっていきました。

レベルが勝手に引き上がっていったとも言えます。

昔だったら「え?やばすぎね?」みたいな感覚だったんですが、そこらへんのテイストの人たちと仕事を進めているとたしかにみんなできるわけなんですけど、なんていうかそこらへんが「普通」になったという感じです。

  • 基準値が変わった
  • ソフトウェア開発のオーソドックスなフローに慣れた
  • 使っている技術自体に慣れた

などなどいろいろな要因はありそうなんですが、昔に比べると明確にレベルが上がったように自分自身感じ始めていました。

環境に適応してレベルが気付かないうちに上がっていっていた、、、といった具合。

タイミング7: 個人開発で何度も失敗

ぼく自身、個人開発は結構してきていて全部失敗しているんですけど、その作っている過程で実は結構技術力が伸びていたんじゃないか?って思うことが多いです。

  • SEOツールのウェブアプリ
  • アダルトウェブアプリ
  • 時間の売り買いプラットフォーム

こういったものを作って失敗してというのを繰り返してきたんですが、作ってる過程でコードを書く時間が多かったので、やっぱりそこで技術力のレベル感で言うと上がったような気はしています。

✅ 振り返ってみると

image

環境が変わってそこに適応したタイミングが成長のタイミングだった感はある

基本的にぼくがレベルアップした時はいつも環境が変わった時で、かつ、その環境で底辺ゾーンから無理やりなんとかして適応した時だったような気がしています。

多分、ソフトウェアエンジニアに限らずなんですけど、なんか人生はこれな気が最近しています。

完璧になってからフィールドに入るのではなくて、先にフィールドに入ってそこで死にかけながら試行錯誤してなんとかすると、レベルが急激に上がる感。

  • 高田馬場ベンチャーに入って全然技術力が足りなかった時
  • 実務経験も技術力も足りない状態でフリーランスになった時

この2つのタイミングでなんとかした時に、レベルは結構上がったと思います。

どちらの時期も今の自分のレベル感では明らかに不十分でしたけど、そこでなんとかすることで急激にレベルが上がったてきな。

こういうのって完全に1人だと無理で、環境や他人が必要になります。

自分よりレベルが上の人と関わって差分を把握した時に調整感が上がった感がある

ソフトウェアエンジニアで仕事をしていると、基本的に仕事を進めて話し合う過程やコードレビューなどでその人のレベル感がなんとなく雰囲気で分かります。

いろんな人と自分との差分を実際にそれらのことを行うことで把握して、自分の立ち位置を計測したり、自分よりも圧倒的にできる人は「どこがどれくらいどんな技術スタックでできるのか、逆にどこができないのか」などを把握して自分と外部の差分を把握した時にそこらへんの感覚の解像度が高まりました。

すごくざっくりと書くのであればこんな感じでしょうか。

  • この人は歴〜年でこれぐらいできて、ここらへんはできなさそう
  • この人は歴〜年で〜というポジションだけど、ぶっちゃけ開発スピードは遅い
  • すごいできる人もクソ複雑な箇所のコードレビューは基本的にできない(厳密には処理を追うのにめちゃくちゃ時間がかかる)
  • すごいできる人のモチベーション感
    • どの程度のテンションで日々の仕事をしているのか

自分よりも明らかにできる人の基準値に無理やり合わせていった時

若干上に書いてあることと重複するんですけど、、、基本的に自分よりも明らかにできる人と一緒に仕事をすることで、基準値がその人に合わさっていくとやっぱりレベルは上がったなと思います。

繰り返しになりますが、ベンチャー社長、外資役員エンジニア、Googleエンジニアの3人がぼくが継承を行なった人物たちなんですけど、その人たちと一緒に仕事して求められるアウトプットのレベル感に自分が合わせていった時にレベルがすごい上がったな〜というふうに思うところです。

なので、強い上司に乗っかって部下に徹するみたいなのが大事な気が今はしています。

レベルが上がってた時の感覚

  • 「作業がだりい」
  • 「終わるかわからなくてすごいストレスかかる」
  • 「実装が重すぎてきつい」

とかこんなことを思っていたような気がしています。

後から振り返るとなんかかっこよく言えますが、実際やってる最中はストレス度合いが高くて普通にきついというマインドが結構な割合を占めていました。

もちろんそのハードルを突破した時は開放感とかはあったたりしんですけど、やってる最中はやっぱり負荷がすごいかかっていてきつかったです。

あとは現状も負荷がかかることを多くしているので、多分それがレベルアップにつながると信じたいところです(つらい😭)。

✅ まとめ

レベル上がってる最中は「やば、きつすぎる...」としか思わないわけなんですけど、後から振り返ると、きつい時とか現状の自分の基準値を壊してアップデートする時とかそこらへんがレベルアップする時な感じはするところです!

環境とか他人が自分よりもレベル高めなとこに混じって、自分でめっちゃがんばると、レベル上がるんじゃね感はあります。

というわけで、まだまだクソ雑魚なので、ぼくもがんばりたいところです。

お問い合わせ