I often underestimate the power small choices can have on my life, when I think back to my new years resolutions. Lose weight, get fit, read more. They are all very ambitious goals with little substance. I am always looking towards the next big improvement in my life, and if I eventually do hit my big goal I miss all the little things I did to get there.
“I am what I am today because of the choices I made yesterday,”
So how does somebody get to these big goals? It’s the choices that matter, the small everyday choices. Do you spend an hour watching TV after work or do you finally learn Lambda Expressions in Java 1.8? Do you take the elevator up two floors or do you take the stairs? Often the difference between people who know Lambda Expressions and the people who don’t is an hour or two of not watching TV. You are your choices and the actions behind them, you could have the best intentions for your whole life, however unless you act you are nothing but wishful thinking. You will never get fit unless you chose to get up and take a walk around the block instead of sitting in front of you computer. I am talking about small choices here, nothing big. Fifteen minutes here, an hour there.
Personally I find that there is a large gap between making a choice and going into action. I find the easiest way is to just start. If I feel like I should go for a walk I try not to think about it. I trick my mind, “Go put on your shoes and open our door” I do this quickly before my mind has a chance to think of a good reason why I shouldn’t go, “The weather is really looking bad today, I can always go for a walk tomorrow. It might rain you know!”. If I am faced with something particularity daunting I tell myself just do it for ten minutes. Once I start acting I find that the momentum starts to carry me.
As with most things the first step is the hardest.
I would really like to highlight that I am speaking about small choices, small changes. Over a long consistent time that have brought huge differences to my life. The difference between commenting one of my methods straight after I wrote it and not is about two or three extra minutes of work. However firstly it makes me a better developer and secondly I earn a lot of good karma from the developers down the line who have to maintain my code.
Learning and using one or two short cuts in you favourite IDE will improve the speed at which you code. Every day, make one or two small positive choices to improve your life and more importantly ACT on them. When you look back in a year or two you will be surprised where you are.
One pretty small change I’ve made in my life is writing this blog once a week. It’s a pretty small change but the impact has been pretty big. I am a lot more aware of things I do and the reasons I do them. I think about my decisions and why I made them, I am starting to get better at communication (especially written) and learning to get my point across in a more logical and clear way. All because I write around 900 – 1000 words per week.
Motivation vs Discipline
Something that really deserves it’s own topic is Motivation vs Discipline. However I just want to say here that discipline is a more consistent producer. Motivation is important but discipline keeps you going even when your motivation is low. Discipline is almost like a muscle it is something that can be practised and made stronger. The best way to train discipline is to use it every day. I am not saying motivation is not important if you want to achieve greatness, it is, but discipline should come first. All the motivation in the world won’t help unless you are disciplined.
Small Choices for Programmers
So what are some small choices you can make to see a big difference in your programming skills?
1) Always add a comment when you commit. This will be helpful when you are looking for things you did in the past, it might even save you some time when you remember you once did that thing before, if only you could remember where it was. More importantly it forces you to think about what you are about to commit and could help prevent incorrect commits of code that is still in progress.
2) Learn your IDE. Spend some time learning why people love your IDE, what makes them productive. There is always something you can learn about your IDE. You will see huge improvements in your output if your flow is not constantly interrupted by moving your hand to the mouse to find that option to refactor the method’s name.
3) Start a website and start writing. Even if you just create a free account on blogger. I am always amazed at how much I learn when I write. Every article teaches me something and it honestly doesn’t take that much effort.
4) Spend some time reading other peoples code. Even just ten minutes a day can improve your programming drastically. If you have access to the person who wrote the code it’s even better. Go to them and ask them about it. Programmers love talking about their code, especially if they did something cool.
Take something in your life that you would like to improve. Perhaps you would like to be fitter or you might want to learn a new skill. Now forget that! High level goals are great and you should be working towards them but you already know those. Instead two times a day why don’t you try a different choice. When you are about to do something you think is unproductive stop, put your shoes on and go for a walk or go read about Lambda expressions here.
So how do you know if what you are about to do is not what you want to be doing? It’s when you get that twinge of guilt just before you are about to sit down on the couch and you know that you need to organise your holiday pics. Or when you open the fridge and reach for that left over slice of cake instead of taking a walk. When you start to recognise that feeling half the battle is won. The next half is choosing something different.
Thanks for reading. Until next time may you take a good step.