フルスタックエンジニアを目指すには。

  • このエントリーをはてなブックマークに追加

      2020/08/31

3104022979_0f3418c994_z
by Shunsuke Kobayashi

習うより慣れろと言うことわざがありますが、
エンジニアであればそれは100の理論より1の実践。
フルスタックで有ろうが無かろうが
実際に動かし、自身の手で実感をつかみ取らねば成長できるはずがありません。

では、具体的に何を実践していけばフルスタックエンジニアへの一番の近道になるでしょうか?

本来フルスタックエンジニアに近道なんて物はありませんが、
下記キー要素を抑えておけば習得スピードの加速度は間違いなく着くはずです。

Amazon Web Services(AWS)

いわゆる『クラウド』をまず第一に抑えておくべきでしょう。
世の中にクラウド基盤は数多く存在し、必ずしもAWSで無ければ行けない訳ではありません。
ただし、AWSがデファクトスタンダードになっていることも事実であるため、
まずはAWSを抑え、周辺クラウドサービスを比較していくのがいいかと思います。

さて、実はこのAWS、『完璧に』操れるのであればその瞬間フルスタック完成です!
脇目も振らずにAWS全サービス使いまくり全てを把握していけばいいんですが、、、
まぁ無理でしょう。基礎知識なければAWSは使いこなせません。

まずはAWSの中でもこちらを使用してみて下さい。

  • EC2でLinuxAMIインスタンス起動し、
  • RDSでMySQLを起動、
    (お名前.comか何かでドメイン取得した上で)
  • Route53でドメイン、サブドメインを設定し、
  • S3に適当な画像をアップしてみて
  • CloudFrontでS3と連携、
  • そしてELBで2台のEC2を設定してみる。

これら一通りできましたら、まずはAWS初心者卒業と言う所でしょうか。

上記のうち特に重要と言えるのは、ELB=Elastic Load Balancingです。
(と、本当はVPCも重要なのですが、今回は割愛します)

ELBがなぜ重要なのか?
ということで次の単元に移りましょう。

Apache

数あるミドルウェアに置いて、何を筆頭に持ってくるかと問われたら
まずはWebサーバであるApacheでしょう。

本当は企業システムにとって最重要要素である「データ永続化」ミドルウェアであるRDB(及びSQL)も取り上げたいのですが、
フルスタックエンジニアとしての重要度⇔Webシステムとしての重要度ではWebサーバの方が重要です。

何故か?

可用性向上の切り札であるReverseProxy機能があるからです。
ReverseProxyとして背後のサーバ群を隠蔽化することで初めて、
負荷分散やフェイルオーバーを実現することができるようになるのです。

なお、このReverseProxy機能を特化しクラウドサービスとした物が、
前述のELBということになります。
卵と鶏の関係ではないですが、クラウドを使いこなすには基盤技術を抑えていなければ行けない訳ですね。

さて、ReverseProxy以外に重要な機能としては、

  • VirtualHost
  • アクセスログ

も是非忘れないで下さい。
アクセスログは放っといても勝手に出ますが、これを極めてみるのも非常に面白いですよ。
(LTSV形式で出力→Fluentd→S3&Hadoop/Redshift/BigQuery/Treasure Dataで解析、とか)

プログラム言語

最後になりましたが、実は最も重要な技術。
JavaでもPerlでもRubyでも何でも構いませんので、
最低一つの言語は「エキスパートである」と自信を持って言えるようになって下さい。

一つを抑えておくことで、他の言語には応用が利くようになります。
(特にO’Reillyのクックブック系シリーズは、この応用を利かすための専用本と言う位置付けで出版されています)

「エキスパートである」ためには書けるだけではダメです。
所謂コードリーディング、色々なオープンソースの中身を見て、是非ともその設計思想に触れて下さい。
デザインパターンがなぜ重要なのか?
フレームワークのソースにその答えが書いてあります。
(Javaでしたら是非Tomcatのソースを読んでみて下さい!)

終わりに

上記3点のキー要素を挙げましたが、これらだけでは到底フルスタックとは呼べません。
(特にネットワーク技術&セキュリティ技術が上記ではまるで抑えられません)
ただし、冒頭にも書きました通りこれらを抑えることで
エンジニアに取って何が重要なのか、そのポイントをある程度は抑えられるのではないでしょうか?

まず実戦し、スクラップ&ビルド繰り返しながら手で実感した上で、
周辺技術に視野を広げながら技術の『すり合わせ』に是非トライしてみて下さい。

フルスタックはその先にきっと待っています。

 -Tech, ビジネス, プログラミング

FAworksではプロのコンサルタントが案件をお探しします

  関連記事

プログラマ35歳定年説に代わる【フリーランスプログラマ40歳定年説】

フリーランスプログラマ40歳定年説!実際の現場はどうなのか?

【関連リンク】 ❏プログラマが20代のうちにやっておきたい11のこと ❏若造に負けてられるか!年齢不

実は午前中は仕事してない?!エンジニアあるある

実は午前中は仕事してない?!エンジニアあるある

どの職業にも「あるある」はあると思いますが、今回は普通の人にはなかなかわかってもらえないであろう、エ

NGINXのスレッドプールがパフォーマンスを9倍にする!

NGINXのパフォーマンスをスレッドプールで9倍にする

はじめに NGINXが接続処理に非同期かつイベント駆動のアプローチを用いていることは、よく知られてい

Dockerコンテナのためのテスト戦略

Dockerコンテナのためのテスト戦略

おめでとう!あなたはDockerイメージの作り方を知っていて、わかりやすいアプリケーションで複数のコ

これから必ず伸びる!最低限抑えておきたい技術トレンド3つ(2015年度版)

※この記事は2015年度版です。最新の技術トレンド情報は下記の記事をご覧ください。 『「AIって何?

これでもうコーディングに集中できる!デスクで暑さ対策グッツ7選

あっという間に夏も後半ですが、まだまだ暑い日が続きますね。 コーディングに集中したくてもなかなか暑く

未経験からフリーエンジニアになるためのポイント

【関連リンク】 ❏フリーエンジニアに必要なプログラミング以外のスキル ❏フリーエンジニアの仕事にはど

LL系カンファレンスの歴史

WEBエンジニアの祭典!LL系カンファレンスの歴史

例年夏から秋にかけて開催されているLL(lightweight language, 軽量プログラミン

PHPエンジニアのキャリアパスと年収の遷移モデル

PHPはWeb開発言語の中でも、1995年から人気が衰えない言語です。主に動的なWebページ制作等に

フリーランスプログラマが常駐案件について知っておきたいこと

【関連リンク】 ❏フリーランスエンジニアとして働くなら目指したいリモートワーク ❏フリーランスプログ