I followed the apprenticeship model in one field, but was entirely autodidactic when it came to tech as there is so much material/content online to teach yourself if you're motivated and inclined and would prefer it remained as such. I mainly pursued one technology only to find that I had to learn so much more as I went deeper and it eventually snow-balled into starting my own fintech startup and then as a bootstrapping founder working professionally to fund the former. This was only possible because there was so much freedom within our community and free content available.
With apprenticeships you're really at the mercy of the Master who will instill in you their 'version' of how something must be done, whether you agree with it or them is entirely irrelevant to the process of edification and leaves very little room for creative problem solving and rule breaking that I think the most important work in tech actually requires.
This rigid structure is well suited for certain crafts (like electricians or plumbing) and perhaps some arts (culinary, masonry/architecture), but I fear the power that FAANG already has exerted in corrupting an entire generation of tech workers with salary and supposed prestige has done enough damage already to the World, so to have them act as gatekeepers of information seems entirely myopic and self-serving to an already entrenched Industry.
Perhaps somewhat ironically, we're already kind of there in some respect.
What's the dominant front-end Javascript framework? React. Made by Facebook. Presumably with Facebook's assumptions about how front-end Javascript should work baked in (not that I'm complaining, really - I like React)
Or Protobuf, Google's idea of how data serialization should work (again, I like Protobuf). Go, too.
Before this you also had things like C# by Microsoft and Java by Oracle (and a whole slew of languages from Apple). Each one trying to impose their vision for software on developers who would use their language. You even see this in LISP, where devotees may look for ways to use other languages in a LISP-like way.
We may not have formal apprenticeships, but we definitely pick up patterns of thinking about software from the tools we use to make our software.
Tech companies could hire and train students straight from high school instead of making them go through the academic priestly class, but nope, everyone wants expensive degrees and pay more for it.
If Google did that, then Google would also be to blame for the resulting demographics not meeting everyone's standards for equality. It's really useful to be able to outsource some of the filtering process.
Agreed. Any company that can pay six figure salaries for graduate wants to be able to choose a combination of outstanding smarts and grit. Getting into an Ivy League CS program demonstrates that - and any demographic issues are provably due to the pipeline.
Exchanging that filter for hiring straight out of school but only taking, say, people with top 5% of SAT results (1420) would also demonstrate it, but it would result in even more stark over-representation of Asians (about 20% of them meet the cutoff) and under-representation of Blacks (only 1% of them meet the cutoff).
> With apprenticeships you're really at the mercy of the Master who will instill in you their 'version' of how something must be done,
That is not necessarily true. The German apprenticeship model (which covers a ton of jobs there, not just artistic & blue collar) has a school component, and a shared test at the end of apprenticeship and journeymanship. This ensures a common standard on "how things are done", and a shared toolkit for anybody working in the field.
Incidentally enough, I did my 1st year of apprenticeship (Biodynamische - Landwirtschaft) in Germany alongside University students who are mandated to do one semester of a sort of work study. I began as a person with a BSc in Biology and several years in the diagnostics Industry.
But I was taught under a guy who went through that system you described instead of going through real-schule and he bounced around the system, often misguided, as to what to do because of the aforementioned statement.
I personally decided to continue in other countries in Europe with a stronger culinary history after my first year, but I still think the German/Swiss model is a superior way to teach young adults practical skills in relevant Industries without the need for the debt traps that Universities have become.
People tout Guilds and Apprenticeships as a solution to improving quality and filterting out subpar coworkers, but I don't think it would be any better, and maybe worse. Obtaining membership seems like an enormous gatekeeping device, similar to those that modern equality movements are trying to tear down. It does widen sharing skills from father to son to a community, but there is nothing stopping the same sort of exclusionary practices that we have problems with today.
Apprenticeships often boil down to grunt work and "watch me do it" for the first few years. This kind of work mode is acceptable as a teenager. But today the apprentice level would probably be until 30 or so. This education phase is currently owned by higher level academia. Many people choose industry over academia to avoid a lengthy education. If industry became the same, I think this would frustrate and burn out many people.
Those running the guild are probably not the best at a craft, just best at politicking and with the most vested interest. Those that would run a guild 900 years ago and VPs and CSuites today.
Also tech is too new. A technology can rise and fall within a decade. This makes lengthy learning periods impractical. We don't value consistency across generations (in-fact this would be now considered stagnation). This also means customers are less able to discern (or even care about) high versus low quality products.
On the flip side, education is much more readily available. A dedicate Master <> Apprentice relationships was key, because they were likely your only source of learning. This is just no longer true. Today we have so many knowledge sources that no single one gets such an illustrious title as master.
Most engineering disciplines have a professional community that requires you to take a proficiency exam (usually on graduation) and continued education. Companies will outright refuse to hire any candidates without the certifications. Programming will eventually have something similar, but the field needs to crystalize more.
>Those running the guild are probably not the best at a craft, just best at politicking and with the most vested interest. Those that would run a guild 900 years ago and VPs and CSuites today.
This so much, I often see people believe that if things were more organized the best developers would rise to the top, but the fact of the matter is the best developers don't like meetings and positions and what not they like developing. Often times the people that are most eager to tell people how to do their job and run their workflow are those least capable of doing it themselves and as such why they chose a position on telling others what to do rather than doing it themselves, a la the Dilbert Principle.
But that's just my 2 cents maybe I am way off, but it seems to me the people most interested in setting up more structure and organization to "empower" developers are those who I least want to represent me.
You say "gatekeeping device" like it is negative. All companies I have worked for have had a system of gatekeeping that includes things like university qualifications. I don't see why this system can't be improved.
Many companies now invent their own proficiency exams. We do.
Medical graduates work in a specific setting under supervision for a period after extensive education. I don't think the conditions of their work are ideal, but many people make it through without burn out.
Although technologies are changing, there are some things that transcend technology. Concepts about like documentation, naming, decomposition, components, interfaces, concurrency, locking, algorithm efficiency, many considerations of user experience.
Right now getting hired is a gate, but having to join a guild before getting to learn would be another gate. Also the guild gate is a gate on knowledge, which is even more egregious, and its evaluations would be even more nebulous as it would be based on potential skill and not current skill. This means joining a guild is more akin to apply for college.
Companies have to abide by Labor laws and Colleges must have fair admissions, but a private guild could be much more exclusionary without the same legal repercussions.
I think medicine is more unique because it's one of the few fields that customers (patients) consistency demand quality over innovation. Do you want the treatment that works, or the new experimental one? Most people will want tried and true first. Of course there are always exceptions to this.
(On the other hand, the process could be captured by incumbent employees who do have that incentive).
That seems to be way more common than most people want to admit. So many software engineering interviews have very little to do with the job. Worse of course is when there is no process and it seems like the whole thing is just designed to get the hiring manager friends hired.
>Most engineering disciplines have a professional community that requires you to take a proficiency exam (usually on graduation) and continued education.
This isn't really true. Most engineering jobs in the US don't require a PE. The main circumstances under which you need to take an Engineer-in-Training exam (which probably requires a 4-year degree) and then work for some number of years in the field--and then I think take another exam--is when you need to sign off on designs, etc. for government regulators.
When I was in the oil business I got an EiT because I would eventually have been signing off on offshore drilling rig design blueprints. (But ended up changing careers so I never got past that point.)
I just assumed it was required. Most of my friends in engineering had to take a PE exam (or equivalent) when they graduated. Either way, it seems like there is a level of certification needed for higher levels of work. I have not encountered anything similar in Software Engineering.
Nit-pick - that probably wasn't the PE exam. It was probably the FE exam. The FE exam is what you need to pass in order to start the apprenticeship to get your PE. The PE exam is what you take after an apprenticeship in order to get your PE License.
As someone who took the FE and then went into software, I understand why this is so complicated. The acronyms are hard to understand and the process is very divorced from what software engineers have to deal with in their day-to-day life.
It depends heavily on the field and whether or not they will work in a regulated field. All of my civil engineer friends go through the EiT and then PE track, but most of the mechanical engineers I know don't. I'm not sure how it breaks down for electrical engineers, both of the ones I know didn't do a PE.
I don't know the numbers but I imagine it skews heavily towards Civil. I was a mechanical engineer and the only reason I would have needed one was because I basically designed ships (from a regulatory perspective).
I'm sure there are people at places like Boeing, GM, and so forth who have PEs but I imagine it's a fairly small minority. It definitely isn't like passing the bar if you're a lawyer. I know someone who runs a fairly large systems engineering group in aerospace and they don't have one.
(And my understanding is that the software engineering PE exam has been phased out because basically no one was taking it.)
I'm a bit hazy on the specific wording, but if you work at a company that makes products, and don't offer engineering services directly to the public, then you're exempt from licensure.
Now, when a product is ready to go out the door, then it gets reviewed, and the review is signed off by a PE. We typically hire an outside company to do that work.
>Companies will outright refuse to hire any candidates without the certifications. Programming will eventually have something similar, but the field needs to crystalize more.
I don't see this happening and sincerely hope it does not. Computers and programming are too accessible, and I think are the first thing to become so accessible. Proof of competency is related to effort, not the time you spend seeking qualifications.
I agree with the negative points about guilds, but I don't think they're any worse than the current PhD system in academia.
Another important difference between guilds and academia was that you did not have to pay tuition fees to become an apprentice. In some cases apprentices got no salary, but lived in the master's household and had free board and lodging - although their role typically also included some aspects of being a household servant. But you didn't have to pay an extortionate fee to get into an apprenticeship, and you typically did leave with skills that let you earn a living. The apprenticeship system was in other words accessible to a much wider class of people than "good" degrees nowadays are.
Nowadays of course, apprenticeships pay you - not a lot, but enough to survive on.
What do you think a modern "Programmers Guild" could be practical if it is essentially a semi-gated meta-community that spans, integrates, and documents stack overflow, HN (and similar forums), FOSS projects, and publicly available higher education CS courses?
Similar to the Wikimedia Foundation but specifically focused on programming history, theory, and practice.
I understand there are some difficulties with this ideology in terms of technology companies and onboarding, but I have also seen the potential benefits of such an approach without explicitly attempting to engage it.
We have hired entry-level engineers that went from supporting basic production issues to writing low-level parts of the platform within 2-3 years. At no point was I consciously aware of any explicit knowledge transfer occurring, but somehow these individuals are able to pick up a tremendous amount of capability via proximity to the day-to-day process. One day it clicked for me that a pull request I was reviewing for one of these individuals was something that I would expect to see from a highly-skilled developer on the team. Seemingly overnight, we converted a QA/Support engineer who chases down basic null refs into a proper developer, and all it required was exposing them to the full depth of the process every day.
Perhaps the master/apprentice game doesn't make sense in terms of on-boarding. But, I see massive amounts of value in exposing willing employees to increasingly-difficult problems on a daily basis. Make your most junior employee install the same tools and work through the same processes that your most senior employees do. There is no reason you cannot ramp someone from zero to hero in a few years with passive exposure to your business processes.
I find that this model of constant exposure combined with probationary employment strategies provides an excellent blended approach for ramping in new talent that would otherwise be filtered out by your typical big corp HR department. Just because someone doesn't have a computer science degree or got burned by our incredibly shitty legal system doesn't mean they aren't willing to bust their ass and try to prove something to the world. I would like to give as many people a chance as possible at this. Programming is an art and no one policy is going to be the best. The more perspectives we have the better.
I don't think it has to be codified, just recognized. Too many people in this submission read into the article and assume that the guild is a gatekeeper whose primary interest is keeping trade secrets. It's the opposite in reality. The entire idea behind a guild is that you give young people with zero skills an opportunity to learn the craft. Right now the American system is the opposite. People have to take care of their own education before they can get the job by going to university. There are jobs where this makes a lot of sense and there are jobs where its just pointless busywork.
People of the same trade seldom meet together, even for merriment and
diversion, but the conversation ends in a conspiracy against the public,
or in some contrivance to raise prices.
—Adam Smith, observation on urban guilds, 1776
Are we out of imaginative new ideas for organizing society?
We have the ability to organize a social heirarchy more generally across the public thanks to computers. The necessity for highly specialized master/apprentice guilds looks limited to a few areas.
> People of the same trade seldom meet together, even for merriment and diversion, but the conversation ends in a conspiracy against the public, or in some contrivance to raise prices.
I.e. a case of a phase-locked loop. I think viewing it like this can help spot other such loops in the society.
This history is interesting to read. The last place I worked had trade unions (electrical, mechanical) and still used those terms. There's a huge difference between a master electrician and an apprentice.
"Thus, craft guilds provided the goods and merchants fed the need: the beginning of real capitalism."
Good piece but please allow me to nitpick :
Not blaming the author because it is a very common and well established narrative that capitalism arose from the development of a merchant class but Ellen Meiksins Wood makes a pretty good case for an agrarian origin to capitalism in The Origin of Capitalism. She argues that the roots are instead a combination land rental and the reliance on waged labour IIRC. If the subject is of interest to you I recommend you check it out.
With apprenticeships you're really at the mercy of the Master who will instill in you their 'version' of how something must be done, whether you agree with it or them is entirely irrelevant to the process of edification and leaves very little room for creative problem solving and rule breaking that I think the most important work in tech actually requires.
This rigid structure is well suited for certain crafts (like electricians or plumbing) and perhaps some arts (culinary, masonry/architecture), but I fear the power that FAANG already has exerted in corrupting an entire generation of tech workers with salary and supposed prestige has done enough damage already to the World, so to have them act as gatekeepers of information seems entirely myopic and self-serving to an already entrenched Industry.