“
I often said I wouldn't have pursued programming as a career if I still did drugs. This is probably true, since weed was always immensely crippling for me. I would have weed hangovers for days, and while stoned, was unable to read or do much of anything besides clean and play video games. Whether or not this would have turned out to be true is academic, but it's definitely true that I wouldn't have become a programmer if I hadn't lost my mind, because the recovery process taught me my most valuable skill as a programmer: how to not think.
Programming requires the acceptance that you are entering meaningless symbols into a machine that's going to spit out other meaningless symbols, and this can be hard to accept. It requires abandoning all hope for an answer for the existential "why?" in favour of shuffling boolean values ad infinitum. By no interpretation of the concept of understanding does a computer understand what you're telling it or what it's telling you.
On top of that, programming as an act is more often hindered than helped by thinking. Despite zero years of training in computer science, I've found I have an edge in debugging because I never look or ask for an explanation. Ninety percent of the computer bugs in a program are tiny, one-line errors, and you just have to find that error. Holding the entire logical structure of a million lines of code in your mind in futile. The task is to find the references and connections and track them back until you hit the problem. If I get an error message, I copy it into Google, because someone somewhere has encountered and solved the problem, probably by tracking down the people who originally wrote the program. In seven years of programming, I've solved exactly two undocumented bugs via pure deductive reasoning.
”
”