I’ve never spoken of the full list of Principles of Programming, across all architectures and paradigms, languages and cultures. That certainly won’t stop me from trying now though. In order of importance, the two Principles of Programming that I’ve found.
- Laziness – After all, the main idea of using computers it to have them calculate things for you, and increasingly, just do things for you.
- Badass Motherfuckery – The title of the post, obviously, and the second most important, ‘Badass Motherfuckery’ refers to the feeling you should get when programming.
I should elaborate further, after all, not everyone knows the ‘Badass Motherfuckery’ feeling. When you’re writing code, not just generic boring, every day, been there seen that code for some client that you don’t like, you’re not liable to get the ‘Badass Motherfuckery’ feeling, but when you’re writing, especially towards the beginning of your project, you should feel like the most amazing person in the world, capable of shooting lasers our of your computer if need be.
The real meaning behind the ‘Badass Motherfuckery’ priniciple is more one of finding good programmers. After all, you can only get to the ‘Badass Motherfuckery’ state if you’re good enough to write something NEW AND EXCITING, something you actually care to write, not a rehash of some generic algorithim. Of course, even as you start out, you’ll feel like the most ‘Baddass Motherfucker’ ever, even writing variations of “Hello World” in your language of choice. This is certainly not prohibited, and it could even be a good sign, provided your enthusiasm doesn’t wane as you try to writing something more complex.
Programming is not unlike most games with a steep learning curve. It takes a lot of effort, learning thats often driven by ‘Badass Motherfuckery’ effect, before you can really get to the fun parts of programming. The difference being that the programming learning curve is syntactical, and the gaming learning curve tactical. Even the end-goal of the two is the same, bragging rights.