Rebel Inside / Change something everyday
I am currently reading Yevgeny Zamyatin's We and it strikes a chord in me. I got the idea to read it after reading George Orwell's 1984 which had a reading list of other distopias. Next I read Lord of the Flies, Aldus Huxley's Brave New World and now I've reached Zamyatin's We.
I think the reason the distopia genre strikes a strong chord in me is that it reminds me of what it means to be a little different. For me this is both an outward facing mantra and an inward facing one. Externally it is good to be a little different, not crazy different but enough that distinguishes you in a good way. Internally it is your charge to do something different everyday that is part of your routine. If you always eat at the same restaurants, pick a different one every now and then. If you always leave work at the same time, try an hour earlier or an hour later if you have the flexibility. If you get the bus to work, cycle one day or if you walk, take a different route. With so much to see and do, you can't possibly do anything but becoming mundane in your routine is letting yourself miss so much of the experience. On a side note, a former colleague of mine would probably argue that it also helps prevent "them" from knowing where you are at any minute of the day but that's paranoia for you.
"A description of the recently invented musicometer ... Simply by turning this handle, any one of you can produce up to three sonatas per hour. And how much labor such a thing cost your ancestors!"
The same mantra applies to programming too and is partly why all powerful code generating frameworks like Ruby on Rails and their simulations scare me a little. I will push myself outside of my comfort zone and explore these new frameworks because they are different but I would also avoid sitting on a tool like that and doing everything that way because you are missing out on the experience. Code generation is generally a good thing if done well and can help launch an application faster for a client, but if the generic code makes your applications all look the same then you have lost some of the human touch websites need. The latest codegen tools have advanced to the point where you have the flexibility and the option to modify the code for performance or to create new layouts so seize the opportunity. Do this so we don't end up repairing applications in a year or two which have maxed out the hardware for all the wrong reasons. The wrong reasons are lazy programmers on tight deadlines afraid to push back on clients demanding cheap, fast AND accurate. In the absence of the skills to explain these fundamental tradeoffs to a client, the desperate programmer reaches for a tool. Distinguish yourself for the right reason as a programmer with a desire to do the right thing for your clients for the long term, not just to use the latest tool where you don't fully understand what is going on underneath the hood.
Don't get me wrong - I'm not against Ruby on Rails, I'm not anti-frameworks or anti-codegen. I write codegen tools all the time to make my life easier as a programmer but here is the distinction. If you understand what is happening under the hood, it makes it easier to find the problem with the codegen tool yourself. Clients are paying you to understand your work in much the same way you might expect a mechanic to take good care of your car. There are plenty of mechanics out there who are bad at what they do and make money off innocent people who don't understand enough to be able to spot someone who doesn't know what they are talking about. Get yourself a reputation of not being the bad mechanic.
Change something everyday in your routine as a programmer, as a partner, as a family member, as an employee, as a citizen and any other way you can. Life gets better when you stretch yourself beyond your comfort zone.