5 ms·
I agree. 2011 Programmer Cost/Benefit reality: 1) The chance my app will be so heavily used that it requires deep knowledge of many algorithms is pretty low.
by va_coder 15y ago
I agree.
2011 Programmer Cost/Benefit reality:
1) The chance my app will be so heavily used that it requires deep knowledge of many algorithms is pretty low.
2) The chance my app has serious marketing or business model problems is pretty high.
3) The extra cost of using a scalable platform (PaaS) like Appengine, Heroku or plain EC2 is less than both the cost of my time to learn or relearn all of those algorithms and the cost of setting up my own scalable platform.
I see far more business model/marketing problems than scalability/performance ones.
- regs 15y agoI think you're correct that for certain types of apps, this sort of knowledge is pretty useless. However, once the number of things you're dealing with gets up to, say, the millions, algorithmic complexity can really bite you in the ass and no matter how much hardware you throw at it (rented or otherwise), if the work that a single node needs to do is unreasonably complex, your whole app will be slow for every user, even if you have enough capacity to handle many simultaneous users. In the mobile space, you can think of algorithmic complexity being a proxy for battery life - if you can make it cheaper to compute, you do less overall work, and the battery lasts longer.
- va_coder 15y agoI think you're correct as well. I'm just saying most paid programmers are not dealing with the problem of how to handle processes that involve millions of users, but they do have problems with marketing their app or monetising it. Therefore spending their weekend learning something like Dijkstra's Algorithm may not be the best use of their time, but finding ways to better understand the needs of their paying users probably would be time well spent.