Headsmackers - Shit I Wish I Knew Long Ago

Head SmackersWelcome to what I hope will become a valuable and growing section of my site. My days are full of #headsmack moments, when I realize things that I wish I had known for the past year, ten-years, my entire life. These are much more specific than my broader life’s learnings. The ultimate example is it hitting me how big the Linux movement really is, and how I should have jumped on that bandwagon long ago. This is where I’ll collect and organize those moments.

The Huge Stuff

  1. The Free and Open Source Movement - Uh, yeah. It’s big. Not everything there is great, but the great things are world-class great, capable of consuming all else in its path by nature of constant, relentless improvement tapping into the passions of millions. For example, not even companies with profit incentive can stem the tide of Linux. I wish I had realized that long ago, and become much more of a Unix/Linux expert.
  2. Distributed Version Control Systems - I avoided this stuff due to the stories-from-hell surrounding Subversion (SVN) and CVS. But the new generation of DVCS as exemplified by git and Mercurial (hg) are different, and almost life-changing in their usefulness. I wish I discoverd them sooner. Get ultimate undo on everything with your edit-by-edit code history everywhere. Put all your eggs in one basket, then copy that basket all over the place.
  3. Moving Targets & Expertise Over Time - There’s only so much time in your life. Too many things worth knowing take a lifetime of dedication to master. Unless you’re ready to make a life of it, don’t take it on. Worse-still, choosing the wrong tool that for some reason prematurely disappears makes life even harder. So, choose fewer, but timeless tools like Linux, ANSI C, vim and git. Riskier but easier is Linux, Python, vim and Mercurial.
  4. The Innocent Activities of Damnation - Little slip-ups can have profound impact. A great example is how sending emails makes you check your email more often, making you send yet more emails—starting a viscous non-virtuous cycle. Before you know it, the day’s gone. It’s just plain bad to entertain those habits which set you down the wrong path hours at a time, blocking your ability to achieve life’s lofty goals. Email is just one of many possible examples.
  5. Don’t build if you can buy - In the eternal battle between build vs. buy, my heart comes down on the build side all the time based on the intuitive feeling I can do it better. But unless you plan on making a business out of it, chances are, especially in this FOSS-world of ours, you can find a better implementation free. We’re always standing on the shoulders of giants, and when you choose not to, you better damn well be ready to become a giant yourself. If not, forget it.