LVLPATH

日本最強無料プログラミングスクール

データ構造とアルゴリズム

データ構造とアルゴリズム

🔰 概要

データ構造とアルゴリズムはコーディング試験で若干必要になることもあるのと、実務のデータを扱うときにまあまあ役立つときもあるので最低限のところは知っておきたいところです。

外資とかGAFAM受ける以外のケースでは、簡単なものを知ってて調べながらなんか作れるぐらいの理解度でOK。

計算量のO記法(ビッグオー記法)とかはコードレビューとかでまあまあ指摘されるというか意識すべきところなので、なんとなく知っておきつつ計算量を意識できるようになるとGOOD 🙆‍♂️

✅ リソース

結構雑な解説なのとレビューは悪いけど(笑)、この本で知ってChatGPTとかに聞きながら真似してみる程度で本当に基本的な部分は知れます。

Kindle unlimitedに入ってればそれでOK。

データ構造とアルゴリズム

正直クソ詳しい本とかはいらないと思う。

そんなに時間かけられないし、本当に必要になったときにガッツリやればOK。

✅ おすすめの手順

STEP1

リソースにある本をざーっと読む。確か解説がかなり簡素だったと思うのでChatGPTに適宜聞きつつググりつつやるのがいい。

STEP2

実際にエディタ上で書いてみる。

例えば、queueとstackを書くならvsocdeで実際に何も見ないでそれを実装して適当に動かしてみる。

微妙そうなら適宜ChatGPTに聞いてレビューしてもらう。

✅ 期間

がちで必要なケースを除いて、1~2週間ぐらいでざーっとやっておきたい。

✅ 実際実務で使うのか?

ほぼ使わないというよりかは大体wrapされて使いやすいようになってるのと、hash table(集合)は普通に使うのと、再帰的に木っぽい構造とかはたまに普通に使う。

✅ Check list

完全に実装するというよりかは、手を動かして真似して作ってみて知っておくってスタンスでやるのがおすすめ。

  • Sortのタイプを複数個言えて、それが実装できる
  • Queueが分かっていて実装できる
  • Stackが分かっていて実装できる
  • Hash tableが分かっていて実装できる
  • Graphが分かっていて実装できる
  • Binary treeの仕組みが分かってて実装できる
  • Binary searchができる、なんとなく探索方法が分かってる
  • Recursiveな操作ができる(再帰処理、whileなど)

補足: このCheckListの内容は基本的に細かい実装方法とかは忘れるけど、概念っぽいのは覚えてられる

ちなみにぼく(くそまんじ)はうっすらしか覚えてない。あと多分GAFAM出身エンジニア達もコーディング試験の時にだけそこら辺の知識を復習して記憶強めにして普段は完全には覚えてないと思うというのはみてて感じるところ。

お問い合わせ