"Solving computer problems is painful. Technology professionals never really get better at solving the problems. We just become numb to the pain." -- Chris Donaher
I'm an awful programmer. I don't particularly strive to be a great programmer. I only want to be a good enough programmer that I accomplish what needs to be done. Interestingly, as you build bigger more complex systems, you end up becoming a slightly decent programmer as a byproduct. That is to say that you become good enough at working around the problem that you are able to accomplish some really cool stuff while still being pretty bad at writing and understanding code.
This blog post consists of several tactics I regularly use to avoid actually getting better at programming while still accomplishing the things I need to accomplish. Obviously the best way to solve a problem is to spend the time and effort to understand the problem. These tactics are the next best thing. I have tremendous respect for excellent programmers, but I've met enough of them to know that we are not alike.
Python is a hysterical language. It was designed from the ground up to be used by people with only the most basic bog-standard computer skills. It will run virtually anything you throw at it without complaining. The best way to be a bad programmer is to program exclusively in Python.
Python doesn't care about data types or style. It doesn't care if you surround arguments in parenthesis. It doesn't care if your code makes no sense whatsoever. It doesn't care if you use exception handling as regular control flow, or if you don't even know what kind of exception you'll be handling in the first place. Want to multiply a string by an integer? Sure! Forgot wrap your print statement in parenthesis? No problem! Didn't specify which version of Python to use? That's fine!
This is fine
That is why Python should be your #1 choice if you don't care about being a good programmer. Python allows you to suck at writing code and somehow still be insanely productive. I love Python and I will probably use it for quick and dirty code until the day I die.
Use Github code search
Sometimes I'll be working on a project that requires some esoteric third-party library. Oftentimes these libraries are barely documented or not documented at all. You could read the source code to understand the classes and methods well enough to use them. Or you could just search Github for other people using the same library and see how they implemented it.
"import whatever" language:Python
I've saved countless hours using this tactical to successfully preserve my novice programmer status.
Search Stack Overflow
If I had a dollar for every line of code I've patently stolen from Stack Overflow I could probably afford to pay for some coding classes.
Ask on X IRC channel "why you can't use X programming language to do Y?"
The quickest way to solve a computer problem is to casually mention to the most active users in that community that it cannot be done. I've had great success with this tactic on numerous occasions. Other people in the IRC channel will flock to prove you wrong and, thus, help you get the code written. On one occasion the founder and main developer of the particular technology in question PM'ed me directly and wrote the code himself that did exactly what I was trying to do without me even asking.
Becoming good at something is one of the greatest joys in life one can hope to achieve, but sometimes relentless pragmatism is more appropriate. Being smart and being good at something are mutually exclusive. Hopefully this post will be useful or at least interesting. If you have any cheap programming hacks then I'd love to hear them. As always I enourage the readers to reach out to me directly if you have any questions or feedback.