Webエンジニア・未経験OK
エンジニア経験は不要!時代に左右されない開発スキルを身に着けませんか??
PRUMは、顧客の新規サービス開発を手掛けるWebアプリケーション開発企業です!
2019年に元ヤフーのエンジニアである岩本が設立しており、現在5期目にして従業員数は63名まで増員しています。
これから数年後の上場を目指し、Web開発はもちろんのこと、新たに自社サービス・新規事業も展開して、さらなる事業成長を目指しています!
株式会社PRUM
エンジニアの中でも市場価値が高いと言われるフルスタックエンジニア。注目を浴びている理由と実際になるためにはどうしたらよいかなどを、エンジニア出身のシステム開発会社経営層に聞いてみました!
企業によって定義は変わりますが、一般的にシステム開発において複数の技術を持っているエンジニアをフルスタックエンジニアと呼んでいます。
一口にITエンジニアといっても細分化されています。システムエンジニアやサーバーエンジニア、ネットワークエンジニアなど特定分野だけではなく、開発全体を一人で行える技術を持ったエンジニアです。
システム全体を理解でき、臨機応変な対応ができることに加え、エンジニア全体の中でも人数が少ないので重宝されています。
まず、前提としてシステム開発全体の知識があってどの工程でも任せられるエンジニアは貴重です。ただ、全体を網羅することがプログラマーとしてのゴールや正解かというと僕は人それぞれだと思っています。
例えばネットワークだけを突き詰めたい場合、結果的に市場価値にはつながりにくいのでお金を稼ぎたいなら間違ってますよとなるけど、「お金ではなくこのドメインの知識をもっと知りたいんだ」と、その人がやりたいことがやれていればそれが正解だと思います。
PRUMでは、市場価値の高い=お金の稼げるエンジニアになりたい人が多く、みんな頑張っています。
── フルスタックエンジニアが1番、お金が稼げるのでしょうか?
実はそうでもなくて、僕が思うわかりやすくお金が稼げるエンジニアは「その人がいないと案件が進まない」存在になる人だと思うんです。
その人がいなくなってもすぐに替えが用意できる人は別に普通の単価だけど、本当にいなくなってもらったら困る場合、フリーランスだったらわかりやすく何十万と単価が上がります。
ただ、そういうエンジニアになるためには、やはり1つの領域でプロフェッショナルになる必要があるのでかなりハードルが高いです。相当な情熱と好きという気持ちがないとできないです。
なので小さい案件も含めて、その人一人いればなんとかなる。というのがわかりやすく市場価値が高くなる傾向にあると思うんですね。
例えばアプリを作ろうとして、フロントがすごく強い人がいたとしてもバックエンドも絶対必要です。二人いると二人分の人件費がかかりますよね。だけど、どちらもある程度できる人が1.5人分の人件費であればその人にお願いする可能性が高くなりますよね。
もちろん、そのフルスタックエンジニアのレベルにもよるので一概には言えないですが……。
フルスタックエンジニアになるには具体的にどう進めばよいのか、具体的なポイントを見ていきましょう。
開発にはミドルウェア、OS、プログラミング言語、インフラなど幅広い技術と知識が必要ですが、初めは一つの分野をしっかりと習得することから始まります。まずは仕様書に従ってプログラミング、単体テストなど下流工程と呼ばれる部分で経験を積み、基礎力を高め、システム開発というものを理解します。
開発の流れや基礎が理解できていれば、他の分野の習得は早くなります。
上流工程では、要件定義や設計の他、納期や費用の調整などプログラミング以外のディレクションやマネジメントが業務のメインです。下流工程で技術の土台を作っているからこそ矛盾のないスムーズな進行・より良い提案が可能になります。
前述の他にも、クラウドやOSのスキルなど幅広い分野に対応できることはもちろん、技術の進化の早いIT業界では、常に情報のアップデートが必要です。新しい技術や業界の流れを把握することで、フルスタックエンジニアとしての価値の向上が望めます。
複数の技術を身に付けるには、経験値を積むためにも「主体性」が重要です。積極的に手を挙げたり、意見を出すことで新しいことへの挑戦、周りとのコミュニケーションが増えるなど、成長できる環境を自分で作り出すことができます。
すでにフルスタックエンジニアとして活動しているメンターをつけることで、分からないことはもちろん、具体的な学習方法やキャリアのロードマップが設定できます。
現在活躍しているフルスタックエンジニアも初めは一つの言語から学び始めています。駆け出し時代は目の前の業務をこなし、得意領域をつくりましょう。先を急いで色んなものに手を出してすべて中途半端になってしまうのが一番もったいないです。
いくら学習をしても、実践を経験しないとできないことも多くあります。また、実践では経験値が一気に増えるので独学で長期間学習することに比べ、効率が段違いに良いです。
ひととおりの開発スキルを身に付けるには、時間がかかります。独学やプログラミングスクールでの学習期間を除いて、エンジニアとして3~5年の実務経験が必要です。
1年ほど経験して成長が感じられないと諦めてしまうことのないように理解する必要があります。
── 今の日本のエンジニアを取り巻く環境では、フルスタックエンジニアの需要が1番高いのでしょうか。
そうではないと思うのですが、PRUMでエンジニアとして1番助かるのは、フロントもバックエンドもできる人ですね。
確かに社内でとなると、そうなりますね。SESであれば、強みがはっきりしていればずっとフロント、ずっとバックエンドでも問題ないですが、受託になると複数のスキルを持っている人はマネージメント側から見ても心強いです。
ですが、いろいろやるのはとても難しくて、中途半端になる可能性があるので最初から欲深くやるよりは、 まずは専門分野を持つことが大事だと思うんですね。
いきなり大谷翔平になろうと思っちゃダメだと。ピッチング、バッティング全部やれたらカッコイイんですけどね。(笑)
僕は段階がすごく大事だと思っています。2つ新しいことを習得しようとすると無理なんですよね。ひとつ何かを身につけてある程度自動運転ができるようになってから、その他の領域を伸ばしていくやり方が負荷なくできると思うんです。
あとは、最近フロントの技術がすごく複雑になってきたというのもあります。
前はできていたことをキープし続けるのが大変です。情報収集して常にアップデートするだけでも大変なので、他の領域を育てたり拡張していくエネルギーを起こすのがそもそも難しい気がしますね。
複数の技術を持ったエンジニアはエンジニア不足の日本では特に有利です。学習環境が整備され、エンジニアを目指す人が増えましたが、まだまだ技術力の低いエンジニアの割合が多いのが現状です。
また、フルスタックエンジニアになることはやはり簡単ではないため特に数が不足しています。
開発状況に臨機応変に対応できることは、開発スピードの向上にもつながり、中小企業では各領域のエンジニアをすべて雇うよりも人件費の削減ができることも需要が増している理由の一つです。
今後も需要はさらに伸びていくでしょう。
「フルスタックエンジニアになる」という観点でまとめると、まずは専門分野をもって幅を広げていくことが一番大事です。
専門分野というのは、何か1つの言語がストレスなく正しく書けるようになることが目安です。
例えばバックエンドのRuby on Railsがある程度できるようになったらJavaScriptをやっていくというのがひとつの良い例です。
また、戦略的なことで言うと、フロントエンドなど、バンバン入れ替わっていく時流の早いところをキャッチアップし続けようと思うとそれだけでいっぱいになってしまいます。
あえて他のレガシーな部分をしっかり勉強してキャッチアップの時間を担保しつつ、余白で時代の流れの早い部分をやるという方法が効率的に成長できると思います。
バックエンドの方が流れは遅いです。ある程度固まっている部分があるから、バックエンドを軸にしていくのは戦略的にはありですね。あえて流れに乗らないという感じです。
もちろん、流れの早い部分の第一線で活躍したいのであればそこだけに集中するべきです。
自身の目指す方向をしっかりと定めてから、自分のロードマップを組んで取り組むことがフルスタックエンジニアへの第一歩となります。