3 ms·
I'm not sure if this helps you out or not, but I've found working through practice problems, such as Project Euler, to be helpful.
by _mayo 15y ago
I'm not sure if this helps you out or not, but I've found working through practice problems, such as Project Euler, to be helpful.
- bdg 15y agoActually, I've started Project Euler, I worked my way through them the hard way (ie, finding a general abstraction that's optimized for performance). I've learnt a lot, but more about math than software per se. I still find it entirely fascinating, I'm putting a post up tomorrow with what I learnt from problem one.
- jeffl8n 15y agoI was going to suggest the same (Project Euler specifically). I think the great thing about a site like Project Euler is you have a set result your code must produce to get it correct, so you must think through the correct way to code the algorithm. Another benefit of Project Euler is, after you solve the problem, you can discuss different approaches to the problem in different languages with other people who have solved it. Reviewing these discussions can help to see if there are other ways to code the program which may not have occurred to you.
- gldalmaso 15y agoAnother good thing about Project Euler is that the problem is usually presented in a simple form, which you first try to reproduce, and then it scales up in a way that you have to optimize in order to achieve success in under 1min of cpu processing time. The result is that you learn a lot about how to make more elegant solutions.
- steph37 15y agoProject Euler is good fun and great for improving your algorithm design and understanding of basic programming constructs, but I think its a poor way to improve software engineering skills in general. Being able to write clever efficient algorithms is good but not nearly as critical as grasping important design patterns, OOP, methodologies like TDD, frameworks and databases you're using, etc.