Reflections at the Halfway Point

Eric Ricketts
Aug 25, 2019 · 9 min read

I am currently a bit beyond the halfway point at Launch School, and I felt successful completion of the backend module provided more than enough experience of Launch School’s pedagogy and material to share my impressions. Additionally, I will provide some personal advice for those who choose to participate in a coding school that is in a class by itself (no pun intended!!).

Prior Career

I had the opportunity to attend a stereotypical coding “boot camp” after my separation from IBM. In the past, I told others this was the hardest intellectual endeavor I had ever experienced. Now, upon further reflection I would say it was the most frustrating academic experience I ever encountered. I was lost from the beginning. The curriculum not only covered a great variety of material it moved at such a fast pace that I never got to shore up the conceptual holes I accumulated along the way. Even though the head instructor graciously extended my participation by a month, it was clear to me by the end of that extra month I was not even close to grasping the foundational skills needed to be a programmer.

Naturally, going into my first software position I had a very high level of anxiety. I intuitively knew I was not prepared for the challenge even though it was an apprenticeship position, which by nature is easier than what would be required for a junior developer. My worst fears were born out as the first team I got assigned to was developing a browser based CAD (Computer Aided Design) system targeted for residential housing. I was unable to comprehend even the most basic aspects of how this software system worked which meant I had to deal with substantial knowledge debt for every assignment I encountered. Feeling I would never advance past apprentice or more likely get fired, I eventually resigned my position.

Later, I was able to reenter the software field after getting some additional training via tutorials and some personal mentorship by a software developer who was very gracious with his time. I mistakingly focused on learning a particular web framework instead of trying to shore up the basic skills I needed as a programmer. Of course, I cannot really blame myself for taking this approach as I thought the right framework provided the necessary “buzzword” on a resume or LinkedIn profile. Additionally, I did not have the necessary training or mindset to first assess my shortcomings in the fundamentals of web development, much less address and fix them.

In this, my second foray into software development, I worked for a contracting company which provided a team of developers to a company heavily involved in computer networks. The team I was assigned to wrote a suite of internal tools to increase the efficiency of maintaining the network. Though I did much better the second time around, actually feeling I made a significant contribution to the testing environment, I got fired four months after being promoted to a mid-level developer. Adding to my frustration I never had a face to face about my job being in jeopardy, I just got a phone call saying I was fired because “my skill set was not needed going forward”.

Some Comments

Secondly, I wanted to use my prior experience as a Segway into Launch School. Let me open by emphatically stating that Launch School IS NOT A CODING BOOTCAMP. As I discuss my journey through Launch School in the following paragraphs, where appropriate I will highlight some of my shortfalls due to the coding bootcamp model and then go onto show how Launch School has rectified these shortfalls.

One last comment, the merits and downsides of the classic coding bootcamp model deserves its own discussion (see the link above). It is not my intent to delve deeply into that topic, it has absolutely worked for the right people under the right conditions, but in my opinion the model has significant downsides, particularly for those completely new to programming.

The Journey So Far

Much to my chagrin, I had never considered what it takes to “Learn How To Learn” even after 17 years of chip design. You can forget about doing such valuable personal reflection in a coding bootcamp as one struggles to get through another all nighter on the final project. With Launch School the building blocks have been put into place through specific and directed practice. With a foundation built on rock and not sand, I am beginning to identify the common patterns across the different disciplines of software development. This means I am much more confident and equipped to learn something new.

In the past, I never really gave consideration to the formulation of my mental models because such a topic was never discussed. Solid mental models are key to extrapolating from past experience to learn new concepts or tools. Going forward, because of my Launch School instruction, I will continue to refine these mental models.

I am thoroughly enjoying the journey and my confidence has soared, even though (due to personal issues) it has taken me over a year to get just past the halfway point, the time spent is of no concern. With the timeline eliminated, I focus on mastery of the given topic. Currently, I do not feel my understanding of the CSS box model is sufficient to quickly and accurately arrange block level or inline level elements on a web page. Since I am not in the boot camp model, I have the time for deliberate practice before moving onto the next lesson. I control my pace and decide if my understanding is sufficient.

My Personal Advice

The most important thing one must do when entering the program is to step back and embrace the “Big Picture” Launch School is advocating. This “Big Picture” is not about “getting a job” but embarking on a career in software engineering which uses Mastery Based Learning to establish a solid foundation in the Fundamentals. I have had to constantly remind myself of this as I go through the program, as our entire schooling system is based on a “fixed time, fixed curriculum” (factory) model. In a practical sense, never tell yourself, “I am going to finish the lesson by this date or in this many days”. Such a mindset is contrary to Mastery Base Learning. Instead, as you work through the material you should always be asking yourself, “How comfortable am I with the content of this lesson? Am I at the exposure level or have I mastered the material? If I have not mastered the material, what additional things must I do to ensure mastery?” To close out this first point, never, ever compare your progress with other students. Launch School is set up to accommodate each students individual journey to begin his/her career in software development.

Trust the curriculum, it is designed to teach the Fundamentals of Software Development. Chris Lee and his staff have many years not only of software development experience but also many years of teaching software development, and I am paying them with the assumption that they can correctly identify what concepts I need to learn to mastery. Do not read a lot of supplementary material (other than the documentation) as you progress through the curriculum. I will recommend a few books for those who want to supplement their studies for the back end module, but as you will see I keep the list to a minimum. Your primary supplemental reading should be the documentation Launch School recommends. In the case of the back end module this is the Ruby Programming Language Documentation, the Mozilla Developer Network (MDN) documentation on HTTP, the PostgreSQL documentation, and the documentation for the Sinatra DSL (Domain Specific Language).

I used to think one of the paths to becoming a great programmer involved reading a lot of technical books. I no longer believe this; I feel a programmer’s time should be devoted to writing code, reading code and getting really good at reading documentation. Based on completing the preparatory work and the back end module, I would recommend two books: “Head First Ruby” and “The Well Grounded Rubyist”. Only read one of them. “Head First Ruby” is definitely the easier of the two and was written for those completely new to programming. Its main advantage is the topics covered align almost perfectly with the material covered in Launch School’s back end module, though the order in which the material covered is a bit different. “The Well Grounded Rubyist” is by far the more advanced book, as it was written for those who have had some experience in programming. It does cover other topics not covered by Launch School, but not too many. The strength of the book is that it is essentially a deep dive into Ruby’s Standard Library, so its focus remains on the fundamentals of programming in Ruby.

Spend a good amount of time with the free, preparatory module. This module prepares a student both emotionally and technically for the paid portion of Launch School’s curriculum. The bias in our culture towards the “factory” based model of education is substantial. A new student needs to detach themselves from this flawed model and emotionally buy into the Mastery Based Model. Read and take time to reflect on all of the materials dealing with the Mastery Based Model and “Learning How To Learn”. I strongly advise doing all of the “Ruby Basics” exercise set and then visit a Code Kata site like codewars and do additional exercises at the easy levels. Strive for solving 200–300 small problems (numbers include the Launch School “Ruby Basics”) before beginning the paid portion of the program. In doing so you will start the back end module with a strong foundation in the basics of Ruby programming and you will have already started the practice of decomposing and solving small problems.

If you decide to do extra projects outside of the required Launch School applications, do not try to cram in learning a new library or framework beyond what Launch School has already introduced. If you do an extra Web Development project, do it in Sinatra, if you want to do something additional on the front end, do it in plain Javascript or jQuery (and of course HTML/CSS).

Some Final Advice

Launch School

Publications of the Launch School Community

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store