DSOC開発部の湯村です。私は今年の4月に新卒として入社しました。学生時代はキノコの遺伝子を破壊する研究をしていて、プログラミングは入社する1年半前くらいに趣味で始めた程度でしたが、今はGEESと呼ばれるSansan、Eightから名刺画像をデータ化するシステムをRailsで作っています。Seekというものがあり、書籍などの購入費用が補助されます。入社してからは、業務での経験に加えて、この制度を活用して購入した本を読むことで、エンジニアとしての成長を加速させていきました。いうことで今回は、他の新卒エンジニアと比較しても知識も経験も少ない私が、入社してからの9ヶ月で業務に必要な知識を身につけるために読んだ本を紹介したいと思います。エンジニアを目指す方にも参考にしてもらえると幸いです。プログラミングの作法リーダブルコードwww.oreilly.co.jp最初のプルリクで変数名やメソッドの粒度についての指摘をもらいました。その時に『リーダブルコード』を読むことを勧められました。「変数名に情報量の多い単語を使うこと」、「変数名を用いて処理内容を示すこと」、「制御フローの可読性を上げること」などは基本的なことですが、コードの可読性を高めるためにはとても重要だと思います。チームで開発していく上での基本的な作法について学ぶことができました。テストテスト駆動開発www.ohmsha.co.jp学生の頃はテストの重要性を理解しておらず、入社してからもテストを書くのが面倒だなと思っていました。そんなタイミングでチームの方に勧められて『テスト駆動開発』を読みました。この本を読むことでTDDのメリットを感じ、ケースによってはTDDで開発するようになりました。テストを書くことで設計の問題に気付けることは大きな発見でした。「アサーションの前準備で要するコードが長すぎる場合、そこには別のオブジェクトが存在する可能性がある」とあるように、テストの書きにくさをフックに設計を見直せるのはTDDの大きなメリットだと感じます。RSpecによるRailsテスト入門leanpub.comRailsのテストで使用するライブラリと基本的な書き方について学ぶために読みました。テストの書き方について網羅的にまとまっていて、DRYに書くための方法についてもとても参考になりました。SQLSQLゼロからはじめるデータベース操作www.shoeisha.co.jpシステムを運用する中で、DBから特定のデータを抽出する必要がありましたが、SQLの読み書きが全くできませんでした。そこで、基本的な文法から学ぶためにこの本を読みました。体系的にまとまっていて、基本的なクエリは書けるようになりました。初級者で終わりたくないあなたへwww.shoeisha.co.jp運用を進める中で複雑なSQLを書く必要が出てきました。本のタイトル通り初級者で終わらないためにこの本を読みました。CASE式、ウィンドウ関数の発展的な使い方や、NULLの扱い、パフォーマンスを意識したクエリの書き方などを学びました。この本を読むことで、複雑なクエリでも一通り書けるようになりました。徹底指南書www.shoeisha.co.jp入社後3ヶ月程度でDBの設計を行う機会があったので参考にしました。論理設計の基本的な考え方や、アンチパターンについて学ぶことができました。定期的に読み返しています。DBの設計をする上でとても参考になりました。設計オブジェクト指向設計実践ガイドgihyo.jp任せてもらえるタスクも大きくだした頃に、設計の原則について学ぶために読みました。「単一責任を持つクラスを設計する」、「クラス間の依存関係を整理する」などシンプルですが、重要な設計の原則を学ぶことができました。Rubyを使って説明されているので、どう実装するのかもとても参考になり、何度も読み返しています。Rubyによるデザインパターンwww.hanmoto.com設計の原則だけでなく、具体的なデザインパターンについて学びたいと思い読みました。Procオブジェクトを用いたストラテジーパターンなどRubyならではの書き方もあり、とても参考になりました。常に机の上に置いていて、コードを書く時は、参考になるパターンがないかを確認することも多いです。ユースケース駆動開発実践ガイドwww.shoeisha.co.jp設計の手法について学ぶために読みました。ユースケースからオブジェクト指向の設計、コードへと落とし込むための方法についてまとまっています。直近で設計をした時は、この本に書いてあることをかなり参考にしました。muchだった気もしますが、ユースケースの書き方、オブジェクトを洗い出す方法などとても学びが多かったです。最後にエンジニアとして成長するためには、実務での経験と座学による知識の吸収のバランスが大事だと思います。書籍購入制度があるため本を気軽に買うことができ、どんどん知識を吸収することができました。これからも本を読むことでさらなる成長をしていきたいと思います。<プログラミング/コーディング編>こんにちは。新卒1年目の山邊です。(バックエンド編)こんにちは、新規事業開発室に所属するソフトウェアエンジニア...2020-08-03レガシーシステムをこえてSansanプロダクト開発部・基盤チームの加畑です。Inc.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。