I love just putting raw ideas out on my Twitter account, recently I tweeted this:
This is an idea I’ve been thinking about for a while now. I want to apologize in advance, as this post may be offensive with some pretty broad generalizations of programmers and programming culture.
If you’re emotionally affected by statements around programming identity or culture, not comfortable with discussions around social anxiety, experiencing any mental health strain or anxiety recently, or just generally seeking more positive content, please don’t continue reading this article.
I’m writing this post just to put the idea out there but, please note, this is just an opinion piece, I’m not an expert on any of this stuff, and probably a lot of is wrong. Please don’t take any of it personally.
I’ve been coding since I was 10 years old and even now, I continue to do so professionally. One thing I’ve always wondered - do programmers lose a lot of their social skills overtime? What is it about programming that can eventually make you more awkward around people?
Were programmers always meant to be this way? Or does programming actually affect your personality and social skills over time?
The strangest thing about programmers - they are still reasonably functional everyday people, often brilliant, and make hundreds of thousands of dollars a year (some of the highest earners in society). Also, in fairness, you can befriend them overtime and see more of their personality. But for the most part - they are often very shy, have difficulty communicating, and often dismissive of small talk or casual forms of discussion.
They also tend to prefer friends who are very similar to them with the same technical interests, but struggle with branching out of the tech world and having conversations with people from other fields and backgrounds.
Obviously, there are so many programmers who are socially very healthy people, but I guess I’m saying that I feel programming does have a higher concentration of people who I believe would be classified as socially inept.
It’s worth noting - I think I’m more on the social end of the programmer spectrum. I am good at communicating and have many friends outside of the tech industry. To be honest, in general, I’m just a chatty person anyways and I’ve always been that way. But in fairness, I suspect there are moments for sure where I can improve my social and empathetic abilities. I’m not sure if programming is the direct cause of my particular shortcomings, but I just thought I’d mention this outright, so people don’t think I see myself as Mr. Popular Cool Programmer Guy over here or something like that.
That Time I Became a Linux Kernel Guru
With all of that out of the way, I always joke with my friends that my social skills sharply declined not just from programming, but specifically from linux as I started using it more often. I understand correlation is not causation, but maybe we should do start doing some studies in this area. For example, let’s take a sample of 10,000 hardcore linux users and measure their psychological scores for everything from social anxiety, aspergers, attachment issues, to communication disorders and see how they compare to the rest of the population. I think the results would be astounding (also ideological tests would show a heavy skew politically towards libertarianism). Perhaps, you could even do this as a longitudinal study to see the psychological effects of it overtime (from beginner to seasoned pro). Again, I love linux and its user community, I’m not saying they’re bad people at all. What I am saying - is there some psychological effect going on here as a result of the underlying technology and the IT profession at large?
We’re ok as a society saying some technologies have negative effects. For example, people will go on at length about how social media can be bad for your mental health. We’re fine saying social media effects your ability to have conversations with real people, while also enraging you, and distorting your view of reality. Could we say the same about a command line script, python documentation, or Visual Studio code? Why do we have so much difficulty acknowledging that programming may also adversely effect your real-life communication skills?
At the same time, we accept that certain disciplines have effects on your personality and mental health over time. I’m not saying programming is a traumatic thing like joining the military or something, but can we agree it may have some kind of psychological effect on you like other fields might?
What is the cause of this? When it comes to this kind of discussion, my rough theory has always been that programmers lose a lot of their social skills simply as a result of the work itself. I think it’s a combination of:
Spending all day sitting in front of a computer (workload)
Spending all day sitting in front of a computer (not talking to real people)
Spending all day “thinking” like a computer
Spending all day “speaking” to a computer, not in any kind of human language
“Speaking” to a computer in very precise, deterministic ways
Obsessing over really specific, hard problems to make computers do what you want
Programming can be really abstract and not grounded in the real world or other people
Only hanging out with other like-minded coders/engineers
Intense passion/interest around technology, lack of other hobbies
Being drawn into the field because you lack social skills in the first place
… multiplied by several years or decades of doing so everyday for a living.
My point is, I believe there are characteristics to the nature and profession of programming which make it inherently deterimental to your human social abilities and to some extent, your mental health.
GPT-3 Prompt Design ≠ Traditional Programming
But this is why I find GPT-3 so interesting. For one thing, I believe people who write GPT-3 prompts, prompt designers, are doing a completely different kind of task compared to programming:
For the most part, they’re speaking in English (or their native language) and communicating with GPT-3 directly, not in something abstract like Java or assembly
At the same time, they are speaking in casual english and don’t have to communicate in ways as precisely and deterministically as programmers have to. You can ask GPT-3 firmly, politely, or in a funny way to do what you want.
GPT-3 is also really flexible. You can make typos, and often it still understands what you mean. On the other hand, try missing a semicolon in a programming language and watch it freak out and not let your program start.
GPT-3 is friendly - you can joke around with it, have a conversation with it, and sometimes, it even gives you a snarky response.
Prompt design is a lot easier to learn - I would argue GPT-3 needs less than a few minutes of formal training/education before you can start interacting with it meaningfully. Programming can take years of painful, dry learning to become proficient.
It’s just a lot easier to make GPT-3 do what you want. It may be able to do it out of the box, require a slight tweak to the text in your prompt, or just need one or two training examples, but your program will be ready to go. Computer programming is not at all like this.
Prompt design takes a lot less time than writing a basic computer program. You can quickly test ideas out inside of the GPT-3 playground and have your program ready fairly quickly. This is exciting because it means you can spend less time staring at your computer and maybe go out and socialize more with friends
GPT-3 has knowledge on various worldly topics and can argue from multiple perspectives, even with multiple tones, pretending to be different people
Prompt design requires cleverness - but not necessarily the intense forms of abstract problem solving programming requires. In fact, I would argue prompt design is more about creative writing skills than traditional “engineering-like” problem solving
Prompt design doesn’t require you to think from the perspective of a cold, heartless computer like programming does. It may make you speculate sometimes on how the AI model could have generated an incorrect output, but I still believe this is completely different from the lower levels of computing programmers have to think through.
I think GPT-3 prompt troubleshooting is a more dynamic and empathetic process than a one-sided computer-to-human interaction that programmers go through daily
… and the list goes on and on.
My argument here is that GPT-3 Prompt Design does not have the same inherent flaws which I believe cause social ineptitude amongst traditional programmers overtime.
Yes, prompt design is only half the picture, the other half is actually integrating the prompt/OpenAI API into your tech product where you would have to use traditional programming skills; but I still think this drastic reduction in even half the workload could still be tremendously valuable to the social lifestyles of programmers.
Regardless, if this turns out to be true, the implications of this phenomenon could be vast. Taking this idea further - can we imagine a new class of programmer with better social skills? I can imagine this group to be more diverse, broader, and more drawn to creativity/imagination in general as opposed to hard/specific/abstract problems. I love watching interviews with writers about the magic of legendary writing rooms for shows like Saturday Night Live and The Simpsons - will prompt writing teams of the future have similar kinds of personalities sharing their war stories? I can also imagine them to be more interdisciplinary and empathetic. Empathy, especially, is something people often criticize Silicon Valley anyways for lacking (maybe it’s because of programming!!).
At the same time, if we can agree in some way that programming could negatively impact your mental health, GPT-3 is actually an exciting technological approach to creating new kinds of computer programs. It could be something healthier for humans and less demanding of our mental capacity and abilities.
There’s some other implications too that I may create a follow up piece on, but for now, I’m open to more thoughts from everyone on this one. Free to chime in in the comments section below. Thank you!