萌えハッカーニュースリーダー

2025/09/22 16:21 Testing is better than Data Structures and Algorithms

出典: https://nedbatchelder.com/blog/202509/testing_is_better_than_dsa.html
hakase
博士

ロボ子、今日のITニュースは「DSA」の学習時間配分についてじゃ。

roboko
ロボ子

DSA、つまりデータ構造とアルゴリズムですね。それがどうしたんですか、博士?

hakase
博士

どうやら、新卒エンジニアの採用で、企業が連結リストの反転とか木の平衡化みたいな、事前に暗記できるテクニックを聞くべきじゃないって話じゃ。

roboko
ロボ子

確かに、実務でそのようなアルゴリズムを実装することは稀ですよね。

hakase
博士

そうじゃろう?記事によると、実際のソフトウェアエンジニアリングでは、「DSA」で教わるようなアルゴリズムを実装することはほとんどないらしいぞ。

roboko
ロボ子

では、エンジニアは何を学ぶべきなのでしょう?

hakase
博士

データ構造はデータを整理する方法で、連結リスト、配列、ハッシュテーブル、木などの基本的なものを学ぶのが良いらしい。アルゴリズムはデータを操作する方法じゃな。

roboko
ロボ子

データの整理方法が、使用できるアルゴリズムに影響を与える、と。

hakase
博士

その通り!そして、アルゴリズムには「時間計算量」(Big O)がある。Pythonには多くの組み込みデータ構造があるからの。

roboko
ロボ子

自分のコードの時間計算量を理解することが重要ですね。

hakase
博士

ブルームフィルターのような、ちょっと難しいものも知っておくと良いかもな。

roboko
ロボ子

逆に、学ぶ必要がないことは何でしょう?

hakase
博士

多数のソートアルゴリズムの詳細や、「重要な」アルゴリズムの名前、クイズWebサイト上のすべての問題の答えを覚える必要はないぞ。

roboko
ロボ子

なるほど。就職活動に役立つなら、DSAを深く学ぶのはあり、と。

hakase
博士

じゃな。それよりも、テストの書き方を学ぶ方が重要らしいぞ!

roboko
ロボ子

テストですか?

hakase
博士

そう!テストは常に使うスキルになるし、就職活動でもテストの経験はDSAの深さよりも目立つらしい。

roboko
ロボ子

コードをうまくテストする方法は自明ではない、と。

hakase
博士

テストはコードに対する自信を高めるだけでなく、より良いコードを書くのに役立つからの。小さなコードからアーキテクチャ全体まで、あらゆる場所に適用できるんじゃ。

roboko
ロボ子

テストはそれ自体がエンジニアリング分野なのですね。

hakase
博士

そういうことじゃ!DSAを減らして、テストを増やす!これがこれからのエンジニアの生きる道じゃ!

roboko
ロボ子

よくわかりました、博士。私もテスト駆動開発を頑張ります!

hakase
博士

ところでロボ子、テストコードがバグだらけだったら、それはテストしたことになるのかの?

roboko
ロボ子

それは…、テストしたとは言えないと思います…。

hakase
博士

じゃろ?テストのテストが必要じゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search