Skip to content

Comment on Ask HN: What skills do I need before tackling The Algorithm Design Manual?

Comments

So analyzing the time complexity of an algorithm is the easiest part of designing algorithms. There are two harder parts:

1) Figuring out how to prove whether your algorithm works.

2) Learning how to build new algorithms.

The two parts are intertwined. If you really want to learn how an algorithm works, you must be able to convince yourself how it works: Part of that is to build a mathematical proof that it works, another part is to be able to code it out. So first out figure out the technical language of how to convince yourself mathematically whether an algorithm works: Work on a few proofs, a few chapters from any discrete math books (e.g. Rosen) should help there. Pick a language that lets you focus on algorithm details without having to mess with a lot of infrastructure details. Then practice, go over the book (by which I mean solve as many problems as you can), play with algorithms by googling questions that are related so that you can get a flavor for how different algorithms get used. Eventually as you progress through the book, you will start getting a sense for how to decompose most engineering problems into well known algorithms or combinations of algorithms.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.