みんなのコンピューターサイエンスとプログラマの数学を読んだ

最近以下の二冊を読んだ

みんなのコンピュータサイエンス

みんなのコンピュータサイエンス

プログラマの数学第2版

プログラマの数学第2版

数学、コンピューターサイエンスに関する本を読んだ。

本を読んだ理由

僕は文系卒であり、新卒で入った組織もソフトウェアエンジニアリングとはあまり関係ない場所だった。
自分がコンピューターサイエンスの基礎がわかっているとは思えないし、アルゴリズムをものにしているとも思えない。実際AtCoderにはちょくちょくでているものの未だレートはこんな感じ。大体ABCのCまでなんとか解いてDには歯が立たない感じだ。

f:id:sasa5740:20200122203533p:plain

だいたい良いプログラマーとは?みたいな記事をみるとコンピューターサイエンスを学ぼう、アルゴリズムを学ぼうと書いてある。
Matzもいってるので多分正しいのだと思う。誰がいっているのかで判断するのは良くない 海外の企業も採用時にはまずアルゴリズムについてしっかり確認する印象がある。
そういった記事を読んでとても不安になり本に助けを求めた。

なんにもわからない

論理、確率、帰納法、動的計画、データ構造は、説明できるほど理解できる時が来るのだろうか、競プロをやっていけば(周りよりスピードはゆっくりだろうけど)ついていくのだろうか。 「再帰はスタックに構造をいれていく」とか「5つのユニークな要素から3つ取り出す順列は5 * 4 * 3で60通りあるとか、順序を考えないと順序考えた分を割って5 * 4 * 3 / 3 * 2 * 1で10通り」とか読んでなんとなく意味はわかっても日本語が少し変わって問題を少しひねられたらなにもできない気がする。
根本は難しいことをできるだけ細分化して考えるということだと思う。しかし与えられた問題に適切なアルゴリズムを出す自信が全く無い。一歩ずつ頑張るしかないのだろう。

その他

「コンピューターサイエンス」と仮想メモリとかレジスタ、スレッド、プロセス、I/O、(メモリの方の)ヒープ、(スレッド毎の)スタック、カーネル、ソケットといった(多分)UNIXからつらなる概念は別扱いなのだろうか? この他にもHTTPだったりRDBMSだったりなんにもわからんなと思った2020年1月22日だった。