How did you manage to become such a great developer? Probably a question we as developers get asked, and yet it is hard to answer it. In my case I always try to remember how did I even started programming, but it is now a bit far, that is becoming a blurry dot.
Today is even harder to choose which tools to use in order to learn a new programming language, and once we chose it, we realize the content is deprecated or not up to date. Do you remember your last learning experience?
The need of learning new things will always be present and we want that knowledge to be fresh, up to date and the more practical the better. Seems like a lot isn’t it?
Back in my days I dream of being a good developer, which meant just to write good code for me and other developers and hopefully it will stand for generations. Good luck with that.
My mom is a hacker
Don’t be afraid about the word hacker I know many people think of us as a group of malicious guys who are locked out in a basement trying to break things up.
A hacker from my point of view can be anyone of us, not just developers. Being a hacker is about making our life easier with what we know with the tools we have at our disposal.
Take my mom for example, she is always hacking the recipes she get from books or the Internet by changing some ingredients for others or the preparation order. It doesn’t taste like it’s supposed to all the time, but the good thing is my mom in this case hacked the recipe and solved things with what she knows and what she got at the moment. Sound familiar at your job? or daily developer life?
Becoming a great hacker
Nowadays being a good hacker is not good enough, we have to be great. But how do we achieve that?
Here are my 5 points of what I think a great hacker should have:
Good practices — is one of the most important things to have. Regardless a programming language which could die tomorrow, good practices last for many years. It is the way you craft software, and it could be as simple as a commit or whether you practice TDD. Give code review. Accept code review. Once a week pair program with a peer.
Eager to learn — just because you chose a tool for development, it does not mean is the one you are going to keep using for the next 30 years. We developers are as doctors, we need to always keep learning new things in order to provide a better service and give confidence to our patient. Not just learn programming languages, try development methodologies. Collaborate on open source.
Passion driven — as long as you have passion for what you do, you’ll never get bored. Passion is the machinery that will get you to where you want, from learning a new programming language, to give mentorship. Always share your passion. Choose a programming language you are comfortable with and love it.
“Experience is what you get when you didn’t get what you wanted.”
-Randy Pausch, The Last Lecture
In the end experience is what really makes the difference, and I’m not talking about 30 years of experience, but make mistakes and learn from them. Share your stories with your team and with the world. Receive feedback and grow.
Values — is what defines you as a person or as a part of a team. Be honest with your work and peers. Be kind with others, probably they are not as experienced as you. Be accountable.
At Hacker School Monterrey, we are working with good developers and turn them into great ones by providing them the tools and philosophy to start changing the way they craft software along with their teams.