We focus a lot of energy teaching and developing aspiring software engineers. What many people find surprising is our favorite students to work with are not Computer Science graduates but Code School Students.
It might be hard to believe that 10–12 weeks of education can position someone to enter an industry like software development, however it’s happening every day and our hiring strategy rests fully on this possibility.
That being said, there are a few things to keep in mind for students jumping from code school to career. Also, if you’re planning on hiring your first code school grad, these may be helpful for you as well.
Code permanence. In class, new concepts are covered daily, in some cases hourly, so worrying about maintaining previous code would waste precious time. In a career, however, starting from scratch is a rare luxury, so consistency and quality are king. Be prepared to write code you’ll see again, which means taking more time to plan ahead.
To address this, we make sure every apprentice receives regular, rigorous code reviews. The goal is to consider the lasting implications of each decision and avoid future headaches.
Consistency. Stressing syntax, indentation, and process may seem knit-picky, but winning the smallest details makes a massive difference over time. Great habits lead to great engineers. There is no hacking that.
At Polar Notion, we pair engineers of all skill levels so they can perform code reviews on each other’s code. When we implemented peer code reviews, on top of senior level reviews, code quality increased almost over night.
Architecture. Much like the foundation of a building, there are fundamental structural choices that must be made early on in a project and aren’t easily changed. The choices require a depth of knowledge and understanding that are gained over time and through practical experience, usually measured in months/years not days/weeks.
Developing this skill is done through design sessions, mentoring, and continual reviews along the way. Parts of architecture can be taught, but it’s also learned through the correction of poor architecture choices, within an environment that mistakes are welcomed as part of the process.
Focus. Sticking to one task at a time is crucial. It’s easy, and often rewarding, to popcorn from task to task knocking out all the ‘fun things’ first. The greatest gains, however, come from batching focus and seeing a line of thought through to completion.
To encourage focus for our team, we actively use task lists. When an engineer is solving a particular problem and notices a tangential rabbit-hole, the expectation is to document the tangent so it isn’t missed, but immediately return to the task at hand.
Remember that developing skills is a journey. Be patient with yourself and others along the way.
Go boldly forward.