エンジニアとしてステップアップするには?

成長するWebエンジニアの成長過程とリアルな年収の話~中退から転職からの起業~

こんにちは、Webエンジニア7年目のrevenue-hackです。

今回は僕が6年間でどのようにエンジニアのスキルを伸ばし、稼いでいったかお話します。

せっかくなので僕のスキルと成長過程を交え、こんなやつでもここまで努力すればちゃんと稼げるようになる職種なんだなぁ〜とか、転職の背景とかを知ってもらってちょっとでも役立てばと思います。

 

printfしかわからなかった大学院時代

僕は某W大学の理工学部に入って、そのまま大学院に行きました。

大学院では凝縮系理論物理研究という所謂、量子力学の研究をしていたのですが、今思うと全く理解できずになんとか助教授の方々の助言をもらいながら大学院1年を過ごしました。

なぜそもそもその研究室に入ったのかというと、量子力学は全くわからなかったですが、所属していた物理系の学科で唯一そこの研究室だけプログラミングをちゃんと学べそうだったんですね。

プログラミングを学べるところを選んだ理由は、なんとなくプログラミング出来る人格好良いという中2病並の理由からですw

当時僕の学科ではプログラミングの授業があったのですが、その頃ほとんど課題をやらずにプログラミングの課題は出来る人にやってもらうか、ちょっとデキる人に途中まで教えてもらって、後はTA(プログラミングを担当する助教授)の方のところに訪問し、途中までやったけどわからないから答えを教えてもらってました(良いTAの方でした、ありがとうございます)。

というわけで大学時代はprintfが何かを知っている程度で、for文もわからなければif文もわからなかった訳です。

という背景がありつつ、僕はかっこいいと思っていたプログラミングをやるべく大学院の研究でプログラミングをやっていると、ふと他のプログラミングも学んでみたいと思うようになりました。

というのも当時はC++で物理現象を紐解くという数値シミュレーションを行うためプログラミングをしていたのですが、その当時スマホが出てアプリで色々なことが出来るようになっていたこともあり、スマホのアプリ開発に興味がありました。

Androidアプリに魅せられた大学院時代

時給: 900円(残業代は出る)

丁度長い春休みに入る時バイトの求人をネットでみていると、Androidアプリ開発のインターンを見つけて応募しました。

全くアプリ開発をやったことなかったのですが、プログラミングをやっていたという経験から採用されました。

仕事はその会社で受けていたアプリの受託案件を開発するという、0からAndroidアプリを開発する仕事をさせてもらうことになりました。

週4日で銀行マン並に早い6:30に起き、8時には出社して、夜は遅いときは21時くらいまでやってました、大学院生の朝起きないゆるふわな生活をしていたのでかなり辛かった。。。

そんなこんなで日々過ごしていて仕事では右も左もわからなかった僕はメンターに色々教わり徐々に出来るようにはなっていきましたが、僕の至らなさからいっぱい怒られて、結局10ヶ月程度で僕はそこを去ることにしました。

至らなかったこととしてはまずPCのリテラシーが低いということ。
今だったら普通に解決できる文字化けも当時はUTF-8やShiftJSとかの用語も全くわからなかったですし、ググり方も下手で毎度メンターに助けてもらっていたのですが、メンターも嫌気が差したのか急に厳しくなってきて、仕事始めた当初とは違いかなり冷たくなってきたのを覚えてる。

あとはもっと家で勉強してこいと怒られた気がします、、、多分。。自分なりには家でもやっていたつもりですが、、、

余談ですが多分勉強の仕方が悪かったんだなと。

 
 
https://twitter.com/tagaranoko1014/status/1348821262546690048?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1348821262546690048%7Ctwgr%5E%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fnote.com%2Frevenue_hack%2Fn%2Fnef411bc54bb1
 

ツイートには簡単に書きましたが、僕はSDKのインターフェースをエンジニアの人はすべて覚えているものだと思って、僕も暗記しないといけないんだと思い、当時良く使っていたonClickListenerの書き方をコードを見ないで、エディターのサジェスト機能なしに書けるようにするとかいう、今ではアホなのかなと思えるような勉強をしてました。そりゃ出来るようにならないですねorz(この辺はまた今度記事にしようかな)

あとここだけお話ですが、その当時でもスペックの低いメモリ2GB、Core i3のWindowsのデスクトップで開発させれらてました。何度もEclipseが落ちたり、固まったりしたのでそれで開発が遅かったことも絶対に原因の一つだと思ってるw

いざ就活からのフリーター!?

インターンを辞めてから今はもうGoogle Playにも出てこないですが、個人的に家計簿アプリを作っていました。なぜ家計簿かと言うと、僕の技術力でも唯一作れそうなものだったからです。

そんなことをしているうちに就活をする時期に入り、アプリ開発の仕事は嫌で辞めてしまいましたが開発自体はすこぶる楽しかったので、これを職にするのが絶対に良いと思い、ソフトウェア開発者として家計簿アプリのポートフォリオを駆使して就活をしていました。

ソフトウェア開発といえば今でも人気のメガベンチャーとかにいきたいな〜と漠然に思っていたのですが、一つくらい受けて全く相手にされずこれはだめだなと思い、僕でも入ることが出来るかもしれないベンチャー企業に応募して内定を3つほどいただきました。

就活も終わってその中の一つに入社する決意をして、大学院時代の残りを家計簿アプリに捧げようかな〜と思っていたら、ふと大学院にいる意味がわからないことに気付いちゃったんですね。。。

なので退学届を出そうとしたのですが、退学届って親の同意が一応必要なんですよね。。仕方ないので親に書いてもらうよう家で話したわけですが、、、

もうちょい考えろだの、大企業行けだの、色々面倒なことを言われました。(まー言われますよねw)

が、親が両方とも起業していることもあり、最後はなんとか納得してもらって、研究室の教授にその退学届を出すわけですが、、、

実はここだけの話その当時は辞めようかな〜どうしようかな〜程度に思っていて、研究室の教授に退学届けを出しにいったときも、ちょっとは考え直せだの言われると思ってたのですが、あっさり二つ返事で了承してもらい、あれ??それだけ??俺はほんとに辞めるの??と思ったまま退学しましたw

今となってはあの決断は絶対間違ってなかったと思っているので後悔はないですが、、、あっさり退学が決定したときはちょっと焦りましたw

フリーター時代の始まり

時給:900~1000円(残業代なし)

僕は大学院を辞めることを事前に会社の人事に伝えて、その会社でアルバイトのバックエンドエンジニアとして、またもう一つ別の会社でライター兼エンジニアとして、アルバイトを掛け持ちしていました。

毎日朝10時頃には出社し、夜は遅いときで多分終電前?くらいまで働いてというのをひたすら繰り返していて、給与は月に16万とかだった気がします(バックエンドエンジニアのアルバイトの方は残業代が出なかったです、今ではにわかには信じられない、アルバイトなのに)。

また技術について話すと、バックエンドエンジニアの仕事ではWebメディアの開発を担当していました。その当時で最大1500万UUくらいで結構でかいメディアで、

技術スタックについては、言語はPHPで、メディアの部分は当時の長みたいな人が作ったオレオレフレームワークで、バッチと管理画面はCakePHP2系で作られていました。

チームは僕が入って6人でベテランエンジニア2名と僕の2つ上の先輩が2名、一つ上の先輩が1名と僕で構成されたバックエンドチームで、後は3人くらいフロントエンドの方々がいました。

その当時の僕のスペックも書いておくと、23歳、PHPはもちろん全く書いたことない、またWebエンジニアといえばmacが主流ですが、macは全く使ったことがなかったです、またGitはブランチは切ったことなく、すべてmasterにpushするものと思ってました、あとコミットを戻すとかHEADとか全く何言ってるかわからない状態でしたw

そんな状態で僕のフリーター時代は始まりました。

フリーター〜正社員〜そして某R社へ

おすすめの勉強法

ちょっとここで話は脱線しますが、初心者エンジニアのおすすめの勉強法を紹介します。

その当時Androidアプリ開発同様右も左もわからない状態だった僕ですが、メンターが優しかったこともあり、多少ベテランエンジニアにディスられながらも徐々に出来るようになったいきました。

そこでやっていた勉強方法はひたすら復習することです。

つまり毎日教えられたことを家でも実践するということです。

例えばエンジニアの最初の登竜門といえば、開発環境構築です。

まずはお金も全然なかったですがmacを24分割くらいで買い、家で当時の開発環境だったVirtualBoxとVagrantをインストールして、ローカルでApacheが動くまで色々試行錯誤しながら構築することで、READMEには書いていないVirtualBoxやVagrantのあらゆることを学ぶことができました。

エンジニア最初の頃は全くわからないので、アウトプットをすることよりもひたすらインプットに徹したほうが良いと思います。(特に環境構築周りを理解せずに進んでしまうと後々苦労します、絶対。。。)

また手を必ず動かすこと。いくら概念的にわかったようなことも実際に手を動かして見ると全然わかってないことが多いです(例えばクラス設計とかDB設計なんかはそういう類ですね) 。

なので最初はひたすら学んだことを家でも試すというインプットに徹するをオススメします。

フリーターから正社員

話を戻して、フリーターになってから数カ月後徐々に仕事ができるようになると、やったことないタスクが降ってくるわけですね。

ずっとメディアのWebサイトの改修とかしてたら、次に管理画面の見たこと無いコードの改修をしたり、バッチの改修をしたりと、徐々に仕事の幅を広げていきました。(当時はバッチって何するもの?って感じでしたw)

そんな毎日を過ごしていたのですが事件が発生します

会社の上場承認が却下されたんですね。

そうするとストックオプション目当てに入ってきたベテランの人たちが軒並み辞めていきました。

そして、僕が正社員になる前には僕のマネージャーだった人がプレイヤー(コードを書く人)に戻り(あとから聞いた話ですがもうすでに辞めることが決まっていたため、マネージャーを降りてプレイヤーをやっていたそうです)、残りは僕と30後半の方一人という状態に!!

この当時僕は会社、、、辞めよう、、、このままだと何も学べないと思っていたのですが、、、

エンジニアでまさかの僕が社歴が一番長い状態になっちゃったため(一番この会社のシステムに詳しい状態になってしまったため)、若輩者でありながらリーダーっぽいことをしていて、辞めるに辞めれませんでした。

またもう一つの理由としては誰も僕に指示を出すエンジニアの人はいない状態なので、正社員ですらない僕でもあらゆることを体験できるわけですね、というかやらないといけない、そうするとやったことないサーバーの増設や、当時使っていたVarnishのキャッシュヒット率の確認、バッチの重い問題の調査などなど、全然身の丈にあった仕事ではないことをやるので成長はかなりできてるなーという実感もあったためなんですね。

そんな感じで僕は正社員になりました。

正社員時代

年収: 300万

すでにその会社で1年ほどアルバイトをしていたので、殆どのエンジニア業務がこなせました(出来るようになって、頼られるって結構嬉しいので、実はこの当時は毎日楽しかった気がします)。

毎日9:30に出社して、終電前くらいに帰るというのを繰り返してましたが、全然楽しかったです。家でもプログラミングの勉強を10h時間強やって、日に日に成長できることを実感してました。

また正社員になると給料が上がります。アルバイトの頃は時給900円、残業代なしでしたが、正社員は25万/月になります。ただメガベンチャーとかと比べると圧倒的に少ないです(その頃は経験のほうが大事だと思っていたので、あまり給料は気にしないで仕事してましたね)。

こんな調子で順調に仕事をしていたわけですが、毎日が充実しているともっと高みを目指したくなってしまうのが人間の性、というか欲と不安が出てきちゃうんですよね。

一つ目の欲は給与です。

当時ベンチャーといえば全然給与が上がらないのが普通でした。多分。。。

特に僕はアルバイトもしていたため、他の同期のエンジニアよりは会社の貢献度は高いはずと思っていましたが、、、全く変わらなかったです。。。なんなら半年の給与査定で僕よりも他の同期の人が5000円と少ないながらも給与が上がっていましたね。。流石に僕も驚きましたが、同期の人も「なんで自分が上がって(僕の給与が)上がらないの?」と不思議がっていました。

僕は当時肩書こそなにもないですが、(自分で言うのもなんですが)ほぼそのエンジニアチームの中枢だったからです。

例えば他のエンジニアの方がわからないことを手助けしたり、他部署からくるシステムの質問はすべて僕に来て、その方々の質問に答えるもに朝から夕方前までかかったりと、(また自分で言うのもなんですが)僕がいないとチームは回らないとすら思っていました。多分他のメンバーもそれを思っていたから、僕の給与が上がらないことを不思議がっていたと思います。

またもう2つ目の不安は自分は外のから見るとどの程度のスキルなんだろうということです。

先ほどから書いてある通り、当時僕に指導してくれるベテランエンジニアの方はいない状態でして、

僕は自分が今外部だとどの程度通用するのだろうか?とずっと不安でした。

転職する

そういう不安もあり僕は転職を決意します。

転職先は実は就活時に行きたかった某R社です。

某R社に行きたかった理由は起業風土です。

起業は漠然といつかしてみたいな〜と思っていて、起業したいと思う人達が集まる会社の風土が好きで転職を決めました。

某R社入社~退社まで

年収: 600万程度(辞める時あたりで)+副業150万程度

某R社は想像以上に良い会社でした(この辺は長くなってきたのでまた今度別のエントリで書こうかな)。

ざっくり某R社で経験したことについて書いておくと、

新卒3人でiOSアプリの開発、バックエンドエンジニアとしてJavaで小遣いアプリ開発、30人くらいのエンジニアチームでSREチームに所属してAPIチューニングとかをしました。

技術だけじゃなくて自分の頭で深く考えるということや、プロジェクトを進めていく方法なんかも学べてそれが今も活きてたりします(この辺はまた今度書こうかな)。

また入社と同時に副業もはじめました。

副業は知り合いの代表の方の会社で、社内の人材管理ツールの開発と、NuxtでCMS開発、他にも色々とやりました。

起業する

もっと某R社でのはなしを書きたいですが、長くなってきたのでまた今度書きます。

そんな訳で話は飛んで、

色々と学びになることが多くて、またお金にも特に不満もなかったため辞める理由がなかったのですが、元々起業したい思いもあったので、思い切って起業を選ぶため退社しました。

起業してから今まで

起業してから最大の年収: 960万程度

起業自体の話はまた別途どこかで書こうかと思ってますが、受託開発を軸に事業を立てているため、給与自体はそんなに落ちておらず720万です。

更に僕は色々とシステム開発の副業や技術顧問などをしていたので、それが重なって960万くらいになりました。

実は実際は1000万を超えようと思えば超えられる状態だったのですが、1000万の売上を超えると翌々年に消費税を払わないといけなくなったり、累進課税の影響でかなり損をするので、900万円台で止めました。

と、まー色々と大変なことやたくさんの努力をしましたが僕はこんな感じでほぼ1000万円に達しました。

まとめ

まとめると、エンジニア成り立ての頃は色々と怒られながらも毎日家で帰ってインプットを繰り返して、出来るようになってきたら副業や他の分野への挑戦を積極的にやってきたからこそ今があるなぁ〜と。

経験を取りに行くと徐々に年収も上がるので、まずは経験を取りに行くことを心がけることをおすすめします。

また最近スクールを卒業すれば楽しく、楽に稼げると思われがちのエンジニアですが、これがリアルだということをわかってもらった上で、エンジニアを目指すかどうかを考える参考になればと思います。

ついでにエンジニアのキャリアの考え方自体はこちらの記事に書いています。

 

Webエンジニアの今後のキャリアプランについての考えるべき5つのこと

 

 

-エンジニアとしてステップアップするには?

© 2021 エンジニア副業道場 Powered by AFFINGER5