in reply to
Essential skills for any software developer
I am going to answer this from a different point of view. What skills would I like the developers in my team to have? You have already mentioned about knowledge of the language essentials.
- Debugging skills - more and more I feel this is becoming a lost art. 99% percent of the effort is locating the source of the defect - 1% of the effort is spent in fixing it. So, you need the skills to locate the problem asap.
- Communication skills - very relevant these days thanks to multi-site and multi-cultural teams.
- Hunger for learning - The desire to learn new stuff - technologies, programming paradigms, languages, tools, etc. A closely related desirable characteristic is ability to spread/share the learnings to other team members.
- Core Fundamentals - This is basically Computer Science stuff - that is not specific to any language/implementation - e.g. Algorithms, etc
- Team skills - Inter- and Intra-team interaction skills are essential
- Design skills - I would like the more senior developers to be able to create/judge/review product designs
- Domain Knowledge - In whatever field/business area you are developing the software, you need to learn the domain knowledge.
- Know your tools - It doesn't matter what tool you use for coding/developing software - but be very familiar with the tools you use.