You’ve most probably heard about the controversy which has been shaking the community of programmers lately. Three weeks ago, Wired published the following article: The Next Big Blue-Collar Job is Coding.
Clive Thompson, the author, argues that programmers less and less need a high level of expertise to perform their daily job and hence could enter the category of blue-collar workers. Criticism didn’t take long to arise. Quite a lot of programmers did understandably refute Clive’s thesis.
According to Wikipedia, a blue collar worker is a working class person who performs manual labor. We can hardly say that working in front of a computer represents manual labor. So the debate is settled then– programming will remain a white collar job, right?
To me, arguing whether programming is a blue or white collar job is a barren discussion. And I believe that Clive makes a valid point:
More and more entrants into the programming industry have low technical knowledge. We can find several reasons for that: the popularity of coding bootcamps and their promises, the increasing accessibility of programming to anyone and the fact that software finds its way into any business (software is eating the world, right?).
So, what are going to do about that? Are we going to let the programming industry split in two with the highly-skilled coders on one side and cheap subordinates on the other side?
Here are my optimistic ideas to help us prevent a two-tier programming industry.
Changing Our Image
It’s our responsibility to show others the best of what we are and break these prejudices. Let’s show everyone that we’re not just code producers, working alone behind our computers and unable to communicate. Let’s prove to our non-IT colleagues how much we can contribute to a project, bringing more than just our technical expertise to it. We do understand the needs of a business. And we feel responsible for the quality of the code we push to production.
Let’s be proud of our technical skills without being arrogant. The job of a programmer actually requires a lot of non-technical skills: communication, design thinking, problem solving, teamwork, the ability to anticipate, some flexibility… I think we should put some more focus on these soft skills, and try to improve ourselves.
Breaking the Dream
A lot of people still completely ignore what the job of a programmer consists of. A part of them think we’re almighty and idealize what we do. The other part is just afraid because they don’t understand it. We should explain clearly what programming is to those who don’t know it. Especially to the young generations.
First, programmers don’t spend their day writing code. Yes, it’s a very interesting and challenging job. It feels rewarding because you make things work. Still, as with any job, it involves a lot of unsexy tasks — like maintenance, testing, specifications writing… It’s truly a great job, but also very demanding. To stay relevant as a programmer, you have to keep up to date with emerging and evolving technologies: True Programmers Never Stop Learning.
The goal is not to deter beginners from joining our industry. On the contrary, with clear communication, we can set the proper expectations and attract passionate people. Instead of sending a clear signal to new entrants that we’re afraid of the quality of their code, let’s welcome them warmly. Let’s tell them they have much to learn, but they won’t be alone in their journey to become kick-ass programmers.
Connecting the Community
When I started my first job as a software developer, I had a very low technical level. I had to learn the hard way — debugging, copying, failing. I wish there had been some kind of mentoring program to help me blend in. This way, I’d have made progress earlier. Sure, programmers should learn to search answers by themselves, but I think a bit of guidance would not hurt.
The programming community, unlike any other community, already focuses a lot on sharing — I think about StackOverflow, GitHub or forums like the “learnprogramming” subreddit for example. Let’s insist on this strength. A programmer should never feel alone. If experienced programmers rally around beginners, and take the time to mentor them, it will ensure knowledge transfer and make our teams more connected.
I believe this is a first necessary step towards building a great community of programmers which can regulate itself. We’ll be able to organize ourselves and make our teams more effective, empowered and ethically responsible. This resonates with what Bob Martin shared in his talk about the future of programming: Agile Has Failed, A Peek at the Future of Programming.
Autonomous, open, educated, connected and responsible — this is how I optimistically envision the future of the programming community. I’d really like to know what you think about this controversy around the color of our collar. What would be your proposals to improve the current state of programming? How optimistic are you about the future of our industry?