プログラミングとデザイン、スタートアップの話

プログラミングやデザイン、スタートアップ関連についての雑記

2019年4月から新卒入社するWebエンジニアにおすすめの4冊の本

f:id:harv-tech:20190327183123j:plain

4月まで1週間を切りましたね。

「あと1週間したら社会人だ😊」なのか、「働かないといけないのか〜😫」なのか色々あると思いますが、Webエンジニアとして働く上であなたを助けてくれるだろう本を紹介します。

楽しいことも辛いこともあると思うけど、頑張ってくださいね。

エンジニアリング組織論への招待: 不確実性に向き合う思考と組織のリファクタリング

f:id:harv-tech:20190327183134j:plain

3行まとめ

  • 「エンジニアリング」という言葉がありますが、開発手法についての本ではない
  • ソフトウェア開発を業務として円滑に行うための考え方について説明した本
  • 「組織の中で」働く上で、エンジニアとしての生産性を上げるヒントが書いてある

この本について新卒エンジニアへ一言

「エンジニアとして働く=コードを書くだけ」ではありません。ソフトウェアやプロダクトを開発していく上で、チームのメンバーや上長とコミュニケーションをしたり、調整をすることも仕事です。

コミュニケーションの失敗を防いだり、期待値調整をしたり、技術的負債との向き合い方だったり色々な仕事があります(仕事というより、仕事をうまく進めていくための対策かな)。

エンジニアリングとは何か、リファクタリングとは何か、スケジュール調整のコツなどが書かれています。

引用紹介

「理学」が物理学や化学のように世の中の自然の原理を見つけて、説明していく学問であるのに対して、「工学」はそれらに依拠しながらも、「何か役に立つものを」「実現していく」学問です。エンジニアリングとは、つまるところ、「実現」していくための科学分野だといえるでしょう(中略)エンジニアリングという行為は、何かを「実現」することです。実現のために、不確実性の高い状態から、不確実性の低い状態に効率よく移していく過程に行うすべてのこと

こんな感じで仕事についての抽象的な概念も書かれています。

「リファクタリング」とは、機能を変えずにプログラムコードをわかりやすく組み替えることです。思考のリファクタリングも、「ものすごく賢くなる」ような方法ではありません。頭の中で発生してしまう無駄なプロセスを削除して、考えるときの指針をもつことで、問題解決に向かって、明確に行動ができるように促すもの


わからないことは、調べるしかない。堂々巡りの議論で時間を浪費するくらいなら、同じコストで、可能性を1つでも潰すほうが前に進みます。 ところが、「わからない」ということが、ネガティブなことではないかと思い込んでしまうと、「考えたらわかるのではないか」という発想に陥ってしまいます。

ジョブ理論

f:id:harv-tech:20190327183146j:plain

3行まとめ

  • プロダクトの開発に携わる人は、「ユーザーの消費行動」について学びがある本
  • ユーザーがモノを買うとか、消費するといった行動を「ジョブ」という捉え方で考察した本
  • ユーザーニーズに合わせたプロダクトの開発を論理的に行うための考え方の1つが身につく

この本について新卒エンジニアへ一言

ユーザーに使ってもらえるようなサービスを開発するためには、ユーザーのニーズやストーリーなどを考える必要があります。

これから入社する企業が大企業で、大規模開発の一員として、サービスの一部機能の開発を担うような人の場合、ユーザーのことを考える機会は少ないかもしれません。

でも、規模にかかわらず自分が開発しているプロダクトがどういったユーザーの課題を解決し、世の中の役に立っているかを把握できれば、例え大きなサービスの一部分の開発であったとしても、手触り感を持って開発ができるようになるかもしれません。

引用紹介

「どんな〝ジョブ(用事、仕事)〟を片づけたくて、あなたはそのプロダクトを〝雇用〟するのか?」  私にとってこの問いはすっきりと 腑 に落ちる。私たちが商品を買うということは基本的に、なんらかのジョブを片づけるために何かを「 雇用」するということである。その商品がジョブをうまく片づけてくれたら、後日、同じジョブが発生したときに同じ商品を雇用するだろう。ジョブの片づけ方に不満があれば、その商品を「 解雇」し、次回には別の何かを雇用するはずである。


 

ジョブ理論の中核は、顧客がなぜ特定のプロダクト/サービスを生活のなかに引き入れるのか、その理由を説明することである。顧客がプロダクト/サービスを引き入れるのは、彼らにとって重要なジョブが発生し、まだ満たされていないときに、それを解決するためだ。この なぜ を理解するかどうかが、あるイノベーションは成功し、別のイノベーションはそうでないかの分岐点となる。


ジョブ理論が重点を置くのは、〝誰が〟でも〝何を〟でもなく、〝なぜ〟である。ジョブを理解するということは、知見を集めて、さまざまなことが密接につながり合った絵をつくり上げていくことであり、細かい断片に区切ることではない。

プリンシプルオブプログラミング

f:id:harv-tech:20190327183157j:plain

3行まとめ

  • プログラミングに関する一般的な考え方を1つ1つ簡潔にまとめている
  • 基本的な原則やUNIX思想、セオリーなどが解説されている
  • エンジニアとして働く上で土台となるような考え方が簡潔にまとまっていて、手元に置いて時々見返すと良い

この本について新卒エンジニアへ一言

ソフトウェア開発をしていく中でどのようなことを意識しながらコードを書いていけばいいのか、ということについて抽象度が高めですが、概念的な説明がされている本です。

抽象、カプセル化、パッケージ化、情報の隠蔽、凝縮度、テスト容易性、再利用性...こういった概念が書いてあります。

長々とした本でもないので、一冊手元に置いておいて、思想に関するリファレンス的な使い方をしてみるといいでしょう。

この本で気になったことを他の専門書籍で詳しく深ぼるような使い方がいいかと思います。

引用紹介

プログラミングに銀の弾丸はない


コードは設計書である


コードは必ず変更される

リーダブルコード

f:id:harv-tech:20190327183209j:plain

3行まとめ

  • コードをきれいに書くためのTIPSが学べる
  • 読みやすいコードとは何か、どうすれば読みやすいコードが書けるのか
  • チーム開発をする上でリーダブルコードはなぜ重要なのか

この本について新卒エンジニアへ一言

エンジニアの課題図書でもおなじみのコイツ。これからエンジニアとしてコードを書いていく上で、学べることが多い良書です。

「エンジニアにおすすめの本X選」では毎回ランクインするやつなので、「またこれか」と思うエンジニアが多いくらいバイブル的な1冊。

チームでのソフトウェア開発を円滑にすすめていくためには、綺麗なコード(可読性や保守性が高いコード)を書けるスキルが必要になります。

そういったスキルは現場の先輩が書いているコードを見て学ぶわけですが、リーダブルコードでまずは基本的な知識を入れておくと、現場での学習速度も早くなると思います。

4冊ピックアップした中で「どれか1冊選んで」と言われた、一番最初に上げた「エンジニアリング組織論への招待」を挙げます。

エンジニアとして働く上での土台となるような本なので、4月の研修中の間とかに読み進めて行くのが丁度いいかと思います。

■■■ 関連記事 ■■■

harv-tech.hatenablog.com

harv-tech.hatenablog.com