I absolutely love smelling the sweet odor of code in the morning. I almost like that scent more than an amazing cup of coffee. I am a developer and as many others it is my goal to thrive and excel. I want my colleagues to gaze upon my code with awe, wondering which of the seven coding gods created the masterpiece in their hands, when all along it was me, a simple soul from The Netherlands who started coding at 11.
I know this to be a dream of many developers, including me. However, what does it actually take for a simple soul like you and me to become a demi-god of coding? Of course just believing is not the key to success (although nothing from SpongeBob is ever a lie). Here is what I think we need; time. Let me describe in a little more detail what I mean:
Drop everything right now, put your social life on hold, get your butt behind a computer and start typing. That’s it! Although..
Time is what most young coders have more than enough of. Becoming a great developer means getting down to the bottom of things. I mean doing hard research. Basically there are three ways of going about this.
The best way to do research is by working with others, preferably someone a whole lot better than you. You can ask this person all sorts of questions and you will get useful feedback on your code in a very short amount of time.
The second best way to do it is by looking at code from others. There is no better source of knowledge than other people’s code. Programming is in essence nothing more than solving problems and one of the best way to solve a problem is to use other peoples solutions. By reading (and understanding) the code written by ancient developers you will learn new techniques that will help you in your quest to solve these problems faster and more elegantly (I love that word). However, doing so takes time. A lot of time.
Third up is going to school/university/college/whatev-you-know-what-I-mean. It may be weird that I put this in third place but there is a simple reason for that. Education will surely teach you a lot and also what you will learn will probably be well structured (not like the stuff on the interwebs). However, in my opinion the stuff you learn from attending lectures at school will not get you very far. It will all be rather basic. It won’t teach you the specific techniques you need for your specific field of interest. How can it! A course only takes up so much time. It’s not like the other previous two, an infinite source of knowledge. There will be a time when you took all courses and there is very little your school can teach you. At that point you can only learn from others.
Finally, the last thing you can do with your time is start your own projects, preferably with others. It will be very informative for not only your programming skills but also for your management skills. It will teach you to communicate with other people and it will test your perseverance.
One last thing
As I stated earlier, programming is nothing more than solving a lot (and I mean a lot) of problems. Problems can be solved in many ways and one way may not necessarily be better than any other. There are people who say that as long as the problem is solved, you’re golden. I tend to disagree, especially when it comes to programming. I think solving a problem elegantly is usually better than an easy fix. Of course you may lose some performance along the way and it may require a bit more memory but in the end you’ve created something understandable and reusable. (Note: I am not saying that performance doesn’t matter…) Using stuff like design patterns will get you a long way but in the end it has to be you to take control and create your own godly nectar of code.
Well, that’s it. Good luck!
p.s. I will not be responsible for any damage you or your kin suffered living by these wise words.