I talk a lot about the non-programming aspects of software development since I think that they have the most impact to a good programmer’s career. I try to remind readers that you have to be "at least good" as far as programming goes to become a Big Swinging Developer. This doesn’t mean that I think that developers shouldn’t be constantly building and honing their programming skills.
A post on ReadWriteWeb entitled Top 10 Concepts That Every Software Engineer Should Know reminded me why I focus on the non-programming aspects: Other folks already have the programming aspect covered pretty well. I really liked their list and their reasoning behind it. It’s definitely worth a read and even if you don’t agree with it completely, it’s likely to get you thinking about what you know and what you want to learn.
Here’s their list:
1. Interfaces
2. Conventions and Templates
3. Layering
4. Algorithmic Complexity
5. Hashing
6. Caching
7. Concurrency
8. Cloud Computing
9. Security
10. Relational Databases
Comments are closed here.