Programming Education is Not Helping Developers
Universities and bootcamps are killing the creativity and motivation of millions.
Science is magic and exciting, but most people hate it because they had terrible professors who didn’t know how to show students the big picture. The same is true with programming.
“What language should I start with?”
“What’s the minimum experience I need to qualify for a job?”
Those questions, super common in forums, should be a wake-up call to the thousands of teachers who are not motivating their students.
In most courses, you’ll hear about weird things like boolean data and compilation, but they won’t explain to you why we use those things. Bored and confused students will drop those online courses after two classes.

To understand something, the human brain needs a series of facts presented to it in a logical sequence. Like any good story or gossip.
In this article, I’m going to teach you some interesting facts you should know before learning to program.
The Sequence
You’ve probably seen those black and white videos where someone explains a mechanical device, like the differential steering of a car.

Those videos are super fun to watch and easy to understand. They start with a simple mechanism and sequentially explain how to enhance the device. Alarmingly, those are rare examples of fun science education.
Science professors are usually talented scientists but bad educators. And the same is true in the world of programming.
The Hidden History Behind Computers
Computers are not new for humans, but we forget to teach that.
Mechanical computers helped us with many tasks for centuries: over 2000 years ago, the Antikythera mechanism was used to predict astronomical positions and eclipses decades in advance.
In 1810, during the Industrial Revolution, a worker called Nedd Ludd inspired a revolution to destroy looms. He was mad because looms were automating the clothing creation process and putting many people out of work. But some of those looms had a secret that changed the world forever.
The Jacquard Loom could create complicated textiles by using a chain of punched cards to create different and beautiful patterns in the fabric.

This system inspired the mathematician Charles Babbage to design a device that could read data (with punched cards) and process it mechanically: the Analytical Engine.
Invented in 1837, this device was in fact the first mechanical general-purpose computer. And the famous Ada Lovelace used it to create the first program in history.

The position of the wheels was used to store numbers, creating the concept of a variable. The mill had a set of instructions to process the data, acting as a CPU. And the levers allowed the machine to have conditional branching (an if in modern programming).
The concepts we use in modern computers were designed over 185 years ago.
The “Soft” Knowledge
We usually know programmers for being introverted and lacking social skills. Although that is less and less true, what is still true is that programming academies do not help us develop soft skills.
They forget to teach us not only how to interact with others but also how to sleep, how to avoid the dopamine rush of social media, how to prepare for frustration or imposter syndrome, or even how to communicate our ideas.
Programming academies should also help with strategies to read others’ code without documentation, a skill that programmers struggle to learn in their careers.
While we can say that every career comes with similar challenges, our case is special because we work with very abstract and complex ideas for long hours while staring at computers, and we do it almost exclusively alone. These are problems that scientists are also facing (mathematicians, physicists, etc).

But by far, the most important soft skill that academies don’t teach is definitely mastery.
The Mastery
Some time ago, after years of experience in programming and an engineering degree, I wanted a better job.
I asked a friend who was a senior developer for her advice on how to study for job interviews. What she taught me changed my life and my way of understanding things (Thanks, Chelo ❤). Looking back, it seems obvious, but it wasn’t before.
She told me several things I needed to do to become a senior developer (that’s why we need to join communities and clubs). But the most important one was the recommendation of two Ruby books that really helped me understand the language and the framework I was using.
She showed me a path that made me a better programmer and I changed to a better job a couple of months after that. But I still wonder why I didn’t know that.
To finish, I would summarize the things you need to become a senior software engineer in 6 steps:
1- Understand the industry to choose your path 2- Understand the basics of computer sciences 3- Dominate your language and framework 4- Learn the complementary tools (Git, Linux, System administration, etc.) 5- Read the books 6- Practice with algorithm challenges and share your work
In the future, I hope that programming schools are more interested in helping programmers to follow this path than teaching them how to code random things without a background.
The Tech Club and Newsletter
Thanks for reading!
Receive in your email the latest news in the world of technology from a different angle.
What’s the naked truth behind NFTs?🪙 How can I work for Google? 💻 How’s the code NASA uses in space? 🧑🏽🚀 How is AI being used for cyberwar? 💣
Join the Tech Club and Newsletter by clicking here
If you join the newsletter, you’ll also be receiving opportunities and secret bootcamps 😎.
