I cannot agree, that the troubles with a talent caused by some inherent complexity of tech. I got a bachelor degree in psychology, and generally I think that psychology is a much more complex topic than tech. In tech if you do not understand something, you could read a book explaining things. In a psychology mostly you even do not know what you are not understand, because there is a layman's understanding of human mind that you have been learning for decades, and it needs a lot of effort to separate scientific knowledge from intiutive.
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 agree with you in that the challenge is partially caused by the rapidly changing environment. However, I also believe the combination of the changing environment and the style which technology is taught creates the problem. It is taught in a more specific manner that promotes getting things to "just work". Or at least, that is what a young student might strive for. I am also not trying to compare the "complexity" of the subject to others. I am simply saying that technology is extremely interconnected. All the topics relate to one another. So, when getting something to "just work" without understanding multiple times, this compounds on itself to create a real challenge in the long run.
The big problem with 'just work', is that is all that seems to be necessary for a viable product in many markets. You could spend a lot of time and effort getting it right, but in few situations is there adequate competition for that to significantly change the profitability of the end product. Even full blown data theft and remote command injection rarely cause the economic impact that demand market change.
I agree, that there is a feedback loop between education and practice. But I meant that any attempt to change something needs to start from the root cause: the rapid pace of tech progress. This pace is a good thing, but it comes with a cost.
> 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.
Tech is more than just learning a specific system. It’s like the difference between a musician learning a new instrument and someone starting from scratch learning the same instrument.
The specifics of any one system are important, but rote memorization is only useful when you already have a lot of other skills.
There's an ongoing replication crisis in psychology that suggests that most of the findings in the field are fatally flawed [1][2][3].
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.
Yeah, psychologists have managed worse than techies, because psychology have a more complex object to explore. They even cannot find a good methodology for 150+ years.
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.
There's also no output to psychology, so there's nothing to validate you. Especially because it doesn't matter if you get psychology wrong - who cares if you don't know how your mind works? It doesn't care, it's going to keep thinking.
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.
Wages should always be going up at least with inflation and tech has been enormously successful in the past few decades so tech workers should be outpacing inflation. That said, it could quite possibly be even better for tech workers if, for example, the H1B system wasn't abused to bring in cheap overseas labor.
Your own article says "The one group of employees whose wages rose across the board are those working in the high-tech sector in Silicon Valley, with median pay up 32 percent compared with 1997." and tech sector employees are who we are talking about.
Yes. When you can important workers on an H1B that will work for 1/2 or less of what an American would make....
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.
Companies stick to a narrative of a tech shortage, lobby government and universities to help import/train more talent, supply of talent increases, wages drop.
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.
I think it is companies prerogrative to find a way to have cheaper qualified labor (within legal boundaries). Where companies fail in most cases is a qualifed/quality part of equation. Unfortunately I was in situations where given a pool of applicants I wouldn't hire any but stupid head count game is you snooze , you lose and no, management doesn't always understand addition by substraction priciple :-)
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
I don't think that tech is any more complicated than other fields/subjects. Every subject has levels of abstraction, and as you advance the layers are gently stripped away.
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
> 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.
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 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.
We have early education in math, but most high schoolers, over 90% of them, can’t solve basic word problems. There is a small proportion of students that might benefit from earlier exposure to software development.
Instead of teaching them about Turing machines, it could be even better to give them more recess or shorten the school year.
I think that the shortage of talented people is not tech-singular. I think there is a general shortage of skilled individuals in most fields. Tech is just the most obvious to us because the demand is so great. But it's not fair to act as if smart people not exposed to tech would wind up in a professional dead-end. Not ending up in tech simply means they will probably excel in some other highly intellectual demanding field.
To the extent what you describe about depth and breadth is true, it’s true of all knowledge and all subjects.
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.
If you live in a culture where musical ability isn't ubiquitous, such as the western world decades after the invention of recorded music, this may seem obvious, but it's not. The 20th century saw a precipitous decline in musical ability in the general population of the western world.
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.
It's not at the lowest levels of musical ability that not everyone has what it takes to be an excellent musician. It's at the highest. It doesn't just take being trained in the basics followed bypractice time; it takes very effective practice time which has a huge compounding effect. And you as an individual have to able to find out what that means for you. Not everyone can.
That is a truism for most fields. On the highest echelons of talent you have people with genetic predisposition. But OP was not suggesting that everyone can be a world-class musician, just that the vast majority of people can be musicians.
Of course, by definition, only 1% of people can be in the top 1% of something.
I was taking the original comment to be along the lines of maybe only x% of people have what it takes to be good enough to be professional computer scientists or engineers.
Being a good musician is absolutely a matter of talent. Anyone with interest can be a dabbler. But the people who really stand out have natural ability combined with passionate motivation.
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.
I disagree.. And so does the book "Talent is Overrated". Did you know that Mozart's father was a world expert in... teaching music? Did you know Tiger Woods father would bounce a golf ball in front of Tiger when he was in a crib? Steph Curry's father was in the NBA; and there are videos of him hitting half court shots at 13 years old. The reason things like being technically good at music appear impossible; is because we either lack the proper language to describe physical mechanics (what is actually happening when Steph shoots a 3; What is actually happening when Jimi Hendrix hits a guitar string) or someone hasn't taken the time to make that knowledge widely accessible.
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.
> because we either lack the proper language to describe physical mechanics (what is actually happening when Steph shoots a 3; What is actually happening when Jimi Hendrix hits a guitar string) or someone hasn't taken the time to make that knowledge widely accessible.
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.
And many of the ones that do want to sit around and code (older workers) find it impossible to finds job — throwing a monkey wrench into the narrative of some massive shortage.
I have interviewed many people just out of school. They never gained anything from school. They aren't any better equipped for the job than anyone else.
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.
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.
43 comments
[ 3.1 ms ] story [ 85.2 ms ] threadThe 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.
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
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.
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_...
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.
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.