Today we wrap up our three part series from our Developer Apprentices. I hope to share more about our program as it continues, and in the fall as we reflect on the program in its entirety.
Our final post in this series is from Stephanie, who has been working in Elixir and React.
Tales from the trail: Apprenticeship 1.0
Landing your first developer gig is a big deal. If you’re anything like me, you spent the last year or two (or more) starting from scratch with intro instruction then banging your head against current technologies in an attempt to level up into the real world. Big jump. So an invite to join a team can mean finally getting some validation for everything you’ve put into it.
Two main lessons to emerge in the process:
Always reach into the unknown - Turns out, trying out that new stuff did get me somewhere. While I might not feel anything like an expert, I know what it is, how it works and can write something in it. That means I can build from there, getting into projects using it or writing new starter code. Technology moves fast and there will always be new tools (or versions) to get up with. Getting in there and starting out is the best way in, even if you don’t recognize a thing around you. I’m confident that in my understanding of development there will always be pools of feeling lost in something I don’t understand.
You don’t get there alone - Asking questions is hard. It takes a lot of confidence to say “I don’t get it.” I still shrink at the idea of exposing myself for what I don’t know. But part of what makes something like pair programming so useful is talking to someone else about it, even if you do get it. Reaching out for guidance and explanations is literally the only way to get help from the droves out there who have been there and are happy to do it. We are constantly searching for answers on the web, but a direct ask can be a more simple, fast and understandable way to get an answer. Plus it’s important to represent beginners, beginner questions and stake out a part of the community where it’s not so hard to ask.
So you got the job, now comes the hard part
The newly initiated SmartLogic apprenticeship isn’t a structured learning course. We are each assigned to different projects and developers on those projects. Just like any team member, apprentices take on work needed for the project, but what we work on and how is largely up to us.
Time management and decision making around what to work on and how to approach it becomes a challenge. Being surrounded by so many new things can make it hard to know what direction to go in and how much time to dedicate to learning those tools before diving in. Finding the right mix of research and study, throwing yourself in without a good grasp on the material and narrowing the field of options is a balancing act. An easy guideline are the priorities of the project. If there are things needed I can help with, those become my primary focus while keeping an eye on the other areas I’m interested in and have started to work on.
What is it you’re actually doing?
My project is a web application based in Elixir and Phoenix with a ReactJS front end. Initiating into things, I toured different parts of the app an did some active observation when new changes were made on the front end. I’d never even seen Elixir before starting so getting an intro into piping and some of the mechanisms at play helped to break the ice.
Once I got down to contributing, I started with some component styling and putting together a react component for general use across the site. Wallaby feature testing for the app was another area I got into, constructing my first test to run successfully. That has been benched briefly as I dive into more styling for new features and redesigns as we near a crucial deadline. While I really like UX and know how valuable it is, it can get pretty thick; lots of new things to play around with (hello flexbox, my new friend).
I’ve also taken on Heroku staging deployment, learning the steps, getting setup on different machines and the different kinds of deployment that can be needed, follow up steps and troubleshooting. And of course there’s all the setup, tweaking and tools: git, postgres, Atom—I’ve only used Sublime and VS Code, I like being familiar with different environments—Virtual Box (did not end well), Heroku deployment, Zube, Sass and more.
Looking forward to what’s up next and keeping an eye on my progress!
- Stephanie Vizzi
Header photo by Alejandro Escamilla on Unsplash