An excellent software developer can be recognised by their good architecture and clean code.
In this topic we will share with you several ways you can employ best practice in your work as a software developer. We have included here the contributions of two very experienced Kiwi software developers who have become leaders in their field.
Best Practice tip #1 - Use sound principles
An experienced software developer would regularly use fundamental principles such as SOLID, KISS, DRY, and YAGNI without consciously thinking about it.
We covered these principles earlier in the module. If you would like to refresh yourself on any of them, return to CS102 Development principles I: Principles of Software Development.
If you’re only going to remember one of the principles, let it be KISS (keep it simple stupid). It would be the most important one, because it is just so easy to get carried away with designing for a future that never happens!
In this multiple-choice activity, we’ll have a go at recalling some of those principles…
Best practice tip #2 – Don’t limit yourself
Don’t solely focus on one technology/language - be open to different programming languages and technology stacks. This will open opportunities for you to learn and grow and be involved in exciting new projects, at work and in your own personal time.
Best practice tip #3 - Keep learning
The world of SD is constantly and rapidly changing. Therefore, it is paramount to:
- keep appraised of industry changes, new technology, new tools
- watch tutorials in areas you aren’t so familiar with
- learn about and try new tools
- network and sharpen your tools by learning from other developers near and far by attending meetups or joining an online community
- refer to a variety of resources, such as blogs, forums, technology news, and books.
Here are some book recommendations. You will find the details of each book in the reference sections of this module. You can see if the books are in your local library or you can ask to get them interloaned for you.
Top book recommendation #1
Clean Code (2009) was written by Robert C. Martin, affectionately known by the software development community as Uncle Bob. He is the founder of the SOLID software development principles. If any book could be called the software developer’s Bible, this would be it.
Top book recommendation #2
Dave and Andy’s book The pragmatic programmer: From journeyman to master (1999) has been long-hailed as a must-have resource for Software Developers, as programming is a big part of SD. Pragmatism is a skill that will take you far in the world of Software Development. The Oxford Learner’s Dictionaries defines being pragmatic (n.d.) as ‘solving problems in a practical and sensible way rather than by having fixed ideas or theories’. Sounds a lot like the Agile methodology, doesn’t it?
Read Hugo Matilla’s The pragmatic programmer (n.d.) review on GitHub, which summarises the top tips from the book, and then see how much you can recall by completing the activity that follows. Tip: if you find this is all very familiar to you, you may want to skip to the list of quick tips in the Quick Reference section, and then only read the full sections for the tips that you are not familiar with.
Task – Drag the words
Best practice tip #4 – Follow these quick tips
- Avoid time-wasters #1 - Automate anything that can be automated.
- Avoid time-wasters #2 - Document anything that can’t be automated, so that it doesn’t have to be remembered.
- Get familiar with and use Design patterns – generic repeatable solutions to commonly occurring problems.
- When working in a big team on a big code repository, limit your pull request to one logical unit, and keep them small. Bugs are easier to miss in larger pull requests.
- When making changes or fixes, to ensure it doesn’t end up costing significantly more than what the benefit is worth, ask yourself:
- why?
- what’s the scope?
- how much time can I afford to spend on this? Then timebox it.
- Keep a growth mindset, ask questions, be collaborative, be proactive in raising issues!
- Work on your own personal project(s), to keep abreast of and play with new technology, it gives you something to talk about with other developers and makes you more interesting to work with.