フルスタックエンジニア(full stack engineer)
フルスタックエンジニアといえば、ハードウェア、ソフトウェアのすべての作業をこなす資格を持ち、作業可能な人をいうと、誰にでもわかりやすい。
<この項は書きかけです。順次追記します。>
20221113追記
フルスタックソフトウェアエンジニア どこからどこまで https://t.co/BEzuwrZnE5 #Qiita @naokiakutagawaより 面白い!フルスタック再定義は居ると思ってる。フルって付けるのが良くないのかな・・
— いもいもくん (@ma_anago) November 12, 2022
ありがとうございます。フルってつけたらどこからどこまでを言わないと、フルかどうかがわからないですね。。
お互いのフルの範囲の違いを確認しないと意思は通じないかもしれない。
表題を「フルスタックソフトウェアエンジニア どこからどこまで」から「フルスタックエンジニア どこからどこまで」に変更し、少し書き足しました。
フルスタックソフトウェアエンジニアを標的にした書き込みではないからです。私は、あるときは、インフラエンジニア、あるときはデータサイエンティスト、またあるときは、ネットワークスペシャリスト、あるときはCコンパイラの専門家、そしてあるときは国際規格のEditorといいながら、名刺には、「ネットワークデザイナ」とデザイナであることを主張してきました。Qiitaで、自分が書いた記事で一番いいねが多いのは、「色使い」であることは、デザイナだと本人が思い込んでいることの表れでもあります。エンジニアの方にうまく届かないかもしれません。
ごめんなさい、
私がエンジニアと主張するのはソフトウェアエンジニアの国際規格の審議中と、インフラエンジニアとしてネットワーク管理をしているときだけです。この文章全体もきっとわかりにくいかもしれません。
ごめんなさい。
20221117追記
論点整理します。フルスタックエンジニアは、どこからどこまでを言わないと通じないよという提起に対して、
上記Tweetは、的を得た「フル」ということに焦点をあてていただき、いろいろ加筆させていただきました。
one stack engieer
two stacks engineer
three stacks engineer
four stacks engineer
...
full stacks engieer
例えば、こちらだと50 stacks積んでいます。
https://join.codecademy.com/learn/paths/full-stack-engineer-career-path/
上記分野で、自分なら,100 stacks 教えることができるような気がする人は大勢いそうな気がします。
フルスタックエンジニア どこからどこまで おまけ
https://qiita.com/kaizen_nagoya/items/dacfb76890c720e0b7f4
https://t.co/U8FhmB0Obg 自分が一週間かけて出た結論である、
— naokiakutagawa (@naokiakutagawa) November 17, 2022
鉱山を探すところからという意見を、2014年5月14日に書かれていたかたがおみえでした。勉強になります。2022年11月17日。8年後の車輪の再発明または追試(追実験)または追思考実験。
探せばあるものですね。自分が一週間かけて出た結論である、日鉄ソリューションの例で、
鉱山を探すところからという意見を、2014年5月14日に書かれていたかたがおみえでした。
車輪の再発明でした。ごめんなさい。昔の私の職業である追試(だれかがした試験を再確認のために
再現試験を行うこと)だとおもってください。
20221119追記
どこからどこまでをどう表現すればいいかがわからない人が多いかもってなった。
そこで、新企画「#名刺代わりの技術書10選 」
をしてみることにした。
名刺代わりの技術書10選
https://qiita.com/kaizen_nagoya/items/dc497dcaa5a304fc96c8
これをみれば、この人は、どこからどこまでがわかるかも。
読書記録等はこちら https://t.co/t6uG0BdP8i
— wocs2017 (@wocs2017) November 19, 2022
目次
フルスタックエンジニア
・20221113追記
・20221117追記
・0221119追記
目次
まとめに代えて
stack (積み重ね)
・お客様視点
・・立場の違いによって見えるものが違う
・スタックの粒度
・・ソフトウェアの粒度
・・インフラの粒度
・・データの粒度
フルスタックインフラエンジニア
フルスタックソフトウェアエンジニア
・フルスタックソフトウェアインストール(済)エンジニア
・・固有名詞入りフルスタックエンジニア
・・フルスタックwebソフトウェアインストールエンジニア
フルスタックデータエンジニア
まとめの前に
参考文献
文書履歴
まとめに代えて
誰でも、フルスタックエンジニアと自称してよい。
「どこからどこまで?」って聞かれたら、
即時に
「デバイスドライバからWEBサーバまでです。データベース除きます」とかって、すぐに答えられればいい。
上記のように「データベースを除く」という感じで、粒度にも対応するとよい。
いくつか候補を書く。
「C言語からPOSIXまでです。ただし、Freestandingを除きます」
「フロントエンドからバックエンドまでです。ただし、フロントスタートとバックスタートを除きます」
みたいに、除く方は、相手が知らなさそうな単語を入れるのをお勧めしようかなって思うんです。
そんな技術分野があるかどうかはどちらでもいいのです。除くんですから説明できなくていいのです。
もうちょっと、現実味をもたせたい方にお勧めなのは、
「フロントエンドからバックエンドまでです。ただし、ネットワークを除きます」です。
フルスタックエンジニアと自称される方で、ネットワークエンジニアにはお目にかかったことがあまりないかも。
「完全に理解した」という言葉が、初心者を表すように、
「フルスタックエンジニア」が初心者を表すという主張ではありません。
初心者と誤解されないようにするには、「どこからどこまで」と「何を除く」かを瞬時に言えるようにしましょうというお誘いです。
stack (積み重ね)
電子計算機では、
サーバ
スイッチィングハブ
電源(ups)
と言う感じで積み上げてシステム構成する系は、空間、ケーブル長、設置時間などの節約になる。
ソフトウェアでも、デバイスドライバ、OS,プログラミング言語、ネットワークプロトコル、サーバなどを、同じ方法で積み上げれれば、維持管理は簡単に出来る。
どちらも壊れたら交換で治るもうな構成を考える。
お客様視点
お客様視点でお話するといいかもしれません。
お客様のお話の文脈では、フルスタックエンジニアは、どこからどこまでを担当する人を指しているか。
課題は、お客様の組織でも、直接担当する部門と、契約する部門と、お金の支払いをいただく部門で、フルスタックエンジニアの範囲が違えば、それぞれの部署がわかるような注釈を入れる必要があるかもしれません。
「フルスタックエンジニア どこからどこまで」の文章は、お客様に説明するときに役立つようなまとめにすることを目標にします。お客様に選んでいただけるような選択肢をお示しするような感じ。
立場によって見えるものが違う 仮説
https://qiita.com/kaizen_nagoya/items/f89445950d898a96de88
立場の違いによって見えるものが違う
立場1(左)から見ると、全体はAで、色は黄色(薄い色)、Bは中心の部分で色は黄緑(濃い色)
立場2(右)から見ると、全体はBで、色は空色(やや薄い色)、Aは中心部分で色は黄緑色(濃い色)
立場が違えば、集合関係も違うように見えるかもしれないし、色も違うように見えるかもしれない。
HAZOP 質疑応答編&記録編(3.6a) Safety and Security https://www.slideshare.net/kaizenjapan/hazop-tokyo201809 p.174「立場の違いによって見えるものが違う」の資料は、三次元のA、Bを二次元表記したものです。全体像は、横から、左下は左から、右下は右から見た像の二次元表記です。屈折率等を考慮すると、下の左右の中心像はもっと大きくなるというご指摘をいただいています。三次元描画ソフトでこの資料を作成してくださる方を募集しています。
スタックの粒度
ソフトウェアの粒度
C言語で開発する場合には、POSIXを挟んだスタックになっている。
C言語教育はCコンパイラの写経で
https://qiita.com/kaizen_nagoya/items/088a9906797559cd8b8a
C言語は直接CPU叩くことも可能です。割り込みがあるCPUであれば、割り込みを呼び出すのも手でしょう。
C言語規格はPOSIX規格と相互関係を持った規格だという印象が伝われば十分です。
ただし、フルスタックC言語エンジニアといいたければ、Freestandingの経験がないとうれしくないでしょう。
こんな感じで、スタックを細かくしていくと、フルの人はほとんどいなくなるかもしれません。
インフラの粒度
インフラで粒度を細かくし、発電を含むと、危険物取り扱いが必要かもしれない。
大学の電気工学の研究室には、発電、送電を扱う強電の研究室と、電話、通信の弱電の弱電がある。
また、大学には、理論系の研究室と実験系の研究室がある。私の卒業研究の研究室は、原子炉などを扱う現代制御理論の研究室だが、理論系で、実験は論理実験で計算機を使うだけだった。
そこで、強電系の資格は一切撮っておらず、通信系の資格だけだ。
原子炉の制御と、ロケットの制御と、モータの制御と、通信網の制御を、同じ現代制御理論で解く。私は卒業研究ではFortranでプログラムを書いたたけだ。博論の通信網に関する研究では現代制御理論は使わずに、引き算だけを使った。
インフラエンジニアで、フルスタックのインフラエンジニアは、自分のまわりでは100人に1人くらい。上にも書いたように、強電の研究室出身で、通信を分析対象にし、結果として強電のブラックアウト対策の測定に使えないかという引き合いがあったことがある。
ある通信会社では、土木の次に強電が強く、そのついでに通信の資格を取ってしまう人もいる。
資格マニアと呼ばれるか、いろいろな部署の責任者になり、最後は工場長になるかかもしれない。
データの粒度
確率・統計を
生物学(生命科学)
経済学(社会科学)
としか分解しないのはどうよ。
科学三分類・四分類・五分類と算譜(program) 仮説(93) 統計と確率(7)
https://qiita.com/kaizen_nagoya/items/a2f2b9cc3a51b6af7603
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)
https://qiita.com/kaizen_nagoya/items/ee5fa7b2a7f7c2b450d4
生物学(生命科学)
経済学(社会科学)
確率・統計
プログラミング・機械学習
根気か財力か理想
この5つをスタックだと思い、フルスタックデータエンジニアはどれだけいるだろうか。
DataRobotという機械学習のソフトを作った人たちよりも、
日鉄ソリューションの山師(どこに鉄鉱石があるかを予測する人たち)の方が、
データサイエンティストのコンテストで上位だったとのこと。
ビッグデータ分析のコンペティションで世界第2位
https://www.nssol.nipponsteel.com/press/2015/20150715_110000.html
DataRobotを展開するにあたり、資料について意見を述べさせていただいています。
事例である現代制御理論の方程式だけで制御するよりDataRobotのデータ解析によるパラメータチューニングが有効であることは、当方の経験とも整合があり、大事な仕組みだと親会社をはじめ関係者の方にお伝えしたことがあります。
フルスタックエンジニア どこからどこまで - Qiitaそらおめぇ鉄鉱石掘る所からに決まってるやろ(本文読んでない
2022/11/14 12:10
おしい。鉄鉱石掘る前に鉄鉱石がどこにあるかを予想するところからやっている人には勝てません。
人によって、どこからが、違うことの例として参照させてください。
日鉄ソリューションについての記事はこちら
@t_nakayama0714「Qiitaのいろいろランキング2019」への感謝とお願い:Qiita(42)
https://qiita.com/kaizen_nagoya/items/40b8557a20e8d75d62b5
日鉄ソリューションは、半導体、DBからクラウドサービスまで、インフラ、フロント、バックのフルスタックエンジニア会社です。こんなすばらしい会社と、多方面で関係のある私は、フルスタックエンジニア(論理回路設計、通信設計・施工からWEBデザインまで。RDB除く)です。
まとめの前に
フルスタックエンジニアと呼んでいる人には、
ハードウェアも含む、フルスタックエンジニア
インフラのハードウェアすべてを網羅するフルスタックインフラエンジニア
ソフトウェアだけの、フルスタックソフトウェアエンジニア
インストールから始まるまたはインストール済みのクラウドサービス上の、フルスタックインストール(済)ソフトウェアエンジニア
主にWEBまわりだけのフルスタックWEBインストールソフトウェアエンジニア
特定のOSのインストールだけの、Windowsフルスタックインストールソフトウェアエンジニア
のおおまかに 四 六(七)種類わけてみた。
相手が、どの部分集合かを見分ける方法は、上の項目をいくつか質問してみれば簡単なのかもしれない。
参考資料
フルサイクルエンジニアになろう
https://qiita.com/m-chika/items/5e1d6291a53c3cda3371
プロセスでみようが、技術でみようが、さほど違いはないんじゃないでしょうか。
「フルサイクルエンジニアになろう」で、技術が個人でプロセスはチームも加えているのは一面的な視点であり残念かもしれません。
個人でみて、チームで見て、組織全体で見るという3つの視点がないと、偏った判断になっていないでしょうか。
サイクルといっているが、ソフトウェアに限定しているのはなぜでしょう。
FPGAに始まり、ソフトウェア技術者が論理回路を容易に設計できるようになり、
ハードウェア技術者が、C言語プリプロセッサ相当の機能があるVerilog-HDLで設計していれば、
ソフトウェアで実現するか、ハードウェアで実現するかは常に検討対象ではないでしょうか。
フルだというのであれば、ソフトウェアだけに限定していてはフルにはならないのではないだろうか。
通信プログラムを書いて、プログラムをROMにロードし、モニタを書いて、デバッグし、
コンパイラを書いてコンパイルしてきて、フルプロセスというのであれば、
ソフトウェアで実現するかハードウェアで実現するかの設計段階を担当したり、
ツールを利用するのか、ツールを作るのかの判定を担当し、ツールを作る選択をすれば、ツールを作るんだし、 結果として、フルスタックエンジニア以外にはフルサイクルエンジニアはできないってことじゃないんでしょうか。
自己参照
プログラマが知っているとよい色使い(JIS安全色)
https://qiita.com/kaizen_nagoya/items/cb7eb3199b0b98904a35
視覚は多様なことを把握していれば、自分が見えているもので語るのではなく、
お客様が何が見えているか、どう見えているかを確認するとよいかもしれない。
簡単にはできないし、場合によっては永久に平行線でお互いが理解できないかもしれない。
言語、文化、習慣が違うのに、言葉が通じるという思い込みから、
プログラミング言語で会話するとよいことに気がつくかもしれない。
「三方よし」への三つのあり方
https://qiita.com/kaizen_nagoya/items/ad4ffd6d8a4045d1117a
データサイエンティストの気づき!「勉強して仕事に役立てない人。大嫌い!!」『それ自分かも?』ってなった!!!
https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07
AUTOSAR 「完全に理解した」
https://qiita.com/kaizen_nagoya/items/51983798ad7902b33cb1
心の貧しさ指標
https://qiita.com/kaizen_nagoya/items/da042f7538a80b7ca606
この文章は、上記「心の貧しさ指標」0の文章を目指しています。
いくつかの視点がまだ欠けているような気がします。
差し支えなければ、リンク先の記事もお読みいただき、「いいね」を押して、ご意見いただけると幸いです。いいとも思わない記事に、コメント書いても、相手に届かないというのが経験則のような気がします。
プログラマが心がけるとよい文章の書き方
https://qiita.com/kaizen_nagoya/items/af1e6207ccaa063dafb8
カタカナ語を3つつなげると、意味不明の言葉になる典型かもしれない。
ソフトウェアライフサイクルプロセス のように4つつなげると何者ってなるかも。
ソフトウェアがずっと使われずに放置されている、一番多いかもしれない状況を記述していない。ソフトウェア「フル」ライフサイクルプロセスって言っていないからいいのか。
Reference
Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794
Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0
線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001
C++ Support(0)
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514
Coding Rules(0) C Secure , MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0
Autosar Guidelines C++14 example code compile list(1-169)
https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76
Error一覧(C/C++, python, bash...) Error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2
言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4
プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
LaTeX(0) 一覧
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
Rust(0) 一覧
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927
小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
文書履歴(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.