Learning to be a better, faster, and more efficient programmer is difficult when you act like you already are. To become a better programmer I had to look from the outside at myself and pick apart my flaws that I didn’t see in front of my face. Even after programming for over 13 years there is still plenty of room to grow.
Early Bird Gets The Worm
Since I started working from home with my current job 3 years ago I’ve been a little lazy with my mornings. The morning is my absolute most productive time of the day. At my previous office job I would be one of the first to arrive, after waking up to cook an awesome breakfast. Before this year I was barely able to get to the other side of the house by 8. While I’m still not getting up as early as I’d like, I’m working on it. I’ve gained more of my mornings back, and as a result gained a lot more productivity.
Getting Things Done
I was not a full follower of the whole GTD thing. In fact I’m not an Scrum / Agile type person either. Most of my projects for my job are me working alone, which probably lead to this. In the past my list of things to do has been kept in my head as I have a pretty good memory. Keeping this list in my head has gotten harder as I’ve gotten older and had a kid. The best solution I have found has been Trello. Working as a consultant with many clients and even more projects, it’s difficult to find project management software that doesn’t charge an arm and a leg for a high amount of projects. Trello is currently still free for an unlimited number of projects.
There have been several read it later apps pop up, I immediately skipped these. Earlier in the year Read it Later became Pocket, and went free. I gave it a shot. By pushing all the articles I found during the day while waiting on compiles to reading at night, it felt as if I gained an extra hour a day.
No Amount of Help Is Too Small
Not committing to open source projects has been a weakness of mine. It took me a while to realize that I don’t have to implement full blown features to help out on an open source project, fixing trivial bugs is helpful. There is no patch too small.
Changing of Text Editors
As a programmer changing text editors is a big deal, so for the first time since 2005 I have changed text editors. I switched from TextMate to Sublime Text. I used TextMate to get me through my Bachelors and Masters, then continued to use TextMate into my professional career. So even thinking of switching was a big deal. I tried out Sublime and never looked back, it’s speed and customizability won me over.
There are tons of frameworks out there that make our jobs much simpler. In the past I’ve been quick to jump to use some frameworks, now I have apps that are fully relient upon code that isn’t maintained anymore. I built several iOS apps using Three20 in years past, now Three20 has pretty much gone of the way of the Dodo. When I originally started using Three20, development was full speed ahead and not slowing down plus Facebook was behind it. Three20 breaks, and breaks a lot these days. I’ve patched things locally, but they are mere bandaids on a large wound. Stripping out Three20 from these apps would take more time than it’s worth. Now I weigh my decisions on using any framework.
Just Buy the $2.99 App
I have a bad habit of anytime that I see an app that I like, I feel I need to build it myself instead of paying for it. Cutting out the features I don’t need and shoving in my own. Now, unless it’s something I can complete in 5 minutes, it’s worth more to spend $2.99 and go about my day.
I have always kept a ton of side projects going, mainly to myself. Most never see the light of day, and most I never use again. I’m now starting a rule that if I can’t open source it or make money off of it, then I will not work on it. I have wasted too many hours of my life that I will never get back on these projects. While every project has been enjoying, there never has been much gain for me or for anyone else.
Having my daughter last September has made me think a lot about the future. I no longer have just myself, or my wife to worry about. I have someone who is dependent upon me to provide everything they need. She has a long ways to go. I want to make sure she has every chance in life, and gets as much education as she can.
To provide these things for her, I can’t help but always be a better programmer than I was the day before.