読者です 読者をやめる 読者になる 読者になる

an odd fellow

読書と写真と情報工学

大学の4年間で読んだプログラミング関係の本たち

大学の4年間ももうすぐ終わりそうです。あっという間でした。プログラミングとはなんぞやみたいな状態から自分が欲しいと思ったのは一応作れるくらいにはなりました。

独学でプログラミングを始めて1年ほど経つので読んだ書籍をまとめてみる(だいたい50冊以上(適当)) - プログラミングを学ぶ唯一の道、それはプログラムを実際に書いてみること

この記事がバズっていたのを見て、僕も4年間でいろいろよんだな〜と思って書き出してみた。

わかりやすいJava入門編

わかりやすいJava入門編

これは一番最初に触ったプログラミングの本で、思い出深い。大学の最初はすんごい暇だったのと、大学受験の勉強癖が抜けず何か勉強してないと落ち着かないみたいな精神状態で、1ヶ月くらいで全部読んだら、大学1年生のプログラミングの講義はこの本でやったことを1年かけてやるような内容で拍子抜けだったです。なお、Javaはもう書いてません。Clojureは書くけど。

ロベールのC++入門講座

ロベールのC++入門講座

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

今の大学に進学するって決めたのは地元ってのもあるけど、オープンキャンパスで大学見に行った時にICPCのアジア予選に出たーとかいう先輩がいてその人がもうなんかすごくて大学入ったらICPC出ようって思っていて、それで入学したらすぐ6月にICPCがあるってんで一応買って読んではみたけど、ICPC本番はボロ負けという結果でした。懐かしい。

ICPCが終わって、C++触る前にCやるべきっぽくない?って思ってやってみた。実際C++からやっても問題無かったと思う。この本はほんとに優しくて読み易かった覚えがある。

独習C 第4版

独習C 第4版

ついでに読んだって感じ。

新・明解C言語によるアルゴリズムとデータ構造

新・明解C言語によるアルゴリズムとデータ構造

何を買えば良いのかわからずにとりあえず明解かった感じある。

入門GTK+

入門GTK+

最初はGUIのあるアプリケーションを作りたいと思っていた気がする。ごりごりコードを書いてつくっていくので面倒くさかったなぁという印象しか無い。GUIIDEとかのツールの支援を受けて作るのが良さそうと思った。

Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイト

Web標準の教科書―XHTMLとCSSでつくる“正しい”Webサイト

これは学校の講義で買えって言われて買った。もはやHTML5の時代だけどこの本とこの本でWeb周りの技術を講義した教員の影響でXHTMLは今でも好き。

jQueryが熱いらしいとか聞いてとりあえず読んだ。読んだけど使う機会が無く本棚の肥やしになっていたが、最近使っている。

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

1年の3月にサーバ管理会社でアルバイトしはじめた。採用面接を受けに行くのに、おれまったくネットワークわかんないのにどうしよって思って、とりあえずこれ読んでいったけど大学1年相手にそんなに専門的な内容は聞かれてなかった。「働きながらわかっていくと思うから大丈夫」と言われて、実際働いていたら結構わかった。この本は素晴らしい内容だと思う。今やサーバ管理会社でバイトリーダになってしまって新しく入ったバイトの子にモノを教えるなんて偉そうなことをしていて、とりあえずこの本渡して読んでもらったりした。

2年になった。バイトしながらLinuxとはなんぞやを詳しく知る必要が出てきて何故かこれを買った。30日でわかるLinuxとかいうのよりはマシだろ〜と思ったけど、そもそも解説している事柄が違う。結局本棚の肥やしになっていたけど3年のOSの講義でレポート書くのに役立った。

図解でわかる Linuxサーバ構築・設定のすべて

図解でわかる Linuxサーバ構築・設定のすべて

コレ見てWebサーバとかFTPサーバとか立ててみた。基本的にtar ball落としてきて自前でbuildするという方針で地力はつくけど当時知りたかったのはたぶんもっと基本的なコマンドの使い方とかだった。

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )

バイトしてるときにMySQLとかいう単語を聞いて、なんぞ〜つって買ってきて読んだ。これやっといたおかげで3年のデータベースの講義は暇だった。

バイトの影響でパケットが見たくなってきて読んだ。Wireshark無しではもはや生きて行けませんね。

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

これいい本だったなぁ。一晩で読めた。シェルスクリプトのパイプでぽんぽんと処理繋げていくの好きだなぁと思ったのを思い出した。Lisp早くやればよかった。

初めてのPython 第3版

初めてのPython 第3版

Pythonが良いと聞いて始めて見た。

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

3年に入って始めに読んだ。もっと早くこれを読めと。セキュリティキャンプの時もお世話になった。もう頭に入ったと思う。大丈夫。

Land of Lisp

Land of Lisp

道を踏み誤った。プログラミングに対する視線ががらっと変わった本。人生を変えたといっても過言ではない。Lispすごい。たしかこの本のなかで「他の言語をやるときもLispならこう書くから、この言語ではこうかく〜と考えるようになる」って書いてあったと思うんだけど、まさにそのとおりで、そのせいか言語の差異を気にせずどんな言語でもある程度書けるようになった。

プログラミングClojure 第2版

プログラミングClojure 第2版

おいしいClojure入門 (Software Design plus)

おいしいClojure入門 (Software Design plus)

順調にLispにはまっていく。Clojureはじめてからプログラミング力が結構上がった気がする。

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

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

プログラミング言語自体に興味が出てきたり、プログラミングをどう書くかみたいなとこに興味が出てきた。

型システム入門 −プログラミング言語と型の理論−

型システム入門 −プログラミング言語と型の理論−

  • 作者: Benjamin C. Pierce,住井英二郎,遠藤侑介,酒井政裕,今井敬吾,黒木裕介,今井宜洋,才川隆文,今井健男
  • 出版社/メーカー: オーム社
  • 発売日: 2013/03/26
  • メディア: 単行本(ソフトカバー)
  • クリック: 68回
  • この商品を含むブログ (11件) を見る
TAPL。挫折した。いつか読み解く。

アリスとボブのGit入門レッスン

アリスとボブのGit入門レッスン

Git入門

面白かった!紙の本は絶版なのかな?と思ったけどちょうど今月電子書籍で出ていた。

マイコンの講義でアセンブリに心を折られてすがった。

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

機械学習とかやってみたくなってきた。各所ですすめられている良い本。

実践 Metasploit ―ペネトレーションテストによる脆弱性評価

実践 Metasploit ―ペネトレーションテストによる脆弱性評価

Metasploit本買ってみたけどあんまり使わなかったナ。時間があったら読もうと思ったけど読む機会無さそう。

JavaScript 第6版

JavaScript 第6版

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質

入門 モダンJavaScript

入門 モダンJavaScript

4年になった。研究室の新入りには課題が出て1ヶ月でゲームを作れと言われた。オンラインゲームでも作るかという話になってざっと読んでざっと書いた。開眼JSは良かった。コレだけ読んでも良かったくらい。

プログラミングのための確率統計

プログラミングのための確率統計

機械学習の講義が大学院向けで開講してるってんで忍び込んで受けたけど確率統計の知識が足りなくて読んだ。良い本!

クラウド時代のネットワーク技術 OpenFlow実践入門 (Software Design plus)

クラウド時代のネットワーク技術 OpenFlow実践入門 (Software Design plus)

研究室がSDNの研究をやっていてとりあえず読んだ。

マスタリングTCP/IP OpenFlow編

マスタリングTCP/IP OpenFlow編

OpenFlowの詳細を知りたくなって読んだ。詳しかった。

インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門

インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門

Interopに行ってネットワークの設計とかどうやるんだ?って思って読んだ。さらっと眺めただけで終わってしまった。大規模なネットワーク設計とかやってみたいなーと思っている。

ns3によるネットワークシミュレーション

ns3によるネットワークシミュレーション

ネットワークシミュレータがあると聞いて読んでみた。C++でごりごり書くとシミュレーションができる。アニメーションも作れてほえ〜すげ〜って思った。ns2からns3になってPythonでも書けるようになってより手軽にシミューレションできるぞと書いてあった。シミューレータって実際の現場で使っているのだろうか?

ルーター自作でわかるパケットの流れ

ルーター自作でわかるパケットの流れ

セキュリティキャンプの選考に通って事前学習せよ、と送られてきた。Lispに侵されて抽象度の低い言語に苦手意識を持ち始めたところで、C言語でルータを自作するぞ!と言われてひいひい言いながらやった。苦手意識もあり、載っているコードが読みづらく苦しんだ。一つの本にこんなに執着して読んだ経験は初めてであった。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

ルータを自作するにあたり、C言語再入門した。優しい〜や独習〜のレベルでは無いと悟り原典を読んだ。

基礎からわかるTCP/IP ネットワーク実験プログラミング―Linux/FreeBSD対応

基礎からわかるTCP/IP ネットワーク実験プログラミング―Linux/FreeBSD対応

副読本とした。良い本だった。セキュリティキャンプはなんとか乗り切った。構造体使ってEthernetヘッダとかIPヘッダとか作るより16進数で手打ちするのがてっとり早いと悟った。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

なんとなく読んだ。小さいものを集めて大きいものを作ろうとか。

実例で学ぶゲームAIプログラミング

実例で学ぶゲームAIプログラミング

ゲーム開発者のためのAI入門

ゲーム開発者のためのAI入門

なんとなく気になって読んだ。ぱらぱらっと眺めただけだけど。どちらもサンプルのソースコードVisual Studioで書かれててめんどくさいんだけど、実例で学ぶ〜は詳しいし、スクエニの三宅さんもおすすめの超良い本なので時間とって読む。

ゲームの作り方  Unityで覚える遊びのアルゴリズム

ゲームの作り方 Unityで覚える遊びのアルゴリズム

スクエアエニックスインターンに行った。興味だけで応募したら選考が通ってしまったのでUnityとかわかんないみたいな状況で行ってしまった。インターンにはサポーターとしてUnityの中の人がいて、おすすめの書籍があったら教えて欲しいと聞いたらおすすめされたのがこれだった。おかげで少しは役に立てた。1/3程しか読めてないので時間見つけて全部読む。

効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門

効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門

セキュリティキャンプに行くちょっと前からWeb制作会社のアルバイトも掛け持ちして始めた。フレームワークSymfonyを使うって言われて良い本無いかと探したら研究室にこれがあって読んだ。Symfonyやるならとりあえずコレ読めば良いと思うけど、これだけではあのフレームワークは使いこなせなかった。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

コレ。めっちゃ良かった。Symfonyドメイン駆動設計従順で必要なパーツは全て用意されていた。

PHPによるデザインパターン入門 - 目次 - Do You PHP はてな

本じゃないけどデザインパターンはこれ読んだ。年末年始はこれとエリックエヴァンスドメイン駆動設計読んで量産してしまったクソコードをリファクタリングした。

フリーソフトでつくる音声認識システム?パターン認識・機械学習の初歩から対話システムまで?

フリーソフトでつくる音声認識システム?パターン認識・機械学習の初歩から対話システムまで?

来年から研究室を変えて機械学習をやるのでこれで入門している。

書き出してみるとあんまり高度な技術本は読めてないなってかんじだ。専門的な本よりなんとか入門みたいなのが多いのも広くて浅くてうーんってなった。

本の他はSoftwareDesignは超お世話になった。さいきんよく聞く技術についてさらっと知るにはめっちゃよくって、研究室で購読してたので毎月ぺらぺらめくってた。

大学院の2年間はなにかしら専門はこれだーといいはれるようになりたいぞ。