An explanation to the global talent shortage
medium.com
medium.com
Why is this ridiculous?
Being a musician isn't an issue of talent but of training. Very, very few people lack the ability to play music. Most people who claim they can't carry a tune are simply missing a few foundational skills such as pitch matching.
Of course, by definition, only 1% of people can be in the top 1% of something.
Talent is the amount of work you don't have to do to be significantly better than the average person.
This applies to virtually every field, including software development.
Having played guitar for more than 20 years (and recently having time to be able to play 4 hours a day) I've only just now broken past speed barriers and learning how to truly play the instrument. I've read and download HUNDREDS of books, seen many teachers, jammed with many people, watched so many videos; and maybe 1 or 2 books have hinted at what it really takes to play the guitar. I could easily explain it now that I know to anyone and have them at super speed within a year. I've heard the same story from others in regards to DJing, piano, producing and anything else. Unless the person has some obvious physical abnormality that allows them to do some skill; most people in normal physical shape can do what we would deem AMAZING things with the right teacher. Sure.. Maybe they won't develop PERFECT PITCH; but most of the greats didn't have that either.
In many cases the language is there, but you have to have developed some physical skill to understand what it means. We aren't born with high class intuition about our bodies in motion.
There's also a lot of technique out there which gets you some of the way...but not the rest. The difference between a swimmer at a regional club and a swimmer at national levels isn't primarily raw talent. They don't do the strokes the same way. Likewise, there are a lot of things taught in, say, Suzuki violin that I have found hold students back. On the other hand, Suzuki is amazing at producing students that actually play. I know how to teach a musician how to play violin, but I don't know how to teach a beginner to both music and violin how to do both in a way that wouldn't lead them to quit vastly more often than Suzuki does.
Some people have the potential and some people don’t. Those who do have it, have it in wildly varying degrees.
I think the problem with American education at least is it caters to the dumbest kid in the class and doesn’t have any widespread notion of HS-level vocational education. So the smartest kid in the class winds up dumber than the smartest kids in other countries’ classes.
When I started in this field, I began by learning to use some apps, then progressed to learning a single programming language, then another, then about assembly and binary, then about logic gates and then about transistors.
The reason for a talent shortage in tech has more to do with children's education than anything else. I remember giving a talk in front of about 600 developers and asking them, "How many of you chose this field because you were inspired by a teacher at your school?". I'd say about three hands went up. I think if I had been talking at a literature conference, a medical conference or an archaeological conference, there would have been far more hands raised in the air.
The majority of successful developers that I know are self-taught. Even those with CS or SE degrees acknowledge that the skills that got them hired were self-taught. There could be thousands of potentially amazing developers out there that will never know their potential because they either never experienced being taught CS at school, or it was taught badly.
Early years education is important. We should be introducing the subject as early as we introduce English, Math, Science, History, etc. We've all done history projects on the Romans, or Geography projects on volcanoes, when we were six or seven, why not do projects on Turing machines at the same age? Kids should be programming (Scratch) as soon as they can use a mouse and a keyboard.
Unfortunately we have a vicious circle. While there is a tech shortage, we'll have a shortage of tech competent teachers. You're simply not going to get the best of the best, entering the world of education, when there are more lucrative jobs in industry. If we really want to solve the shortage of talent, CS teachers need to be paid an industry competitive salary, and then we need to wait twenty years for the products of their teaching to enter the market place
In my eyes, the same way it found all of the self-taught developers is the same way it "could have found" the group of potentially unbeknownst developers you are talking about.
I'd guess the natural desire to understand how things work (taking apart electronic toys as a child) lead a lot of developers to developing. I find it hard to believe deep down there are generally curious tinkerers who haven't found their way to a programming language of some sort?
I know one. He's rigourously logical. As a hobbyist, he's worked with electronics and complex mechanical systems: analogue cameras and vintage hifi were two of his passions. He's used computers for decades, but for some reason, they never clicked with him in any deep way. I've explained Turing machines to him, and he understands the concept, but it didn't trigger an interest in going deeper. Fundamentally it's about fear, I think. Fear of facing one's own intellectual shortcomings. Computers expose that in a more raw way than tinkering with physical objects, I think.
Instead of teaching them about Turing machines, it could be even better to give them more recess or shorten the school year.
https://www.zdnet.com/article/tech-companies-blamed-for-20-y...
You increase the wage of the American by 2x (but don’t hire much of them) , but bring in 10 from a developing country... the company net cost for 11 devs is less, the American worker doesn’t complain, and H1B don’t complain cuz the ones that do get sent back, and the story that there is a shortage continues. But society as a whole degrades lol.
Case in point: America the past 50 yrs
I disagree that this is what is happening, given my own experience. But I'm not sure what the solution to the problem is. The smartest people I've worked with are motivated to learn more every day. You can offer the best training, but if someone doesn't care about inproving their skills or expanding their knowledge, you can't do much. Also, working effectively in a team environment also requires some soft skills that some people just don't have nor do they care to develop them. Again, can't force people to care.
also I see a lot of developers overestimating how good they are and demanding compensation that is not realistic to what they can deliver but they are within their rights to ask and if they get it more power to them
The most problem with tech is fast change rate. It leads to a troubles with devising good ways to teach. You know, if we look at any teaching process, we'll see that people teach other people by the way they'd learnt themselves. It comes naturally to any people, and therefore we could read that BASIC is the best language for novices: because those who recommend BASIC learn how to code with BASIC.
Normally this process of creating curriculum works, generation of professors after generation distill teaching methods. But it does not works with modern tech. If we tried to keep in the curriculum all the stuff we learnt in a college and than add some more, than in a mere 20 years we might come to a situation when students needs 10 more years to get a degree. So we need to throw things out, and no one really know how important rejected bits of knowledge. Because knowledge is not a state of mind, it is not a bunch of bits, it is a process evolving through education and experience. So to replicate knowledge of a person we need to replicate process from the birth.
First years of human life backed up by thousands years of parental experience, and they generally work. But the book about Rust was written a several years ago. Than it was rewritten. Maybe a decade more and it come to a state when ownership and borrowing is not difficult at all. There is nothing inherently complex in ownership and borrowing, it just our past experience gets in a way of understanding them. All we need is to create RASIC -- a rust version of BASIC, -- and teach kids to program in RASIC with an intent to introduce them Rust later. Then the next generation would be unable to understand our troubles with ownership and borrowing, they would think that C rules are dumb and they need a specially wicked creative mind to invent them. They would see C rules as we see Brainfuck: someone did his best to invent a language to make things difficult.
> I am simply saying that technology is extremely interconnected. All the topics relate to one another.
I believe that it is an artifact of our cognition: our understanding of tech is not crystallized enough. To draw borders between topics one needs a lot of time to think and to experiment. It is like developing software by splitting it into separate libraries: you need a lot of time to think to do it perfectly. But in a 10-20 years your separation of a problem domain will stop being perfect because the problem changed.
The specifics of any one system are important, but rote memorization is only useful when you already have a lot of other skills.
In light of this, it's not really fair to say that tech cannot be inherently complex because psychology is more complex, and they somehow manage. The psychologists have, empirically, not managed very well.
[1]: https://journals.sagepub.com/doi/full/10.1177/17456916156099...
[2]: https://osf.io/ezcuj/wiki/home/
[3]: https://science.sciencemag.org/content/349/6251/aac4716.full...
There is an alternative explanation: psychologists are less intelligent than techies, but I do not believe in that. There are a lot of tech people in psychology research.
But also, a psychology degree isn't used for becoming a "psychologist", right? That's either an academic or a kind of talk therapist. I think the people I know with that degree work in HR.
Frankly, I know what the textbooks have in them; it's not like the content was missing. Do we blame the teachers or do we blame the students? It really doesn't matter.
How about another reason why people quit IT?
https://www.ontario.ca/document/industries-and-jobs-exemptio...
In Ontario, Canada if you work in IT, you dont get breaks, lunches, overtime, weekends, you can work until 2am in the morning and then be expected to be at work at 7am.
The MSPs in Ontario pretty much all do this. Don't like it? Quit or be fired.
I highly recommend Nathan Ensmenger’s The Computer Boys Take Over for a look at the history of the so-called “skill gap” (which is mostly bullshit) since the 1960s. It has a little to do with the nature of the subject matter, but it has a lot more to do with historical contingencies and internal dynamics at schools and companies.
https://www.amazon.com/dp/0262517965/ref=cm_sw_r_cp_awdb_t1_...