The future of work requires a return to apprenticeships
weforum.org
weforum.org
At my first internship, I was more dead weight than productive, but by my last three I was a contributor to many nontrivial projects.
Those experiences (1) were absolutely invaluable in my growth into a capable engineer (2) gave me a sharp perception of what life is like at different-stage companies (headcount 5-10 to headcount 5000+), and (3) gave me an idea of how “industry trends” actually manifested in different companies. By the end of my years in college, it seemed like these experiences had put me on a different track, career-wise, even though I was no smarter than my peers.
Friends who had maxed out their investment in GPA and personal projects were in a relative bubble. They could crack the coding interview, but didn’t know their way around a shell, or what the relative risks of adopting one database over another might be. In hindsight, I guess these internships might have leapfrogged me past the “junior engineer” phase. In any case, the experience had positive impacts on my career.
I guess it might not be a path for everyone (and I’m very grateful for those first few companies that paid me for those relatively unproductive summers), but I agree that these kinds of expected-to-be-unproductive incubative periods are under-looked milestones to growth that I can’t recommend enough, especially if you get them at completely different places.
>what the relative risks of adopting one database over another might be
Entire companies get that wrong. Those licensing terms are complex legalese a lot of the time. Databases are not trivial things. You always get new risks as more product features get added. It's very difficult to predict the future on that front and how your database(s) will handle those challenges.
Yep 1000% agree
> Friends who had maxed out their investment in [...] personal projects were in a relative bubble.
-0% agree, I'm actually a bit baffled that you mention it in the same breath. I've found, in my own xp and in others', that personal projects on your own are almost the only way to learn how to be high-impact.
In many companies, they've already decided their db, their frameworks, etc. and you'll need a lot of political capital and technical trust to be able to start a real conversation about splitting the stack and so on. So, here, you'll learn about how to work on existing rails doing n+1 tasks and bugfixing.
In a personal project, you start with an empty dir and work from there. You end up knowing why you like pg over mysql. You know why it was worth it to use rails instead of rolling your own. etc etc.
I have some social friends who also do software who don't really have it as a hobby (just a job) and while that's totally fine, they're unable to answer questions like "what framework does your work use?" (answer I found later: Spring). To their credit, it's probably a good thing at some level that the company has managed to shield people from that much detail.
Obviously everyone's journey is different, but I've always found that individuals who can go "I want to build <thing>" and then google/IRC until it's built are generally pretty impactful people.
My only justification for including it is that personal projects teach you about how technologies work at the 0-to-1 step (and maybe 1-10). I knew smart people who were extremely confident in the superiority of tool/framework X, because they could write unreadable boilerplate in it for all of their personal projects. Everything was a nail for the hammer.
I generally agree that it’s good practice to start with an empty dir and build from there. But IMO it is no substitute for working on or around projects that have been in prod for at least a couple years.
I agree that working on your own projects is a great way to develop instincts that lead you to being high impact, but it probably took me a year of working experience context (2 or 3 internships) before my side projects actually began training that muscle. I can easily imagine mileage varying there, however.
That said, I speak PhD, so I trend towards working with Google folks and people with fancy degrees. So far, my career seems to blow away everyone else I graduated with.
Plan is to work maybe 5 years, then effectively retire to graduate school or family / cave expeditions. Explore, research and build shit for the rest of my life. :) Compound interest should handle the whole 'you gave up salary to do some cool thing'
Short introductory videos:
Why We Still Need Masters & Apprentices: https://www.youtube.com/watch?v=ribdRDO75Rk
Dynasties: https://www.youtube.com/watch?v=BNIYEhjI2xE
Functional Institutions are the Exception: https://www.youtube.com/watch?v=8fanjkT3pi0
Intellectual Dark Matter: https://www.youtube.com/watch?v=-KPAD1UjpsE
Longer and very worthwhile talks:
Civilization: Institutions, Knowledge, and the Future: https://www.youtube.com/watch?v=ACdYmuFyjWM
Institutions And Intellectual Dark Matter: https://www.youtube.com/watch?v=8aA-YeBb5V4
I always read that "never" as "in the next 50 years". Never say never.
> We have a surplus of people who are educated but don’t quite have the skills to fulfill companies’ needs.
Yes. That is why there is entry level positions like 'junior developer'.
BTW, apprenticeship should be also a full-time paid job. If you have difficulty finding people maybe is that you are not paying enough. Trying to get starters in a field to accept very low pays or not pay at all makes the profession less desirable and reduces the number of candidates in the long term.
I think another flaw in the article is the "entirely". Most of the time you won't automate everything, you will replace 10 factory workers with a machine and a technician.
That's what people are saying every 10 years for the last 70 years. Until it's a reality it's pure sci fi, and we shouldn't care about sci fi when trying to solve current issues.
They should be saying "fusion could be x years away if we tried for it."
What makes it different from a job then?
No one is really expecting it's going to go back to like it was in Ye Olde Dayes when apprentices started as children shoveling coal into the ovens (I worked for a while in a cooking school where some of the instructors had actually gone through that).
For example, I just had some wiring redone in my home, the certified electrician had an apprentice with him. The apprentice got instructed and monitored by the certified electrician, and on my bill they charged a fair bit less for his work.
So it is a job, just the job title is a bit different.
I feel like they took advantage of you. Having a company push the costs of training someone to you is unfair. If the professional did the work himself it would have been done quickier and with more quality. Instead you paided. Surprised they didn't send a team of 5 to help.
In the UK you could not be made redundant for example, you could be sacked for breach of contract if you where lazy or rubbish.
Some of the German ones you still do a walkabout as a journeyman
For example: "Apprenticeships include a structured training plan, with a focus on mastering specific skills an employer needs to fill an occupation within their organization" and "Apprentices receive individualized training with an experienced mentor who walks them through their entire process" and "Apprenticeships lead to an industry-recognized credential".
I've never heard of a "junior developer" position that had a standard syllabus and classes, or that offered an "industry-recognized and portable credential" at the end.
Interestingly, that DOL page does link to an outline of a "Computer Programmer" apprenticeship [2], but it's rather sparse, and ancient. The only languages taught are JCL, COBOL, and FORTRAN! I guess it hasn't been used in 50 years.
[1]: https://www.apprenticeship.gov/help
[2]: https://innovativeapprenticeship.org/oc_st_post/computer-pro...
Also certainly in the UK and the USA the cohort that would have filled the advanced apprentices (not trade ) that realistically could train junior developers now just goes to university.
So you have lost the ideal entry cohort - maybe ex vets in technical areas might but they would have all ready had the training to that level NVQ 3 4 and 5
You don't need to replace people entirely. You need to give them tools to increase productivity by 50%, then magically observe as 1/2 the workforce disappears.
The world is sloowwwwww to adapt. If everyone put one month of attention into learning basic python, we'd see a massive productivity increase for back office functions that would make tens of thousands of people redundant. Of course, that will never happen, but the tech literacy of the average young person is increasing by the day...
I disagree with your second premise too. Reducing the number of people in a profession increases the profits to the ones that make it in, thereby making it more desireable. Probably less candidates as you say.
It absolutely is possible for people to learn complex technical skills (like mechanical or software engineering) in a professional setting. The problem is that the trainees are mostly dead weight for an extended period of time. The employers who hire them need confidence that the trainees will remain with them for long enough to provide a payoff for the initial investment. If the trainees can just leave whenever they feel like it (my friend's experience), the whole thing is a waste of time and money.
I'd be interested to know how this is handled in countries where apprenticeships are more common. There must be some combination of legal and cultural restraints on trainees bailing after the employers have invested in them.
OK, but if you think about it optimistically, it ALSO means that you're able to hire folks that have trained at and left other places.
That is to say, the nation benefits, the government offsets much of the burden from the master, and the industry can still be competitive to attract (or retain, in the case of the master) the trained talent.
As of now, your ultimate possibility is to leave and bad workplaces have large turnover. Good workplaces have small turnover.
The safer you feel about your employability, the less anxious you are to test it.
Seeing my code and processes through the lens of a beginner helps me improve my code and documentation. Seeing their code through the lens of a beginner helps some other people fluff their egos.
You don't really notice the difference until you get a chance to grow your company fairly rapidly, and even then some bosses misinterpret the people who hoard knowledge as their most trusted lieutenants instead of the boat anchor dragging them down.
See also teams who "can't find good people". Either your bosses aren't offering enough money, or you have shut the door behind you and you're trying to find people who made it through that door somewhere else. You should be mostly looking for people who can learn, instead of people who already have.
But I have to admit, most teach rather outdated jobs no companies are hiring for anymore.
Also, the IT apprenticeships often aren't good quality. The schools use outdated material and if the companies can't compansate for that, the students are on their own.
Could you please elaborate on this? What do they teach?
[1] Youth Unemployment After Apprenticeship Training and Individual, Occupation and Training Employer Characteristics
In Canada, I have found that while there's no official program for IT apprenticeship, the cultural value of implicit apprenticeship is there; perhaps an inheritance from our excellent trades programs. Thing is, you'll find it mostly in the older, more-local institutions; not so much in the sexier, flashier software companies and international conglomerates.
When I started my career, fresh out of school, I worked at a small (~200 person) company. There was an IT greybeard (well, he seemed so to me, but he was only 40something). He taught me a lot, but more importantly like a good mentor he gave me room to grow, let me take on projects way beyond what any sane person would have given a 21 year old to work on, etc. The result was that I stuck around, contributed an awful lot of value, and then became eminently more employable than I had been. The next job at a much larger but still local institution had a real 60something greybeard that took this concept even further. Even now as I approach 40, there's a 50something guy at my current "senior" job who is just that much more "senior" and his wisdom is a continual benefit.
It's obviously made me realize that I need to do the same thing to pay it forward. It doesn't strictly need to be an organized program where I get some co-op student, but that _can_ work; I've had some in the past to great success. What it does need to be is a keen younger person who has a learning style that benefits from personal interaction. That's really not everyone in our field; some people are simply self-starting learners and they bristle at mentorship. We should never constrain such people to "require" someone breathing down their neck, as it were; but for people who need the guidance, that have the talent and aptitude but benefit from someone else setting their focus, it is indispensable.
Things like the TCP/IP stack and the OSI model, Types of programming languages, number theory (you can convert between decimal octal, hex and binary with out a calculator)
As someone with a decent variety of experience, I value the concepts I know far far more than the individual languages and frameworks.
I think the technology isn't important, but how you teach.
Not the rote memorising of algorithms
Coupled with being located in very expensive regions, tech companies have to hire at high wages, making training very expensive already.
Something will really have to give somewhere for this to change.
Many big tech companies hire candidates straight out of school for very high salaries and signing bonuses simply because they need the raw intellectual material. These new grads are mostly useless in terms of what they are capable of contributing, and the company uses signing bonuses as golden handcuffs to keep them at the company long enough to make their sunk cost worth it.
Take it from me, when I'm hiring people with little experience, I'm hiring them for the energy they possess. Are they passionate, curious, and good at working with others. Do I think they will fit in, and will they enjoy the kind of work they will be given. Then I place them on easy starter projects and they progress from there.
That is essentially a de-facto apprenticeship. The only difference is that apprenticeships of old were a much more intimate relationship between the master and apprentice. Wouldn't that be nice! Our culture has really, drastically, moved away from intimacy on all levels.
At the end of the two-year contract there were no positions available for me so I moved on.
Project-based learning doesn't just teach practical skills. It also teaches how to learn, how to find your priorities, self-awareness, and other social and emotional skills.
>This model isn’t new. It’s apprenticeship
This model is the existing model for every new graduate who starts a job today. Any new hire in a decent company is going to be getting taught the industry skills from more senior members of the team. Plenty of companies have mentoring programmes. The fact they have a degree which provides the basic mathematical and theoretical pre-requisites for their job doesn't mean they turn up at Google on day one and are expected to sink or swim. Even beyond that, plenty of companies provide new college graduate schemes where you rotate through the business.
I just don't understand what this article is bringing to the table that's new, other than maybe informing us that some Swiss banks were failing to run their business properly for a while.
In this system, learning a trade's practical aspects is mostly the job of a specific company the student is employed with (or rather "pre-employed"), and the theoretical/general aspects is the job of the country's education system.
It's a good alternative to a purely academical system like universities, or getting an extremely company-specific skill set only:
That totally happens. Got hired straight out of college for a new team at Google. There were no senior people on the team, the closest was management which didn't have the time for that sort of mentorship. It sucked and meant nobody got anything done for a year.
Not sure which decade your time machine brought you from, but no, I would not say that "plenty" of companies do this.
Far more common is a sink-or-swim scenario where new hires are expected to learn from overworked and not particularly interactive senior-level folks, while everyone gets their noses pushed into a grindstone by project managers.
n=1, this is my experience too.
The senior embedded engineer here is reputed by our technical management and technical clients to be a pleasure to work with.
He is, whether as a client or as a junior engineer! And while he's willing to interact, people are reluctant to speak to him because he's in (too) high demand. So we grind our projects on our own and only reach out if we can justify interrupting his work.
I think this is a great way to develop some generalist breadth, but not a great way to develop specialist expertise, like an 'apprenticeship' might.
Also, on a less technical level, not having the 'apprenticeship' means people can more easily move around to roles/circumstances that may fit them better.
Sounds like your company needs to hire and retain more senior engineers. What happens if this person ever decides to leave the company?
If that's the case, I'd say there's a massive shortage of 'decent' companies. Modern business strategy shuns apprenticeship because that's viewed as additional cost no one wants to pay that ultimately becomes a sunk cost. I'm not saying they're right/wrong, just that's the perspective I see.
Every business I interact with wants quick turn around/ROI and any respectable semblance of apprenticeship doesn't fit well in that framing. Even in research where it's assumed you're taking on new problems you've not seen before, the pressure is constant and budgeted/planned on the assumption everyone "hits the ground running."
I don't know how any of these environments promote apprenticeship which is slow, costly, and supports practices like long term investments in relationships between employer/employee. On top of that, if you do go into training new hires and your competitors don't but instead hire experienced workers, that puts you at a competitive disadvantage in the near term which may strangle you long before your new hires can help level the playing field.
I'm not sure how you reincorporate the concept of apprenticeship back into the current labor market. The big tech companies strategy is to simply start kids earlier by integrating some training materials into k-12 and colleges so tax payers and future employees will eat the training costs. They also get their pick of experienced folks when they want/need them because they can front the costs/expenses. I'm not sure if that's a good thing. Traditionally there's been a balance of sharing the cost between apprentice and mentor. More and more that cost is pushed on the apprentence and who wants to pursue that pathway if so?
This seems to especially be a problem in tech over more traditional roles where apprenticeship is expected: medicine, engineering, trades like plumbing/electrician, etc.
While it's not completely either/or, this is a key point. When I first graduated, there were definitely companies that had formal 12-month or so training/internship/apprenticeship programs. We still have (paid at some level) summer interns, but extended rotations/on-boarding don't really exist.
And part of the reason is what makes sense for both employee and employer when 10 to 20 year employment tenure is pretty normal doesn't make sense if the new college hire will probably have moved on in a couple years.
I have never seen such a thing actually work. The companies I have seen maybe formally had a mentorship program but that was only on paper. Usually it’s sink or swim for new people. And a lot of them get stuck at the advanced beginner level because as soon as they produce something useful all mentorship stops and they get thrown into the deadline machine.
In my experience, there's usually a few good senior people to learn from, unless you've joined a truly terrible company where everyone good has either left or burnt out.
However, it's almost always good senior people working against the system to help juniors, not the system supporting any meaningful mentorship (except through a bunch of box-ticking bullshit to burden everyone with).
That’s how I often feel. I still get measured only by results so when I help somebody I am reducing my own output. I still mentor people a lot and involve them as much as possible because I feel it’s the right thing to do. My direct manager supports me but with one level up or more I feel that it hurts my ratings.
It’s also kind of annoying that all new interesting stuff goes to new people or interns and the most senior people are stuck with keeping things going and doing mainly maintenance work.
Why? If computers, ai etc take over more and more "simple" tasks. You won't need a junior anymore.
You only take one if you get paid..
One thing they're not replacing soon though; is creativity. Designers, strategists, architects, technologists, problem solvers, etc. - these people will always be needed.
I wasn't implying anything. I was commenting on the general content of the article.