fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

エンジニアのキャリアで参考になる書籍、ブログ、記事、映画やドラマの一覧

キャリアに関する記事やブログで、参考になったものをまとめています。

エンジニアのキャリアの方向性(クックパッド 舘野さん)

techlife.cookpad.com

ポイント

記事の中で、エンジニアのキャリアを大きく3つに分類している。

1.経営者(CTOなど)・技術マネージャ
様々な技術の知識やマネジメント力があるからこそ、組織にあった技術戦略を考え、会社や社員を導き育てる人

2. 技術スペシャリスト
歳を重ねても技術を吸収し磨き続け深い知識があるからこそ、活躍できるエンジニア

3. サービススペシャリスト
ユーザに向けてアプリやサービスなどを提供し続けるエンジニア。技術もできるが、その技術をエンドユーザの価値に直接結びつけられる人。

その中でキャリアを考える指針として、

まずは自分が興味ある技術に打ち込んで伸ばす
30歳前後で強みを活かしつつ、どんなキャリアを歩むかを考える
その時にプライベート(家庭など)を含めた自分の状況を考えることも大切
上記3つを複合的に満たしている、
第一線でエンジニアとして活躍している6人の方のインタビュー記事へのリンクあり。

個人的な学び

個人的には、3. サービススペシャリストに軸足を置き、キャリアを構築していきたい。


最先端のWebエンジニアのキャリア(クックパッド 宮川さん)

gihyo.jpgihyo.jp

ポイント

キャリアプランは事前に考えたものではなく、都度最善を選択するという「でたとこ勝負」であるとのこと。スティーブジョブスの点と点が繋がる話を思い出しました。下記の転職する際に考えていることが個人的には響いた。

どの技術をやるのかは,転職を考えるうえでは二の次ですね。一番は自分の能力をどう会社に還元でき,どう世の中にインパクトを与えられるのか,そして働く環境からいろいろなものを吸収できるかですね。技術も重要でないことはないけど,一番ではないです。

あと、数学とCSと英語はやっておけよ!という話も。

個人的な学び

転職で大事なことのうち下記の視点は忘れないようにしたい。

  • どう成果を出していけるかを明確に描けるか?
  • 技術的なことを含めて、様々な物事を吸収できる環境に身を置けるか?
  • 記事には出てこないが、将来的に手に入る金銭的な利益を最大化するにはどうすれば良いか?
  • 携わる製品・サービスに価値を感じるか?(価値を感じないとやる気が出ず、成果や成長に影響する)

「幸せな受託開発」とは(ソニックガーデン 野上さん)

http://www.atmarkit.co.jp/ait/articles/1504/27/news001.html


文系からエンジニアになって転職し続けたおっさんがその後どうなったか

SIer村を出て自社サービスに行った、若いエンジニアの末路

やさしいIT業界の説明書と攻略法(特にWeb・アプリ系)

qiita.com


シリコンバレー

www.youtube.com
シリコンバレーでエンジニアが大成功を収めようとする爆笑コメディドラマ。
Huluの紹介文では、

新興ハイテク会社と、それを儲かる大企業に押し上げようと奮闘するオタクな若者たちのクレイジーな世界を描く。エピソードごとに、内気なプログラマーのリチャードは徐々に成功への階段を上っていく。

※2018年3月25日でHuluでの配信が終了し、Amazon Primeでの配信に移行。

初っ端で出てくるぽっちゃり、なんちゃって投資家が着ているTシャツで笑う。

I know H.T.M.L。

で、まず笑った後、その下に書かれているお下品なキャッチコピーにも。よく考えるなぁ...
お笑い、おバカだけでなく、エンジニアにとって示唆の多い作品なのでオススメ。

イイ奴で、役立たず。

Amazon Prime
http://amzn.asia/d/f8IxoJM

年収1200万円の高額オファーを獲得したエンジニアがお薦めする5つの業務経験

www.youtube.com

要約

  • バックエンドエンジニア向けの業務経験。手を動かすにフォーカス。
  • フロントやスマホ、技術以外のCTO経験やグロースは含まない。

5つの業務経験

  • その1.大量アクセスを捌く

 儲かる企業で働くことで年収が高くなる。
 儲かる企業はユーザーが多く、アクセスする人数が多い。
 
 具体的な技術は、
 サーバーのオートスケール、キャッシュの有効利用、メッセージングによる非同期処理、
 データベースの負荷分散、インデックス最適化、クエリチューニングなど
 

  • その2.大規模データを扱う

 ユーザーが多い企業で、データを「効率的に蓄積する方法」と「有効に活用する方法」を学ぶ。
 
 具体的な技術は、
 Fluentdによるログの集積、BigQueryやTreasureData等による分析基盤の構築、
 Spark等の「分散データ処理フレームワーク」の活用、
 Airflow等の「ジョブフロー制御ツール」の活用など
 

  • その3.難易度の高い言語による開発経験

 大量アクセスを捌くには。速度と安全性が重視され、
 コンパイル方式の静的型付け言語(静的型付け言語、静的型付け関数型言語)が選ばれることが多い。
 
 例えば、
 Go言語は需要が高まっており、有効な選択肢。
 関数型では、Scalaがアドテク系企業でよく使われるようになってきている。
 

  • その4.アーキテクトの業務経験

 インフラ全体の設計
 ネットワーク設計、データベースの選定や設計、APIサーバーの構成の決定など
 実装部分の設計
 開発言語、フレームワーク、テストフレームワークディレクトリ構成、基盤コード実装など
 保守・運用では身につかないため、規模の大きな新規サービス開発の経験をしておくべき
 

  • その5.DevOps系の業務経験

 DevOpsとは簡単にいうと、新規開発と保守運用の両輪を回していくこと。
 システムを安定稼働させたまま、あたらしい機能をリリースするための様々な技術や知見を持つ。
 継続的インテグレーション(CI)、継続的デリバリー(CD)などを適切に行う。

 具体的な技術は、
 コードがGithubにpushされたタイミングでCircleCI等のCIツールでビルドとテストを自動実行
 CIツールから自動デプロイを行えるようにして、オペレーションミスを防止
 新規デプロイで問題発生時に、簡単な操作でロールバックを行えるようにするなど。
 
 さらには、インフラのコード化。Terraformなども。動画にはなかったが、Bugsnagなども。
 下記を参照のこと。
 DevOpsを実現する11の要素 | tracpath:Works

プログラミングが大好きなWeb系エンジニアの50代以降のキャリアに関する考察

プログラミングが大好きなWeb系エンジニアの50代以降のキャリアに関する考察