Recently I received some feedback comment through me website in which a reader asked roughly following questions:
How can someone take their coding skills to the next level? I noticed all your certificates, do you feel this is best way to get fully trained or can it be self taught? I imagine there are a lot of people like me feeling stuck but wanting to take their skills to the next level. Should we take courses? Exams? Certifications? Stick to self-learning?
Since I only have so many keystrokes left in my life, I am blogging my answers and thoughts to this email to share them with you and get probably some more feedback on that topic.
First, I don’t think that certificates will bring anyone’s skills to the next level. To be honest, the main reason I have a bunch of certificates is that one of my former employers required me to take these exams and get certain certifications. I am not saying however, that getting certifications does not help at all but they will definitely not make you a code guru or ninja.
From my experience, practical work has helped me the most. I know that sounds boring and is probably demotivating but it’s a simple truth. It’s like in sports - only long and hard practice makes you skilled and can turn you into a pro.
So do whatever you can to sharpen your skills and get practice! Get involved, start your own projects, do open source work, read and try to understand other people’s code. That’s what brought me forward.
Also look at pieces of code that you wrote months or years ago and think about them. What mistakes did you make? Would you solve problems the same way today or would you do it differently now? This kind of self-reflection helped me a lot and improved my techniques. Nothings more enlightening than learning from you own mistakes.
What also helps is reading books or blogs that deal with meta-programming issues like “What is good code”, “What makes clean code?”, “How to write testable code?” or “What are good design patterns?”. I own nearly a hundred books on programming and software topics by now and I think they helped my a lot during my career. I actually think as a software developer there should always be at least one book (on a software topic or technology, of course) that you are currently reading. I for example am currently reading CODE by Charles Petzold.
The bottom line here is that no sure formula exists, as this is so often the case in life. But on the other hand, the mere fact that we are thinking about strategies to improve ourselves already differentiates us from many others, who don’t even bother.