When I first started programming I thought that if I knew the language I was programming in very well I would become a really good programmer. Needless to say, that’s not really true, knowing English (syntax and grammar) very well doesn’t make someone a really good author. Knowing the language you are working in is the cost of entry and it should be your first focus however it’s not enough. I am going to talk about five skills that I think are critical for good programmers. These skills might be important for people in other careers too, however I have never been an orthodontist.
Unless you write code in some isolated bunker on a deserted island you will need to learn to communicate. Sometimes you will need to ask questions about abstract problems you haven’t landed 100% yet or you might need to convince someone that your solution is correct. You might need to explain your solutions or ideas to your team mates.
It’s easy and tempting to just put your ear phones in and churn out code. I know I’ve done it once or twice. Just know that you are losing out on a lot of efficiency. Communicating with other smart people will improve your skills and make you a better developer. Even communication with non-developers can teach you about development. I once spoke to a sales person about their sales and how they go about it. He showed me his spreadsheets, his sales pipe line etc. I was impressed with how well he was organised and how well he was using the tools available to him. Jumping between different work sheets, changing formulas faster than I could follow. It was inspirational. It caused me to look at the tools I use and look for ways to make better use of them.
If you really want to become valuable to your team and contribute beyond just your own capacity, become the person who other people come to for clarity. If you can sit in a meeting and resolve confusion by effectively making sure people get their points across your contribution to the team, company or product goes beyond just what you can output.
To become a good communicator you need a good dose of Humility (point number 3) and Curiosity (point number 4).
2. Take care of your health
I wrote this point last, because this is the one I struggle with the most. I know that a healthy body equals a health mind, however it’s just so easy to do things that are NOT health. Eat junk food, play games instead of exercise. All of those things are so much easier to do and fall back on. There have been numerous studies done on how important health living is to a successful career. I don’t feel qualified to tell you how to take care of your health. Just that you must.
You will be able to focus better, remember better, think creatively and all sorts of wonderful things when you are eating healthy and exercising. This is one of my BIG focuses of 2015!
So you are the one they come to when they need something fixed, there is a problem nobody has any idea what to do and you come in with your flashy smile, wave your awesome wand and as easy as one, two, three the problem is solved.
It’s tough to not feel like a rock star and I’m not saying you shouldn’t. You should be able to take your victories and the good feelings that come with them and enjoy them. You should grow in confidence every time you win. What you should avoid is getting a big ego.
When your ego starts to become unmanageable, when you start thinking you are untouchable, that’s when you become a worse programmer. It takes humility to learn, it takes humility to see mistakes you’ve made (and you learn a lot more from mistakes sometimes). It take humility to listen to someone speak about a subject you know well, you might be surprised, they might teach you something.
Without humility you lose out on a lot of personal growth and improvement. One final thing I would like to say is, don’t confuse humility and being humble with being a pushover or weakness.
Humility leads to strength and not to weakness. It is the highest form of self-
respect to admit mistakes and to make amends for them.
– John (Jay) Mccloy
Knowing that something works is good. Knowing HOW something works is even better. Humans are naturally curious, so let your curiosity guide you. Curiosity will also keep you abreast of the game. New technologies, new approaches even new environments is a fact in our line of work. If you stop learning you stagnate and eventually you become irrelevant. A health dose of curiosity and some good old fashioned hard work will help keep you informed.
I often find that I learn the best when I am learning from other people. Turns out that often figuring out how something works is linked with finding the right person and approaching them with some humility. People love to share what they know, especially if it’s about a topic that they are interested in. You will be amazed what you can learn by just listening to someone when they speak.
Life balance is a tricky one and it deserves it’s own post, however on a high level. In programming sometimes it’s easy to lose your balance, we put things aside and tell ourselves that we will do it “after this release” or “after we hit beta”. Then we look back and realise that for the past two years our life has been way out of balance. This is not only bad for your life, it’s also bad for your programming.
We all occasionally need some time to relax. When you have been struggling with a problem for a long time sometimes the best thing you can do it take a walk. Let your subconscious work on it. This idea can also be taken to a macro level. You should find something to do that will take your mind off programming. Find something you love to do (preferably something physical so that it can help you with point 2 🙂 ) and use that to balance your life a bit better.
Until next time may you make your own lists.