フルススタックエンジニアへようこそ

# full stack engineer

フルスタックエンジニアとカタカナ語で書くことが混乱の元かも。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">全ての領域がフルスタック。あり得ない能力。ハード、ソフト、サービス、人間系、組織などのあらゆる層に対応出来る。三つが人間の限界かも。スリースタックエンジニアなら大丈夫</p>&mdash; naokiakutagawa (@naokiakutagawa) <a href="https://twitter.com/naokiakutagawa/status/1512813513445896197?ref_src=twsrc%5Etfw">April 9, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

エンジニアという表現が画面を占拠しないように技師と表現する。
フルススタック技師はengineerであることは確か。

スタックとは積んでできあがるもの。
何かstackがあって、そのスタックの全てを満たすという意味がfull。
full stack engineerの定義は厳密。課題は、stackに何が積んであるか次第で範囲が可変だということ。
定義があいまいなのではない。スタックの種類を考えてみた。
階層のどちらを上にするかは立場によって違うかも。
ひとまず、お客様が一番上にいると仮定して、お客様との接点が多い方を上にしようとした。

プログラマにサービスを提供している場合には、上とは限らず、横にお客様がいるかもしれない。
それらの場合は別の記事で場合分けして検討することにする。
ここでは上にお客様がいることを想定する。


# 二階層

二階層をスタックと呼んでいけないという習慣はない。
フロントエンド技師とバックエンド技師。

## フロント技師
どういう枠組みで、どの言語で、どのOS上で、どのブラウザを使うことを前提としているかで範囲が違うかもしれない。
アプリを作る場合と、ブラウザだけで対応しアプリを作らない場合があるかもしれない。

## バックエンド技師
システムによって異なるだろう。
DBを含むか含まないか。
WEBサーバを含むか含まないか。

|フロントエンド|
|:--|
|バックエンド|

# 三階層

上記に加えて、次のいくつかの一つを含むかで三階層とする。

## 顧客対応
営業、管理など、人・組織の仕事を行う。
見積もり、原価計算、作業管理とサービス範囲の優先順位づけなど、何をするかは仕事内容・組織によるかも。


|営業|
|:--|
|フロントエンド|
|バックエンド|


## インフラ技師
電源、PC、ネットワークの物理的な保守、クラウドとの切り替え機能を含むかどうかは仕事によるかも。
入出力としての画像・音響装置、出力としての印刷装置を含むかは仕事によるかも。

クラウドの仕組みのどこからどこまでを含むかなど。

|フロントエンド|
|:--|
|バックエンド|
|インフラ|

# 四階層

## (mobile)アプリデザイナ・プログラマ
ここまでデザイナとプログラマを分けて記述していない。
プログラマはデザイナであるという理解だから。
しいて分ければ、プログラミング言語でデザインするのがプログラマ。
プログラミング以外の方法でもデザインできるのがデザイナ。
必要な仕事は一緒。組織によって分業するかどうかは組織の仕事量と方針による。

|アプリ|
|:--|
|フロントエンド|
|バックエンド|
|インフラ|

## DB、フレームワーク、ミドルウェア技師

一番苦手な領域でよくわからない。省略させてください。


## ツールプログラマ
それぞれの担当が作ってもいい。
ツールを作る専門担当がいる組織もある。
試験の自動化のツールの作成、調整だけを行っている場合もある。
試験の調整だけを行っている場合には試験技師と呼ぶこともある。
アプリの試験、フロントの試験、バックの試験、インフラの試験など、どの部分の試験を担当するかは仕事、組織によって違う。

クラウドの改良、DB、フレームワーク、ミドルウェアの改良なども含む。

|アプリ|ツール|
|:--|:--|
|フロントエンド|ツール|
|バックエンド|ツール|
|インフラ|ツール|



# 五階層以上

ここまでの要素を５つ積む。プログラマとデザイナを分けてもいい。
あるいは、機械、機構、ハードウェアの設計を足してもいい。


## 計算機技師
論理回路設計、CPU設計、周辺電気・電子回路設計など、ハードウェア設計から入る事業もある。
電気・電子技師

|アプリ|
|:--|
|フロントエンド|
|バックエンド|
|インフラ|
|回路|


## 機械・建築技師
空調・排熱装置、機械・ロボット・乗り物・の物理設計など機械技師が必要なシステムは多い。
クラウドは、インフラ技師だけでは対応できず、機械技師、建築技師が参加した事業になることはしばしば。あたらにクラウド拠点を設計する場合には、土木技師も参加する。

|アプリ|
|:--|
|フロントエンド|
|バックエンド|
|インフラ|
|機械|

機械だけでなく、回路も独自に作る場合もある。

|アプリ|
|:--|
|フロントエンド|
|バックエンド|
|インフラ|
|回路|
|機械|



# フルスタックエンジニア

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

https://qiita.com/mzmz__02/items/d169bd1f5090e279694a

フルスタックエンジニアへの道（CakePHP/React）

https://qiita.com/IZUMIRU/items/81728f44478156ba2a3a

## フルスタックエンジニア(others)

　フルスタックエンジニアになるには？年収や身に付けておきたいスキル

https://www.modis.co.jp/candidate/insight/column_44

フルスタックエンジニアとは？仕事内容・スキル・年収・将来性

https://www.bigdata-navi.com/aidrops/3126

フルスタックエンジニアとは？年収と最低限必要な3つのスキル

https://itpropartners.com/blog/7311/

# おわりに

新人プログラマ応援 - みんなで新人を育てよう！

https://qiita.com/official-events/3f21c92121aa125807b4

今、Qiitaでは、「データに関する記事を書こう！」という行事をやっている。

https://qiita.com/official-events/30be12dd14c0aad2c1c2

この文章は、テーマ2『データに関する記事を書こう！』参加記事でもあります。


## 参考文献

@torifukukaiou【毎日自動更新】新人プログラマ応援 - みんなで新人を育てよう！（2022年04月） LGTMランキング！

https://qiita.com/torifukukaiou/items/18dad64ba99aa5a40f95

@torifukukaiou 【毎日自動更新】データに関する記事を書こう！ LGTMランキング！

https://qiita.com/torifukukaiou/items/b10fa94764aaaa2c6db1