A couple of nights ago, there was a "Learn Python" workshop being held on the University of Arizona campus. There was a call by the organizer for anyone in the community who knew Python well enough to come down and walk around while the class was happening to help people struggling with the code on their machines. I've taught Python workshops before, and since I had the evening free, I went down to pitch in. I was sincerely impressed by the turnout. It was composed entirely of undergraduate students, and demographically it was very diverse. I was also far from the only volunteer: there were at least half a dozen others circulating amongst the students to help them overcome obstacles.

I've always been interested in teaching others how to code. This was the primary reason I was drawn to helping organize tech events and entrepreneurial competitions in California. I often got the chance to swap skills with others, teach others how to do something, learn new things from others, and most importantly, help facilitate an environment that would connect people with each other. I'm grateful that I've gotten the chance to participate in, and to contribute to, this kind of culture.

In most of the technology jobs I've had, there has been a shortage of people around to do the work that needs to get done. This is a problem on the supply-side. As technology has become ever more pervasive in our society, encompassing every aspect of life like The Blob, there is a lack of people with sufficient programming and technology experience to do the work required by society.

In the face of a lack of competent people to work in technology fields, what we're observing comes as little surprise. I once read a book about video game programming, in which the writers made it abundantly clear early on that the mathematics of game programming are intense. They suggested that anyone who feels intimidated by video game math should consider an easier profession, like rocket science. Many of our greatest programming minds, then, are currently occupied with producing entertainment.

Video games are simply one example; I don't mean to pick on them or decry people playing video games. The brilliance that these individuals exude, the sheer amount of effort in collaboration that must happen between many people in order to make a single video game a reality, is astounding to me. Given the mobility of the people working in these fields, it shouldn't really come as a surprise that very few of them are choosing to move to help solve the more serious problems in society.

This comes down to individual decisions. If you are a programmer and you have your choice of what job to take, you're more likely to take a simple, very well-paid position at a tech company that produces video games than you are to take a job where you can use your technical skills to combat sex trafficking, for example. The former job will not only pay much better, but will likely be more straightforward in both job responsibilities and execution strategy.

The technology gap is widening. This might be one of the more pressing issues of our time. Everyone needs technologists, but that technologists gravitate towards the better salaries. They do as the line from the film: they "follow the money". As has generally been the case in our society, the money fails to attract the people to where its needed most.

This will change with time. As more people gravitate towards learning how to do computer programming, the shortage on the supply side will start to catch up with the ever-increasing demand for these skills everywhere.

This is already in progress. In the class I helped with at the University of Arizona, there were tons of students from all manners of disciplines. They weren't just computer scientists students supplementing their own curriculum by learning a popular programming language; there were representatives from the social sciences, natural sciences, political sciences, and all other manner of sciences, labeled or otherwise. We are at the dawn of an era that will turn loose upon all of us a new generation of people who can program, but who will do more with their computer skills than merely try to be a founder of "the next Facebook".

So should everyone learn to code? Nah. But I posit this: if you want to help society, if you want to help people, then explore the option of entering a computer field. If you're studying another field, learn to program and strive to use this to make new kinds of contributions to your field. We need you, because new ideas are needed everywhere.