I long for the days of real programmers. Not the sorry excuses for programmers we have nowadays that need things like IDE’s, GUI’s, and API’s, but programmers that knew how to code like true geeks wrangling 1’s and 0’s or living in vi and Emacs. They certainly did not write in so-called interpreted languages like JavaScript, Ruby, or Python. No way! Real programmers compile code that they write in real languages like C++, Java, and Haskell.
These avocado toast eating, cold brew coffee drinking wannabe hackers are nothing but a bunch of script kiddies with standing desks and natural light offices. How dare they impugn the very tenets of our sacred industry! And to think these mere code newbies have to rely on sites like Stack Overflow, a site for amateurs sharing half-baked “answers”, says all you need to know about programming these days!
Several weeks ago, developer Twitter exploded in indignation* at the demotion of front-end engineering. Tobi Lutke, founder and CEO of Shopify, got the debate sparked with his comment:
“100% there should be no such thing as a front end developer outside of super junior contexts. All developers need to think across all the layers that they build on to be effective.”
Twitter not being the best place to express nuance, Tobi got mobbed by the angry horde for having a poorly formulated opinion. There was some kernel of insight in his tweet that developers should have a better understanding of how their code interacts with other aspects of the codebase. It was too bad that it got lost in the heavy dose of “Real Programmer” vibes coming through.
Nearly forty years ago, Ed Post wrote “Real Programmers Don't Use Pascal”. It was a parody of a best-selling book at the time called Real Men Don’t Eat Quiche, and his essay quickly became a classic within geek circles. He managed to perfectly skewer the recalcitrant, stuck in their ways programmers of the 60’s and 70’s that resented the newer generation of developers in the 80’s eagerly jumping on modern technologies, like Pascal.
It is a bit of a long read, so here are some my favorite “Real Programmer” quotes:
“Real Programmers use Fortran. Quiche Eaters use Pascal…If you can't do it in Fortran, do it in assembly language. If you can't do it in assembly language, it isn't worth doing.”
“Real Programmers aren't afraid to use GOTOs.”
“Real Programmers don't need comments-- the code is obvious.”
“No Real Programmer would ever use a computer whose operating system is called SmallTalk, and would certainly not talk to the computer with a mouse.”
“At a party, the Real Programmers are the ones in the corner talking about operating system security and how to get around it.”
“Real Programmers write programs, not documentation. Leave that to the maintenance people.”
“Real Programmers survive on Twinkies and coffee.”
“Are we destined to become an industry of Unix hackers and Pascal programmers?”
I was a Unix hacker back in the day. I also had to face my own my “Real Programmer” reckoning though when I jumped back into programming in 2008 and everything was Ruby on Rails and Heroku. Building modern front ends was even more daunting, to the point that I eventually took a Front-End Engineering course at General Assembly. Whatever Tobi might think, his views on programming are dated. Front-end work is absolutely as technically challenging as anything I ever built server-side.
The disrespect shown to front-end engineering is just one example of a long history of gatekeeping. Because things like HTML, CSS, and UX design do not seem as difficult, the “real programmers” feel content and even justified in belittling an entire category of programming. It continues the trope that visuals are easier than the plumbing and logic. This is clearly not true. If anything, UX is even more important when consumers ultimately determine success of an app by how easy it is to use. That is the magic of a well-designed user experience.
Recently a conversation about HTML as a programming language caused another dustup in developer circles. This time someone unwisely played the “do you have a computer science degree” card and it did not go well. As an aside, never get on Corey’s bad side:
There are all sorts of arguments pro and con that you can make about whether HTML is a legitimate programming language. That is not the point though. It is yet another example of one segment of the programming community dismissively casting aside the value and worthiness of another segment that just happens to have expertise in different tools and skills.
The worst type of gatekeeping however comes in the form of education attainment and hiring. Information came to light about candidate review process created by former Googlers while at Twitter. When you read the criteria, you could take it one of two ways:
The candidate only needs to have at least one of the criteria, so not so bad, or,
The candidate better have a computer science degree from a worthy college.
Besides the fact that the list leaves out many excellent computer science programs at great universities in the US and across the globe, it also ignores the fact that a degree does not actually prove anything. It is a lazy filter, something that I realized when I started to hire and work with recent computer science graduates from top schools. They knew the theory. They could code up whatever flavor of sorting algorithm you wanted. But they struggled to write, test, and deploy production quality code without significant mentoring.
Using college degrees as a filter also significantly constrains the diversity of excellent candidates a company can draw. Many excellent candidates from HBCU’s (Historically Black Colleges and Universities) would get passed up using Google’s criteria. This makes no sense, especially when developer talent is expensive and hard to find, and it makes building an inclusive culture that much more difficult. Using college degrees and where someone graduated from as hiring and promotion filters is the worst type of gatekeeping in the tech industry.
Who are real programmers then? Simply the people that program and identify themselves as programmers. Their motivation could be coding for fun, learning it in school, doing it as their job, building stuff as a hobbyist, or taking programming gigs for cash. All are legitimate pursuits. As long as you are programming, enjoy the challenge, and want to continue learning, you are a programmer, developer, software engineer, coder, or whatever you want to define yourself as.
Real programmers are people that program and identify themselves as programmers
Putting artificial lines in the sand does not help anyone. When we start to say one group based on biased criteria are real programmers, we start to veer into 10x engineer territory. The reality is that some programmers will be exceptionally gifted, but that does not discount or lessen the value of the other 99% of the programmers out there today that code and contribute the bulk of production code in the world today.
When I was at Stack Overflow, there was one stat that always fascinated me. Even though the most generous estimates put the number of developers on the planet as 25 million, double that number were on Stack Overflow every month. When I looked at the number of unique visitors to Stack Overflow in Hong Kong and Singapore, it was nearly 10% of the population. Coders are all around us coding every day.
What can I do and you do then to eliminate the gatekeeping in tech? Be more supportive of those early in their programming journey, encourage more opportunities to learn in the workplace, and be more open to non-traditional sources for developer talent. If you can, contribute time, expertise, or provide monetary support for groups that promote programming skills to the young, to disadvantage groups, and to those displaced from the workforce and seeking reentry into a new career.
We can all be part of redefining who “Real Programmers” are!
Mark Birch, Editor & Founder of DEV.BIZ.OPS
I want to ask a favor. I collaborated with a developer to launch a Chrome extension that helps you find the best hashtags to use when creating a post on LinkedIn. Why build this? Because I see lots of people attempting to expand the reach of their posts using hashtags that barely have any followers, thus their posts fail to get traction.
Key features of LinkedIn Hashtags include:
⭐Toolbar icon lets you search for hashtags and provides the follower count
⭐Follower counts show dynamically when adding hashtags to a post when typing
⭐Get Followers button shows total follower counts for all hashtags in your post
I would really appreciate it if you could download the extension and try it out 😀
You can also check out the video on how to use it and follow our company page on LinkedIn to receive updates and new features as they roll out.
Let me know if you find it useful, what features you might like to see added, and what other things you would like to improve about the LinkedIn posting experience 👍
Lastly, I could not post an essay called “Real Programmers” without sharing this classic xkcd comic:
Want to learn more about DEVBIZOPS and read more hot takes about IT, technology, and working smarter. Receive our weekly newsletter by signing up to our Substack!
Can't agree more that we need to be more "practical". A real programmer is one who solves a real-world problem elegantly, efficiently, and securely. Nothing to do with programming languages or education. Everything to do with values and ethics. Have fun!