Apprenticeships Beat Classrooms
scotthyoung.com
scotthyoung.com
With big people of course the "apprenticeship beats classrooms" manifests in so many ways- everyone who "learns more in 4 months of work than in 4 years of school" is familiar with this.
I love (public) schools and academia and think on the whole they are treasured institutions, but there is a degree to which their presence and mode of operation leads to deprioritization of "doing-with", and this is very unfortunate.
Sorry in advance of this a tangent and maybe I'm just lucky that I'm the product of a good education or perhaps I have always had the wrong jobs, but while I of course learned tons by working I have never been able to compare what I learned at university and on the job, not because they are fundamentally different, just different.
I never learned or more importantly had time to deep dive into an issue for months of time on the job compared to university. Things have to be solved fast, go go style a client is waiting. Perhaps this is a product of the jobs I have had, don’t have enough data to say otherwise.
But I have never at university learned how to for instance lead a team or communicate effectively to non-academics. This is not something I expected of my university of course as these are very different skills.
But what I did learn was to understand the computer at a deeper level, which helps me every day and I find to be crucial to my day job.
I value my university degree/time dearly, but it is of course not the real world and of course not everything is applicable, but you never really know what is before you need it I guess.
By this not saying that teaching shouldn’t evolve, innovate and/or change for the better, I think I’m just saying it is doing some stuff right, and I believe (no data backing here) that our industry wouldn’t get or continue to get the innovations we have achieved without at least some university foundations sprinkled in there :)
What would you change? :)
Engineers, computer scientists, and mathematicians are usually expected to know more than what 4 months of experience on the job would provide.
Sure, not everything is applicable but the solid foundation goes a very long way.
I also see others fail at some tasks because they are not able to understand the foundations. Not saying it would be solved by going to university, but it might have helped to study it without tight deadlines and in a world where nobody has time to wait
Nowadays apprenticeship is seeming more feasible, with current demographics and preference for quality labor.
This article does a pretty good job of supporting the advantages of apprenticeship. It does not, however, provide any support for the self-directed pseudo-apprenticeship that it advocates. I have little reason to believe that this model will work for anyone who wasn’t already a capable autodidact. Apprenticeship without the master are not apprenticeship at all.
No. There are legal requirements for it [1].
In particular, it is a job. Even if you taught algebra one-on-one to students, that would not be an apprenticeship, because the teacher isn’t a worker using algebra for their job, and the student isn’t earning $15 an hour to learn how algebra is used in that profession.
[1]: https://www.dol.gov/apprenticeship/toolkit/toolkitfaq.htm#1b
Imagine a mathematics professor trying to apprentice a teenager. It wouldn't work, since the knowledge gap between a high school grad and a working mathematician is huge. The kid wouldn't have anything useful to contribute for a very long time.
Perhaps this is why we only see apprenticeships in trades and the like. Those jobs don't require a huge base of knowledge just to be able to understand what's going on.
Not quite a high school student, but cf. https://www.quantamagazine.org/a-path-less-taken-to-the-peak...
That might be another issue with the current system. People who use what they're teaching develop a different view of it. That could be useful.
As a closely related example, internships can be free in Spain, and it happens quite often that the business just rotates interns without teaching them anything. So when the maximum legal time of unpaid internship is over, they just find a new intern. Sometimes they do pay, but pennies on the dollar because there's no minimum requirements.
-$$$ focused tutoring, maximum learning
-$$ cram schools, high focused learning
-$$ private schools, good learning
-$ public schools, mediocre learning (US-based)
?? apprenticeship
+$ 0-1 internships, learn by following
+$$ normal job, no specific learning time
+$$$ senior/executive, just work
Note: I'm not 100% confident with these numbers since in my home country things are a bit different, e.g. public university is better than private one, and internships are normally free.
Example: I taught in a bootcamp. Students paid a non-trivial amount of money for learning, and they were taught in classes of ~20 students. I think that would have been the perfect situation for an apprenticeship. I would not mind teaching someone programming if they help me with design for example. Help going both ways seems just like a normal exchange.
The piece seems to ignore that apprenticeships are still a thing in quite a few countries around the world. Here in Germany they developed since the medieval times this piece seems to find so great, and usually include stretches of classroom attendance to get the theory across because you just cannot learn everything by doing in such a setting, I would guess that's even more true today where even trade companies are quite often relatively specialized.
American education,at least what I have seen, is devoid of applications.
To be fair to educators, we do have a cultural issue here in that for manyadolescence is a time spent learning a lot about fads, entertainers, and gossip. It is hard to motivate anyone to learn when there's no external motivation.
With all the online information available, autodidacts have a great opportunity.
Personally every time I’ve taught myself something, I’ve started with the fundamentals. I taught myself databases from the ground up. I started with learning query optimizers, data normalization and MVCC.
I think your criticism is much more dependent on the individual than it is how they were trained.
Research, as much as trades, has its own oral history, informal institutional knowledge and so on. It's being told by the supervisor that it's not worth pursuing a certain course of action because there's a non-obvious roadblock that leads to unpublishable negative results. Or it's being told that you should try procedure X in this specific step in your experiment because $obscure_reason or "it just works better when you do it this way" and a shrug. There is tons of experience passed down from one generation to the next everyhere that is never put in proper writing. Getting access to that knowledge is just an enormous advantage.
> I have been extremely lucky that none of the work I have published so far hasn't been covered in previous work that I missed.
This reminds me of how Ramanujan is said to have independently remade numerous previously made discoveries in mathematics. Certainly a risk of autodidactic learning.
> There is tons of experience passed down from one generation to the next everyhere that is never put in proper writing.
Perhaps this depends on the field. For software development, huge amounts of this knowledge is available online. I set out to learn GraphQL recently, and after reading the spec, I gained most of my knowledge on the topic from a mixture of experimentation and reading online writing. But I guess that raises the question, did I teach myself these skills, or was I taught them by dozens of random stack overflow users and blog writers?
When I studied databases in college, we started with how pages are stored on disk. That is fundamental to both data and indexes, and everything that uses them. Query optimizers depend on almost every other part of the database. In the databases we wrote, I don’t think we got to that.
I think there are advantages to bringing back parts of apprenticeship, but it is not a system without flaws or weaknesses.
If blacksmiths were academics they would produce a large number of faulty nails. (One might argue the vast majority would be faulty!) I doubt blacksmiths would find that acceptable, but many (if not most) academics don't seem to care too much about quality as long as the paper passes peer review.
A PhD can become abusive when the advisor wants to produce more work when someone has done more than enough for a PhD. At that point they have a full researcher getting paid only a fraction of what they could be.
PhD students are paid less than apprentices last I checked, too. According to this page apprentices are paid roughly 1/3 of what professionals are paid:
https://smallbusiness.chron.com/apprenticeship-pay-15304.htm...
So far, at no point during my PhD was I ever paid 1/3 of what my advisor is, even if you factor in benefits. I haven't even received a raise (to my knowledge), but he has.
Again, ideally a PhD is like an apprenticeship, but my experience suggests that case is rare.
Are papers nails in this analogy? I wonder when there was last a nail of sufficient novelty?
There probably is some innovation in nails still going on. I imagine it's mostly about manufacturing methods and materials.
Not really worth it anymore.
Meanwhile it is commonly known to be true in many industries that someone is mostly useless, work productivity wise, when they graduate college. It takes years for them to “know anything.”
I’m not sure what the solution is, but obviously apprenticeships are a huge missing piece.
Alternatives or complements like apprenticeship that can teach in a different way are really interesting and exciting to me.
It would be nice if both had less of this quality. But still, a lot of education is a bureaucracy teaching people to be bureaucrats. If we are to have a bureaucracy, traditional schooling is certainly a training ground for that.
Kidding aside, I totally agree that it's quite silly. I hated school when I was in it but as soon as I left I couldn't stop learning - there are so many opportunities for knowledge online now (and in real life too) with MOOCs, Youtube lectures, free software tools to play with, etc.
Some further tangential exposition on the topic: https://www.ted.com/talks/sugata_mitra_build_a_school_in_the...
On the other hand, when I was a student in college it was about 95% lectures.
Dozens of people sitting in the same big room working at desks?
The downside is that they'll only learn skills that are valuable for that specific company.
I think this is the best argument for a tech union. A way to learn with real world experience, while not being bound to a single company.
In my experience, university did not provide any skills valuable for any company, other than being useful for networking and a little bit of politics if you're involved with organizations in the university.
The big value, at least for 18-22 year olds, is from proving that they have the discipline to put in the work to get into a selective school and/or achieve high grades in difficult subjects. As an employer, my main concern when hiring someone is if they are capable, and if they are disciplined enough to apply themselves. If those two are true for a 22 year old, then there is a good chance they can be useful regardless of their specific education.
For example - I built commercially successful (by my standards) software while in high-school that used O(n^2) algorithms (!!) - who is is fine for small applications - but the difference between someone “who can code” and “someone who can code well” is typically a BSc and an understanding of how to make things that can scale.
We’re all familiar with the trope of the medium-sized business exec who scoffs at the invoice of an SWE consultant arguing “my 12-yo nephew could have built that!” - and they’re not superficially wrong - but their 12yo nephew couldn’t build something that scales to millions of users and petabytes of data.
I’ve found a quick-and-dirty way of identifying the unwarranted self-confident types is to ask them how they’d quickly put together a CSV parser - if they give an answer involving `String.Split` you can tell they don’t have a degree.
That certainly is not the only way to learn how to write scalable applications. (e.g. reading about techniques and/or building them).
> We’re all familiar with the trope of the medium-sized business exec who scoffs at the invoice of an SWE consultant arguing “my 12-yo nephew could have built that!” - and they’re not superficially wrong - but their 12yo nephew couldn’t build something that scales to millions of users and petabytes of data.
Scaling to millions of users and petabytes of data is not needed in many cases and a simpler solution can get the product shipped faster and with fewer bugs. Part of being a good SWE consultant is taking the time to gather the real world requirements, the potential future uses, and clearly explaining the expected operational envelope to the client.
> I’ve found a quick-and-dirty way of identifying the unwarranted self-confident types is to ask them how they’d quickly put together a CSV parser - if they give an answer involving `String.Split` you can tell they don’t have a degree.
I'd rather have someone who bothers to ask what the parser will be used to process (and what will be consuming its output) and gathers the real world requirements. Someone who confidently assumes they know what the CSV "spec" is and start coding a parser for the RFC 4180 general case can waste lots of time and money building the wrong thing. There are certainly cases where splitting a string on line breaks and commas is a good fit for the problem. There are also cases where that will parse data incorrectly and explode on files over a certain size.
Hmmm. I have a degree in computer science, and I've written a parser. ( https://github.com/thaumasiotes/regexp )
I'm pretty sure it would be faster to put together a CSV parser using String.Split than to write a streaming parser to handle the problem. You did specify that you want this done quickly, right?
My immediate thought would be to make sure commas that appear in field values don't cause spurious splitting. After that, yeah, String.Split.
Can you say more about why this means I don't have a degree?
To me it seems that of course that an apprenticeship works better for that task....but also not a fair comparison considering the classroom goals and structure for all sorts of reasons.
I also wonder about how well apprenticeships put forth new ideas or ways of doing things.
In my experience, the "should be apprentice" in a class is the one ends up being frustrated by the class environment because they care.
I see classes like commercial farms - everyone gets the same amount of water, nutrients, sunlight... An apprentice's master is like an expert gardener who notice when one plant needs less sunlight and provides shade. And provides calcium when one plant needs it.
That's why small time farmers are usually the ones who create freakishly big tomatoes, carrots, pumpkins... These freakish farm produces created through painstaking personalized education would be called geniuses if they were humans.
In small classes, students often get this personalized treatment. But majority of classes aren't small.
Classrooms (at least thinking of a US style education) are for the masses.
Apprenticeships are for the handful of folks who really care ... that's not many people and in so many ways really isn't for everyone.
Another difference is that in an apprenticeship you can "fire" the students. In a classroom there is a big pressure to keep the students there.
And this isn't the "we need more money and teachers" argument I'm making, just that the large-group lecture format only works well for certain stages of learning and types of learners.
The teacher's job is to teach and frequently teachers rate those that just finished a class as more capable then those that have a bunch of experience. Whereas in an apprenticeship the teachers are doers and are training doers. I think every first time intern I've ever hosted is always astonished at how much quicker they are learning then they were in college.
So I think both learning methods have their place.
There are very worthwhile areas of knowledge which have no economic value in the current system. Ergo the apprenticeship model makes no sense for a field like literature or philosophy. They belong in the academy, not the workshop.
I think one reason for needing practice is that in either of those areas, you're going to suck for a long time before you get good at it. Maybe this is true of writing too. The academic environment is a place where you can get that kind of practice.
It is true of writing too.
Yes, it's costly. Yes, the experienced dev needs to be ok with it.
Then you find small tasks you know people can google their way around and that you know won't lead to a disaster if they are done badly or if something break.
Then you increment.
Apprentices are very slow and very demanding at the beginning. Once they are productive though, they have the best cost/benefit ratio of your company, provided you did the first steps well.
Source: been an apprentice for 5 years, and all my classmates were.
Ok that company did some ... creative ... billing.
But even without that I believe it's not too hard to break at least even.
Doing low-priority work, stuff at the bottom of the backlog is im my exerience totally possible fairly quickly, billable and can offset the senior time used because code reviews require more feedback and some general guidance usually.
Apprenticeships here have a fixed government set duration if you want your degree. And it's difficult to change companies. The durations are set in a way it's profitable to take apprentices. During the last year they're usually as productive as any junior dev, at a pocket change salary.
The traditional solution, enslavement, has a bad reputation today.
Even in Germany today there are additional assurances to make sure an apprentice isn't immediately poached after becoming a journeyman.
Did you have any structure to your learning to ensure you covered basic topics, e.g. OO, data structures, algorithms, etc?
I kept at it because, although he kept being very rude (he was so with everybody), he made sure I was part of the team from day one. When we had lunch and I had no money, he always paid for me so I could eat with everybody at the restaurant. When we had extra pay for being on call during nights and week end, he included me in the rotation, despite perfectly knowing I would just wake him up to solve the problem as soon as the phone rang.
We are still friends to this day, and I came back working with him several times after my internship.
He is still an annoying SOB though.
Give people the feeling they are part of something, that their day to day actions have a meaning, and enough money for their trouble, and they'll stay.
Say "we are a family" in your speeches and write "values" on the walls while you are just fitting cogs in the machine while optimizing for numbers and they will leave, or do the bare minimum they can if they need the cash.
This is not something you can fake. Not for long at least.
So it's not related to apprentices.
However, apprentices will more likely fit in your culture, accept changes, etc. Because they grow with you.
I have a friend who is in this program now to become an electrician. She has been working, for pay, on active construction sites for over a year, after completing introductory training/classroom work.
Accepting an apprentice means taking a preliminary dip in your own productivity, until such time as the apprentice can contribute a net gain to your unit. Someone has to take the brunt of that-- with electricians, for example, the introductory training helps them not to kill themselves.
Many subjects combine an academic component with an apprenticeship component. Physicians spend a lot of time in clinics as med students before they become full-fledged doctors. Teachers have to student-teach prior to becoming full-fledged teachers.
Cosmetology, hair styling, auto mechanics, the list goes on. All of these professions combine some academic study of principles with intense, prolonged hands-on training.
In the US if you look at the regulations for unpaid interns, the employing organization must provide experiences equivalent to the amount of learning the intern would recieve in a college course. There's some idea of treating unpaid interns as unskilled labor, but that as far as I know is against the intent of the "unpaid intern" concept and is, technically, illegal.
Both fundamental and practical education matter in most realms.
Practical example: medicine (modern allopathic "western" medicine, i.e. the job of a physician, something I know and can comment about relative to both basic science and software). The author implies that time is "wasted" in basic science, when students could simply be more involved with patients. Leaving the value of patient contact aside (most schools do involve students early these days to provide context and motivation), one of the whole points is to provide a multi-level framework for better incorporating later knowledge. This allows a person to adjudicate new findings and therapies, guide their patient and practice, figure out novel situations of atypical presentations (often due to overlapping processes or red herrings).
Anyhow, I'm sure others can think of similar examples in fields they know.
Also, perhaps one of the western European folks here can comment, but I seem to recall that trade apprentices in, say, Germany, generally still have a pretty decent core knowledge of math, language, etc from school. I.e. pretty comparable to an "academic track" US high school student, excepting AP courses. True?
I'm not sure about Germany, but in Switzerland, "school" is mandatory until the end of middle-school. After that it can really be anything between zero classes, 100% on-the-job apprenticeship and general, academic track high-school. Selection is mostly done by grades, since they're a good indicator whether school/classes/lectures work for a student or not. Most people go to trade schools and will indeed attend core math, language, geography/history classes. But the amount and depth of these classes aren't close to general high-school. They cover maybe 50-60% of the material. And then you'll have people in dual school/on-the-job training, where core classes are really reduced to the bare minimum.
Note that all tracks offer bridges to tertiary education, at vocational universities or even sometimes proper universities, so that you aren't stuck forever if you didn't take education seriously as a teenager.
This is why I excelled at Chemistry, Computers and real world Physics but never really excelled at basic math (to this day I convert fractions to decimals because my mind does not think it fractions). Anyways what I came her to say is once I get the basic concept from hands on labs, then it is very easy for me to get the math, because I can visualize what the math is doing. I seem to only learn from real world application and by doing it. So I think there is value in learning the how, and then layering the theory on after that fact. It seems to stick for me. Then again we all learn differently.
I personally learned Geometry and Trig from carpentry and 3d modeling.
I learned algebra and statistics from building and modifying internal combustion engines.
I learned business math from building accounting systems.
All of these I learned after hand on apprenticeship and it made it very easy for me to grasp and retain the mathematical concepts.
I have joked before about starting the "Boys School for the Mechanically Inclined" to teach boys that learn like I do. I was fortunate and driven enough to understand my learning disabilities, but I see bright boys flounder and can see it's due to the way they are being taught. It really is a shame.
I have a CS degree, but I find bootcamp graduates to have more practical knowledge for many positions right upon graduation. At least this is true speaking from my personal experience and what I have observed.
Most jobs in the US don't truly require a university degree (the knowledge isn't actually required) and I'd argue that most "coding jobs" (deliberate choice of words) don't either.
They charge crazy money for a 3 month bootcamp, then say people are qualified to work as a software engineer. They then turn up at a company and are lacking in various areas.
Graduates are not very useful at the star, however they have a foundation and a good percentage have done an internship. So there's more to work with.
There needs to be standards implemented and companies need to get together to say "we expect x,y and z from boot camp graduates"
Otherwise, I could go an setup a bootcamp tomorrow and take peoples cash and just make them watch youtube videos of react.js
"Its not my problem if you don't get it"
The value in university seems to be the brand, the networking opportunities and the environment, not the education.
I have a family member who signed up for an apprenticeship, but the waiting list was many years long. He was told that he could get higher on the list (or maybe skip the list entirely, can't recall exactly) by getting an associates degree. So he went to a community college to get the associates degree. Once he got the associates degree, however, he no longer needed the internship and went right into the workforce. I never asked him directly how much he makes, but I suspect it's more than I do because he's in a specialist field.
I think the application of computer science aficionados to ethics, biology, sound production or many other electives increases the mindshare and cross drift
Most of this is irrelevant to the private sector at static point in time. So the sheet of paper saying I went there and the brand is all icing on the cake.
No, it isn't a necessary credential to contribute to companies needing to build things with code. That was not always clear and may not be clear in the future.
That really only applies to some universities.
An equally plausible theory is that the American economy has moved away from primary, low-tech factory jobs to high-tech ones that require a more educated workforce, and the Education sector has responded to that demand. The other somewhat unrelated factor has been the explosion of student loan debt which exploited that demand for education for its own ends.
I would also speculate that having the experience of college and mixing and meeting with people from all over the country is a benefit that is often overlooked today; Americans that don't experience that lose out on an opportunity to meet and know people that they never would have otherwise.
Sure, depending on the specifics that could mean less classroom time as well, but that isn't a necessary result of the idea, just a possible one.