Formal Education is Dead
I graduated from college and I didn't feel ready to work for any company.
Actually, I was hoping to learn on my first job.
Does it resonate with you?
I mean, we're sold this idea that doing college or just reading a bunch of articles will make us "ready" for the basics.
Life demands compound knowledge about many tools and languages that no one but life can teach. My real learning happened the moment I got my first task (and I failed).
In this article I'm going to convince you why formal education is dead, and what you should be doing instead.
🚴 Do you know how to ride?
If I told you that after 5 years of reading books about bike riding and attending conferences across the world on bike riding physics I rode my first bike flawlessly, you would quickly claim how absurd it is:
You can only learn bike riding by riding it!
You would say that full of sure, but ironically, that's not so obvious when it comes to making software.
Personally, I learned to ride a bike after 2 full days of trying, falling, and injuring myself. My dad tried to help. He couldn't ride it for me, explaining the physics also didn't help much, the best he could do was to watch me fall and get me up.
Actually, every fall, and every mere attempt to ride taught me how to do it.
So, why do people look surprised when I say we should be building more and reading less?
👨🏫 Colleges and interviews are broken
We don't test anymore the actual ability to create good software that scales or that solves problems in the real world.
We run a few stupid tests containing stupid questions that lead us nowhere just to validate our capacity for memorizing complex subjects.
During my college, after doing some research around the technologies some companies were using I asked a teacher why we don't have git, Docker, Kubernetes, AWS, CI/CD, or mobile development on our course:
That's not on our syllabus, we aren't meant to teach that.
The incentives are all messed up! Well, clearly we have different goals here. One side promises to make your life easier by giving you all the knowledge you're going to need to start and somehow they know exactly what you need, and everything you need fits this fancy syllabus flyer they gave to you.
I don't even know what framework I'm going to use tomorrow, but mysteriously these bunch of guys that (frequently) have been away from the industry for some years now do.
The other side wants to get out of it as quick as possible so they can start building and making money.
🛠️ How to fix software learning
You may have noticed that I enjoy writing about shit in real life, and avoid shallow examples that will never ever be useful at all.
(By the way, if you're like me and enjoy real-life code, you should totally consider following me and subscribing to the newsletter so you don't lose new posts)
The truth is that in life things are not pretty.
Yes, you decide to refactor a function and you break an entire system, you set deadlines you never meet, you realize you don't know async when it doesn't work as you expect, you debate with your colleagues which tools to use and you all make good/bad choices, you create code that doesn't scale, and so on.
We only grow from pain, and this kind of experience that you can take only from working in a job or a project is the only kind of experience that can make you really good in the relatively SHORT-TERM, because (opposite to fancy courses and step-by-step guides) you're not skipping the tough calls or the open-ended problems. YOU'RE EMBRACING AND LIVING THEM! Bad calls are on you and rewards are also yours.
No one can prepare you for life, you gotta live it and experiment and breath software problems - that's how you're getting great at it.
📈 How to learn outside regular schooling
Analogous to taking a vaccine or working out, you can force a response from your body by creating the right stimulus.
This is different from the usual tutorials you do. Tutorials don't require you to think too hard. You're mostly following steps. It might give you a sense of learning, but the truth is that watching people riding a bike won't make you a cycler, you gotta ride it yourself, and I bet the first time you're going to fall. And that's ok! You get up and repeat the whole process.
Life is complex, but still, we tend to make it "gourmet" by simplifying explanations and problems, giving the idea that you don't have to put any effort. Playing smart is as much important as playing hard.
I believe we can synthetically cause this sort of intellectual pain that pushes us forward, and I have an invite for you.
✉️🧑💻 An invite for you to level up your skills
As the subscribers of this blog's newsletter already know, I'm going to present a challenge and build a microservice architecture in public.
I want to allow you to participate, not by JUST watching, but also to disagree with my own suggestions and ideas.
Do you disagree with my decisions? Can you do any better? Fork the repo (yes, everything is going to be public) and roll out your own solution, I'll open space here in my blog to people who disagree with me and wrap up different solutions, so we can all share and learn together because that's how software is built! By: debating, trying, and showing.
I'm calling this project and series: “The Antifragile Dev”.
Yet, if you're a beginner and there's something you have no clue on how to do, you can watch first and then replicate it on your own terms.
Find out more about the challenge: Restaurant Directory Listing.
Hi there! Are you enjoying what you're reading? If you do, you can be the first to know when I post cool stuff!