フルスタックエンジニアとは?
一般的にフルスタックエンジニアというと、フロントエンド、バックエンド、インフラ、を一人で行うことができるエンジニア。ということになると思います。
一人で、環境構築して、フロントエンド、バックエンドのサービスを作って、デプロイして、本番運用して、運用して、、、という。
場合によっては、インフラアーキテクチャの選定、設定から始めたり。
プロジェクトによって携わる部分は異なってくると思いますが、全部できればつぶしがききますね。
やればできる、知識がある、というのはとても強みになると思います。
さらに近年は中小規模のweb系プロジェクトだと、フロントエンド、バックエンドを一人のエンジニアが行うのは当たり前になってますよね。
具合的には、
フロントエンドはTypeScriptとかJavaScript(React、Angular、Vue.js、jQuery)とかで、
バックエンドはGoとかPythonとかPHPとかRubyとかJavaとかKotlinとかNode.jsとか。
大規模開発で役割がどちらかに決まっていない限りどれかできるのが必須ですね。
たまに、バックエンド側で参画したプロジェクトなのに、いざプロジェクトが進んでいくと、JavaScriptをいじる場合なども出てきますね。
そんな時は「めんどくせー...」と思わずに、「ラッキー!スキル増えるじゃん!」と思ってやりましょう(笑)
どうやってキャリアを積んでいくか
一つの会社にいながら、3~5年くらい在籍していてフロントエンド、バックエンド、インフラをやらせてもらえたら、とても良い会社だと思います。
最近はこのような志向を持つエンジニアも増えてきているので、起業側もエンジニアを確保するため要望を聞いてくれる場合も多くなっているようですね。
20年前とかは、「会社はやりたいこと全然やらせてくれない」というような愚痴を良くまわりから聞いてました(笑)
会社の規模にもよるかもしれませんね。フットワークが軽いベンチャーが増えてきて、さらにIT業界の働き方のトレンドを強く意識するような企業が増えると、エンジニアにとっては働きやすい業界になっていきますね。
で、あなたが今いる状況ではフルスタックエンジニアを目指せない!と思ったら、積極的に行動しちゃってOKと思います。
キャリアの積み方
- 転職
- フリーランス
- 副業
- 個人開発
- スクール
- 勉強会
- セミナー
実は選択肢がけっこうあるんです!
エンジニアにとって「キャリアを積む」ということは「経歴書」を充実させていく。といってもよいと思います。
「経歴書」に記載するためには「実務」が一番良いです。お金をもらって実務で経験するということですね。
案件の募集要項にも「Python実務1年以上」とか記載がある場合がありますので。
その次が「実務」じゃないんだけど、勉強して、実際のモノをつくりました。という経歴ですね。
実務しか認めない、というような場合もありますが、全然無駄ではありません。ただしちゃんとモノを作らないとだめです。実際にwebサービスを作って「ポートフォリオ」と呼んで、「経歴書」に記載します。
ポートフォリオを作って「経歴書」に書く
例えば以下のような感じで「ポートフォリオ」としてwebサービスを作って「経歴書」に記載します。
xxスクールで半年Pythonを学び、xxサービスを作成
実際に作ったサービスのURL
【ポートフォリオの技術スタック】
言語:
サーバーサイド Python
フロントエンド JavaScript(React)
フレームワーク:Django
サーバー:AWS
ソース管理:GitHub
開発環境:Docker
IDE:PyCharm
みたいな感じですね。
どのくらいの技術があるのか採用担当者にわかってもらうものです。
正直、「実務経験なし」のスキルで参画できる案件があるかどうかは、タイミングにもよりますし、なんとも言えません。
ただ、「実務」でなくてもやったことは絶対に無駄ではありません。
実際私も、このような経歴書で、「実務経験なし」の技術スタックのプロジェクトとは別の「実務経験がある」プロジェクトに参加することになったとき、その後、同じ取引先で「実務経験なし」の技術スタックのプロジェクトに参画させてもらうことができました。
結局、雇う側も不安なんですよね。なので、最初は「確実な」ことをエンジニアに任せます。
そして、エンジニアの働きぶりをみて、「この人だったら経験が浅いことでも任せてもやってくれそうだな」と思ってもらえたら勝ちです。
経験が浅いことでも仕事を任せてもらうには
どうやったら「この人だったら経験が浅いことでも任せてもやってくれそうだな」と思ってもらえるのか?ってことについては、わからないことは調べたり聞いたりで進めていく。ってことでしょうね。
結局、現在の開発って既存のスキルを使っていても、常に調べることがありますよね?
昔みたいに、全部頭の中に暗記している技術で仕事する、というよりも、常に技術は進化していってるので、調べながら進めていく。という推進力があれば、良いかと。
だって、Java経験5年選手でも、例えばフレームワークが違ったりしたら、結局みんな調べながら仕事するじゃないですか。
なので、未経験のことでも調べたり聞いたりして進めていく推進力
が大切と思います。
目標を立てよう!
フルスタックエンジニアになるには、もちろんすぐにはできません。
目標を立てて、ある程度計画していくことが良いと思います。
1年間バックエンド側だけPythonやったから、次の1年はJavaScriptも扱える案件をやりたい!
とか。
採用する側は「経歴書」を見るとき、技術スタックとともに、年数も見ます。最低半年は欲しいです。2,3か月の短い期間だけだと、勉強期間で終わっちゃってるんじゃない?というような判断されがちです。
ですので、あせらず、
技術スタック+年数
を意識してキャリアを積んでいくことが大切と思います。
応援しています!!