こんにちは。ダタク [@iQeeeda] です。
文系大学を卒業して飲食業をやっていた僕は 30 才でエンジニア転職しました。
とある現場でコンピュータサイエンス (CS) という言葉を知りました。
そこで、自分がいかに理系エンジニアと比較して何も知らないのか打ちのめされました。
そんな僕が遅れを取り戻すべく CS 学習の最中に書いた記事をまとめてみました。
十進数・二進数
まずはコンピュータの世界の「数の数え方」からです。普段使う十進数と、コンピュータが使う二進数の変換や、指数の考え方をおさえておくと、この先の話がグッと入りやすくなります。
論理学
プログラムの if 文の裏側にあるのが論理学です。「命題」や論理演算 (AND / OR など) がわかると、複雑な条件分岐も落ち着いて読めるようになります。
あると便利な数学の知識
アルゴリズムを勉強していると、ちょいちょい数学の知識が顔を出します。ここでは剰余・パリティ・組み合わせ・再帰・対数など、僕が実際に「知っててよかった」と思ったものをまとめました。全部を一気にやる必要はなくて、必要になったとき戻ってくれば OK です。
計算量の基礎
「そのコード、データが増えたらどれくらい遅くなるの?」を見積もるのが計算量 (Big O) の話です。面談でも聞かれることがあるので、ここは押さえておいて損はないです。
データ構造
最後は定番のデータ構造です。ハッシュテーブル・連結リスト・キュー / スタック・木 / グラフを、面談対策も兼ねて実用例つきで解説しています。
ハッシュテーブル
連結リスト
キュー・スタック
木・グラフ
つづく...
まだコメントはありません