Wahl+Case

View Original

フルスタック・エンジニアとは?業務内容|プログラミング言語

See this social icon list in the original post

フルスタックエンジニアの仕事は開発からシステムの運用・保守まで、マルチに活躍するオールマイティなエンジニアを意味しま

この職業は日本でも世界でも必要とされている職種です。

詳しく見ていくと、SHIFTの井出さんが弊社のTaylor Wilesをインタビューしました。

Taylorは東京で活躍する技術者採用エキスパートです。 SHIFTでは常にエンジニアを募集しています。そんなフルスタックエンジニアについて徹底的に解説してもらいました。他にも弊社のコンサルタントのBryan ChengUros Cavicもコメント付け加えてくれました!

フルスタックエンジニアリングとは?

フルスタックエンジニアとは?

Taylor:フルスタックエンジニアとは、フロントエンド/クライアントサイド(ユーザーインターフェース開発)とバックエンド/サーバーサイド開発(システムおよび/またはデータベース)の両方のスキルセットを持つ開発者のことを指します。多くのエンジニアは、どちらかに特化する傾向があります。

追加の一言(Bryan、Uros):通常は、ウェブフロントエンドとサーバーサイドです。データベースとフロントエンドの両方を担当する人はあまりいません。

日本におけるフルスタックエンジニアの主な職務は何ですか?

Taylor:チームのニーズによって異なります。「技術スタック」(フロントエンドからバックエンドまで)のあらゆる開発タスクをこなすことができ、時には同時に両方を担当することもあります。 フルスタックエンジニアは、得意な分野のプロジェクトを担当したり、プロジェクトの人手が必要なところを手助けすることが多いです。

日本でフルスタックエンジニアとして働くために必要な技術スキルは何でしょうか?

Taylor:開発者が使用するツールやプログラミング言語は数多くありますが、フロントエンドのウェブ開発はJavaScript(またはその親戚であるTypescript)でかなり標準化されているので、少なくとも1つは経験していることが必須です。JavaScriptに精通している場合のみ、「バニラJavaScript開発者」になることができますが、多くの場合はReactやVueのような最新のJavaScriptフロントエンド「フレームワーク」に精通している必要があります。

Javascript/TypescriptのバックエンドフレームワークであるNode.jsは、Go、Java、PHP、Ruby on Rails、Pythonなどの他のバックエンドプログラミング言語と比較すると、日本ではあまり使用されていません。「フルスタックJavascriptエンジニア」として専門性を高めることは魅力的に思えるかもしれませんが、私は、日本市場向けのスキルセットを完璧なものにするために、少なくとももう1つのバックエンドプログラミング言語を勉強することをお勧めします。

フロントエンド開発に長けたフルスタックエンジニアの方々ともお話ししますが、フルスタックエンジニアを募集する企業のほとんどは、バックエンド開発を独力でこなせる人材を求めていることがとても多いです。 サーバーサイド開発の原則を十分に理解していることは、エンジニアリングマネージャー、ソフトウェアアーキテクト、プロダクトマネージャーといったさらなる技術職に就くためには不可欠です。

最後に、フロントエンド開発のスキルを磨きたいのであれば、Figmaを学んだり、HTML/CSSでピクセル単位の調整を実践したりすることを検討してください。多くのフルスタック開発者は、HTML/CSSの操作が得意ではないため、自分一人ではフロントエンド開発を引き受けれないことを悩む人を見てきました。

フルスタックエンジニアとして日本で特に評価される資格や認定はありますか?

Taylor:Docker、Kubernetes、パブリッククラウド(AWS、GCP、Azure)などのウェブ開発技術に関する資格は、役に立ちます。アジャイル開発、PMP(プロジェクトマネジメント資格)、あるいはより広義のDevOpsといった概念は、プロジェクト管理やDevOpsを直接担当していなくても、できると転職者としてとても魅力的に見えます。なぜなら、それらのチームや利害関係者とより円滑に仕事をする方法を理解できるからです。API開発やソフトウェアアーキテクチャ設計といった必須スキル、特にマイクロサービスアーキテクチャや分散システムといった専門分野は、最近人気のトピックでもあります。

フロントエンド開発の専門性を高めたい人にとっては、UI/UXデザインコースを受講すれば、デザイナーとの協働方法を知っていることを示すことができます。

追加の一言(Bryan and Uros):GitHubやStack Overflowでオープンソースに貢献することはとても良いことです。

キャリアのスタートと成長

日本でフルスタックエンジニアとしてのキャリアをスタートするにはどうすればよいでしょうか?

Taylor:フルスタックチームに参加するのが一番簡単な方法です。エンジニアリング部門がバックエンドチームとフロントエンドチームに分かれている場合は自身が特化していない方のスキルを習得するのは難しい可能性があります。一方、全員がフルスタックで仕事をしているチームでは、自分の得意分野以外のプロジェクトにも積極的に参加し、先輩エンジニアからベストプラクティスを学ぶこともできます。

追加の一言(Bryan、Uros):まずはCSの学士号または修士号を取得するか、少なくともコーディングキャンプに通ってから仕事を探しましょう。一般的に、スタートアップ企業の方が大企業よりもフルスタックエンジニアの求人が多いです。

日本におけるフルスタックエンジニアのキャリアアップの可能性について教えてください。

Taylor:日本ではウェブ開発の機会が本当にたくさんあります!もちろん、製造業や組み込みシステムなどの分野でもGUIの開発を担当することはできますが、フルスタック開発者の多くはウェブサイト、モバイルアプリ、ウェブベースのソフトウェアに取り組んでいます。

日本でフルスタックエンジニアが日常的に行う一般的な業務にはどのようなものがありますか?

Taylor:正直なところ、通常のバックエンド/フロントエンド開発者と変わりません。

(差は大きいですが、CI/CDパイプラインのメンテナンス、テスト、コードレビューなど、さまざまな業務があります)

追加の一言(Bryan、Uros):おそらく、ウォーターフォール環境は米国やEUよりも日本の方が多いです。

トレーニングと給与に関する洞察

有益なトレーニングプログラムやコースがあれば、お勧めいただけますか?

Taylor:エンジニアではないがエンジニアになりたいという方には、Code ChrysalisやLe Wagonのようなブートキャンプでフルスタック(通常はJavaScript/React.js + Ruby on Rails)のトレーニングを受けることをお勧めします。すでにエンジニアである場合は、将来の仕事に就くためや、現在の職場で新しいプロジェクトを手がけるために、さまざまなeラーニングコースを受講すると役立つでしょう。ただし、正規の教育がコンピュータサイエンス以外の分野である場合を除いて、ブートキャンプに戻ることはお勧めしません。例えば、グラフィック/ウェブ/UI/UXデザイナー→フロントエンド開発者は、フルスタックブートキャンプから多くの恩恵を受けることができます!

日本におけるフルスタックエンジニアの一般的な給与水準はどのくらいですか?

Taylor:バックエンドまたはフロントエンドエンジニアに特化した人と比較すると、あまり変わらないと思います。しかし、ほとんどのエンジニアリングマネージャー、ソフトウェアアーキテクト、プロダクトマネージャーなどは、フルスタック開発のバックグラウンドを持っています。

中堅エンジニアの給与は、年間600万〜800万円が一般的です。800万円を超えると上級レベルになり、個人貢献者であれば平均900万〜1000万円くらいです。最近では1100万、1200万、1300万という給与を得ているエンジニアもいますが、それは通常、チームリーダーやエンジニアリングマネージャーの給与です。

課題と傾向

日本でフルスタックエンジニアが直面する一般的な課題にはどのようなものがありますか?

Taylor:一見別々のスキルセットを両立させるのは、最初は難しいかもしれません。バックエンド開発がどうしても理解できないというフロントエンドエンジニアや、デザインセンスに苦労している、あるいはピクセル単位の作業に頭を抱えているバックエンドエンジニアと話したことがあります。しかし、先輩エンジニアと話したところによると、経験を積むにつれて新しい技術スキルを習得するのがずっと楽になるそうです。

フルスタックエンジニアを目指す人が意識すべきトレンドや変化はありますか?

Taylor:これは、世界の他の地域のフルスタックエンジニアにも共通することですが、日本市場では、ウェブ開発の基礎がしっかりしていることが重要です。もちろん、日本語のスキルがあれば、日本で仕事を見つけようとしている多くのエンジニアの中で頭角を現すことができます。

データ管理

  • データエンジニアと協力し、データの品質、可用性、セキュリティを確保する。

  • 機械学習モデルで使用するデータの収集、前処理、保存を行うデータパイプラインを管理する。

フルスタックエンジニア職にご興味がある方はは、こちらのリンクからご連絡ください!


関連記事

See this gallery in the original post