とある京大生の作業ログと日々の雑記

コンピュータサイエンスについて学んだことを可視化したり日々の雑記をまとめてます。

今まで流し読みしたやつの書評

はい、コミさん(@komi_edtr_1230)です。




前回の投稿はタネンバーム先生のコンピュータネットワークを読んで、その書評でしたね。




で、あのあとすぐにSecurity Engineeringという本に取り掛かったわけなんですけど、なんか思ってたのとちょっと違かったので秒で切り上げました。




それで、一応区切りはついたからちゃんと書評も書いておこうかなって思ったものの、Security Engineeringのことだけじゃ尺が少しないかなぁってことで、ついでに今まで端読みしてきたやつをここで一気に紹介していこうと思います。




ではサクサク紹介していきましょう。



Security Engineering






今回読んだやつですね。




なんでこの本を読んだかというと、EPFLで取ろうと思ってたComputer Securityの授業の参考図書がコレだったんです。




結局その授業は履修しなくて、でもセキュリティ系のことは勉強したいからってことで「Security Engineering pdf」と検索してみたら予想通りPDFが拾えました。




ということで読み始めたんですけど、感想として




想像以上に精神論だった。




正直なところちょっとガッカリですね....




ぼくが常々セキュリティの勉強をしたいと言ってるんですけど、イメージしてたのは「具体的にどういう攻撃方法をしてるのか」「コンピュータウイルスって一体どんなアルゴリズムで動いてるのか」あたりで、だからそういうのを期待してたんですよね。




一方で、この本は「セキュリティ的に強固なシステムはどんな形態をしてるか」や「セキュリティ問題が発生した際にどのような対処をするか」などといった、技術的な話よりも精神論的な話やシステムの運用方法について述べたものばかりでした(もちろん実社会においてはこういう話題の方が重要なんだけど)




まあセキュリティについて技術的なことをまとめようとしたら数百ページじゃ収まりきらないなんてことはある程度察してたんですけど....




ということで、システム管理者などはこの本を読む価値があるような気がしますが、ぼくみたいな技術的なところを追求したい人は普通にOSやネットワークなどの知識を深めることがベストな気がします.....



K&R






C言語の名著です。




割とコレも読むとき前提知識が結構あったのでサクサク読んじゃって書評とか書くの忘れてたので、今更ながらの紹介。




この本はC言語の解説をした本なんですけど、バージョンがかつてのもので、現代のC言語erからすればかなり悪魔的というか黒魔術的なコードがバンバン出てきます。




具体的に、ポインタのインクリメントなど、普通にC言語を使おうとしたらあまり想像がつかないようなコードが割と多いです。




だからK&Rを読む際は出てくるコードをまるっきり信用せずに背後でアドレスとかポインタがどういう動きをしてるのかをイメージしておく程度がベストだと思われます。




実際、ぼくもこの本を読むきっかけというか動機は第5章のポインタと配列の章でどんな解説をしてるのかが気になったからです。




初学者には流石にこの本は勧められないんですけど、ある程度CSを勉強した人ならこの本は読んでて面白いと思うので是非とも中級者以上の方は一読あれって感じです。



ドワンゴScala入門資料






Scalaについてしっかり解説した素敵な本です。




この資料は新人研修用に作られた本なんですけど、GitHubにおいてあって誰でも閲覧可能なのでありがたく拝借してScalaの勉強に使わさせていただきました。




ぼく自身がScalaを始めたきっかけは「せっかくEPFLというScalaの生誕の地に留学してるんだからScalaは学んでおくべきだろう」という感じだったんですけど、Scalaについての解説資料とかまとめサイトを探してるうちにこの入門資料と出会ったんですよね。




まあそんなこんなでこの本を読んだわけなんですけど、めちゃくちゃわかりやすいです。




ぼくはもともとJavaはある程度書ける人だったのでScalaの簡単に書くのはそこまで問題なかったんですけど、やっぱりScalaは関数型に寄せた言語でScalaらしい書き方というのがイマイチわかってなくて....




ただ、この資料を読んでScalaの特徴をうまく掴めてScalaらしいコーディングができるようになりました(まだそこまで熟達してないけど)




今では簡単なプロジェクトならJavaよりもScalaで書いた方がいいんじゃねって思ったりするようになりました。




なのでScalaに興味がある人は是非ともオススメです。



まとめ






ということで3冊を紹介しました。




こうやって振り返ってみればEPFLにきてからいろいろ勉強してきたんだなぁって感じがします。




今のところ自分がまだ未修なのはOSとバイナリ、アーキテクチャ、並列計算あたりって感じですかね?




コレらについて、OSはLinux Kernel Development、バイナリと並列計算については低レベルプログラミングの原著、アーキテクチャについてはパタヘネを確保してあるのでコレらで勉強していこうと思います。




こいつらが終われば、一応CSの大体の分野を触れたことになるわけで、ようやく達成感らしい何かを感じますね....




今後とも引き続きがんばっていこうと思います。




ちなみに今回Security Engineeringを終えて、次はカステラ本を通しで精読しようと思います。




最近カステラ本についてツイッターでいろいろ聞かれるので、まだ流し読みしただけでしっかりと読み込んでないのであんまりテキトーなことは言えないなぁと....




まあPRMLとか今までいろいろ勉強してきたおかげである程度は前知識があるので割とサクサク読み進められると思います。




カステラ本の特徴として擬似コードが丁寧に載せてあるということで、せっかく時間があるのでそれらもちゃんと実装していく予定です。




ではでは、今後とも期待しててくださいな。




お疲れ様でした!