5 ms·
Algorithm design is a skill you can learn. It probably correlates with IQ, but you have to control for experience to see it. Experience is certainly more import
by jltsiren 5y ago
Algorithm design is a skill you can learn. It probably correlates with IQ, but you have to control for experience to see it. Experience is certainly more important than intelligence.
In my experience, algorithm design is primarily pattern matching. You have a toolkit with a set of abstractions for modeling the problem and a set of algorithmic techniques for solving it. If you have the right tools in the toolkit, potential solutions will jump out. You then pick a promising solution and figure out the details. If you don't have the right tools, you have to go back to reading or start building new tools from basic principles. That can take hours, days, weeks, months, or years, if you succeed at all.
I guess this is similar to proving mathematical theorems, but I haven't done much of that after grad school.
- lmm 5y ago> primarily pattern matching. You have a toolkit with a set of abstractions for modeling the problem and a set of algorithmic techniques for solving it. If you have the right tools in the toolkit, potential solutions will jump out. You then pick a promising solution and figure out the details. If you don't have the right tools, you have to go back to reading or start building new tools from basic principles. That can take hours, days, weeks, months, or years, if you succeed at all. But you're claiming this is somehow not "intelligence"?
- jltsiren 5y agoIntelligence is usually understood as a relatively fixed factor that cannot be trained effectively. Algorithm design is mostly about the patterns you already know.
- lmm 5y agoIME how many patterns you were able to rote-memorize is a very small factor in how good you are at algorithm design; the limiting factor is more likely to be your ability to filter out irrelevant details and abstract out the essence of the problem and see how that relates your library of patterns, and that part is mostly innate rather than trainable.