フルスタックエンジニアという言葉を聞くようになって久しい気がしますが、フルとか全部入り、とか大盛って言われると何が入っているんだかわからなくなります。
そこで今回はフルスタックエンジニアって言われるためには何が必要か測定してみました。
結論 17 cm ぐらいでした。¶
エンジニアにとって量とは知識量ですね。知識量は紙の量で測定できます。そこで単純に各レイヤについてまぁこれかなぁという書籍を積み上げてみました。物差しで測るとおよそ17cm でした。一番上にあるのが一番厚そうでかつレイヤを無視しているような気がしますが、一旦無視します。この本がなんで乗っかっているかについては後述します。
物理・仮想化レイヤ¶
現在では、物理のサーバやら、ネットワークについては仮想化もしくはクラウドを利用することが多いのではないでしょうか。 そこで一番下にはクラウド、特に市場でリーダーシップと評判の AWS 本を積んでみました。いくつか AWS 本と呼ばれるものが出版されていますが、今回は最近出版された 「 Amazon Web Services エンタープライズ基盤設計の基本」という本を積んでみました。
著者の堀内さんは AWS のエバンジェリストとして活躍されていた方です。AWS の基本的な内容について手堅くまとめてきた感じがします。
しばらく放浪の旅に出ていたようですが、お元気で何よりです。
「 Amazon Web Services エンタープライズ基盤設計の基本」
https://www.nikkeibp.co.jp/atclpubmkt/book/18/269140/
OS レイヤ¶
OS(オペレーティングシステム) については、「 [試して理解]Linuxのしくみ~実験と図解で学ぶOSとハードウェアの基礎知識 」をチョイスしてみました。著者の武内 覚さんは難しいことを非常に平易な言葉で簡潔に説明するという稀有な才能の持ち主です。普段それほど気にすることのないかもしれない、プロセススケジュールやメモリ管理などの仕組みについて理解しておくこともフルスタックエンジニアとしては大事ではないでしょうか?
「[試して理解]Linuxのしくみ~実験と図解で学ぶOSとハードウェアの基礎知識」
http://gihyo.jp/book/2018/978-4-7741-9607-7
コンテナレイヤ¶
レイヤなのかという気もしないではないですが、最近はアプリケーション/ミドルをコンテナに押し込むことが流行っていますね。このレイヤとして、「Docker/Kubernetes 実践コンテナ開発入門」をチョイスしてみました。
「Docker/Kubernetes 実践コンテナ開発入門」
https://gihyo.jp/book/2018/978-4-297-10033-9
個人的にこのレイヤはあまり得意ではないので、ちゃんと勉強したいと思います。
低レイヤ¶
「低レイヤ」ってレイヤなのかっていう気もしますが、仮に置いておきます。文字通り「低レベルプログラミング」という本をチョイスしてみました。別にプログラムの書き方が下手なわけではなくて、Cやアセンブラなど比較的ハードウエアに近いレベルのプログラミングですね。
この領域を丁寧に説明した書籍はあまり多くはないので、フルスタックエンジニアとしてはご一読をお勧めします。
「低レベルプログラミング」
https://www.shoeisha.co.jp/book/detail/9784798155036
高級言語レイヤ¶
ここはいろんなチョイスがあるところかと思います。ぱっと思いつくだけで、PHP、JAVA、Python、node (Javascript)、golang... など。
SQL 等もこのグループに入ると思います。
今回は「Python言語によるプログラミングイントロダクション第2版」をチョイスしてみました。理由は最近 Python はやっているなぁという主観的なものと、言語を超えたプログラミングという視点から、入門者向けの話題をよく整理されて提示されているなぁという個人的な感想からです。もちろん異論はいろいろあると思います。
入門書で機械学習まで触れているところは今どきですね。
「 世界標準MIT教科書 Python言語によるプログラミングイントロダクション第2版 ―データサイエンスとアプリケーション 」
https://www.kindaikagaku.co.jp/information/kd0518.htm
フロントエンドレイヤ¶
フロントエンドの世界はいろいろ言語、ミドル、デバイスともにいろいろありすぎて、個人的には非常にカオスな感じがしています。用途やアプリケーションによっても変わってくるので何とも言えませんが、とりあえずこれぐらいできればいいかなぁというあいまいな感じで「Angular2 によるモダンWeb開発」を選んでみました。
このレイヤは JavaScript 独り勝ちな感はありますが、フレームワークやら、ミドルやらが入り乱れていて百家迷走していますね。とりあえずエイヤって感じです。
「Angular2によるモダンWeb開発 TypeScriptを使った基本プログラミング」
https://www.nikkeibp.co.jp/atclpubmkt/book/17/P96530/
なぜおまえが..........¶
そう、一番上にのっていて一番厚い、熱いこの本です。しかもタイトルに関係なく一番上に載っています。最初にフルスタックってこれぐらいかなぁって積み上げた時には、これぐらいでした。
大体 13 cm ぐらいでしょうか?
ところがこれをもって社内を回って意見を聞いたところ、「セキュリティについてはいいの?」とか「ARM とかほかのアーキテクチャについてはいいの?」などの意見が寄せられ、なぜかこの本を乗っけると解決しました。そう「大熱血! アセンブラ入門」です。
この本を乗っけたところ、一気に17cm に達しました。一気に3割増し、全体の約25%を占めています。
様々なアーキテクチャを俯瞰し、かつセキュリティに関しても第5部で実際の解析例を交えて解説している稀有な書物です。
時代の変化とともにプロダクトは様々に変化していきますが、現在のプロダクトがどのような方式を採用していて、なぜその方式を採用しているかを理解しておけば、変動の激しいIT業界といえども、普遍的な技術を身に着けることができるのではないでしょうか。
その根幹をなす、プロセッサのアーキテクチャについて見識を得ることは、フルスタック全体について重みをもつと思います。
「大熱血! アセンブラ入門」
https://www.shuwasystem.co.jp/products/7980html/5154.html
まとめ¶
一口にフルスタックといっても、業務やプロジェクトの特性によってスタックに積まれる内容は様々だと思います。例えば、プロジェクトマネジメントやチームビルディングなどの管理系の話題や、DevOps 等のプロセス定義、テスト、もっと大きな視点では財務や経営、マーケティング等の業務知識、(NO)SQL等のデータ管理など求められるスタックもそれぞれの環境に合わせて変わってくるでしょう。
今回提示したのはあくまでも一つの例として、個別のスタックを積み上げる際の参考にしていただければ幸いです。
ただそれをすべて一人に負わせるとやはりスタックオーバーフローしてしまうのではないでしょうか。自分のジョブディスクリプションを適切に管理して快適なエンジニアライフを営みましょう。
以上、積読の館からでした。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?