経験が浅いフルスタックエンジニアはただの器用貧乏?

こんにちわ!boraです!(@bora_sns

何でもこなせるフルスタックエンジニアって良いなぁって思いますよね!
でもはたから見たら中途半端な知識しかないただの器用貧乏って思われてしまう事も・・!?

エンジニア一口に言ってもフロントエンド、バックエンド、インフラなど色々な職種に分かれています。ざっくりとフロントエンドはユーザーが目にする見た目部分、バックエンドはユーザーの目には見えない裏側のシステム部分、インフラはAWSなどを利用してアプリーケーションが動く土台・環境部分などそれぞれに担当する領域が異なります。

実際にフルスタックになりたいけどどうなの?、現在フルスタックな役割をしているけど転職時の感触はどうなの?という疑問をお持ちの方に、元々フルスタックを希望していて、現在実際に現場でフルスタック的な立ち回り(人が少なくて必然的に自分が全てをやらざるを得ない状況なのは内緒)をしている私が感じている事をお話します。何かの参考になれば幸いです。

専門性を持ったフルスタックは重宝

フロントエンドを長年やっていてそこからバックエンドにも携わるようになったというなら「専門分野(フロント)を持ちつつ、バックエンドもできる貴重な人材」といった捉えられ方になるのかなと個人的には思います。以前の同僚にフロントエンドのみを10数年やってきたフロントエンドを極めし人がいますが、本人もフロントに関しては分からない事はありません、自信がありますと絶対の自負を持っている人がいました。実際にフロントエンドに関しては何を聞いても深い知識をもって的確に回答してくれたので凄く頼りになる方でした。

他にもフロントエンド・バックエンド・インフラ・ネイティブアプリ・機械学習など本当に何でもこなしてしまう人がいるのですが自分の当面の目標になっています。あそこまで幅広いスキルと経験があれば生きていくのが楽になるだろうなぁとまじで思うぐらいです。その方も今は東京のフルリモート企業に転職して地方在住で開発をしています。エンジニアの転職サイトに登録していた時はスカウトが矢継ぎ早に来て自分から応募する事はなかったらしいですが、早々に内定をもぎ取り風のように退職されました(笑)その人がいなくなった時の焦りと喪失感たるやもう。。。でももう自分がメインでやるしかないとたかをくくって今に至ります。意外に何とかなるよ!

でも日頃から自分でインプットする事はかなり大事で自分も土日は必ず系5時間ぐらいはPC触っています。実務で使った内容を復習したりこれから使えそうな技術を勉強したりするのは楽しいですよね、できる事が着実に増えていくのは快感です。

全ての経験が浅いフルスタックはただの器用貧乏

フロントエンドもバックエンドも半年しか経験がないので専門的なスキルはなく知識も高くないという人がフルスタックと謳うと「何の専門スキルもないただの器用貧乏」に捉えられてしまう事もあります。

実際に最近ある企業との面談で「フルスタックエンジニアって謳われると実際どうですか?」と質問した所「何かしら専門分野を持ったフルスタックは良いが、そうじゃない何をやっても中途半端な知識しかない人は、もっと一つの分野を極めて殻でいいんじゃないんですかぇ(笑)」と話していてギクリとした経験があります。それまでフルスタックに色々できる事を強みに謳っていた自分ですが、エンジニアになる前の前職はweb制作全般を仕事としていたのでjavascriptやphp,wordpressはよく触っていた事もあり現在はフロントエンドが得意ですがバックエンドもインフラも携わりますと言った表現に変えました(笑)あとはにわか知識にならないために実務で使ってみたり実際にコードを書いて動きを確かめておけば経験が伴った引き出しが増えるので積極的にインプットは必須ですね頑張りましょう!自分も頑張ります!!

何かしらの専門分野を持った方がフルスタックが強い

大手はフロント、バックエンドなど職種がはっきりと分けられている事が多く、中小企業やスタートアップなどの人的リソースがそこまで充足していない所は何でも触れるフルスタック的な立ち回りになる事が比較的多いのかなと思います、私は完全に後者に該当します。

職種であったり言語にも言える事だと思うのですが、何か一つの言語をある程度経験すると他の言語を触った際にも抵抗なく入れる事があります。言語は「訛りのようなもの」と例えられる事があります。東京の標準語を話す人が、地方の訛りを聞いても、例え多少訛りはあろうとも同じ日本語なので何となく分かるよね?って感覚ですね!言語にもそれと同じ事が言えるのではないでしょうか?

何か強みのある人材が欲しい、いや強みはなくともフロントエンド・バックエンド関係なく触れる人が欲しいなど、社内案件やリソース・状況、企業によってまちまちだとは思いますが、「何か一つ強みになる専門性を持ったフルスタックエンジニア」が現状私の考える魅力的なフルスタックなエンジニア像になります。

特にプログラミングを勉強したての方は何でも手を出すのではなく何か一つの言語+FWを集中的に学んで自分でこれは得意です!と言えるぐらいの強みを作るのが良いかなと思います!それとは別に自分はアプリケーションを全部企画、DB設計、技術選定、デザイン、マークアップ、フロントエンド、バックエンド、インフラ環境構築、セキュリティと全部一人で開発してみたい!というのはめちゃめちゃ良いと思います。一度全ての工程を経験するのとしないのとでは全く違って思います。自分もエンジニア転職前に物件のマッチングシェアサービスを全部0から一人で開発した事が現在の自分に繋がっているなと改めて感じます。成せば成る!頑張りましょう!レッツポジティブシンキング!!