Why did I choose a Degree Apprenticeship?
My main reason for choosing a degree apprenticeship over the normal full-time degree pathway was because I was able to get best of both worlds. Originally, I planned to study Computer Science at Durham, Manchester Uni, St. Andrews, International business at LSE or any other Russell group university, however the ability to work full-time and still be able to achieve a degree (without paying student loans) seemed like the perfect opportunity for someone like me who wanted accelerated growth into the Technology industry.
Being a spokesperson for keeping degree apprenticeships with Chris Skidmore MP (I’m the green hoodie on the left)
My opinion and expertise matters
I am part of the DevOps team/guild which holds weekly meetings about the CI infrastructure for the debug team, where all of my peers in the meeting are Senior Software Engineers or above, yet my opinion and expertise matters equally thanks to the experience I’ve had within the teams. I’ve been able to develop and maintain certain CI infrastructure critical to the debug team’s success and build system. I’ve been on a graduate rotation to the micro:bit foundation in my first year (even though I am not a grad software engineer, I was the only degree apprentice within the team so I was often treated as a grad software engineer).
I have worked on epics that contributed to actual time-critical releases. I’m often added to code reviews relating codebases I’ve worked on, where I’m trusted to catch issues and defects that may cause a build failure. I am now a buddy to interns and graduate software engineers joining the team, helping them out with software engineering and internal arm-specific caveats, even though majority of the interns and grad software engineers are 2 years older than me.
I believe the big motivator for me to continue to achieve and not be afraid to dive in the deep end on many of the tasks/epics I have done at Arm was because of Self-actualisation and Esteem (the top layers of Maslow’s hierarchy of needs). As mentioned, by being the only degree apprentice within the team, I was often being compared to University interns or graduate software engineers and therefore given the same amount of responsibility and expectations. This empowered and enabled me to take on tasks that were very much outside my area of expertise, but to which I was able to learn and gain understanding rather quickly. Having a supportive line manager that understood my ambitions, and that always looked for opportunities where I was able to grow and extend was also a key part to the success.
DevOps team meal (2019), I’m wearing the Champion t-shirt
Degree Apprentice Misconceptions
Common misconception about degree apprentices is that they are often too occupied with University work or too inexperienced within the field (whether that’s electrical engineering, enterprise programming etc.) to be able to sufficiently contribute to the team. I believe this highly depends on the individual hired. While degree apprentices start without University experience, some start with a strong background in programming thanks to college or personal projects, and almost all applicants that want to be a degree apprentice do it because they are confident in their ability to learn exponentially on the job.
I wrote my first line of code in 2016 when I started college in my Computer Science course. Programming captivated my interest and imagination that by the end of college in 2018, I had already attended 2 hackathons, built a game in C# with a bare-bones game engine (XnA) and like any hobbyist, bought a raspberry pi and started various projects at home. I was able to take that interest in learning and developing to Arm, so that when I started in September of 2018 (when I was 18), no matter the difficulties and challenges I faced, I persevered and pushed on.
I spent a week or two overwhelmed by enterprise programming practices – from code reviews, complex version control, build systems, api calls, TPIP requests and more. By the time I was in my 4th month at Arm, I was using Golang to write back-end daemons that would collect data which would be served via http to a front-end dashboard, which used an ajax script to GET the data and dynamically create dashboard tiles depending on what data the response contained. I was able to learn about REST API’s, dependency management and the use of makefiles to automate complex builds. This project was a prototype which I ended up including in a real release in 2020 (2 years later) as it fit with a feature requested by certain Arm partners/customers. By the time University exams came around asking about basic programming paradigms, compiling, networking and operating systems, I’ve already been exposed to all the mentioned technologies within Arm before the curriculum mentioned them.