After reading through Software Craftsmanship by Pete McBreen, I am convinced that my decision to apply to an apprenticeship as my first step out of school was indeed the correct choice. I knew I was not ready to jump straight into contributing to production code, but now I am sure that no one out of traditional schooling is.
Programming is something that takes practice. Sure, you can get by without a solid foundation, but very likely you will be learning bad habits to build what McBreen refers to as good enough software. Good enough software is unsustainable, likely untested, coupled, dirty code.
I was listening to a podcast and the subject was coding bootcamps. I attended a coding bootcamp in Chicago last summer, so the discussion piqued my interest. Most of the feedback you hear about these types of intensive software developer programs is overwhelmingly positive. They are hailed as a replacement for a traditional 4 year computer science degree with a much cheaper price tag and for a fraction of the time commitment.
I cannot personally speak to the value of a computer science degree. I earned a B.S. from Virginia Commonwealth University in Information Systems, a business technology degree, but with most of the emphasis on the business part. I don’t know how in depth CS degrees are, but I can recount that I struggled through the couple of programming classes I did have in college because the courses were fly-by and superficial, not designed to provide background into what was going on behind the scenes. I find that knowing the entire reasoning behind why something is happening helps to solidify my understanding of a concept.
My experience at the coding bootcamp was more of that, but at ten times the pace. I have always maintained that my learning style is slow and deliberate, but that works for me. I like to take deep dives into concepts, and really find out what is going on beneath the hood. Coding bootcamps are not congruent to that style.
The podcast that I mentioned Coder Radio CR177 pointed out that the problem with these boot camps is that quality varies greatly. The speaker notes that people who go to boot camps are going specifically looking to get hired on the other end, basically to learn as much as is necessary to be employable. The standard for employable also varies greatly.
An employer who is familiar with the software craftsmanship model is not going to find these types of applicants appealing. There is absolutely a place for coding bootcamps for people to start on the journey, but without some other supplement like a degree, on the job training programs, or an apprenticeship, the orphaned bootcamp experience in my opinion does not carry much weight.
I am enthusiastic about my apprenticeship because I know that the longer I am able to work in this model, the better of a foundation I am building for myself, and the less risky I appear to an employer.