In this blog post, John Sonmez talks about “soft skills” and how they can help you become a better software developer. Here are some tips from the author:
- Instead of trying to learn several programming languages at the same time it’s better to have one language that you know in and out, that you are comfortable writing.
- Structure your code well by writing “good, clear, understandable code that doesn’t require a large amount of comments because the code itself is communicative.” – John Sonmez
- Having a good understanding of object-oriented design and managing complexity as most popular languages rely heavily on object-oriented design and analysis.
- Understanding how to create algorithms, and how to modify known algorithms to match your specific needs.
- Understanding of data structures like arrays & vectors, linked-list, stacks, queues, trees, hashes and sets. These are important to know well, especially if you are being interviewed.
- Knowing a development platform well is a good idea because some places design for specific platforms (PC, Mac, etc)
- Learning a framework, or a complete stack. “A framework is simply a set of libraries that are used to develop code on a particular platform or on multiple platforms.” and “A stack is a set of technologies, usually including a framework, that are commonly used together to create a full application.”
- Basic Database Knowledge, how to add, modify, delete and work with different database systems.
- Source Control, understanding how to use tools like GIT.
- Testing, more often projects are being created in small increments and tested as they go, this is allowing developers to catch bugs before they begin to cascade.
I chose this resource because I’m always looking for information on becoming a better software developer and want to become an asset to wherever I dedicate my work. Some of the information is general information but I do think it’s important to work on maintaining these core skills to improve the quality of your work. I learned the importance of working on knowing at least one language very well, along with knowing one platform very well knowing how to implement popular data structures, writing good algorithms and knowing when to use what. I learned the importance of object oriented design and how prevalent it is today. I learned about frameworks and stacks and what they are, and the importance of understanding how databases work. I also learned that more recently developers are being expected to know how to test their code, especially with agile testing.