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

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

   

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ではプロのコンサルタントが案件をお探しします

  関連記事

今夜が頑張り時のエンジニアのために。徹夜しても生産性を落とさない10のコツ

「徹夜したくないけど、今日は避けられない」というあなたに まず前提として、徹夜はすべきではありません

フリーランスがコワーキングスペースを利用するメリット・デメリットとは?

【関連リンク】 ❏誰でもできる!フリーランスとして長期的に成功するための10のコツ ❏フリーエンジニ

コスパ最強ラップトップ

エンジニア的コスパ最強laptop3選

どうもどうも。 「3度の飯より価格コム」で同じみの私です。 PC買う時ってすごい迷うよね。 CPUの

フリーエンジニアに名刺は必要?

仕事をする上で名刺は欠かせない、名刺はビジネスマンとして当然持っておくものだ、そんな風に思っている方

Javaアプリケーションのパフォーマンスを(ほぼ)自動的に上げる方法

Javaアプリケーションのパフォーマンスを(ほぼ)自動的に上げる方法

コードを書き換えずに簡単な手順をいくつか踏むだけで、複雑なJavaアプリケーションを10%以上スピー

【カテゴリ別】海外エンジニアたちに人気の英語Techメディア・Techブログ50選(2016年版)

    日々目まぐるしい速さで変化していくIT業界。特にエンジニアという職種にお

広告あるある 〜第一弾〜

by Klearchos Kapoutsis こんにちは、今回はネット広告について、あるあるを書きま

生まれてから100種以上に騎乗してきた僕が選ぶ本命ワーキングチェア。

どーも!こんにちは! 最近よく目にする「iPadのCM」の最後に出てくる都市、ベトナムはホーチミンで

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

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

CSSで縦書きに挑戦!writing-modeを使ってみた

「CSS Writing Modes Level 3」がW3Cの勧告に至ったことで、CSSの縦書きが