My career-related content is now open-source on GitHub.
Deeply ingrained in the hiring practices of too much tech companies lies the basic assumption that developers, and especially junior developers, are incompetent liars until proven otherwise.
Where does that bad reputation come?
π€¨ "I'm not against all junior devs, just the lazy entitled ones"
When I protest that the junior developers I know are not entitled incompetent liars, I usually hear something like that:
I know what you mean, but there are some who do a bootcamp and feel entitled to start immediately a well paying job without having to put in the practice.
The ones i know are willing to put the practice, their real problem is that the gap between post bootcamp and their first job seems impossibly high.
They lack a clear career path.
But let's talk today about about the lazy entitled ones.
π© Everyone should learn to code!
We hear that all the time, so I asked ChatGPT to summarise the current dogma.
Here is what I learned:
- There is a high demand for technical skills
- It opens up opportunities for high-paying jobs
- You stay ahead of technological change and future proof your career.
- It will provide an advantage in today's highly competitive job market.
- Coding is like the equivalent of reading and writing for the 21st century
That sounds good!
π‘ The lazy entitled believed that and acted accordingly
What I find interesting in those arguments is that there are precisely the arguments that the lazy entitled bootcamp graduate believe.
I can't help to wonder:
Are the real culprits the people who followed the flawed instructions?
Or the people who gave the flawed the instructions?
Because those arguments weren't invented by ChatGPT,.
They are pushed by rich, powerful people.
Elon Musk, Marc Zuckerberg and the other tech robber barons.
And their argument aren't technically wrong.
But they do lie by omission.
Truth is that those people are mostly interested in having a larger pipeline of future developers making them even richer.
That you suffer in this large pipeline, wondering how to get that first job, is very much not their problem.
π₯ Everyone should be farmers, nurses, teachers, doctors
A first reason "Everyone should learn to code" is bullshit is that if we took it seriously, society would instantly stop to work.
We still need farmers.
We will need nurses.
We still need teachers.
We still need doctors.
All those jobs are more important than programming, by a large margin.
Imagine you would have to redo society on a island with 200 persons.
Having programmers would be low on your priority list, wouldn't it?
Personally I can live without coding, but not without food.
OK, coding has been oversold, but we are 7.888 billion human beings on Earth, so having programmers is indeed useful.
What is the larger issue?
πΉ Everyone should learn to play music!
Playing music is a super valuable skill in the 21st century.
Playing music was also a valuable skill in the 50 centuries since Ancient Egypt started.
Playing music will most likely continue to be a valuable skill in the coming centuries.
It's true what Nietzsche said: Life Without Music Would Be a Mistake.
So I can't help but wonder:
Why isn't everyone learning to play music?
Look at this visualisation of Franz Listz's Campanella
Surely everyone should be learning this super valuable super cool thing skill?
Why aren't people listening?
π Because it requires a shitload of unsexy practice
It's easy to get started playing piano.
It's open to everyone and nobody will stop you.
But you can't take an easy piano bootcamp and voilΓ , you play La Campanella well.
There is no shortcut, just three things:
Practice, practice and practice.
And for most people, playing the piano will be too frustrating for way too much time.
That doesn't make them lesser than me, that just means they will focus on something else.
It requires a special disposition of mind that you love music so much, that you also learn to enjoy the long unsexy journey of playing La Campanella 1000 times badly
... before you play it wonderfully.
And it requires a special disposition of mind that you love programming so much, that you learn to enjoy the long unsexy journey of writing 1000 buggy badly architecture useless unused software
... before you get one very right software that makes an impact
π π» It's not gatekeeping
Learning to code, like learning to music, is indeed truly open to everyone.
That's something I genuinely love about programming.
You can do a master of computer science, you can do a bootcamp, you can be self taught, you can have all kind of nationalities, you can be many things:
If you can show you are skilled at building stuff, then you belong in the IT industry.
OK, it's harder if you have the bad idea to be a woman, or considered too old, or had a "non tech" job before, but it's still possible.
By all means, we can and should continue to tell people they can try out programming.
But we should also be honest and warn that there is a very long journey between their initial discovery of programming, and becoming a professional software developer.
π― Is it worth it?
Absolutely.
But not everyone will like it.
The question is not whether everyone SHOULD learn programming.
π€ The real question is whether YOU really WANT to keep programming for the long term
Hi, Iβm Jean-Michel Fayard.
Please send my article to a friend that needs it.
On my website, I have Careers Resources for Developers, and if that's not enough, you can ask me a question.
Top comments (30)
Thanks for another great article that most people will probably not (want to) understand.
But to make I thing clear, as people might misunderstand subtle irony.
It is.
or if you happen to be an immigrant lacking basic English skills,
or if you have no money to buy a computer,
of have no chance to leave your village where there is no reliable internet or electricty,
or if you struggle badly to nurture your family you find no spare time to practice coding.
There are probably many more aspect that I missed from my abled and privileged perspective.
Maybe the most successful kind of gatekeeping is one that is convinced that it's not gatekeeping.
Anyway, thanks for your sharing your views and pointing your finger at the "robber barons" and their industry of aspiring low-skilled developers.
P.S. I haven't been playing piano for years due to the "long unsexy journey of playing La Campanella 1000 times badly" although I even struggled to get Mozart, Oscar Peterson, and Udo JΓΌrgens right.
Es war schon dunkel
Als ich durch VorstadtstraΓen heimwΓ€rts ging
Let's be real; you can be a native in a non-english speaking country and you're still disadvantaged in tech if you don't speak english.
Like, one of my coworkers (3rd year apprentice) has a youtube channel where he does programming courses in Kurdish and according to him, he opened that (like 2 years or so ago) because at the time there just wasn't anything like that.
All the cool new tech has documentation, tutorials, websites, even the code comments, in English from day 1; if you speak it, you can adopt the tech and succeed by riding the wave of early adoption that gives you an advantage over competitors using less productive technologies (older frameworks, programming languages, etc.); if you don't speak the language, you'll have to wait it out until someone comes along to translate the documentation and make new tutorials. This is reasonably acceptable for languages like German (we have plenty of bilingual people eager to translate everything (I've even heard jokes about how literally any movie has a German dub lol)), but what about languages from less connected areas of the world that aren't so firmly incorporated into the western cultural sphere.
And that's not even considering how these language barriers then sit on top of other problems like sanctions; a few articles from Iranian developers who lost access to github come to mind. At best these difficulties add up; at worse they have a multiplicative effect.
Much of the tech we use was pretty much built "by us for us", and it's easy to forget that.
It's not only outside of the "western cultural sphere".
The language bareer is real in Spain, France, Italy,... among a very much non exhaustive list of countries where we struggle with it.
My luck was that written English was for me much much simpler than spoken English, and only the former is really necessary.
I share your points. Especially about "robbers" and other professions. And the rhetorical device about music and the emphasis about "practice" revealed very well the problem of teaching complex precepts. IMHO, the industry needs an honest look at what's going on, and beginners need to understand what they're going to encounter in the future. π€
Thanks mate.
Another symptom of that is all those books
Spoiler alert: 21 days is enough to discover C++ but absolutely not enough to master it, especially if you are doing it alone, which you shouldn't
21 days sounds like enough time to have a good grasp at the C++ language in a very strict sense, where you have heard of all the syntax and its features. So it's not wrong, per se, but lying by omission by not mentioning to the audience that just "learning C++" isn't actually the same as learning C++
But it's also true that after learning the technicalities of the language, anyone has the required tools to just go look at some C++ languages and start picking up knowledge about idiomatic code, the ecosystem, etc., so it's not like they're left stranded with nothing useful learned and no way to continue their learning.
Yup! I share your view point. I personally believe that should be "Every one must learn to solve problems".
That's very true because sometimes the right answer to the problem at hand is not code.
Think about bitcoin/blockchain/nft... People started from the assumption that software had to be answer, and ended up creating more problems than they solved.
That't the point, i agree with that. I think many people misunderstand and just say "everyone should learn code", what they really mean is "everyone should learn how to solve problems".
Programming is such an interesting field in this regard; it has the exact same combination of complexity and applicability as things like engineering, medicine, etc. while being extremely cheap to learn (no expensive machinery to train on, no material expenses, hell, even becoming a chef might cost more in materials).
And maybe the simplicity of "install an editor+language runtime and open a tutorial" gives people a skewed impression of the complexity of the field. While people seem to have an intuitive idea of how complicated it must be to do an organ transplant, or to build a skyscraper, few people seem to have a specific idea of the difficulty of building an operating system. I often get the impression that programming seems more like magic to the uninitiated.Β Obviously it must be difficult, but few seem to have a good intuition of how and why.
The way I see it, there's a balance to be achieved, between on one extreme making false promises of a smooth learning experience and an easy way of getting a well-paying job, and on the other extreme scaring away newcomers with horror stories of extreme complexity and a steep learning curve. And there's a three-way conflict of interest here: Employers want it on one end to maximise the pool of potential employees, employees want it on the other end to reduce competition, and newcomers want some sort of honest mid-point that gives them a fair basis for deciding if this is for them or not. Needless to say, it looks like right now, employers are 100% having it their way in this regard, and in my view, they're the group I least care about, so that's not nice.
This is one of the reasons I'm always adding an asterisk to "everyone can learn to code", which is that "not everyone can get extremely good at it, and even for those who can, it takes a lot of practice and learning". In a perfect world, everyone would have a go at some simple coding to see if they generally like it, and only those who actually think "This is my thing" would continue to pursue it as a potential career. If that doesn't produce enough programmers and forces Facebook, Amazon & co. to pay more than they'd like to, well, sucks for them I guess.
I also think there's an interesting tangent on the necessity of "everyday programming", not as a job, but just to make simple automation more accessible (the IOT world might be low-key trailblazing in this area). It seems unacceptable that someone who's using a computer for work these days can't handle simple scripting interfaces that, e.g., loop over some spreadsheet-like structure and calculate an average of all fields matching a condition, or delete a list of flies taken from a CSV file, and other simple tasks like that. This is a topic I'd like to write a post about at some point, but so far I still feel like there's not enough for me to write about.
Wii that was a very insightful comment and I agree with all your points.
What you describe at the end seems to relate well with the low code/no code movement.
I think you should write this article, at least I would be glad to read it
The mainstream idea that software development is a cushy and easy job that anyone can do is far from the truth. Of course, gatekeeping is not the solution, nor is it good, as you mention. But unfortunately, that idea being sold by people with influence and opportunists offering shoddy bootcamps only floods the market, making it difficult for honest companies to find good developers and for good developers (or those with high potential) to find that first job. I have many ideas for possible solutions, but I digress.
I wouldn't keep your ideas to myself, that's an important issue to tackle:)
I definitely agree, and I do share them in general! But I think I could go on for pages theorizing improvements... figured I'd save that for another time. Maybe I should make a post about it π
When I gave too much to say to complete it, I split the huge article in a serie of manageable small articles and it works better for both me and the readers
I enjoyed this article. I really like your style of writing.
Thanks :)
I think the argument for everyone learning to code is that it expands the mind to make people think in different ways, and improve logical thought process. I don't think it means (or at least hope it doesn't mean) that everyone should become a full time programmer.
And as you mention it, I also agree that everyone should (at least try to) learn to play music; It's shown to be therapeutic for the player among other things. Personally, I find music production fun, even though my playing standards are nowhere near being able to play some stuff I've produced live.
Nice music!
Thanks.
As you might imagine, each piece can take quite a while to do. But it's ok when it's fun and the results feel worth it.
Well, we do teach music and first aid in most schools and growing plants in more and more. So yes, everybody actually learns music and sport, even if they don't tour with a band or play in the NBA. There are reasons for that.
The first one is just they are valuable skills out of full time job. Just like knowing how to grow a few things, being able to teach what you know or have some nursing/medicine knowledge is useful, not being scared of simple command line and writing small scripts can be useful to almost everybody in everyday life.
Second and most importantly, it's how you find "talented" people (what you call "special dispositon of mind"). How do you know if you're passionate about coding, if you have a mind that won't sleep until you solve that bug, if you never experienced it in the first place?
Your Listz exemple highlights a common phallacy in western thinking: only hard practice will get you there. Truth is the training time varies by hundred folds between people. For some, you might train them their whole life and they'll never play it. How do yo know who has the best potential to play Listz? By trying to teach everybody.
So yes everybody should learn to code, just like everybody learns music and math. And in times where you need more, you want to increase the pool as much as you can. Now, that not everybody will make a career out of it is logic when you thing about it (we still need people to grow food at some point), but not a reality that everybody accepts indeedβ¦
Schools allows people to discover music.
Schools can't possibly turn people in musicians.
Only the musician can turn herself into a musician the day she decides she enjoys the journey and wants do that on the long term.
I'm totally for doing the same thing with programming.
Just be realist with what a career in music or programming looks like if you choose to do so.
The point is that the first criteria to learn faster is simple:
How badly do you really want to learn that thing?
For example I'm really good at learning music and programming, but I'm pretty bad at learning sales and accounting.
Well software is currently the most important aspect of our society today. Everyone sees software sort of like gold and people who can manipulate simple aspects are seen as priests so you can imagine why programmers are seen as akin to oracles and are payed as such. A programmer is never paid minimum wage they are always paid higher and an observer only sees a human sitting at his desk and typing at the keyboard in a well lit AC room. Even if you explain it, the one who listens only heard "I think therefore I produce and get paid".
To use your music comparison, imagine in the 18th century you see all this classical musicians everyone's begging them to play something. As an onlooker all you'll see is a human, neatly dressed and pressing keys on a big organ to the applause of many. If there were cheap bootcamps back in the day believe me many people will leave factory work to pursue that career. But everyone knows most people of the art back in the day were snobbish behind close doors.
I disagree, farming is probably the most important aspect of our societies today (has always been) and there many others before we get to programming.
That doesn't mean we have to become farmers, but if we somehow could use our programming skills to help farmers do their job better, that would IMHO be more impactful than creating a new JavaScript framework.
this feels a little funny to me but I imagine the end result of the help would probably be some dystopian fantasy where farming is completely mechanised.
Feeding 8 billion humans is no easy task. Without the green revolution people would have started dying en masse, and we are probably not done in this regard, on this planet with limited resources
Not everyone should learn to code. Instead learn logic and logical thinking.