HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

初級SE・プログラマーにぜひとも読んで欲しい厳選図書4冊

 

 

follow us in feedly

https://cdn.blog.st-hatena.com/images/theme/og-image-1500.png

はじめに

今回はSEやプログラマーなどのソフトウェアに関わる人に是非とも読んでおいて欲しい本を紹介します。 もちろん職業としてのプログラマーでなくとも、ソフトウェアに趣味でもなんでも何らかの形で携わっている、携わりたいならば一読しておきたいものばかりです。

  • 今まで独学でやってきたが、本でしっかり基礎を固めたい
  • これから勉強するつもりだがどうすればいいかわからない
  • それなりに理解しているつもりだが、自分の理解を確認したい

という場合にとってもおすすめです。

本当は沢山の本をオススメしたいのですが、たくさんありすぎても分からない!と思いますので4冊に絞ります。それぞれのプログラミング言語に関する詳しい知識などは別途鍛えていく必要がありますが、間違いなくどのような分野でどのような言語を使っていても役に立つ本に絞りました。

オブジェクト指向でなぜつくるのか

まず一冊目はこれです。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

プログラミングの世界ではオブジェクト指向という考え方が広く普及しています。 しかし、これが結局のところ何なのかを人に説明することができるでしょうか。

例えば、クラス・継承・メソッド・メッセージパッシングなど、それらしい言葉を並べて、とある言語でオブジェクト指向っぽい書き方をすることはできるが、そのような書き方を「なぜ」するのかに ついて理解できているでしょうか。

この本は、多くの書籍や記事ではオブジェクト指向の「how」に答えてくれますが、「why」には答えてくれません。

なにかオブジェクト指向にモヤモヤしている人、オブジェクト指向をこれから学びたい人にぜひオススメしたい一冊です。

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

この本は副題として「3年目までに身に着けたい一生役立つ101の原理原則」と名付けられています。帯には「めざせ、脱・初心者」の文字があります。この本、おそらくプログラミング歴3年目までに完璧に理解できる(書いている内容に実感が持てる)人は数少ないと思われます。裏を返せば、これが3年目までに本当に身についているならば、とんでもないアドバンテージを持っていると思ってもいいでしょう。

本書では実際のコードは一切出てこず、概念的な説明が終始続けられます。タイトルとは異なっており本当に初心者がすぐ読めるようには思えないのですが、読んでおくと「そんな考え方あったな」というふうにいつか役立つときが来るかもしれません。心の中の指針のようなものです。

個人的には、自分のプログラミングに関する考え方の成長が、この本を振り返るたびに実感できるようになります。「そうだ、自分が思っていたことを端的に表しているのがこの原理原則なのか」と思えるようになって来ます。決して3年目までに完全に理解できるような内容ではありませんが、大切に振り返りながら読むのがいいでしょう。

リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (140件) を見る

こちらは割りと具体的な例を用いて、プログラムを書くときのテクニックを解説してくれています。もちろん小手先のテクニックなどではなく、そうすることで「可読性を高くする、人にとって嬉しいことが起こる」ことが実感できる内容です。

プログラムは実は結構長い期間使われます。「そう言えば前使ったあのプログラムが使えそうだ」とか、もっと単純に「昨日書いたコードの続きを書かなければ」というときに、自分で書いたはずのコードすら解読に時間が掛かったりする経験はありませんか?それは、前よりあなたが馬鹿になったのではありません。前のあなたが天才だったわけでもありません。単に読みにくいコードなのです。

コードは書いてる時間よりも読んでる時間。ウンウン唸っている時間のほうが長いはずです。その時間をより良く使うためには、「リーダブルなコード」を書くテクニックをぜひ身につけたいところです。

6日間で楽しく学ぶLinuxコマンドライン入門

こちらは若干毛色の違う、Linuxのコマンドライン操作を学ぶ本です。具体的にコードを実行していきながら、Linuxの中身について入門していくことができます。この本は決して、コマンドラインでの便利操作を集めたテクニック集ではありません。本当に基本的なコマンドを実行しながら、OSがどのように動いているのかを(簡単なレベルではありますが)把握していくことができます。

Linuxという題目がついているものの、Unixのコマンドを中心に話が進められており、コマンド操作を通じて学べる内容はMacOSの理解にも繋がります。Windowsはちょっと違うかもしれませんが、コンピュータの根底にあるソフトウェアであるOSに関して触りでも知っておくだけで、自分の中の安心感や自信は全く変わってくるはずです。

最後に

他にもコンピューター・アーキテクチャやネットワーク、セキュリティに関する話なども知っておくと間違いないのですが、あくまでソフトウェアを設計・開発する上で間違いなく役に立つであろうものに絞りました。

興味がある書籍がありましたら、ぜひ手に取って見てください。