What is an apprenticeship?
For some, apprenticeships still conjure a mental image of the Dickensian assistant of a 19th century cobbler, which would be a slight mischaracterisation. What holds over from the idea held by many is the idea of becoming the assistant to an artisan as a helping hand looking to learn the trade. In my case, my apprenticeship was a way for me to take my existing although unrefined knowledge and use it as a foundation to become a competent developer.
In the simplest terms possible, it’s a job that includes learning and rewards a demonstration of abilities with a qualification. This is overseen by the BCS, the chartered institute for IT, and is to demonstrate I’m a “Level 4 Software Developer”.
What did the apprenticeship involve?
Throughout the apprenticeship I had regular meetings with Ben and Rick, the directors at Brace Digital, who guided me on the industry’s best practices. They used their experience to show me how things should be done, and how to make a reliable and scalable site.
It was reassuring to learn from experts about the best way to do things, so I could develop good habits early on in my career.
My mentoring involved discussing my code, looking at pull requests together, reviewing the solutions to various issues and tracking my progress with targets on a trello board.
During my apprenticeship Brace Digital paid for me to go on the Junior Developer acceleration program available through Umbraco, as Brace Digital are Umbraco Silver Partners. This allowed me to learn directly from the instructors at Umbraco how to do things, and allowed me to become registered as an Umbraco Certified Expert! Gwylim Richards - Umbraco Certified Expert
The first part of the apprenticeship was a 3 month course. It was during this time I improved my knowledge in a range of areas in the software development field. The main focuses were of course on writing code, but also the responsibilities and daily routines of a developer.
Professionalism and integrity associated with being a developer were what I really wanted to learn before I touched any code. Code is, as trite as it sounds, binary in that it’s either right or wrong, with instant feedback telling the developer which. The daily routines and intricacies of being a developer are more continuous than discrete, there’s not a right answer that I could learn out of a book, and that’s what made my time on the course so integral.
Once my learning wrapped up, I started working at Brace Digital in a literal sense, rather than just in contract. My first responsibilities were to shadow Ben and Rick, to see how to do things the right way.
The immediately evident thing was that while there may be 10 ways to do X, out of those 10 ways there was a best way. It sounds obvious on reflection, but the instinct to suppress is to see something working and decide it’s done. It’s about doing x the right way rather than just doing.
My role for the first few months was testing the work of the other developers at Brace. This lets me see how things are done while also providing quality assurance for the work performed on each site. Testing is an entire field of software development in its own right, so there was plenty for me to pick up while my role was tester.
Testing continued to be an aspect of my job as I advanced beyond just testing, as it is for everyone at Brace. It’s important to ensure the quality of our own work by testing as we develop, but also test our peers’ work, as fresh perspectives help to spot issues.
After my observation and testing, I knew the primary goals were to make the front end code mimic the design exactly, and make sure the site is accessible for those with disabilities. There were also other important considerations, like SEO and workability for backend development, that are essential, but considered slightly later.
While I could do front end work, I found myself much more suited to backend work, especially as the programming I was used to before the apprenticeship was largely focused on data as I have a STEM background.
It’s important however as a developer to make sure I keep knowledgeable on front end code, as I want to make sure I use a holistic approach when writing backend code, that really considers each and every interaction, so I’m providing the best solution to a given problem as well as possible.
To prove my competence, I produced a portfolio of work I’d completed in my role. This consisted of 9 pieces of work. Each of these pieces showed me applying various important aspects of software development.
I also had to complete an EPA, a specific project, and describe each stage in detail. The writeup for this was limited to 4500 words (with a 10% tolerance). For this I chose an Umbraco site upgrade to v10, as this showcased many different areas of development while allowing me to go into vivid detail for my strongest area, back end code.
For both my portfolio and my EPA, I had an hour long professional discussion about their contents. These were with knowledgeable members of the software profession, who were to judge my competency based on the prepared material and my ability to answer their questions, mostly about the work I’d done but not completely limited to it.
After a lot of hard work to pass, I did pass, and my apprenticeship is now complete and Brace Digital were kind enough to have offered me a permanent position at the company on the condition that I completed the apprenticeship
Once my application to BCS is submitted and approved, I’ll be on the Register of IT Technicians https://www.bcs.org/membership-and-registrations/get-registered/rittech-the-registration-for-it-technicians/register-of-it-technicians/, meaning I’ll have RIT Tech after my name.