こんにちは、イチアール株式会社人事担当です。
イチアールでは、未経験からスタートするエンジニアが多く活躍しています。
そんな未経験スタートのエンジニアに人気なのが、書籍購入手当!
「どんな本を読めばいいんですか?」
という質問も多くあるため、エンジニア1年目が読むべき書籍5選をまとめてみました!!
1、ソフトウェアアーキテクチャの基礎 ――エンジニアリングに基づく体系的アプローチ
ソフトウェアアーキテクチャとは、ソフトウェアの設計思想、全体設計です。ソフトウェア開発では基本設計や詳細設計といった工程を踏みますが、ソフトウェアアーキテクチャは設計よりもより広範囲、より根本的なソフトウェア、開発の土台に対する概念です。
そのため、ソフトウェアアーキテクチャは設計よりも上流工程である要件定義よりもさらに前段階で考えられる必要があります。ソフトウェアアーキテクチャの考え方を元に最適なソフトウェア開発手法を選択し、実際に開発が進められていきます。
ソフトウェアアーキテクチャの考え方はあらゆるプロジェクトに必要です。本書籍では、あらゆる観点からのアーキテクチャ思想について学びます。具体的には、レイヤード、パイプライン、マイクロカーネル、サービスベース、イベント駆動、スペースベース、オーケストレーション駆動サービス指向、マイクロサービスなどです。
2、Clean Architecture 達人に学ぶソフトウェアの構造と設計
技術の進歩によって開発されるソフトウェアは変遷していきます。しかし、いつの時代のどのソフトウェア開発でも共通する考え方があります。この共通ルールを学ぶことが重要なのですが、そのためにはもっとも根本の土台となるソフトウェアアーキテクチャを学ぶ必要があります。
ソフトウェアアーキテクチャの基本ルールを学ぶことで、プログラムの構成要素をどのように組み立てるべきなのかがわかります。そのため、本書籍ではアーキテクチャの原理原則を解説する内容が中心です。
具体例を一つ挙げると、「単一責任の原則」というものがあります。単一責任の原則とは、モジュールを変更する理由は一つであるべきで、またモジュールは一つの役割にのみ責任を負うべきというものです。
ソフトウェアのプログラミングではパーツごとに処理がわかれていますが、一パーツの中で処理が混在しているとプログラムの可読性が下がり、バグの原因になります。パーツの使いまわしもしにくくなります。
そのため、パーツの変更理由もパーツの役割も一つに絞るべきという考えですが、これはどのような開発にも当てはまる基本アーキテクチャです。本書籍では、単一責任のような原則や考え方がいろいろ紹介されています。
3、リーダブルコード――より良いコードを書くためのシンプルで実践的なテクニック
リーダブルコードとは、可読性の高いコードのことです。コードはコンピュータを動かすものですが、自分を含む人間が読むこともあります。そのため、コードは理解しやすいものであるべきです。
本書籍では、リーダブルコードとはどのようなものか、コードを良くするにはどうすれば良いのかなどについて解説しています。具体的には、コメントの書き方、制御フロー、理論式、変数、ループロジック、テストの書き方、などを可読性という観点から掘り下げています。
可読性の高いコードを書けるようになることでプロジェクトで評価を得られるだけでなく、コードが整理されていることで自分自身の頭の中の整理、スキルアップにつながります。
4、現場で役立つシステム設計の原則〜変更を楽で安全にするオブジェクト指向の実践技法
本書籍はシステム設計の原則について解説しています。オブジェクト指向での開発を前提としていて、オブジェクト指向が最適化されていない場合の弊害、システム設計を最適化するメリット、具体的にどのようにすればオブジェクト指向のメリットを最大化できるのか、といったことを細かく解説しています。
筆者自身多くのプロジェクトに参加していて、システム設計の問題を肌で感じてきました。オブジェクト指向で設計しているにも関わらず手続き型のような構造になっていて、一部分を修正したいだけなのに整合性を保つためにいろいろなパーツを修正しなければならないといったことです。
システム設計の最適化は開発時よりも、むしろ修正、改修のタイミングで活きてくる場合が多いです。エンジニア1年目の方は修正、改修のタイミングで面倒が生じた経験がまだないはずですが、書籍で事前に学んでおくことで不要な労力を避けられます。
5、Webを支える技術――HTTP,URI,HTML,そしてREST
本書籍はWeb技術について、技術的、歴史的な観点から詳しく解説しています。インターネットの仕組みが誕生してから数十年経っていますが、いまだに私たちの生活に必要不可欠な技術として利用されています。これはWebのアーキテクチャが優れているからです。
技術が進化して巨大化していくことを前提にアーキテクチャが設計されているのです。個々のWebサービスを開発する際にも、Web全体のアーキテクチャ思考は役立ちます。
HTTP、URI、HTML、RESTの仕様についても解説されています。実践的な技術のみを学べばWebサイトを構築することが可能ですが、技術的、歴史的に深く理解することで設計が最適化されます。
本書籍では、表面的なWeb技術ではなく、普通にWeb開発しているだけでは分からないWebそのものについて深く学べます。
最後に
今回は、エンジニア1年目が読むべき書籍5選を紹介しました。
未経験スタートのエンジニアが活躍するイチアールでは、書籍購入制度や他にもハッカソンプロジェクトや、先輩講習会などスキルアップを支援する制度が充実しております。
ご興味がある方は、ぜひ気軽にお話を聞きに来てください!