I found myself drawing a distinction between code school graduates and Junior Engineers. It’s not to diminish the effort or credibility of code school. It is to elevate the importance of real world experience. Deploying to production software is key to the Junior Engineer distinction. Beyond a brochure site or public facing test app, a Junior Engineer needs time spent on a system with daily active users.
Realizing it’s often hard to get the opportunity to work in a live environment, our apprenticeship is designed for Entry Level Engineers.
What do you look for in an apprentice?
This is by no means a comprehensive list, but we have found patterns that define solid apprenticeship candidates.
- Proactive learner. Pursue a deeper understanding rather than waiting to be tasked it.
- Action oriented. A default to ‘jumping right in’ rather than waiting for complete clarity.
- Inquisitive. The ability to ask good questions and digest the answers.
- Curious. Not just wanting to make it work but interest in understanding why it works.
- Consistent improvement. Continually putting in the effort and learning from past mistakes.
What is most important skill to prioritize?
A disciplined approach to version control. We call it git chops. Slicing work into the right sized chunks, tracking the progress effectively, and issuing pull requests at appropriate times will go a long way. It will force apprentices to be more deliberate and focus on one feature at a time. It also helps mentors contribute more constructively to the learning process.
At the end of the day, a spirit of tenacity and thoughtfulness goes a long way in the learning process. It’s not all about hard work, but the path to proficiency is long and rewards those who stick with it.