Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The company I work for is about to take 2 software engineering apprentices for the first time. As far as I can tell, we're not equipped for teaching any theory and as CompSci for under 18s is fairly uncommon in the UK, it's unlikely they're going to have a solid grounding beforehand. Does anyone have experience on what kind of environment and investment of people is required to make a good apprenticeship for this field? Everyone at the company did a CompSci or similar degree, but I feel that apprenticeships are a fundamentally different model.


Suggestion: Could the company/apprentices blog about the experience? (Without necessary getting too personal). It would be a great way to share with the community and good fodder for a discussion and the following round of apprenticeship experiments :-)


We're not big bloggers if I'm honest. Everything we do is closed source, corporate and targeted at enterprise. Maybe it'd be nice to do, but it's just not the culture we have in the office.


The ideal situation is to pair each apprentice with an experienced dev, with a fixed time allocated every day to help them.

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.


The missing piece seems to be some way to ensure the apprentice sticks around once they become valuable. If they are immediately poached with a high salary you can't afford to pay, you get nothing for your troubles of teaching them.


Apprentices can be profitable. I was one and later had access to invoices we sent.

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 obvious solution to this would be to charge them for the apprenticeship, financing it yourself with a loan from master to apprentice (which then immediately goes back to the master as "tuition"). If they are immediately poached at a high salary, they'll have to pay back the loan.

The traditional solution, enslavement, has a bad reputation today.


See my other comment, this is no different that keeping any other employee around.


And ordinary employees leave all the time. But they "pay off" sooner, because the up front investment is lower.

Even in Germany today there are additional assurances to make sure an apprentice isn't immediately poached after becoming a journeyman.


I think the sticking point is finding small tasks that are meaningful. You can generate that sort of thing for someone doing a 2 week placement, but I think it'll be tricky for much more than that given the nature of the work we have available.

Did you have any structure to your learning to ensure you covered basic topics, e.g. OO, data structures, algorithms, etc?


No my internship was more of a learn or die type of thing. But the dev in charge of me, although he sucked at teaching me, was very tolerant of my mistakes, even grave ones. He gave me important tasks, and would shield me from the heat from management when I messed up. So I learned from copying his talented but cryptic work using trials and errors.

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.


I dare guess you have greater company loyalty and knowledge of the business than other hired 'experienced' devs that have joined along the way?


It depends of how the company behaves. It's no different than with any other employees.

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'd say there's 2 main groups of people - those that have been there 20+ years and aren't likely to leave and those under 30 that started as grads or interns and have been there a few years. I don't consider myself particularly loyal, I just happen to like the work and team I'm on and if that stops being true I look elsewhere.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: