Apprenticeships, Software Engineering and Getting Over The "First Job" Hurdle
While I don't think this affects everyone, I've noticed some people trying to become professional software engineers having a lot of trouble getting their first job. For them, doing an apprenticeships may be the solution.
First Job Hurdle
I think part of the trouble they are having is that they are stuck in a something like a "catch 22" situation.
Although there a some companies in some places that will grab as many (fresh) university grads as they can as soon as they can after they graduate, there are still a lot of people who won't hire very junior software engineers -- software engineers fresh out of school or self-taught with no professional experience. Many employers want someone with some professional experience -- want someone with some experience working at a company or self-employed. And really they want someone with experience in what they are hiring for. (Generic experience is often not enough. Usually, at the very least, experience with a particular programming laugnauge is required.)
So, how does the very junior software engineer get this professional experience if many exployers won't hire very junior software engineers?
This creates a hurdle for the very junior software engineers to get over: the "first job hurdle".
Somehow I got over this "first job hurdle" without even knowing it was even a problem for some people.1
And really, I don't know if this hurdle is really a problem for most (trying to become professional software engineers). Maybe most people get over this hurdle easily, and for only a small number of people does it become a problem. Maybe, when the "first job hurdle" is a problem, it is only a problem for a limited length of time when certain market conditions exist (where employers can be more choosy). Maybe the "first job hurdle" isn't a problem for most people.
But I've seen that it is a problem for some people.
And for these people who this affects, where nothing else seems to get them over the "first job hurdle", I'm going to suggest doing an apprenticeships.
My Usual Advice
One piece of advice I give people who are still in school (studying computer science) or who have recently graduated (and have not yet to gotten their first job) and who want to become software engineers (or data scientists or really any technical position) is:
Get a job doing something that is "close" (in terms of the type of work you do) to what you want to do (in the long term).
Don't worry about the pay (at first).
And hold the job for at least 1 year.
(You can worry about the pay after 1 year.)
This advice is born out of being pragmatic. I.e., noticing how "things" seems to work, and engaging in a reasonable strategy for dealing with that.
I think this is good advice because:
Many employers won't hire very junior engineers.
And the very junior engineer needs to get over the hurdle of being a very junior engineer by getting some professional experience, that will look "good enough" on their resume to make getting interviews easier for them.
If a person wants to be hired to do "X" then it often helps to already have experience doing "X".
So getting a job doing something "close" (in terms of the type of work that person does) to what that person wants to do (in the long term) can be important.
If a very junior person has less than 1 year experience with their first job, some (but not all) potentially employers will wonder if that person left the job (regardless of whether leaving was volutarily or not) because they weren't "good" at it.
(Although, if that person doesn't want to stay at that first job, and gets job an offer (or find something else), then the "stay at least 1 year" point can, at that point, be ignored.)
But this advice only suggests to get a first job, not how to get it.
So how does a very junior software engineer get this first job? and get over the "first job hurdle"?
For some, "knowing" the right people can help. I.e., having connections.
Acquaintance, friends and friends-of-friends can sometimes get a person an interviews and even a job.
Some gain relevant connections from professional work experience. I.e., people who a person has worked with; or people a person has worked with know.
Of course, this is something a very junior person does not have yet. (Another "catch 22".)
So what if "having connections" isn't an option?
When I was in university, I noticed some (fellow students) did co-op. (I didn't do co-op myself, but some of my friends did.)
There was a special class a (computer science) student could take, where they would go work at a company for a semester. It made it so work experience was part of the curriculum.
(Some of these co-ops arrangements were paid and some were un-paid.2)
And some students did multiple semesters of co-op.
It wasn't uncommon for these students to (eventually) be hired by a company they did a co-op at. (Although, being hired wasn't a given.)
But even if they weren't hired, it gave them something to put on their resumes (which gave them an advantage when they started looking for that first paying job).
But if a person is already out of school or didn't go to school (and was completely self-taught) then co-op isn't likely an option either.
So if nothing else is working for a very junior person, there is one other thing that may work: apprenticeships.
(Some might call this an "internship".)
The very junior person wants professional software engineering experience on their resume, that can "open doors" for them -- that can give them opportunties to get jobs that would be more to their liking.
Doing a (low paid or un-paid) apprenticeships for a limited amount of time (say 4 to 8 months) may be a win-win situation for both the very junior person an the employer.
The very junior person wants to get over the "first job hurdle".
And the potential employer wants to minmize their risk and cost and have a reason to even do a apprenticeship.
The very junior person gets mentorship and experience.
The potential employer maybe find someone to hire.
Even if it is low paid or un-paid, if an apprenticeships is thought of as a (4 to 8 month) education period then its not that much different than the schooling, during which, not only were they un-paid, but you (or someone on your behalf) paid for.
The point of this is to create something like the co-op for people who don't have the option of doing co-op.
It is possible that the non-software engineering experience I had on my resume helped me get over the "first job hurdle". Even though that experience wasn't doing software engineering, it was still technical in nature.
My first software engineering job after graduating university wasn't actually my first job.
My first job was actually as a (self-employed) math tutor.
I created an ad on a piece of paper (with tear-offs) and posted it at a grocery store near where I lived. The mother of a friend of mine worked at that grocery store, and I suspect she may have helped me get my first customer (by recommending me). But after I got my first customer, they told their friends about me and I got other customers. (I was either still in high school or recently out of high school when this started.)
Later, one of my math professors suggested I work for a college as a math tutor. (I actually ended up tutoring chemistry and physics too, while doing this job, since people found out I knew thoe topics too.)
Also, I was an editor at (what became) Netscape's and then AOL Time Warner's "Open Directory Project". And while I wasn't a software engineer on this, back then "Netscape" was a well known name in tech circles.
Later on I was also a system administrator.
This was all before I graduated from university.
So, by the time I got my first software engineering job (after I graduated university), I already had some technical experience on my resume. Maybe that (combined with willness to accept low pay) helped.
I know some people who have strong feelings against doing un-paid co-op, internships and apprenticeships. To me this attitude seems not only silly but also not in ones long-term best interests.
If you are a student, you (or someone on your behalf) has already paid a lot of money for your education.
Not only were your un-paid while going to school but you (or someone on your behalf) paid money for it!
Co-ops, internships and apprenticeships that have a limited duration (ex: 4 to 8 months) is a type of free education for you. And can "open doors" -- can give you new opportunities.
If you can get one that is paid, great! But if it is un-paid, is it such a big deal? (Especially if this can help you get a paid job.)