概要
エンジニアとして、今年で10年目になりました。
今まで技術本は割と読んできたと思います。
その中でも
「もっと若いうちから知っておきたかった、もっと経験のない頃の自分に読んでおいて欲しかった」
と強く思う本を6冊選びました。
本記事では、そんな6冊の本たちを熱く語りたいと思います!笑
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
読者の中には、
「あー、はいはい。まぁ、そうだろうね。」
って方も多いと思います。
でも、本当それくらいの名著ですよね。
逆に言えば、今初めて知った方や知ってるけど読んでない方は絶対に読んだ方が良いです。
個人的には、この本は値段が1万円だったとしても読んでると思います。
それくらいの本ですし、そのくらい払ったとしてもすぐに元が取れる本であるのは間違いありません!
選定の理由
どんな本かと言うと、リーダブル、つまり読みやすいコードを書くための本です。
僕はエンジニアキャリアのほとんどをアプリエンジニアとして過ごして来ました。
この本を読んだのはそんなキャリアの中で3,4年目を迎えた時くらいに読んだと思います。
読み終わった後に、
自分のコードが明らかに読みやすくなった
と実感したのを覚えています。
コメントの書き方、メソッド名の付け方、などなど
面白くて分かりやすい挿絵や漫画を挟みながら解説してくれています。
割と初心者の方でも理解しやすい内容だと思います。
プログラマが知るべき97のこと
こちらも割と有名な本だと思います。
どこかに英語版で書かれたサイトがあってそちらの翻訳となります。
81人のプログラマによるエッセイ、思いがギュッと凝縮されている本です。
日本人プログラマも含まれており、
・テスト界隈で有名な和田卓人さん
・Ruby作者のまつもとゆきひろさん
なども載っています。
選定の理由
ズバリ!
81人のプログラマの経験値を2,000円で買えるから!です。
本って、いろんな人の人生が凝縮されていて
とても自分一人では経験出来ない様な事柄まで学ばせてくれますよね。
普通の本では、著者は一人です。
でも、この本はなんと81人です。
81人の著名なプログラマが、自身の人生を通じて学んだ
とても大事なエッセンスがギュッと凝縮された一冊になります。
81人分の経験が2,000円ちょいで買えるなんて…安すぎません?w
Java言語で学ぶデザインパターン入門
コーディングを1,2年くらいしていると
「あれ、こんな仕様前にもあったな。」
「こんなプログラム前にも書いたな」
なんて時がそろそろ出てくる頃かと思います。
そんな時に、汎用性の高いコードが書けていると
後々の自分をとても救ってくれることになります。
じゃぁどうやったらそんな汎用性の高いコードが書けるのか?
その方法の1つがデザインパターンです。
デザインパターンを知るメリット (+ 選定の理由)
・ベストプラクティスが思いつきやすくなる
・バグを生みづらくなる
・エンジニア間での意思疎通が簡単になる
が挙げられます。
ベストプラクティスが思いつきやすくなる
例えば、何か対戦系のアプリを作るとします。
そして、コンピュータのレベルを選択出来る。
良くある仕様ですよね。
そんな場合に、どうやってクラスを設計しますか?
デザインパターンを習得している人は、
「Strategyパターンで作ろうかな」
そんな事が頭にすぐ思い浮かびます。
こういう具体的なコーディングをする際に、設計図が思いつきやすくなるのが
まず一つめのデザインパターンのメリットです。
バグを生みづらくなる
読者の方もそうだと思いますが、多くのエンジニアは実装途中に仕様変更を迫られる事が多いと思います。
デザインパターンはそういった仕様変更にも強いものが多く載っていると言った特長もあります。
仕様変更に強いと言うことは、仕様変更する際にバグを生みづらくなると言うことですよね。
実際に、僕も何回もデザインパターンを使ってコーディングをしています。
その際にこのパターンじゃなかったら絶対にこんな簡単にこの機能追加出来てないよな…。
ってある種自画自賛にはなるのですが、そんな感覚に陥ることは少なくないです。
エンジニア間での意思疎通が簡単になる
二人のエンジニアがある実装を任されました。
デザインパターンを知っていれば、
「ここはMementoパターンでいきましょう」
「Flyweightパターンを応用すればいけるんじゃない?」
みたいな会話が可能になります。
名前がついてないと、一からクラス図書いて、ここはこんな感じの実装ですよね?と
相談してたら1時間経過していた…なんてことになりかねないと思います。
達人プログラマー 職人から名匠への道
こちらは達人プログラマーになるための心構えなどが書かれた本です。
ある程度プログラマとして働いていて、もう一段レベルをあげたいなんて人にはとてもおすすめの本です。
二つ、自分が好きな話を例に上げて紹介したいと思います。
パワーエディット
一つのエディタを知り尽くし、コーディング、ドキュメント作成、メモ、システム管理全てをそのエディタで行うこと。
エンジニアとして仕事をするには、多数の入力作業が必要となります。
その入力作業によるロスを数秒減らすだけでも1年間で考えれば相当なロスになります。
逆にそれを減らすだけでも相当な作業時間を確保する事ができます。
エディタを知り尽くせば、編集の際にこれはどうすれば良いのだろう?と悩まなくて済みますよね。
割れ窓理論
割れ窓理論とは、
「一つも窓が割れていなければ、その建物はとても管理されていると思われ丁重に扱われるが
1枚でも窓が割れていたりすると、次第にゴミなどが増えて荒れてしまう」
と言った理論です。
プログラミングで言うならば
「とても綺麗にコーディングされたコードに手を入れる際は慎重になるけど、
元からぐっちゃぐちゃなコードだったら手を入れる時もぐっちゃぐちゃになってしまう」
と言う事ですね。
これは、本当に全力で同意しかないです笑
ヘドバンかと思うくらいに首を縦に触れる自信しかない笑
最初の気の緩みがコード全体の緩みになるので気を付けましょう!
ちなみに、選定の理由にはなりませんが、表紙の手触りがめっちゃ好きです笑
リファクタリング 既存のコードを安全に改善する
僕と働いた事がある人は良くお分かりだとは思うのですが、自他ともに認めるリファクタリング厨ですw
珍しいと思うのですが、本当にリファクタリングが好きなんです。
どうしても、業務として会社に努めながらコーディングをしていると
「納期に間に合わないからえいやでとりあえず動くコードを書いてコミットしてしまう。」
「良く分からないけど、今までこんな感じで動いていて似た様な動作をさせたいのでコピペで済ます」
みたいなことはやっぱりどうしても出てきてしまいます。
なので、期間や頻度は現場次第ではあるのですがやはり
腰を据えてリファクタリングをする時間は設けるべきだと思います。
リファクタリングって、コードを綺麗にするって役目もあると思うのですが
「このコードを僕はこんな風に理解していますよ」
と言う表現にもなるんですよね。
なので、リファクタリングでミスると言うことは
そのプログラムを自分自身が正しく解釈できていないと言うことになります。
ですが皆さんご存知の通りリファクタリングってとても危険を孕んでいます。
気軽にやると今まで動いていたコードが動かなくなったりしたりしますよね。
この本では、こんなシチュエーションの時はこんな手順でこう言う風にやると良いよ
と言った手引きが実例をともに載せられているのでとても分かりやすく、とても現場に生かしやすいです。
今自分が書いているコードを綺麗にしたいなと思った時、こちらの本を
脇に置いて読みながらやれば必ず役に立ってくれる1冊となるはずです。
ノンデザイナーズ・デザインブック
デザインの本を最後に番外編として挙げたいと思います。
何か人に伝える時に本当にデザインの力って重要だなと思っています。
分かりやすく伝えるか分かりづらく伝えるか、においてデザインも大きなウエイトをしめるな、と。
そんな時にこの本はとても分かりやすく実例をふんだんに使って説明してくれています。
デザインの基礎の部分を広く書いてくれているので読んだ事がない方は本当に必読だと思います。
ある会社では、この本は入社の際に必ず読む様にと手渡される様です。
誰かのお役に立てば。Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント