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

福岡は今日も雨

情報系大学生のブログ。主に技術,音楽について。

大学二年生でweb系を1からサービスを立ち上げたりするまでに読んだ本

大学三年生になりました. 明日からまた学校なので, 2年生に読んだ本とかまとめてみようと思う.
ちなみに大学2年の段階ではweb系は全くで, 1年の12月くらいにC言語の本を読んだくらいの能力しかなかったけど,
それでも4~8月でサービスをデプロイするところまでは行けたので, 勉強することは多いけど気合いがあればなんとかなると思う.

4~6月

自分はロック音楽が好きで,ART-SCHOOLというバンドが好きなのだが,周りに同じような人がいなかった.
でも,周りの聞いているアーティストとかみてるとこっちも好きになってくれてもいい潜在的なファン(?)がいるように思えた..
ので,そんなサイトを作りたいなーとかちょっと考えたのがきっかけ.

HTML/CSSとかからスタートした.

作りながら学ぶ HTML/CSSデザインの教科書

作りながら学ぶ HTML/CSSデザインの教科書

これ結構分厚かったけど, 一からサイト作るって感じで分かりやすかった.
jQueryとかもちょろっと乗ってて次何をやればいいかとかも明確になった.
同時進行でPHPもスタートしていて,
いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~

気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!

気づけばプロ並みPHP 改訂版--ゼロから作れる人になる!

この辺りも読んだ. これも一から作る感じでモチベーションは高く望めた(ただLAMPのバージョンがちと古すぎた気が..)
ショッピングカートの方は変数がたくさん出てきて少し混乱するところもあった気もする.

この辺でどうやら装飾をするならJavaScriptっていうのをやらないといけないなと気づいて,

これを読んで, なんかそのままこれも読んだ. この段階だと多分読まなくていい本なんだけど,
でも後々いろいろJSを触るときに今でも役立っているから読んでよかったと思う.
(JSのオブジェクト指向とかはちょっと違うからなぁと)
それで一応jQueryも読んだ.
改訂版 Webデザイナーのための jQuery入門

改訂版 Webデザイナーのための jQuery入門

わかりやすかった.

さて, この辺でPHPでサービスを作ろう!とはなったのだけれど, 実際にどこから書けばいいのか分からなかった.
調べていくうちにどうやらサービスを作るときは1から作るというより,フレームワークを利用するらしい.
CakePHPの本を読んだのだけれど, MVCがさっぱりな状態からだったので挫折. もっとわかりやすい本ないかなあと調べていたところ,

はじめてのフレームワークとしてのFuelPHP 改訂版

はじめてのフレームワークとしてのFuelPHP 改訂版

これが分かりやすかった.
一応パーフェクトPHPとかも文法を補うべく読んでた.
パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

7月

なぜかリクナビに登録して, 福岡のベンチャー企業でペーペーなのにインターンさせていただくことに.
(今思うとよく通ったな..), PHPで働くのかと思っていると,その会社はRubyだったので,急遽Rubyを勉強した.
Rubyは書きやすく分かりやすかった.

作りながら学ぶRuby入門 第2版

作りながら学ぶRuby入門 第2版

Ruby, Web開発とくればRuby on Rails!となって, Railsをメンターの方に教えてもらいながら,conpassみたいなサイトを作った.
パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

これだけだとアレだったので, 自分でもう一冊読んでた.
改訂3版 基礎 Ruby on Rails 基礎シリーズ

改訂3版 基礎 Ruby on Rails 基礎シリーズ

こっちの方が初めてなら分かりやすい.

この頃に自作したいアプリは, 機械学習っていうのが必要だ..!って気づいて,
機械学習ならPythonやれみたいな感じだったので,Pythonをはじめた. これがいい言語で, 今もメインで使っている.

Pythonスタートブック

Pythonスタートブック

入門 Python 3

入門 Python 3

ちなみに, はてなインターンは行けずだった。初心者だから当然と言えば当然..
この時に一回だけはてなのエンジニアさんとお話しできる機会があり, 「Web系と言えど基礎が大切」という話を伺った
その助言は今もずっと残っている

8月

ちょうどよく夏休みで, アプリの作り方もわかってきて, この夏に機械学習でロジック部分を完成させてアプリを出してやろうと考えていた.
まず数学を一年レベルはしっかり固めようということで,

微積(ラグランジュの未定乗数法は絶対にいる)

微分積分 (理工系の数学入門コース 1)

微分積分 (理工系の数学入門コース 1)

線形代数
プログラミングのための線形代数

プログラミングのための線形代数

統計学

そして機械学習. この本面白かった, おすすめ.

ITエンジニアのための機械学習理論入門

ITエンジニアのための機械学習理論入門

k-meansやら協調フィルタリングを駆使して, 自分なりに作ってインターンで発表した.
(今見るとなんでそのモデリングなのか不適切だが)高評価だったので嬉しかった.

www.slideshare.net


これは別のところで発表した資料.

9月

アプリ公開. herokuを利用した.

MusicLanguage

アーティストを打ったらおすすめアーティストをレコメンドしてくれるというもの.
はじめてのアプリということになりそう. 正直この月のことはあまり記憶に残っていない..

10月

大学の後期が始まり, 機械学習にのめり込むようになり, 最適化数学を勉強した.

これなら分かる最適化数学―基礎原理から計算手法まで

これなら分かる最適化数学―基礎原理から計算手法まで

この本は程よく数式があり, 具体例豊富でわかりやすく, とてもよかった.
Deep Learningにも手を出し始めたような気がする..。

定番中の定番.

基礎的な技術が身に付けたいと思い, 競技プログラミングを始めた.
あり本をICPCサークルの人と一緒に読み解いたりした.

このあたりでインターンをやめた
もっと学問として情報科学/計算機科学, 機械学習と向き合いたいと思ったからである

11~12月

あまり覚えていないが, DeepLearningにかなり傾倒していくようになり,
Chainerを利用してデータをぶち込んでぐるぐる回したり, あといろんなDeepLearningを試していたりした

Chainerによる実践深層学習

Chainerによる実践深層学習

実装 ディープラーニング

実装 ディープラーニング

Chainerはバージョンアップで内容が古くなってはいるが, 雰囲気を掴むにはいいかもしれない.

1~3月

親と相談して, 15ヶ月食費を抜きにしてDeepLearning用PCを購入することに成功した.
これにより, ようやくまともにビッグデータをぶちこめるようになった. 購入したのはGTX1070がついたBTOのPC. Ubuntu+Chainer+GPUのセットアップで苦労した.
この頃から, PRMLをしっかり読もう, もうそれしかないなと思ってPRMLを購入. この頃はとりあえず歯を食いしばって頑張っていたが, 最近になってようやくベイズ的考え方が身についてきたと思う. もうちょっと数学をやる必要は感じているが..

パターン認識と機械学習 上

パターン認識と機械学習 上

2月末にLINE BOT AWARDS用に「顔をみてそこから髪型をおすすめするアプリ」をDeepLearningで作り, コンペに提出した.
ファイナリストには残らなかったが, そのあとの後夜祭(4月)でLINE本社で発表する機会をもらえて嬉しかった.交通費も出たのはありがたい..
東京は楽しかったし, きている人のエンジニアのレベルが高いのが頭に残っている. LINEのインターンもいけたらいいな.

www.slideshare.net


4月のはブログに別でまとめている.

これからの予定

ニューラルネットワークに限らず, 機械学習/ベイズ推論/確率的プログラミングの基礎を勉強したい.
SICPみたいな本も読んでいきたい.
設計について深く考えたい.
競プロ力あげたい.
アプリ作りたい.

などなど. 基礎技術を勉強しながら手を動かしてアプリやツールも作っていきたいと思う.
OSSに貢献したりもやってみたいなぁ. まだまだこれからなので, どんどん勉強していきたいと思う