In a past life, I was a hack musician. Rocking out on the drums, guitar, and bass was a fantastic outlet for creative expression. Now that rock and roll does not appease me as much, code has filled in where instruments have before. There are so many similarities between the two. How many coders do you know that are into music? Probably all of them, right?! It must be something in the brain that makes the two disciplines attractive to a particular person. Let’s say you remember playing your guitar. Practicing those scales and modes. Learning all the chords. Keeping your strings clean and up to date. Replacing the tubes in your amp for the best performance. Sound familiar? We gotta practice those data types. Learn all the fundamentals of OOP. Stay up to date on the latest techniques. Clean up and refactor your hacked together creations. It’s all the same stuff.
Practicing vs Performing
Practicing is the thing you do to hone your craft. It’s not always exciting or fun, but it is necessary in many ways to advance yourself to the next level. You take in the theory, absorb as much as humanly possible, yet when the rubber hits the road (the performance), things seem to just happen instinctively – almost like magic. It is all the work we put in when the lights aren’t shining that help to make those moments just a touch more magical. When you’re putting in the hours of rote memorization of the basics, and learning the fundamentals of computer science, logic, languages, and design, you’re kind of doing the same thing. Practicing so that when you go to try and build something for production, that spark of magic will happen.
Noodling(Hacking) Has Its Place
The opposite of practicing could be thought of as noodling. Eddie Van Halen is perhaps the world’s most famous noodler, or hacker if you will. Eddie would spend hours on end doing nothing but noodling, trying completely random and outlandish things. Ignoring every rule in the book, and just going off the deep end trying new and different things. Noodling has no concern for the rules, the theory, or anything else for that matter. It’s rock and roll. You think it might sound cool to put a space alien toy gun against your pickups just to see what is sounds like coming out of the Marshalls at 11? Go for it! They didn’t teach you that in your theory class, but damn it sounds sick!
Hacking Too, Also Has Its Place
With coding, it is perhaps more important to learn the theories and the rules and regulations so to speak. After all, depending on what your code is powering, errant bugs or mis applied logic can be a disaster of epic proportions. Sometimes though, (in your own little development environment), you gotta try things that are just so off the wall and outlandish, you’d be thrown in programmer jail if anyone ever witnessed it. You need to hack. Why? Because sometimes, this is how you expand your mind. By pushing the envelope, trying different approaches, breaking things, then trying to get them to work again – this is where you often have the biggest “Ah Haaa!” moments. Isn’t that why we all program in the first place? We’re all in search of the next “Ah Haaa!” moment. All the crap you already know doesn’t always provide that simple euphoria anymore. That’s why, you gotta hack. You gotta hack yourself to that next “Ah Haaa!” moment. Your creativity is depending on it.
Hack It Up
In summary, go do something the experts have told you not to do. Hack something. Then break it worse. Challenge yourself to dig your way out of any holes you create. Put things together in a way that challenges all norms. Try to do something with the language that everyone says you should never do. Actively look for rules you can break. You’ll have a blast doing it, and just might bring some excitement back into your day to day coding.