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

おさかな日誌

魚類がプログラミング

外国語学部生が Web 系新卒になるまでに読んだ技術書・コード 書いたコード

ちょうど4月で参考になるエントリを読んだので自分も書いてみる.

背景

ぼくがプログラミングを始めたのは1年半ほど前, Web 系の会社に仕事が決まったのが1年ちょっと前, つい最近入社という感じです. 学んだ当初からプログラミング自体はとても楽しかったけれどこのまま仕事でやっていけるのかしぬほど不安だったのでいろいろ読んだりしました.

プログラミングを始めたのは元から OSS 界隈のあの雰囲気とかがとても好きで, 自分も恩恵を受けている意識があったのでいつか貢献したいなぁと漠然と思っていたのに加えて, 後述のように「ハッカーと画家」を読んだからです.

誰得感ありますが, プログラミング始めたい人の参考になるかもしれないので, その1年半ほどをまとめたいと思います. 書いたコードも push してあるのはのっけたので「これくらいの時期にこのくらい書く感じか〜」とか「こんなコードしかかけてないワロス」とかしてください. 後者はぼくかなしくなるのでやらないでください.

ちなみに大学時代は府中にあるとある外国語大学で誰得な自然言語学んだり地域研究していたりしていました.

本 と ネット上の情報 と 書いた・読んだコード

だいたい時系列順. 一気に書いたので文とか表現が良くない部分があるかもしれません. 大目に見てもらえるとありがたいです…

Before ブログラミング

これを読んでプログラマー(もっというとハッカー)になりたいとおもってプログラミングを始めたきっかけの本. もちろん Lisp かっけーという思想を染まったことは言うまでもない.

プログラミング開始

「HTML ってなんだ」ってところからのスタートだったのでこれと下の CSS の本かいました. 今思うとこれと下の本はあんまり役にたたなかった…

上と同じ時期に買いました.

開始から1週間

大学の情報担当の人にお願いして大学のサーバーで PHPMySQL をつかえるようにしてもらいこの本と下の本を買って PHP で1ヶ月かけて単語帳サービスを作った. まったく利用者いなかったけどとても勉強になった. この本の内容はあんまりよくはないとおもうけれど, 当時の自分にはとてもわかりやすくて聖書あつかいしていた.

この本がなかったら単語帳サービスつくれていなかった. ほぼこの本をコピペしながら作った. この本で開発環境構築と RDBMS についての基礎を覚えた.

開始から1ヶ月後

Webサービスっぽいのできたので次は iPhone アプリ!とおもって買った. けどコピペはできれどもまったくわからなくて積んでいた. 今思うと Objective-C の言語とセットで学習したほうがよかった.

前出の単語帳サービスをかっこよくしたくて JavaScript を学んでみた. これは身についたし自分である程度の処理はかけるようになったし良い本だと思う.

開始から2ヶ月後

これを参考にして上述の単語帳サービスを自作フレームワークリファクタリングした. 以前はよくあるように1ファイルにビューとロジックがごちゃまぜ状態だった. この時は自覚なかったけど, これで Web アプリの基本(リクエストが来てそれを基に処理してビューを返す)がなんとなく脳にのこった気がする. とてもよかった.

開始から3ヶ月後

聖書. この本のおかげで道が切り開けたと思う. Ruby やってよかった. 本の評価について, 他の言語をすこしやった人向けで, でも初心者向け. すごくわかりやすく難しいことを教えてくれる. あと Ruby の思想的なのもおしえてくれるとても良い本.

これも買ったけれど「初めての Ruby」のあとだと必要なかった.

非常に参考になった本. これと るりま で Ruby はよみかきできるようになると個人的に思う.

このあたりで github 登録して git 使い出して push してたのでコードがのこっている. C の別の実装を読みながら手探りで書いたコードだけどこのコード書くことでオブジェクト指向ってこうなのかー的なのちょっとはみについたかもしれない. ちょっとは.

このへんで仕事きまった. このころから Ruby ばかり書いていた.

開始から4ヶ月後

@repeatedly さん(面識ないです) が Twitter でこれを読むべき的なことをおっしゃっていて買った読んだ. けれど当時の自分には遠くて半分くらいしか読んでない. 内容はとても良いとおもうがまだ理解できていない.

外国語学んだりしていたので自然言語処理興味あって買った読んだ. 10分の1くらいしかよんでない. 内容はよいはず(無責任). 当時それより Ruby かくのがたのしくて進まなかった印象.

他の言語の実装をみつけてかいてみたりした置き場. D言語があるあたりとても影響をうけていた.

ユニットテストのあたり読みたくて買った. 全部ちゃんと読んだ. とても参考になった. これと プログラミング言語 Ruby を るりま をひたすらみてサンプルコード書いてた記憶ある. とても良い本.

開始から5ヶ月後

でた. 自分には当時も今も難解だけど読むべき. ショートカットできたきがする.

開始から6ヶ月後

このへんのことがわからなくてアリ本といっしょにかった. けれどパラパラしただけで読んでない… もうしわけねぇもうしわけねぇ. 数学的基礎とデータ構造は早急に読みたい. どちらもよさげな印象.

SICP の影響で MRI 読みたいぞ〜ってなったので C 言語読みたくて買った. 苦しんで覚える C はちゃんとやったけどこれは読んでない. けど必要になりそう.

開始から7ヶ月後

すごいH本ブームの時にかった. まださわりしか読んでないけどとてもわかりやすい. 近々読了予定.

初めて RubyGem を書いてみた. つかってくれている人がおおくてうれしい. 自分にとっての初めての本物のコードということか. spec の書き方が非常にアレで手直ししたい.

開始から8ヶ月

最後まで読んだけどコード書いてないので理解半分といった感じ. Lisp 学ぶのには非常におすすめだと思う. でも最後に当然のように処理系を実装する. Lisp を感じる.

とっても有名なもの. Ruby を学ぶということに限らず, 非常に参考になる. あわせてこのへんも読むと非常に良いと思います. http://jp.rubyist.net/magazine/?0006-YarvManiacs#l21

開始から9ヶ月

以前からあの DSL がかっこよすぎてきになっていて読んだ. 難しかったけど Ruby っぽい書き方とか魔術とかいろいろ学べた.

Sinatra like DSL で Twitter ぼっとを書く gem. でも今は動かないと思うし今読むとアレなコードが書いてあってはずかしい… これかいてる途中に @r7kamura さん(面識ないです) の Chatroid を見てすげーってなってこのプロジェクトは終わりを迎えた. でも勉強にはなった.

開始から10ヶ月後

このあたりからアルバイトでプログラム書くようになって Python が必要だったのでかった. でも Python は公式チュートリアルのほうが良いと思う. Python は会社にすごい人がいていろいろ教わったこともあってある程度読み書きできるようになった. ずっと独学していたけど, そのことがあってからすごい人が身近にいる環境は贅沢だと感じた. そういう環境を作っていくのも近道かもしれない.

@r7kamura さんが Twitter で読んだ良かったっといっていたので買った記憶. ちょっとあとに RSpec の部分だけ読んだ. BDD とかの考え方とかも書いていて参考になる. とても良い本.

有名な Twitter Gem. 読んだ当時はよくわからなかったけど規模が大きいのにうまくわけてかかれているように感じる.

開始からNヶ月後

長くなってしまったので(うpしようと思って1週間がすぎた)おおざっぱに書きます. このへんから卒論書いてたのであんまりプログラミングできなかった印象.

WebSocket の練習に書いた. EventMachine ちゃんと使えてなくてウケる… 笑ってないでちゃんと書きなおすべき.

2月ごろにようやく卒論終わってかねてから気になってた mikutter をプラグイン書くために読んだ. プラグインの実装など参考にする点たっぷりあって学べた. ここから mikutter プラグインづくりの日々が始まる.

個人的に一番気に入ってる() mikutter プラグイン

うまくかけたナー と自画自賛する mikutter プラグイン

個人的に書いた中では一番実用的な mikutter プラグイン


最後いいかげんになって全部書けませんでしたが, だいたいこんな感じです. プログラミング始めたい・さっき始めた!という方に向けての個人的なアドバイスとしては

  • まずは本がおすすめですよ
  • 好きな言語を使っていろいろ書く
  • 自分の成果を公開したりお互いしげきがもらえる場をつくる(Twitter とか)
  • OSS のコードを読む

という点かなぁと思います.(上からだと感じられたら申し訳ないです)

プログラミングやろうか迷ってる人は是非ためしてみるときっと最高にたのしい体験できますよ.

  • 感想 (積み本多い… 私, 精進します…)