3 ms·
I was just discussing this with some coworkers the other day, and it resonated because later that afternoon I read the "farewell to bioinformatics" post [0]. I
by philsnow 14y ago
I was just discussing this with some coworkers the other day, and it resonated because later that afternoon I read the "farewell to bioinformatics" post [0].
In my experience, people who don't have a formal computer science education, who haven't taken any classes (or at least worked through the material in their own time) in algorithms or data structures, will muddle through and _will get things done_. They may also shrug their shoulders when it comes time to scale up their dataset input and their code takes 6 days instead of 6 minutes.
When the person lacking this education finds himself in a three- or four-level deep "for (...) { for (...) { for (...) { ... } } }" structure, (I guess) he feels mildly uncomfortable and thinks "yeah this is going to take a long time".
When the person with this education finds himself there, he has at his (I hate to use the word, but: intuitive) disposal some ideas for reducing some of the necessary computation ("I can keep a min-heap instead of scanning the list to find the minimum every time."). He has a toolbox of algorithmic knowledge that helps him without him consciously knowing about it. Some people reduce the complexity as much as they can and are still not satisfied, causing them to restructure the larger program or try to invent a new algorithm for this particular problem.
[0] http://news.ycombinator.com/item?id=5123022 http://news.ycombinator.com/item?id=5123022