What is one skill I could learn to set myself apart from other apprentice candidates?
The web frameworks of today all have mature test libraries. Hashrocket's default tool is Ruby on Rails, and testing is a fundamental part of that community. Everything we do is test-driven.
New apprentices who come into any consultancy will have a lot to learn. At Hashrocket we use a pretty customized setup of Vim and Tmux, and have a ton of aliases and shorthands that can be hard to pick up. Our apprentices pair program with full-time developers, on real projects. It can be daunting at first.
Being able to write a test lets you add value on Day One. Even if you can't implement every part of the feature, you can write some code showing what the feature should do. That's useful.
Testing and TDD proficiency show that you can communicate intent and use a variety of tools. It's rare to see in an apprentice candidate, and those who have it usually do very well.
Here's two of my recommended resources on the subject. They are Ruby based, but the concepts could apply to any testable language:
- Jim Weirich - Roman Numerals Kata: https://www.youtube.com/watch?v=983zk0eqYLY
- Programming like god — the declarative paradigm: https://vimeo.com/131588133
Hope this helps!