Sometimes it’s the little coincidences that seem to be telling you you’re on the right path, stick to it.
In this case, driving back from Baltimore yesterday I had a long discussion with Thomas about why programming sucks, why programmer’s tools aren’t as good as we tend to think they are, why programmers aren’t as effective at creating their own tools as, say, farmers have been (for millenia), why most programmers don’t seem to truly understand the challenges facing the practice of their art, and why, generally, programming education doesn’t work at all.
I can hear the grumbles and dissent already, but that’s fine. I will wear the title of “Philosophical Wanker” proudly. I am willing to accept the idea that this is all nothing but a little bit of delicious neurological masturbation. But, I might add, it’s the self-reflective bird that realizes that the worm is naught but a poor Freudian stand-in for what it really craves: personal fulfillment.
But I digress.
Near the end of our conversation, I said to him, “This sounds like an article in the making.” He said, “Yeah, if we can remember it all.” Unbeknownst to him, I am an inveterate note-taker and filled 3 pages last night with everything I could recall—and a few new thoughts, too.
Wherein lies the coincidence…
And then, later that night, I popped online for the first real time in days and found this article from Robby Russell, a fellow Philosophical Wanker: Advanced Mathematics and Programming.
The other day I received an email from a friend where she asked me if I thought that having excellent math skills were important in a programmers career. I’ve heard this question asked before and while I thought that might have been the case when I was a lot younger (when I had zero plans to go into the IT world)… I’ve not seen this to be true. My response to her was that it really depended on the types of programming work that one might want to go into. There are definitely programming jobs that require extremely advanced mathematical skills, but I’d guess that many, if not most, don’t really have that sort of prerequisite.
Ohhh, does that sound like part of the topic I was fervently scribbling about? Why yes it does. And at the end, he puts out an open call, asking his readers How would you answer this lady’s question?
Like I could resist that.
What I replied with is the tip of the iceberg in an article-in-the-making that is on its way to you soon.
What? You only wanted 2 cents? My sincere apologies
No, it’s not a prerequisite for most programming, and especially not web development as a whole.
The more I watch people struggle with programming, the more I think that synthesis and intellectual flexibility are far more important skills than the ability to write small, isolated, brilliant bits of code.
That means somebody who can come up with a sensible, coherent vision of what the application will do, not only keep its working parts in her head but imagining/seeing how it all fits together as a whole program/narrative… and ensure that things are sensible and consistent across the board. That means not getting caught up with the tiniest details but rather having the willpower and restraint to execute (and finish). And, finally, someone who can remember the overweening point of the development to begin with.
Math is a technical skill. Sometimes it’s required, sometimes it’s not. Math doesn’t teach you those “symphony” skills I mentioned above, only practice and self-reflection do that. Math can teach you how to solve a subset of the problem, not how to build a program.
And from where I sit, the world seems full of people who can competently solve subsets of a problem but who fail utterly at building an entire solution.
Talk to me
What do you think?