プログラミングを勉強し始めた
なんやかんやで死にたくないので、生存率を上げるためにプログラミングを学び始めた。
シェアハウスの同居人が情報の修士を出ているのでとても頼りになる。
勧めてもらった本や本のリストを公開しておく。
学習前の私の状態
javascriptでちょっとしたウェブサイトが作れる
processingでおもちゃぐらいなら作れる
昔電気系の学部に行こうとしたんだけど病で脳が悪くなったのでやめたことがある
Web Developer ロードマップ
http:// https://github.com/kamranahmedse/developer-roadmap
読んでよかった基礎知識の入門書
同居人おすすめ本
- プログラミングの基礎 (Computer Science Library)
- アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)
- グラフ理論入門
- Go言語によるWebアプリケーション開発
- リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- マスタリングTCP/IP 入門編 第5版
- 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 数理論理学 *1
この辺から本を拾ってきて、読み物とゴリゴリの教科書を混ぜつつテンションを維持している。
まだレベルが低いから本を読むたびにレベルが上がってたのしい。
気づいたこと
- 『計算理論の基礎 [原著第2版] 1.オートマトンと言語』シリーズと岩波の『アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)』が今読んだ中ではとてもわかりやすく基礎的なところを教えてくれていて嬉しい。コンピュータがどんな理屈で作られ動いているものなのかがよくわかる。
プログラミングの基礎 (Computer Science Library)
- 作者: 浅井健一
- 出版社/メーカー: サイエンス社
- 発売日: 2007/03
- メディア: 単行本
- 購入: 17人 クリック: 409回
- この商品を含むブログ (126件) を見る
あとこの『プログラミングの基礎』もめっちゃ良くて、言語はOCamlなのだけど、プログラムを書く時は、テストを先に書いて、デザインレシピに従って作る、という原則をとても丁寧に教えてくれる。プログラムを書く人が何を考えて書いているのかがよくわかる。これをしっかり読んどけば『Land of Lisp』もシュッと読めそうだなあと思った。
プログラミング言語は新しくなるほど書きやすくなるらしく、『すごいHaskellたのしく学ぼう!』を眺めたときも、最初の方の例の、ある条件を満たす直角三角形を探す問題の解答を出力するプログラムが1行でピャっと書けるのを見て、Haskellってすごいんだなあと同居人に感想を漏らしたら、イマドキの言語はそんなもんだよ、と言われた。普段使っている言語の表現力に不満があれば、新しい言語を作るということも選択肢に入るの、詩人みたいだな。最終的に機械にわかってもらわないといけないという縛りがあるからこそ、意味を保ったまま工夫する余地があるのかもしれない。
なんかプログラミングを学ぶとなると、まずひとつの言語をマスターしてから次の言語へ……という順番なのかなと思っていたけれど、それよりはいろんな言語をつまみ食いする感じになっている。本によって使っている言語が違うからだ。新しい言語を習得するためのコストは、フランス語や英語のような自然言語に比べるとささいなものであるし、自分ができる言語に合わせて本を選ぶより、知りたいことが書いてある本に合わせて言語を学ぶほうが結果的に力がつくのかもなと思った。言語、いくら多いといったって無限にあるわけでははないし。
*1:ほとんど大学の教科書じゃないか