A few years back, Howard wrote his thoughts on apprenticeships, drawing from his own experiences, whilst endjin were in the process of planning their own unique apprenticeship scheme. I was fortunate enough to be selected as their first candidate (guinea pig?) and, as it is National Apprentice Week this week, I thought I would write a short retrospective about my experience, to inform anyone thinking about starting their career in this way, and to hopefully encourage other businesses to adopt similar schemes.
A bit about me. I was studying mechanical engineering at university, coming up to my finals and thinking about a career, when I decided that all the things I enjoyed about mechanical engineering were equally applicable to software engineering, so went off in search of a job in that sector. Although I had toyed around with some MATLAB and C++, I didn't have the same sort of experience as someone from, say, a computer science background, so focused in on software companies looking to train graduates from any STEM disciplines.
It was around this time I was put in touch with endjin, who were looking for apprentices from non-traditional backgrounds, and so it was that I began my software craftsmanship journey.
I learnt about patterns like SOLID, MVVM, and MVC, and saw them put to use in projects I was working on with more senior developers, solidifying the knowledge through application. I also learnt that successful software development goes beyond just the application code, and is supported by unit testing, integration testing, build and deployment automation, continuous integration pipelines… etc.
Moving into the second and third years of the apprenticeship, armed with the basic principles, I was helping to deliver multiple projects for multiple clients, and learning about more software architectures, such as the challenges of distributed computing. Endjin were undertaking many projects based around the Microsoft Azure platform, and I started to gain lots of specific knowledge in certain areas. The first day someone comes to you asking for advice is always encouraging.
Of course there isn't just the technical side. Going through the years of the apprenticeship I was incrementally given more responsibility with project planning and project delivery. From early on, I was given opportunities to shadow senior people in client workshops and process reviews in order to hone my consultancy skills. And as the technical skills develop, so does the confidence with clients.
The combination of being given dedicated time and resources to study (via Pluralsight courses, books and training conferences), shadowing senior members of staff, and being put to work on real projects (with real responsibilities) is an effective way to start a career. Yes the learning curve was steep, and at the start I found myself asking hundreds of questions daily, but the reward is worth it – looking back makes me realise just how much I managed to achieve in those three years.
I'm lucky to work for a company that encourages continuous learning, so even though my official apprenticeship is over, I still benefit from the wisdom of my mentors, and now I can also hopefully pass on some of my own knowledge and skills to new people coming through endjin's apprenticeship scheme.
I would encourage more businesses in our sector to take this approach, foster talent and pass on the craft of software engineering.