A pattern that peaked my interest in Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman[AP] by Dave Hoover and Adewale Oshineye was “Concrete Skills”. In short, it discusses how it is important to have a basic set of “concrete skills” as they will be important when going for jobs and gaining the respect/trust of team members [AP]. It also discusses how to acquire these skills [AP]. The reason I was interested is because this is a book for the apprentice. One might think that an apprentice may not have a whole lot of concrete skills. They may have enthusiasm about the subject matter and are probably more that willing to learn, but they may not have the necessary skills. In my opinion, a person is an apprentice because they have to learn these concrete skills before they can go off on their own. There should be no expectation for a new apprentice to know anything other than a few basics of a language or two. If you already have these concrete skills down pat, then why would you still be considered an apprentice?
While I disagree with the expectation that apprentices should have a bunch of these concrete skills (at least that is how I interpreted it), I don’t disagree that concrete skills are very important when going for jobs and getting a new team to accept you. You have to be able to prove that you can do the very basics of the job at a minimum. In other words, you don’t want to walk into a job and be a burden to the team. I think it is understood that there will be a learning curve and someone from the team is going to have to go out of their way to teach the new person how things work at the company, what the project they are working on is all about, etc., but the team shouldn’t have to babysit and guide the person through every task for the next year. Having some concrete skills along with the ability to learn quickly will prevent the babysitting aspect. It will also give the respect of other more veteran team members. It is important for people with more experience than you to be able trust that you can get the job done and respect your work. I just feel that if you are going for an apprenticeship type positions (a.k.a. internships), that the expectations of what you know are significantly lower than if you were going for a full fledged engineering position.
Link to the pattern in the book:
https://www.safaribooksonline.com/library/view/apprenticeship-patterns/9780596806842/ch02s04.html
From the blog CS@Worcester – README by Matthew Foley and used with permission of the author. All other rights reserved by the author.


