It was hour number 8 of looking at the same computer screen and scrolling through the text to see if I had missed an important detail. I had not. I was stuck. I had admitted I was stuck hours before then began redrawing the same numbers and diagrams on the white board I had erased three times before. Frustrated was an understatement. I then looked at my dog who was hungrily eyeing the almonds on my desk and began to explain to him (for the fifth time) what I was trying to accomplish. He was rewarded for his patience but his kind ear did nothing to help my predicament.
The above anecdote underscores (to me at least) the challenge and purpose of learning a new skill. I would eventually solve the algorithm and move onto a new problem but I always remember the struggle of being stuck, the steps I took to make progress and the ‘ah-ha’ moment when all the pieces came together.
I am not a programmer by trade nor do I have what many would consider a classical technical background, e.g. engineering, mathematics or computer science. Rather, I am just a man who grew tired of relying on flakey developers to ‘make the magic happen’ and wanted more than to be on the outside looking in. Thus, I vowed to learn the trade.
My search for the right development program started with in-person “bootcamps” that ran 3-6 months in major metropolitan locations and cost nearly $30,000 irrespective of room, board and the lost wages of being in school. Being a high risk gamble, those options proved cost prohibitive and I moved on to online apprenticeships which offered similar curriculum but with the added advantage of being remote, done at my leisure and far more cost effective.
After prospecting six different programs, I narrowed my choice down to two: Bloc.io and theFirehoseProject. Each presented different advantages and disadvantages and the cost was (nearly) similar enough to warrant a full examination. I initially chose Bloc.io due to their customizable length of programs, higher amount of mentor meetings and what appeared to be denser curriculum. It took nearly three months of disappointment and frustration before I finally threw up my hands and transferred to theFirehoseProject to finish my coding education. In order to explain the sequence of events that led to both choices, I feel it is incumbent upon me to contextualize the differences in each respective program.
Bloc has a similar focus with some key differences. Mainly, Bloc uses step-by-step tutorials and questions to walk one through the fundamentals of beginning to code. Depending on the speed at which you learn, this can be a good way to ramp up your knowledge before diving into full-on application development. If, however, you find applied knowledge more useful than regimented modules, you might find this aspect both frustrating and regressive. (Most of the skills I gleaned from these sections could be found on a site like codewars.com or rubymonk.com. This is not to say it was not helpful to learn!) Bloc then takes a similar approach to Firehose and offers a series of CRUD apps that teach very specific pieces of knowledge. These apps provide a lot of useful features (API knowledge, rake tasks, Stripe API integration) but are somewhat lacking in terms of Test Driven Development and expanded knowledge, like algorithms or advanced usage of GitHub.
This was a particular sticking point for me, as I tend to rely heavily on lecture material and in-class demonstrations to help clarify new information. But, as I learned the hard way, it is not the number of mentor sessions provided, but the quality and investment of the mentor.
Given the fixed length of the program, Firehose allots 12 mentor sessions or one per week starting on the second week of your program after you have already constructed and launched your first web application. I bristled at first as Bloc promises nearly triple the number of mentor sessions during your apprenticeship. However, while this might seem like an impediment, it actually forces a student to find solutions through diagramming, Googling or trial and error. Since this type of self-guided discovery comprises 90% of computer programming, absence of oversight turned out to be a blessing as opposed to a curse. Further, the quality of the Firehose mentor sessions proved far superior to Bloc. I lucked out and had Ken Mazaika (one of the co-founders) as my mentor and he was an incredible resource. As opposed to ‘driving’ while I watched, he constantly challenged me to think about what I was trying to do and why I was doing it rather than just showing me how do it. As a former attorney in training with an overly analytical mind, I needed to see the reasoning behind the code and this proved to be the impetus for me learning the methods. Finally, though we would constantly run over on the allotted time for our mentor session, Ken would make sure I had all of my questions answered and would point me in the direction of places where I could expand my study of a particular concept we covered that day.
As much as I enjoyed the dynamic with my mentor, the quality of sessions did not match what I was expecting. We would meet twice a week to discuss my questions, but often times I was left watching as he produced the code. Given my inexperience in the world of computer programming, this approach did very little to help my growth. I would leave the sessions without having resolved the questions I initially presented to my mentor, as I would need clarification on a lot of the concepts we covered during that call. Furthermore, if I would ask about a particular piece of information I had uncovered during my self-guided coding, I was told to disregard the question if my mentor did not find it valuable. I will admit that some of my questions may have been elementary but only through understanding outdated information does one realize why the question is inferior. The timing aspect also proved to be frustrating as my mentor would frequently arrive tardy to our scheduled session due to a previous call and had to jump off early to attend to another student. I would sometimes feel like a burden when asking questions via e-mail and eventually resorted to leveraging other developers in lieu of reaching out to my mentor.
TheFirehoseProject is either $4,000 up-front for a full stack development apprenticeship or $4,500 with several payment plans available.
Bloc is $5,000 regardless of your payment plan. You can, however, qualify for a ‘scholarship’ if they deem you to be eligible.
* It is worth mentioning that Bloc charges a $500 cancellation fee if you cancel your membership after a month into the program. I learned this the hard way. TheFirehoseProject did not charge such a fee.
TheFirehoseProject has two main areas which are of use for people looking to enter a career as a web developer. There are weekly ‘office hours’ that bring all students into a community video chat with Ken, Marco and other guest mentors to discuss issues students have encountered. This allows an open forum for both general inquiries and specific technical questions. It also provides students an opportunity to interact with one another which is nice given that most of your coding will take place in isolation.
The final 4 weeks of the program are dedicated to a mentor-lead group project which involved a lot of advanced coding skills (“how do I write code to validate check-mate?”), heavy use of Test Driven Development and a lot of technical pair programming with other students on your team. The group project has been incredibly helpful for understanding the real world web application development process for a novice like myself.
Bloc, at least while I was enrolled, had pseudo-office hours where one mentor would answer questions from students in a chat room. Often times, the mentor would not be in attendance as I was informed that Bloc was no longer using this feature. Since there was no group project, I never used pair programming until I transferred schools.
These four main points of comparison are what I used to rank the programs before enrolling. As mentioned, initially Bloc seemed like the better option given its higher rate of mentor interaction and the somewhat nominal difference in cost.
However, the difference in Curriculum and Mentor Quality, Real World Pair-Programming and Cost made my transfer to theFirehoseProject easy.
Sometimes the appearance of the school is just that: only an appearance. I suggest fully vetting both programs (if you are prospecting online schools) and talk to alumni from both to answer any questions you might have.
In sum, I am very happy with my choice of switching over to theFirehoseProject, despite the financial impact of transferring schools. But most importantly I now have the skills that I need and feel ready to work as a junior web developer.
Written by: Tate Price
The First of June, 2015