Link and Motivation Developers' Blog

リンクアンドモチベーションの開発者ブログです

【Webエンジニアど素人】が【3〜4年生】くらいになったら読むといい本を目的別にまとめた

これってなんなの?

【ど素人状態=社会人になって初めてプログラミングを勉強したぜ!(特に新卒)】でスタートした方々が【3年生】ぐらいになったら読むと良い本まとめです。

「どんな目的で学ぶか?」*「職種(バックエンド/フロントエンド/SRE・インフラ/データエンジニア/どの職種のエンジニアも)」で整理しました。

「【Webエンジニアど素人から3年生ぐらいになるまでに読むと良い本】を段階的にまとめた」の続編です。少しでも皆さまの学びと成長に貢献できると幸いです。

”Webエンジニアど素人が、3〜4年生くらいになったら読むといい本”の段階的まとめ(一部外部記事あり)

バックエンドエンジニア

「より整理・洗練されたコードに改善できるレベルになろう!」

「複雑なドメインに対する基本原則を理解して設計できるレベルになろう!」

 

アーキテクチャを考えられる、理解できるレベルになろう!」

フレームワークに頼るだけでなく、今一度、仕組みから学び直そう!」

「DB設計、パフォーマンスチューニングの知識を見直そう!」

フロントエンドエンジニア

「ブラウザの仕組みを理解して、パフォーマンス改善できるレベルになろう!」

「デザインのことも理解して、UI/UXを継続的に改善できるレベルになろう!」

「今一度、JavaScriptを言語仕様、お作法から理解するレベルになろう!」

インフラ・SREエンジニア

「SREの使命は?を理解しよう!」

「柔軟かつ迅速に対応できるシステムインフラを実現するための知識を身につけよう!」

「ハイパフォーマンスを実現するケイパビリティを理解し、実践できるレベルになろう!」

「今一度、ネットワークの基礎を学び直そう!」

「今一度、体系的にOS・クラウドの基礎を学び直そう!」

どの職種のエンジニアも

「前例としてどんなキャリアがあるのか?も知って、今一度自分自身と向き合って、改めて楽しく目的・目標を設定しよう!」

「ソフトウェア品質の全体像、対策を理解したレベルになろう!」

「テストも一体化したソフトウェア開発を実現しよう!」

「品質をビジネスと繋げて理解しよう!」 *QAエンジニアの人だけでもいいかも

「不確実性を見える化するプロジェクト管理の基礎を理解しよう!」

「正確に要求を分析できるレベルになろう!」

おまけ:データエンジニア、データサイエンティスト(ここは1年目に読んだ方がいいものも混じってますmm)

ビッグデータの使い所、各ミドルウェアの分類などを把握するレベルになろう!」

「データサイエンスの実践的な技術を身につけよう!」

機械学習って何が実現できるのか?の基礎知識を身につけよう〜機械学習を深堀ろう!」

自然言語処理に関連する動向をキャッチアップしよう!」

補足

弊社都合で、DBはMySQLクラウドAWSだけを対象にしています。

対象読者

動くものは作れるようになった!! が・・・

  • あれ?後輩に説明ができない…
  • データが増えたら急に動かなくなる…
  • ファイルサイズが大きくなると動かない…
  • 調査しようとしたらログが追跡できない…
  • TOIL多いよ…
  • リリースするたびにエラーが生じる…うんざり…
  • 1つ共通の処理を追加したいが、変更が多岐に渡りすぎる…
  • 何が足りなくて何を得ればいいのか、どの技術領域を学べばいいのか…
  • “簡単に”作ってという言葉にイラつく…

などなど・・・という経験をしたことのある方もいらっしゃるのではないでしょうか。「ただ動くもの」と「いいもの」「使えるもの」「誇れるもの」とのギャップ。そういった方々に少しでも学びと成長になることを願っています。

仲間への想い

昔も今も尊敬している人に「インプットの質はアウトプットの質で決まる」(Goal-setting)と教わりました。何かを読む際にはどんな目的で読むのか、どんな行動をしたくて読むのかを設定して読むと効果が高まると考えています。

また、技術書紹介の中で矛盾するかもしれませんが、

実際のところ、ソフトウェア開発上の問題の多くは、技術的というより社会学的なものである。

つまり、技術は大事、でも問題の多くは組織・人間系が原因であるという視点、そして、技術の先にある目的(お客様の問題解決・願望の実現、成し遂げたいこと・貢献したいことなど)も大事にしていきたいと思っています。これらをORではなくANDで考えられるエンジニアになって欲しいと思っています。

 

最後に

3年〜4年目くらいですと、ご自身の興味や向き不向き、キャリアに対するお考えを元に、ある程度領域を絞って専門性を磨いている/磨こうという方が多いのではないでしょうか。

「新卒の子にどこまで勉強すれば良いですかね?と聞かれた件」の記事でもおっしゃっているように、分野や職種は以下のように5つあったり、

  • Application Engineer
  • Infrastructure Engineer
  • Database Administrator
  • Security Engineer
  • Technical Program Manager

「ITエンジニア職種一覧・種類と仕事内容を解説」 などでは、片手では数えられないぐらい細分化しています。

今回の記事で分類した職種、役割は、弊社の状況に合わせた内容かつ、一部であるため、一般と合っていない所があるかもしれません。組織の規模やステージにもよると思いますが、多くのソフトウェア企業でも共通して存在する職種だと思うので、何か1つでも助けになればと思います。

日々新たな技術や分野が誕生し、学び続けることは大変だという壁に当たっている方もいらっしゃるかもしれませんが、楽しみながら学んでいきましょ〜!

「これを知る者はこれを好む者に如かず。これを好む者はこれを楽しむ者に如かず」孔子論語

(何かを知っているだけという人は、それを好む者には負けてしまう。好きだ、という人は楽しむ人には及ばない。という意味)

メリークリスマス🎅🤶

 

※2020年12月19日にQiitaへ投稿した記事の転載です