The Lost Art of Apprenticeship – Software Development Apprenticeship
This time last year I found myself enjoying all the comforts that are working the service industry in New Orleans. It was early Sunday morning, I was coming off a double, headed into another, and I was harboring totally justified ill will towards all those lined up at the door at 10:30 am. Don’t get me wrong, it was fun and we had a good run, but our partnership was pushing two years and I was ready for a change of routine. I wasn’t sure what I was going to do but I was ready to move on from the restaurant’s resident fix-the-computer guy. My background was in Computer Science and my search for gainful employment had begun.
The search wasn’t as easy as I envisioned due to the types of jobs New Orleans had to offer in the tech sphere at the time. The majority of the available jobs were for positions geared towards system admins, network managers, or project leads for companies looking to hire people with multiple years of experience. I was not one of these people.
Enter Revelry Labs. Like most of the companies I came across, I had never heard of Revelry, which is a testament to my lack of exposure to New Orleans tech rather than their reputation. I was intrigued by their opening for an apprentice position, something I had yet to see anywhere else. I don’t recall the exact language of the job post, but it went something along the lines of:
“We know you don’t know everything; that’s cool, we are going to teach you.”
A small company looking to expand by way of finding people interested in developing a skill set working with a team to build applications. My ideal situation, I quickly applied.
The former, quirky, and now dearly missed Revelry offices were tucked away in a MidCity corner. I walked up to a group of casually dressed guys, engaged in a heated debate about the technical merits of something that, at the time, was completely over my head. I was given the low down of what was expected of me. My 2-3 month apprenticeship would allow me the time to familiarize myself with the team and the technologies. Contingent on my progress, there would be an offer for a full time junior engineer position. I expressed interest in working on iOS development and I was quickly supplied with learning material to get me started while I waited for my apprenticeship to officially begin.
I received a copy of Ray Wanderlich’s “The iOS Apprentice: Third Edition”. It was an awesome training resource. It helped me to refresh my competency in Xcode, learn the ins and outs of storyboarding, and build a better foundation around Swift and UI elements. I continually referenced both the text and the other tutorials available throughout working on my first iOS project.
I got my first taste of what it would be like developing in a team environment when I was paired with a senior engineer with experience in iOS development to work on a simple app aimed at keeping people off their phones at dinner. The problem was ironically close to home having just recently left the service industry. In short, the plan was to use accelerometer data to make sure that users kept their phones face down on the table for a selected amount of time. Pick it up, you lose.
We sat together reading documentation and conversing about what our potential pain points might be and how to avoid them.
I followed along as he wrote out the basics for how we would use the data to keep track of the device’s position and handle changes accordingly. After this session, I was turned loose to build the rest of the app around this core functionality. In the following weeks, with the tools I had acquired and the support of the senior engineer particularly when I ran into blockers, we were able to complete DinnerMode and get it into the app store.
I became familiar with this process of adding new technologies to my arsenal as I had to repeat it to learn our web stack. (In hindsight, I really should have listened to that professor who continually suggested I learn Ruby on Rails in my spare time.) It proved to be easier the second, third, and fourth time around. I spent about a week skimming the through Ruby docs while completing One Month Rails and promptly began to work on low hanging bugs on a client project as I built confidence to take on bigger tasks. When I ultimately got stuck working those tasks, I realized the wealth of knowledge and support that surrounded me.
My resources include a team of developers who are all willing and able to lead me in the right directions and work with me through the issues that I encounter. Over the new few months, I made a habit of putting those resources to use. I did a lot of reading. I asked a lot of questions. I shoulder-surfed more experienced developers to see how they solved difficult problems. The latter being one of the things I personally find the most beneficial. Wax on, wax off.
It’s startling how much and how quickly you can learn in the right environment and Revelry has provided me that.
There are few better feelings than confidence in your own abilities amplified by the support of the team around you. No hurdle is too high, no problem is too complex.
A big takeaway from my experience in the apprentice program is the significance of hands-on work training. Unlike internships I’ve had, where your value is gauged solely on how well you can put to use your current skills, an apprenticeship places a strong emphasis on how well you can learn and progress through training and supplemental studying. The program gave me an opportunity to evolve my learning skills and set the precedent for how to apply them on a daily basis. And the process continues as a junior engineer. Each day I get a little better at my job and I grow as a developer. I really can’t ask for much more than that.
At Revelry, we are innovating with the latest technologies.
Keep in touch by subscribing to CODING CREATIVITY.