LoginSignup
33
29

フルスタックエンジニア(full stack engineer)

フルスタックエンジニアといえば、ハードウェア、ソフトウェアのすべての作業をこなす資格を持ち、作業可能な人をいうと、誰にでもわかりやすい。

<この項は書きかけです。順次追記します。> 

20221113追記

ありがとうございます。フルってつけたらどこからどこまでを言わないと、フルかどうかがわからないですね。。 
お互いのフルの範囲の違いを確認しないと意思は通じないかもしれない。

表題を「フルスタックソフトウェアエンジニア どこからどこまで」から「フルスタックエンジニア どこからどこまで」に変更し、少し書き足しました。

フルスタックソフトウェアエンジニアを標的にした書き込みではないからです。私は、あるときは、インフラエンジニア、あるときはデータサイエンティスト、またあるときは、ネットワークスペシャリスト、あるときはCコンパイラの専門家、そしてあるときは国際規格のEditorといいながら、名刺には、「ネットワークデザイナ」とデザイナであることを主張してきました。Qiitaで、自分が書いた記事で一番いいねが多いのは、「色使い」であることは、デザイナだと本人が思い込んでいることの表れでもあります。エンジニアの方にうまく届かないかもしれません。

ごめんなさい、

私がエンジニアと主張するのはソフトウェアエンジニアの国際規格の審議中と、インフラエンジニアとしてネットワーク管理をしているときだけです。この文章全体もきっとわかりにくいかもしれません。

ごめんなさい。

20221117追記

論点整理します。フルスタックエンジニアは、どこからどこまでを言わないと通じないよという提起に対して、
上記Tweetは、的を得た「フル」ということに焦点をあてていただき、いろいろ加筆させていただきました。

one stack engieer
two stacks engineer
three stacks engineer
four stacks engineer
...
full stacks engieer

例えば、こちらだと50 stacks積んでいます。

上記分野で、自分なら,100 stacks 教えることができるような気がする人は大勢いそうな気がします。 

フルスタックエンジニア どこからどこまで おまけ

探せばあるものですね。自分が一週間かけて出た結論である、日鉄ソリューションの例で、
鉱山を探すところからという意見を、2014年5月14日に書かれていたかたがおみえでした。
車輪の再発明でした。ごめんなさい。昔の私の職業である追試(だれかがした試験を再確認のために
再現試験を行うこと)だとおもってください。

20221119追記 

どこからどこまでをどう表現すればいいかがわからない人が多いかもってなった。 

そこで、新企画「#名刺代わりの技術書10選 」
をしてみることにした。  

名刺代わりの技術書10選

これをみれば、この人は、どこからどこまでがわかるかも。

目次 

フルスタックエンジニア
・20221113追記
・20221117追記
・0221119追記 
目次
まとめに代えて 
stack (積み重ね) 
・お客様視点
・・立場の違いによって見えるものが違う
・スタックの粒度
・・ソフトウェアの粒度 
・・インフラの粒度
・・データの粒度
フルスタックインフラエンジニア
フルスタックソフトウェアエンジニア
・フルスタックソフトウェアインストール(済)エンジニア
・・固有名詞入りフルスタックエンジニア 
・・フルスタックwebソフトウェアインストールエンジニア 
フルスタックデータエンジニア 
まとめの前に
参考文献 
文書履歴

まとめに代えて

誰でも、フルスタックエンジニアと自称してよい。 

「どこからどこまで?」って聞かれたら、
即時に 
「デバイスドライバからWEBサーバまでです。データベース除きます」とかって、すぐに答えられればいい。 

上記のように「データベースを除く」という感じで、粒度にも対応するとよい。
いくつか候補を書く。
「C言語からPOSIXまでです。ただし、Freestandingを除きます」

posixc.png

「フロントエンドからバックエンドまでです。ただし、フロントスタートとバックスタートを除きます」

frontend.png

みたいに、除く方は、相手が知らなさそうな単語を入れるのをお勧めしようかなって思うんです。
そんな技術分野があるかどうかはどちらでもいいのです。除くんですから説明できなくていいのです。

もうちょっと、現実味をもたせたい方にお勧めなのは、
「フロントエンドからバックエンドまでです。ただし、ネットワークを除きます」です。

backend.png

フルスタックエンジニアと自称される方で、ネットワークエンジニアにはお目にかかったことがあまりないかも。

「完全に理解した」という言葉が、初心者を表すように、
「フルスタックエンジニア」が初心者を表すという主張ではありません。

初心者と誤解されないようにするには、「どこからどこまで」と「何を除く」かを瞬時に言えるようにしましょうというお誘いです。

stack (積み重ね) 

電子計算機では、

サーバ
スイッチィングハブ
電源(ups)
 
と言う感じで積み上げてシステム構成する系は、空間、ケーブル長、設置時間などの節約になる。 

ソフトウェアでも、デバイスドライバ、OS,プログラミング言語、ネットワークプロトコル、サーバなどを、同じ方法で積み上げれれば、維持管理は簡単に出来る。

どちらも壊れたら交換で治るもうな構成を考える。

お客様視点

お客様視点でお話するといいかもしれません。 
お客様のお話の文脈では、フルスタックエンジニアは、どこからどこまでを担当する人を指しているか。 
課題は、お客様の組織でも、直接担当する部門と、契約する部門と、お金の支払いをいただく部門で、フルスタックエンジニアの範囲が違えば、それぞれの部署がわかるような注釈を入れる必要があるかもしれません。 

「フルスタックエンジニア どこからどこまで」の文章は、お客様に説明するときに役立つようなまとめにすることを目標にします。お客様に選んでいただけるような選択肢をお示しするような感じ。

立場によって見えるものが違う 仮説

立場の違いによって見えるものが違う

立場1(左)から見ると、全体はAで、色は黄色(薄い色)、Bは中心の部分で色は黄緑(濃い色)
立場2(右)から見ると、全体はBで、色は空色(やや薄い色)、Aは中心部分で色は黄緑色(濃い色)

立場が違えば、集合関係も違うように見えるかもしれないし、色も違うように見えるかもしれない。

視点の違い.png HAZOP 質疑応答編&記録編(3.6a) Safety and Security https://www.slideshare.net/kaizenjapan/hazop-tokyo201809 p.174

 「立場の違いによって見えるものが違う」の資料は、三次元のA、Bを二次元表記したものです。全体像は、横から、左下は左から、右下は右から見た像の二次元表記です。屈折率等を考慮すると、下の左右の中心像はもっと大きくなるというご指摘をいただいています。三次元描画ソフトでこの資料を作成してくださる方を募集しています。

スタックの粒度 

ソフトウェアの粒度 

C言語で開発する場合には、POSIXを挟んだスタックになっている。

C言語教育はCコンパイラの写経で

C言語は直接CPU叩くことも可能です。割り込みがあるCPUであれば、割り込みを呼び出すのも手でしょう。

posixc.png

C言語規格はPOSIX規格と相互関係を持った規格だという印象が伝われば十分です。

ただし、フルスタックC言語エンジニアといいたければ、Freestandingの経験がないとうれしくないでしょう。 

こんな感じで、スタックを細かくしていくと、フルの人はほとんどいなくなるかもしれません。

インフラの粒度

インフラで粒度を細かくし、発電を含むと、危険物取り扱いが必要かもしれない。

大学の電気工学の研究室には、発電、送電を扱う強電の研究室と、電話、通信の弱電の弱電がある。
また、大学には、理論系の研究室と実験系の研究室がある。私の卒業研究の研究室は、原子炉などを扱う現代制御理論の研究室だが、理論系で、実験は論理実験で計算機を使うだけだった。

そこで、強電系の資格は一切撮っておらず、通信系の資格だけだ。 
原子炉の制御と、ロケットの制御と、モータの制御と、通信網の制御を、同じ現代制御理論で解く。私は卒業研究ではFortranでプログラムを書いたたけだ。博論の通信網に関する研究では現代制御理論は使わずに、引き算だけを使った。

インフラエンジニアで、フルスタックのインフラエンジニアは、自分のまわりでは100人に1人くらい。上にも書いたように、強電の研究室出身で、通信を分析対象にし、結果として強電のブラックアウト対策の測定に使えないかという引き合いがあったことがある。 

ある通信会社では、土木の次に強電が強く、そのついでに通信の資格を取ってしまう人もいる。
資格マニアと呼ばれるか、いろいろな部署の責任者になり、最後は工場長になるかかもしれない。

データの粒度 

確率・統計を 

生物学(生命科学)
経済学(社会科学)

としか分解しないのはどうよ。 

科学三分類・四分類・五分類と算譜(program) 仮説(93) 統計と確率(7)

1)論理科学:文学部哲学科。理学部数学科。
2)物理科学:理学部、工学部。
3)生命科学:医学部、薬学部、歯学部、理学部生物科。
4)人文科学:文学部。法学部。教育学部。
5)社会科学:社会学部、経営学部、経済学部。

いや、6分類がいいかもいsれない 

'6) 疫学(新型コロナ対策を含む)

粒度を細かくすれば、すべてをやっている人はいなくなるかもです。

フルスタックインフラエンジニア

ハードウェアも扱うインフラエンジニアでは、フルスタックの幅は広い。

電源であれば、電気主任技術者、電気工事士。通信であれば、電気通信主任技術者、無線技術士、電話工事担任者。ハードウェア作業を監督するのに必要な資格がなければ、フルスタックエンジニアとは呼べないという考え方がある。

電源(発電、省電力設計を含む)、空調(暖房、冷房、酸素・に参加炭素濃度測定、程発熱設計を含む)、電磁波(雑音発振、雑音受信、空中戦設計を含む)、有線通信(光、銅など)。

フルスタックソフトウェアエンジニア

それに対し、ソフトウェアだけに限定したフルスタックソフトウェアエンジニアは、何も資格はいらないだろう。 技術士(情報工学)くらい持っていれば十分だろう。 

デバイスドライバ、OS、コンパイラ、ネットワークプロトコル、データベース、WEBサーバ、ブラウザが作れて、保守・運用・廃棄ができる。 

どれか一つでも作れなければフルスタックソフトウェアエンジニアとは呼ばないで欲しいかもしれない。

フルスタックソフトウェアインストール(済)エンジニア

自分では作れずに、インストールから始まるソフトウェアエンジニアはフルスタックエンジニアとは呼ばないことをお勧めします。 フルスタックインストールエンジニアと呼ぶとよい。 

Linuxであれば、デバイスドライバのインストールは簡単である。 

他のOSだと、デバイスドライバのインストールも大変かもしれない。 

クラウドなどで、ソフトウェアのインストールが住んでいる状態から始まる場合を、フルスタックソフトウェアインストール済エンジニアt呼ぶのは無理があるかもしれません。それならむしろフルスタックインストール済ソフトウェアエンジニアと呼ぶ方が自然かもしれません。 

「フルスタックソフトウェアインストール(済)エンジニア」の見出しは保留でお願いします。

固有名詞入りフルスタックエンジニア 

一つのOSだけのフルスタックインストールエンジニアは、例えば 

Windows フルスタックインストールソフトウェアエンジニア
iOS フルスタックインストールソフトウェアエンジニア

と呼ぶと良いかもしれない。少なくとも、3つ以上のOSについてフルスタックインストールエンジニアでなければ、OS名を省略してはいけないような気がする。 

そうはいっても、9pinのrs-574というRS-232CではないものをRs-232Cと呼んでいる業界です。 
誰が、何を言っても、禁止している条項がなければ、なんでもありなのかもしれない。 

フルスタックwebソフトウェアインストールエンジニア 

フロントエンドとバックエンドの両方が操作出来ればフルスタックwebソフトウェアインストールエンジニアと呼ぶと長すぎだろ。省略してフルスタックエンジニアと呼びたくなる気持ちはわかる。 

例えば、フルスタックWEBエンジニアでは、WEBの電源まわりも、空調周りの担当してほしいし、 
低消費電力の論理回路を設計してほしいし、FGAで論理回路を設計するのはあたりまえのようにやってほしい。 
OSを作り直したり、DBも作り直して欲しいし、Webサーバのオープンソースのcontributerであるのはデフォルトではないだろうか。

フルスタックデータエンジニア 

データサイエンティストへの5つの門。あなたはいくつの門をくぐりましたか?統計と確率(8)

生物学(生命科学)
経済学(社会科学)
確率・統計
プログラミング・機械学習
根気か財力か理想

この5つをスタックだと思い、フルスタックデータエンジニアはどれだけいるだろうか。 

DataRobotという機械学習のソフトを作った人たちよりも、 
日鉄ソリューションの山師(どこに鉄鉱石があるかを予測する人たち)の方が、
データサイエンティストのコンテストで上位だったとのこと。 

ビッグデータ分析のコンペティションで世界第2位

DataRobotを展開するにあたり、資料について意見を述べさせていただいています。
事例である現代制御理論の方程式だけで制御するよりDataRobotのデータ解析によるパラメータチューニングが有効であることは、当方の経験とも整合があり、大事な仕組みだと親会社をはじめ関係者の方にお伝えしたことがあります。

フルスタックエンジニア どこからどこまで - Qiita

そらおめぇ鉄鉱石掘る所からに決まってるやろ(本文読んでない

2022/11/14 12:10

おしい。鉄鉱石掘る前に鉄鉱石がどこにあるかを予想するところからやっている人には勝てません。
人によって、どこからが、違うことの例として参照させてください。

日鉄ソリューションについての記事はこちら 

@t_nakayama0714「Qiitaのいろいろランキング2019」への感謝とお願い:Qiita(42)

日鉄ソリューションは、半導体、DBからクラウドサービスまで、インフラ、フロント、バックのフルスタックエンジニア会社です。こんなすばらしい会社と、多方面で関係のある私は、フルスタックエンジニア(論理回路設計、通信設計・施工からWEBデザインまで。RDB除く)です。

まとめの前に

フルスタックエンジニアと呼んでいる人には、 

ハードウェアも含む、フルスタックエンジニア 
インフラのハードウェアすべてを網羅するフルスタックインフラエンジニア
ソフトウェアだけの、フルスタックソフトウェアエンジニア 
インストールから始まるまたはインストール済みのクラウドサービス上の、フルスタックインストール(済)ソフトウェアエンジニア
主にWEBまわりだけのフルスタックWEBインストールソフトウェアエンジニア 
特定のOSのインストールだけの、Windowsフルスタックインストールソフトウェアエンジニア 
のおおまかに 六(七)種類わけてみた。 

相手が、どの部分集合かを見分ける方法は、上の項目をいくつか質問してみれば簡単なのかもしれない。 

参考資料

フルサイクルエンジニアになろう

プロセスでみようが、技術でみようが、さほど違いはないんじゃないでしょうか。 
「フルサイクルエンジニアになろう」で、技術が個人でプロセスはチームも加えているのは一面的な視点であり残念かもしれません。 
個人でみて、チームで見て、組織全体で見るという3つの視点がないと、偏った判断になっていないでしょうか。

サイクルといっているが、ソフトウェアに限定しているのはなぜでしょう。 

FPGAに始まり、ソフトウェア技術者が論理回路を容易に設計できるようになり、 
ハードウェア技術者が、C言語プリプロセッサ相当の機能があるVerilog-HDLで設計していれば、 
ソフトウェアで実現するか、ハードウェアで実現するかは常に検討対象ではないでしょうか。 

フルだというのであれば、ソフトウェアだけに限定していてはフルにはならないのではないだろうか。

通信プログラムを書いて、プログラムをROMにロードし、モニタを書いて、デバッグし、 
コンパイラを書いてコンパイルしてきて、フルプロセスというのであれば、 
ソフトウェアで実現するかハードウェアで実現するかの設計段階を担当したり、 
ツールを利用するのか、ツールを作るのかの判定を担当し、ツールを作る選択をすれば、ツールを作るんだし、 結果として、フルスタックエンジニア以外にはフルサイクルエンジニアはできないってことじゃないんでしょうか。 

自己参照

プログラマが知っているとよい色使い(JIS安全色)

視覚は多様なことを把握していれば、自分が見えているもので語るのではなく、 
お客様が何が見えているか、どう見えているかを確認するとよいかもしれない。 
簡単にはできないし、場合によっては永久に平行線でお互いが理解できないかもしれない。 

言語、文化、習慣が違うのに、言葉が通じるという思い込みから、 
プログラミング言語で会話するとよいことに気がつくかもしれない。

「三方よし」への三つのあり方

データサイエンティストの気づき!「勉強して仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!!

AUTOSAR 「完全に理解した」

心の貧しさ指標

この文章は、上記「心の貧しさ指標」0の文章を目指しています。
いくつかの視点がまだ欠けているような気がします。  

差し支えなければ、リンク先の記事もお読みいただき、「いいね」を押して、ご意見いただけると幸いです。いいとも思わない記事に、コメント書いても、相手に届かないというのが経験則のような気がします。

プログラマが心がけるとよい文章の書き方

カタカナ語を3つつなげると、意味不明の言葉になる典型かもしれない。 

ソフトウェアライフサイクルプロセス のように4つつなげると何者ってなるかも。 

ソフトウェアがずっと使われずに放置されている、一番多いかもしれない状況を記述していない。ソフトウェア「フル」ライフサイクルプロセスって言っていないからいいのか。

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿  20221112
ver. 0.02 表題「フルスタックソフトウェアエンジニア どこからどこまで」から「フルスタックエンジニア どこからどこまで」に変更 20221113
ver. 0.03 スタックの粒度追記 20221115
ver. 0.04 山師(鉄鉱石がどこにあるかを予測する)から始めた人には勝てない 追記 20221116
ver. 0.05 山積み図(stack chart)2つ追加 20221117
ver. 0.06 名刺代わりの技術書10選 追記 20221118
ver. 0.07 順番入れ替え 20221119

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

33
29
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
29