Q and A

These are questions submitted by readers, and answered by Tom Hull.

To ask your own question, please use this form.

August 22, 2023

[Q] I've always found it fascinating how you have a degree in Sociology but worked for a long time in the technology industry as a programmer. I'm making a similar career switch. Do you have any tips? -- David Akalugo, Nigeria [2023-08-03]

[A] First, I should clear up the biographical details. I majored in sociology for two years at Washington University, after transferring from Wichita State, where my major was philosophy. I never got a degree, and never did any work in sociology, social work, or anything remotely close. My actual interest was critical theory, so my approach to academic sociology was rather, well, critical.

I worked as a typesetter for several years after that. As I got more interested in computers, I got a job in software engineering at a company that made typesetting equipment. I had natural curiosity about how that equipment worked, and took advantage of opportunities to tackle increasingly technical jobs. This was the early 1980s, when hardly anyone had CS degrees, so most people were self-taught. That's probably changed, but back in my day people who studied CS carried IBM card stacks to be batch processed, and were pretty useless around microprocessors or any kind of hardware.

Still, I suspect a couple tips are still valid. First, read as much good code as possible. Second, find people who are really smart, and make yourself useful to them. They will, in turn, share much of what they know, and possibly open some doors for you. Your education will be obsolete a year or two after you start working, so you have to keep learning. I started working in a shop that had a UNIX source code license, so I could read everything, and my mentors included one of the architects of GECOS (which was a joint venture between GE and Bell Labs). It should be much easier to get breaks like that now: just find some free software to work on. Dig in, find and fix bugs, document and clean up code, come up with ideas to make it better, have them batted around (and often shot down), go back and repeat.

It helps to study the history and lore -- especially things like quality control and project management. You won't have to start as low down as I did -- even chip designers don't have to know how adders work these days -- but it helps to have a sense of the building blocks, how they interface, and where they break. Learn to debug, and not to fear it. I'm not great on that count, but the people who do it best are the best. I imagine AI is going to have a big impact on all this, but the only thing I am certain of is that it's going to create a lot of need for debuggers.

In the long run, I found I could apply insights I had learned in engineering to the study of societies and of political policies, but only if I fully appreciated the complexity of the subjects -- something I must have learned in my initial study of philosophy and sociology. Of course, it's impossible to tell whether my insights are right, because I'm in no position to test them, but it feels like the two worldviews complement each other.