『関数型プログラミングに目覚めた!(以下略)』を読んだ感想。

近所のBOOKOFFでたまたま目にしたので、「関数型プログラミングに興味があるし、適当に読んでみるか」的なノリで購入しました。

今更レビューかという感じもありますが、衝撃的な内容だったので、このブログに書き記しておきたいと思います。

 

 

感想(あくまで私個人の独断と偏見による感想です)

率直に言うと、この本を自分から誰かに薦めようとは到底思えませんでした。

 

まず、この本はラノベ形式で書かれています。

作風は結城浩さんの著書、数学ガールシリーズに似ていなくもありません。

が、なんとも稚拙な表現で、特に面白くもない会話が延々と続く箇所があり、似ても似つかない作品となっています。

おかげさまでページ数は400ページほどあります。

400ページで1300円(+税)なので、ある意味お買い得なのかもしれませんね。

 

そして、この本はポエムです。

関数型プログラミング初学者の私が読んだのですが、困惑しかありませんでした(玄人の方なら内容を理解できるのかもしれません)

例をあげると、

『物質世界』密着型の命令型プログラミングの『手当たり次第の計算方法』では、コードにすべての『イデア』は表現できない 

 こんな感じです。

そもそもの話、関数型プログラミングの本でJavaScriptという言語を選択したのがミスだと思いますし、この一冊にNode.jsImmutable.jsReactなどを全て詰め込もうとしているのが無理難題に感じます。

 

そして、この本には中盤以降、頻繁に哲学や偉人の話がでてきます。

それはスピノザの話であったり、アラン・ケイの話であったりするのですが、Wikipediaで調べられるような内容ですし、目を瞑れないほど脱線します。

 

結局、肝心の関数型プログラミングの話はほとんどが『0から9までの数をすべて足すコードを書け』みたいな内容で終わってしまいます。

 

詳しいレビューなどについては、Amazonのレビュー欄にものっていますし、

qiita.com

にも書かれていますので、気になった方は参照してみてください。

もっと気になった方は著者のブログにも目を通してみてください。

それでも気になったなら購入しましょう(古本で)。

 

以上、最近読んでいた技術書(?)ラノベ(?)の感想でした。

それでは。

大晦日、今年最後の競プロ進捗報告。

12月18日にAOJのITP1を解き終わってから少しの間(ほんの少し)CTFに浮気をしていましたが、12月25日頃からまた競プロの問題を解いていました。

 

今回はAOJでは無く、AtCoderに慣れる為にも、ABC(AtCoder Beginner Contest)のA問題とB問題を解きました。

 

    f:id:Q_tyokinuhata:20151231203417p:plain

 

A問題は本当にやるだけの問題でしたが、B問題はたまに詰まったりしたので、B問題とはいえど、勉強になったんじゃないでしょうか。

 

          f:id:Q_tyokinuhata:20151231203314p:plain

ちなみにA問題とB問題をコンプリートした時点で、順位は681位 / 8636人中(2015/12/31現在)です。二桁行きたいですね…

 

C問題からが戦いだと思うので来年はC問題とD問題を頑張って解いていきます。

 

ちなみに、ACした問題数やランキングなどは、AtCoder Problemsから見ることが可能です。

 

それではこの辺で。良いお年を。

競プロ開始から一ヶ月ぐらいの進捗報告。

年内の目標が一つ達成できたので報告です。

 

まず、先月11月21日にいきなり競プロを始めました(本当に何故始めたのかは分かりません)。

 

その中でもAOJの問題セットの一つ、ITP1(Introduction to Programming)、つまり競プロ初心者用の問題セットを中心に解いていて、ついさっき44問全てが解き終わりました。

 

f:id:Q_tyokinuhata:20151218230316p:plain

 

使用言語はJavaで、今までも割と使ってきた言語のつもりだったのですが、知らないメソッドも多々あり、とても勉強になりました。

アルゴリズム力はついたのでしょうか…どうなのでしょう…。

序盤の問題はさくさく進んだのですが、後半になるともうほとんどゴリ押しで解いていたのが反省点です。

 

とりあえず目標は達成できたのでしばらく競プロは休む予定です。

次は何をしましょうか…CTF?アプリ開発?未定です。

 

ITP1、一応リンクも貼っておきますので、気になった方はどうぞ↓

http://judge.u-aizu.ac.jp/onlinejudge/finder.jsp?course=ITP1

はじまり。

ある人に便乗してブログを開設しました。

プログラミングで学んだ事の備忘録や進捗の記録に使っていく予定です。

 

とりあえず今まで学んだ言語などを簡単に紹介しておきます↓

(新しい言語やフレームワークなどを学ぶ度にこの記事は更新される予定です)

 

JavaScript    since2013

Webサイトを作る為にHTML、CSSとその延長で学びました。

高校1年の授業をメインに学習しました。

Node.jsなどにも興味があるのでそっちの方にも手を出していきたいですね。

 

jQuery    since2013

プログラミング言語ではなくJavaScriptライブラリですが、これも一応勉強しました。

ネットでさらっと勉強した程度です(というかほぼコピペ)

 

SQL    since2014

全商情報処理検定試験や情報処理技術者試験で必要なので勉強しました。

高校3年の授業でPHPと連携したサービスを作る際にも使いました(そのときはPostgreSQL)。

 

Java    since2014

全商情報処理検定試験を取得するために勉強しました。

それからは自分のメイン言語という感じです。

ゲームを作ったり、競プロをするのに使っています。

 

PHP    since2015

高校2年の夏と高校3年の授業でショッピングサイトを構築する際に使いました。

正直、あまり使いたくないです。

 

Ruby    since2016

特に使い道は無かったのですが、気になったので勉強しました。

とはいいつつも、ネットで基本文法を学んだくらいです。

 

Python    since2016

機械学習をしたくて少しだけ勉強しました。

少し勉強したぐらいでは機械学習などできるはずもなく、数学もゴリゴリ勉強しなければならないので保留中です。

2系と3系を少しずつかじったので混同してしまいました。

 

Ruby on Rails    since2016

とりあえず概念ぐらいは掴んでおこうと思い、オンライン学習をしました。

特に作りたいサービスも無いので次に触るのはいつになるのでしょうか…。 

 

Swift    since2016

iOSアプリにほんの少しだけ興味があったので(1ミリぐらい)オンライン学習しました。

MacBookを買ったら本格的にやろうと思います(といいつつ多分しない)。

 

おしまい。