84 comments

[ 5.0 ms ] story [ 168 ms ] thread
Where is the Washington Apprenticeships, Seattle preferably :)
The four-year model is based around teaching fundamentals and then adding current technologies on top. In addition to being relatively slow, it often fails to teach the most recent set of technologies.

However, I don't think apprenticeships are a good fit. The apprenticeship model is great for skills that do not change rapidly or need frequent updating. Carpentry five years ago is much the same as carpentry today. This works well because in such areas, you can afford to gloss over or just skip many fundamentals because the hands-on skills are all that will be needed for a multi-decade career.

This model doesn't map well to development. Current technologies move fast. Adapt rapidly. One year's hot approach is the next's old broken crap. Our educational systems need to be designed around enabling people to adapt rapidly. The only way I know to do this is to teach people the fundamentals they need to adapt to anything within their field.

I'm happy to entertain other approaches, but this seems like hammering a round peg into a square hole because using a square peg is inconvenient.

There's a lot of less experienced folks that could just benefit from being around people that think in a programmatic mindset. I taught Python for a while at one of the bootcamps you hear about, and the biggest hurdle for me (the instructor) to overcome was getting a student (often times liberal arts background) to form strong mental structures for data structures, manipulating them mentally, etc.

This is a good opportunity for somebody.

The problem there is that our hypothetical student is trying to build a castle without a foundation. It's possible, abstractly speaking, but both unduly difficult and unlikely to end well. If by some miracle it doesn't fall over in the short term, it's highly likely to be a major problem when it comes time for serious renovations.

I think the situation we're in is an uncomfortable one. Basically, the tech world needs people, and the four-year approach seems too slow. Sadly, nothing I've seen - and I've been affiliated with a bootcamp - seems to both provide the people required and give them the grounding for a career.

We as an industry have this burning need to believe that there must be something better. However, I submit that this is the equivalent of protesting "There must be a better way!" when confronted with an uncomfortable policy decision. In both cases the sentiment is laudable, but fails to conjure the alternative into being.

It is a good opportunity for somebody. As near as I can tell, that somebody is the four-year CS programs of the world.

The only alternative I can see is bifurcating development work into high-skill people who know CS and low-skill code monkeys. I'm uncomfortable with this, but I suppose it could be workable. We'd just have to disabuse all those code monkeys of the illusion that they're going to become computer scientists.

I have no idea who your hypothetical students are, mine were real ones that were trying to retrain and enter the job force as developers. Certainly castles aren't built on good intentions, but people have to start somewhere.

These apprenticeships are for like $500/week. That's not a good opportunity for some in a four-year CS program.

Full-fledged modern software engineering careers aren't really built on knowing a bit of Python, either. They're built on understanding computers and then incidentally Python. In theory people can learn the rest on their own, but in practice this is so rare as to be not worth discussing.

I'm saying that the alternative models proposed are even worse fits for the problem than the model considered lacking. This isn't a field currently structured for a relatively short training period to lead to a typical career.

Maybe medicine should be the goal model. Doctors and nurses, code monkeys and software engineers.

Better look for another example, in many European countries nursing is a 4 year degree as well.
Same is true in the US. I picked it knowing that. The comparison still holds, because you have a sharp divide in the level of education between the two.
Ah, I thought you meant something like one has higher and the other is apprenticeship.
I highly disagree. You could start most people with an actual job in web development after a year or two with solid foundations.

You don't need to relearn imaginary numbers or assembly programming to be a good software developer.

I agree!

You could start them with a job. They'd have, by their standards, a great job. What they almost certainly wouldn't have is a typical career in software engineering following that job and the obsolescence of their skillset.

I disagree. Lots of programming work out there is "boring" enterprise work. Keeping systems running. There are a lot of people on here who are innovating.

But for most of the programmers I know, they're just writing code that runs a business which is certainly not IT.

But the "industry" doesn't want to pay for this training
And we don't need to. I did two unpaid internships. FOr the first, I had to pay Penn State for the credits and CBS didn't pay interns - because they don't need to. I did the second at age 43 - and I learned what I needed to before starting up (RiteTag). A waste? Not for me. - Saul
No.

Current technologies do not move fast, because computer science and maths in general are still hard.

This year's "hot" approach isn't fundamentally different from last year's hot approach, and it won't be fundamentally different from next year's hot approach.

Our educational system needs to be designed around enabling people to understand the fundamentals of what they're doing, instead of code-by-marketing. Those fundamentals do not change rapidly; the books have a lifetime measured in decades, not days, and they provide the background necessary to evaluate, understand, implement, or reject any of those "hot" new approaches.

If all you know is COBOL, Python and Ruby are radical departures. If all you know is XHTML, React is fundamentally different. If you know your CS fundamentals, it's all comprehensible readily enough.

I think we're in violent agreement. If you know your CS and mathematics, the current hotness is stuff you can grasp. If you don't, odds are you're in trouble.

I agree. Nothing like reading a research paper about the current hotness and wondering "how the hell do I implement this???"
I recall we had a 20 year COBOL guy move onto our web team he found Perl a challenge :-)
I pretty much agree. Most of what is hot and gets hyped, is actually useless; and indeed, you need a firm grasp on the fundamentals to see that. I personally reject 99% of the hot approaches.
And your job is to be able to evaluate if next year's technology is worth a shot or not.

To be able to take this decision seriously, you have to understand the big picture, which doesn't change fast.

I have to disagree; apprenticeships work perfectly fine in IT.

Yes, technology moves fast and if one wants to stay current in the field, one has to keep learning.

But the fundamentals remain the same. It has been forty years since TAoCP was published for the first time. Has it become irrelevant? Hell, no. Has logic or maths changed because of this year's fad? Of course not.

Is four years a long time? Not if you want to give a young person a thorough education and a solid understanding of the craft, from the foundations up.

Instead, you know, of just train them to hammer out code in the currently most hyped language, without really knowing what they are doing and why it all works.

Teach concepts, not implementations.

Edit: Typo, standpoint clarification.

I don't think you're disagreeing here. Kalium is saying that an apprenticeship model is the wrong way to teach these skills.
That's exactly where I disagree. In my opinion, the apprenticeship model works quite well in IT.

I guess I'm biased here; I grew up in Switzerland and did an apprenticeship in IT. Also, the company I've been working for the last five years has had apprentices since it's very beginnings and most of the apprentices chose to stay afterwards.

Apprenticeships, as typically proposed in a context such as this one or in bootcamps, don't teach fundamentals and train skills. They skip the former in favor of getting to the latter more quickly. Skip logic and math in favor of React and Bootstrap, that sort of thing.

That is what I am saying is a poor fit. None of the items on this list, last I looked, are four-year apprenticeships that include CS fundamentals.

(comment deleted)
Got any examples in real IT jobs of an apprenticeships working?

Most IT jobs start after the level of an apprentice.

We feel our's has worked well for us, the apprentices we've hired, and those that have found careers after our apprenticeship.
But to be honest your actually training technicians - I would bet labelling some one with lower status is not helping.
I don't believe so and I don't know that you have the insight into our program or our results to honestly make that evaluation.
Well I did start out as a mech eng tech on the vocational track so I actually have experience.

Its more the perception that you will give others that "professional" software development is a lesser profession.

The other professions call this CPD imagine a junior doctor being told now you have your md your going to be doing an aprentiship the AMA would go nuts!

A carpenters job hasn't changed much in hundreds of years

Coming from a vocational bg the idea was you took kids at 14/15/16 they then did a craft apprenticeship for say 4/5 years - spending the first year fileing and fetching tea

Then if you where intelligent you did the technician level course which took another 4 years

How much cs fundamentals would you want to teach during a basic education? When I was 16 I did a 4 year IT apprenticeship in Switzerland. 2 years in school and 2 at a company. We learnt imperative programming with c, object oriented with Java, web development in php and databases with MySQL and Oracle. Plus a bunch of general cs, system/network administration and electronics courses. At the company I worked mostly with Python, Javascript and the object-oriented database ZODB. I would say, it made me quite able to adapt rapidly.

This was about 10 years ago and I don't know how much has changed since. I do like the system, but looking back the first thing I would change is getting rid of all the vendor/Microsoft specific courses and add stuff like algorithm design and analysis, data structures etc. Also some international recognition of the degree would be a nice to have:)

How much? Enough to last a lifetime. Discrete mathematics, algorithmic analysis, the Church-Turing thesis, the foundations of computational theory, and so on.

These "apprenticeships" are little better than bootcamps. They skip all the fundamentals in favor of whatever the language du jour is.

Oddly enough, the changes you suggest would bring your apprenticeship roughly in line with the four-year Bachelor's program I did here in the US. Perhaps this isn't a coincidence.

That they skip all the fundamentals in favor of the language du jour is simply not true for apprenticeships in Switzerland.

Yes my suggested changes would bring it roughly in line with a Bachelor but while working in an actual company and earning money.

Something I didn't get from the website was the actual difference between an apprenticeship, an internship, and a straightforward job. Also, there are legal distinctions surrounding what can be done with paid and unpaid interns, so it would be useful to know how an apprenticeship compares to all three of those other models.
Why the Austrian domain?
I assume they were going for a domain hack... apprentice at such-and-such company.
Apprenticeship is nothing of the past! It is still done in some countries. And not poor countries. Switzerland for example. Read here: http://qz.com/122501/apprenticeships-make-young-people-in-sw...
Yeah but they're nothing like this. An apprenticeship in CH lasts between 2 and 4 years, you get paid around 15k CHF and you go to school something like 2 days a week. Also, big-ish corporations have to take on apprentices by law.
Sounds great and seems to better process than bootcamps since you are actually getting paid. Albeit a little low, $500/week in SF for 3 months is kind of low. (iOS at ThoughtBot)
One of Thoughtbot's sample success stories was a graduate of not one but two paid bootcamps, and had industry work experience...

To be good enough to try out at thoughtbot on a little less than Australian minimum wage, their baseline expectation is that you've already designed and shipped an app, probably work as a designer/developer for another company and are prepared to wait "several months" for them to deign to reply to you.

On your knees, serfs!

I can't seem to find any reason to think of this as anything other than an internship rebranded.

An apprenticeship doesn't have to be four years, but in 3-months I don't see anyone gaining any real fundamental depth of learning. Surface level skills? Sure.

If this was a genuine "Apprenticeship" I'd expect anything from 18 months+

I agree with this. I did three co-op terms (I'm not sure how they're formally different from internships but anyways...) two of which were four months long, and one which was eight months long.

I found that after three months, I was just getting to the point where I could make meaningful contributions. For my two four-month co-ops, this meant that I hardly got to contribute. I really preferred the eight month co-op term, where I felt like I was much more part of the team.

I agree. Three months 'apprenticeship'? How is that different from a three month internship?
"We expect that you will have your own equipment and your own software. Up&Up uses Macs and Adobe Creative Suite and will expect you will have a late model/version of each. "

from http://www.upandup.agency/careersjob_id=job_20140721143320_P...

the nerve...

So three months of that at their cited rate of pay will just about cover equipment costs... before you consider taxes.
At least it is possible to "rent" all the Adobe Creative Suite software for 75$ a month.
They probably require you to install Java as well. Barbarians …
I have mixed feelings about that.

You know, many young kids actually have a Mac already, and if not, a new Mac and a monthly subscription for Adobe costs a fraction of what 3 months in college costs.

And if you've already spent a couple of years in college studying literature, algebra, music, philosophy, psychology, introduction to business and what not, you might just want some practical experience that within a few months could actually land you a job that provides a decent paycheck.

  you might just want some practical experience that
  within a few months could actually land you a job
  that provides a decent paycheck.
It always struck me as ironic that student engineers, who are on track for well paid jobs, get offered paid internships; but student journalists, who are on course for poorly paid jobs, are expected to do unpaid internships - or even pay to do internships.
I am a little confused as to how that is ironic. Strikes me as anything but that
To vastly over-simplify our economy, we usually expect people with greater ability to pay to pay the same or more for substitutable goods. For example, people with more money can buy fancy coffee from starbucks, while typically people who can't afford that will make do with instant coffee.

In this case, the people with the greater ability to pay have to pay less.

That seems ironic to me, even though I know enough about the economy to understand why it happens.

There are far more English lit grads that are competing for any job with a "publisher" or "journalism"

Also newspapers are well known for poverty level wages even when they had 30% profit margin.

A major publisher can pick and chose from ox-bridge grads who got a first.

So rich kids whose mommy or daddy brought them a mac - not what I woudl be looking for
I don't really see the difference between this and a good internship in the software development field. Usually you get a mentor and they nurture you fairly well or help you to help yourself (if it's a good internship and not a "oh free codemonkey" mindset). I'd say dev internships are way ahead of the curve compared to other industries.

The real problem (imo) is that while there's a huge demand for developers at the end of the day it's still hard to program well and there's a potentially strong penalty on being sloppy while learning and on top of that the opportunity cost of people nurturing you from zero/a low level is pretty high. There's a difference between being able to glue working stuff together and understanding an existing codebase. Most jobs require the latter and solid engineering principles on top. I'm afraid there is no hotfix/silver bullet.

Call this apprenticeship or whatever you want, I agree that the right step is taking time to develop talent even if it costs you money now. But the downside is that the workforce is ultramobile so you may invest a lot for no return.

I think the management trainee programs of bigger companies could be an interesting model to investigate. They are essentially meant to groom and train future >middle management through on the job training in all areas of the company.

This is just an internship rebranded, right?

...because my understanding of apprenticeships is that they are very very different to this concept (maybe it's different around the world - I'm from Australia).

Apprenticeship?

Any role I looked at there had significant requirements. "Must have intermediate knowledge of Swift" etc etc.

That's not how apprenticeships work. If anything, this is a far worse version of an internship given that some of them are measuring the tenure in weeks.

Edit: Hah. "Our apprenticeship is not a junior role. The majority of people who join thoughtbot as an apprentice leave a job working as a developer or designer to join us. Because it is such a high bar, even people who have been working in the industry for many years may not make it through the interview process."

Insane. You've somehow managed to find a way to destroy the value of employment even further.

> Insane. You've somehow managed to find a way to destroy the value of employment even further.

The value of "work", I would say.

But yeah, corporatism is insanely good at it, and worst of all, in a subversive way. The society (through education and others) is being silently shaped by corporatism tenets so that, by now, even grassroot-like movements - not at all affiliated with the major "interests" - live by these ideals.

(comment deleted)
Exactly an apprenticeship should be a minimum of 4 years and either do day release or block.

And as some one who actually came into work (R&D based on campus at Cranfield) via the vocational route as a whats now called professional or higher apprenticeship.

Back in the day if you had called us "apprentices" I and my pears woudl have told you to F%^K off.

What were you called back then if not apprentices?
Technicians the associate professions between craft and University.

Most of us where in the civil service hierarchy in terms of actual job title.

Research Assistants , Assistant Scientific Offices Scientific Officers.

Not insane. For our unpaid mobile iOS development internship, we only consider applicants who can show what they've built with Ob-C and Swift. Some balk, but with 3.5 years of experience, we know how much we give back - and what we can expect of our interns.
Uh, you're now using the word 'internship' when your ad specifically used the word 'apprenticeship'. And the HN submission is "Apprenticeships, not internships".

If you have requirements for your role, then that's ok. But then it isn't an apprenticeship, it's an internship, and it's no different to all the other internships out there.

Well, I was confused by the domain since I acutally did my apprenticeship and study in Austria (the one with mountains, no kangooros here). Well here it looks different, apprenticeship includes working for a company and going to a public school finishing with a certified diploma. These offerings on apprentice.at doesn't look anything like this.
If you do apprenticeships, look at Germany how to do it correctly. Apprentice.at is not the solution to the problems you are facing.
The appearance of these seems like a natural reaction to the rise of coding bootcamps. I can easily imagine how employers are hesitant to take on a newly minted bootcamp grad, but may consider an apprenticeship program (yeah, it's a dressed-up internship) as a kind of stepping stone / way to mitigate risk of taking on a jr. dev from one of the bootcamps.
(comment deleted)
(comment deleted)
Background: I'm familiar with Sparkbox's 6 month paid apprenticeship and know a few people who went through it. I'm also a graduate of the http://bloc.io full-stack apprenticeship.

If I'm not mistaking, the current software "craftsman" and "apprenticeship" movement has been largely influenced by Dave Hoover's Apprenticeship Patterns (free on the web): http://chimera.labs.oreilly.com/books/1234000001813/index.ht...

A few quotes from that book:

============================================================

This book is written for software apprentices—for people who have had a taste of developing software and want to take it further, but need some guidance. Whether you have a college degree from a prestigious computer science program or are entirely self-taught, you recognize that there are great developers out there, and you aspire to achieve the same mastery that they possess.

...

When discussing what it means to be an apprentice, Marten Gustafson, one of our interviewees, put it best when he said, “I guess it basically means having the attitude that there’s always a better/smarter/faster way to do what you just did and what you’re currently doing. Apprenticeship is the state/process of evolving and looking for better ways and finding people, companies and situations that force you to learn those better/smarter/faster ways.” We think there’s a lot of value in having this internal drive that is not dependent on anyone else to bestow solutions upon you, and that leads you to find constructive ways of dealing with problems.

...

Apprenticeship is the beginning of your journey as a software craftsman. During this time you will be primarily focused inward, intent on growing your craftsmanship. While you will benefit from the attention of your peers and more experienced developers, you must learn to grow yourself, to learn how you learn. This focus on yourself and your need to grow is the essence of what it means to be an apprentice.

============================================================

In my mind, the key difference between an internship and apprenticeship is the focus and purpose. Generally, a company hires an intern as a cheap way to get extra help. Sure, they will help the intern as needed, but primarily so they can accomplish something for the company.

Whereas, when a company takes on an apprentice, the primary focus is on providing an awesome, safe learning environment. Sure, the apprentice will likely do something of value for the company, but that's a side benefit.

Also, generally people think internship == work while apprenticeship == learning.

So technically there may not be a lot of difference, but I argue that the difference in paradigms has a large impact.

---

I'm not familiar but any of the other apprenticeships, but Sparkbox's is much better than what's generally being discussed in the other comments here. You don't need to already have significant experience to join. All you need is an interest in web development. See more here: https://github.com/sparkbox/apprenticeships

So don't let one company's program taint your view of the rest!

Thanks for sharing your thoughts. I got introduced to the Sparkbox apprenticeship program through this post, and that's helpful! I wonder what your friends (or people you know) thought of the program?
I am alum of Sparkbox's apprenticeship program (and builder of https://apprentice.at) and would be happy to share my experience with you. If you'd like to chat, ping me!
I expected something much different. I transitioned into teaching higher education a few years ago and I would love to partner with places to send my students after they complete their two-year associates degree. I think if I bootstrapped people with the basics of breaking down problems, building code, etc, and could then send them to a great apprentiship, that would change the way we view education.

But what I see here is a very different than that. Most of my students wouldn't financially apply, let alone make it for skills.

Some of the ads even state that people with industry experience wouldn't even make it through the interviews... so this looks at first glance like a way to get some cheap labor from semi-experienced developers.

I don't know if that's what I want to see from our industry, and it makes me a little sad.