> For me the biggest difference between a senior engineer and a junior engineer is experience. The former knows enough about the state of the art in their area of the field that they can train other people in what they know. Those people that they train go on to become senior engineers themselves.
The junior/senior distinction is so coarse-grained. Expert research sometimes uses nomenclature inspired by guild terminology, e.g.
- an initiate has just started learning the subject;
- an apprentice has basic knowledge but still needs guidance from someone more experienced to go through their day;
- a journeyman is skilled and reliable and can go through a day's work unsupervised but still need direction from someone more experienced, many people are journeymen for life;
- an expert is a top-level journeyman who is looked at as someone who can deal with unusually tough problems;
- a master is a leader in the field, someone who can train experts.
It's not perfect, but it's a strict improvement over what we are doing now.
I especially like the operational definition of when one goes from an apprentice to a journeyman. It's a fairly obvious distinction: can you do a day's work unsupervised? Much easier to determine than when one goes from junior to senior.
I'm coming from a culture where this scheme is still applied to various crafts. I agree very much and think it would fit quite well for software engineer, though I think starting at the expert level there is an element of research / scientific thinking needed that academia tends to produce better results for.
The ideal career path would thus IMO involve some way to combine this vocational proficiency with a research stint, be it in academia or in industrial R&D. Switzerland is I think rather unique in allowing this combination, but by far most people (me included) still go through either one or the other (vocational vs. academic route).
Germany? I work with Germans and I always worry that their apprenticeships mean something different to what I have in mind. Do you have a link or something explaining how those skill levels are interpreted in your culture?
Switzerland in my case. It's quite similar, but with some extended vocational university options compared to Germany ('Fachhochschule'). Anyways, the way it generally works for most professions (and ~75-80% of population actually go through this route, rather than going straight to academia) is as follows:
* start apprenticeship at 16 for 3-4 years; 3-4 days per week of being embedded in a company as apprentice, 1-2 days of staying in school
* at the end of apprenticeship you do a test, both theoretical and practical. your 'apprentice master' (Lehrmeister) is judging your practical skills in form of an apprentice project. Passing that you're the equivalent of journeyman.
* you can now either start working full time, or you go back to school for 1y to get the federal professional maturity test ('Berufsmatura'). This allows you to enter any higher vocational school in your field in the country.
* from here you go on to either do a vocational university, or you could even take another test and go full on academia (say to ETH Zurich, University, whatever). That gives you the equivalent of BSc or MSc, depending on where you go and how long you stay.
* On top of the bologna titles, there is also the 'federally certified' titles. Say you wanna be a certified construction manager, you go do a federal certificate and become one of ~2500 people in the country with that title. It's highly sought after and a sign of quality. Think of it like professional master titles given by the French state, if you reach that you should never have to worry finding a job. You'll generally be >30y old at that point.
Now I'm curious so I'll pick your brain a bit. What happens if you want to change careers later in life? Do you go back to apprenticeships with other 16-year olds, or is there a different path for adult education?
And when you start a BSc at the earliest, you are something like 20 years old? (16 when you apprentice, 19 when you finish that, one more year plus two tests to enter university?)
I‘ve never seen adult apprentices, don’t think it exists. Rather you‘d do internships and evening schools, as everywhere else. The difference mainly comes from apprenticeships being the norm for teenagers, it creates IMO an environment of comparatively high skill levels in all kinds of trades. Maybe not too surprising that Germany and Switzerland are generally good at machines and fine mechanics.
20ish sounds about right - in Switzerland, men loose a year due to military/civil service.
We had someone doing an internship in our SWE company (Switzerland) whom I estimated about 60 years. But never heard of someone doing an apprenticeship beyond late twenties or so (may exist, though).
To be honest, I find the idea of classifying people from journeyman to master rather unsuitable for today's knowledge work. It does not pass the smell-test for gate-keeping.
What you need to know changes every five years. Call someone grand-master of software engineering, sure, but no matter how great they are they'll not get your CRUD database UI done any faster - if their career was all about signal processing for particle accelerators and medical device certification. More likely, they'll over-engineer and over-spec and not be prepared for requirements to change completely after a year, or for sinking several days into CSS layout issues. Beyond a certain baseline of experience (say, working five years in the field or so), what counts is knowing the domain well (interpreting what the customer wants). Or already having experience with the technology that applies to problem-of-the-day. Or being highly motivated to learn it.
It's not like crafting with wood. The nature of wood doesn't change every six months. The tools we use to work wood don't change every six months.
I like the craftsman analogy, and have used it myself. Maybe to attain "master" certification, software developers should be required to create a "masterpiece" the same way as craftsmen of old (this being the origin of the word - a piece of work that demonstrated your master-level skills).
Perhaps a compiler or something of similar complexity would be appropriate as a software "masterpiece". What else, I wonder?
I'm not sure what you're referring to as "BEAM". Google throws up a bunch of different software related things.
An operating system such as UNIX would for sure count as a "masterpiece", but I think that's really too big of a project. Should really be something that a single "master developer" could complete in a few months, or less than a year at least.
The junior/senior distinction is so coarse-grained. Expert research sometimes uses nomenclature inspired by guild terminology, e.g.
- an initiate has just started learning the subject;
- an apprentice has basic knowledge but still needs guidance from someone more experienced to go through their day;
- a journeyman is skilled and reliable and can go through a day's work unsupervised but still need direction from someone more experienced, many people are journeymen for life;
- an expert is a top-level journeyman who is looked at as someone who can deal with unusually tough problems;
- a master is a leader in the field, someone who can train experts.
It's not perfect, but it's a strict improvement over what we are doing now.
I especially like the operational definition of when one goes from an apprentice to a journeyman. It's a fairly obvious distinction: can you do a day's work unsupervised? Much easier to determine than when one goes from junior to senior.