Module 1 Retrospective

Today I complete the first of four six-week Modules at the Turing School for Software Design. At the one-quarter mark it is worth taking stock of progress and reflecting on my goals and expectations.

The Big Gamble

I decided to take a gamble and enroll myself in Turing after over 10 years in the K-12 public education space. There were a few factors that contributed to this decision.

Prior to Turing, my biggest gamble, was a move in June of 2015 to Denver, Colorado after ten years of life in Manhattan, New York. Leaving friends and family was and still is very tough. This was the price my wife and I paid for chance to be closer to her family, the mountains, and a lifestyle that seemed forever out of reach from the grind of New York City. 

In June of 2015, I accepted an assistant principal position which made the move to Denver possible. In December of 2015, I became the proud father of twins and a switch went off in my head. The work of urban education, which I thought I could persist in fueled by a passion for social justice and learning, became unsustainable. My internal calculation of money, time, stress completely changed and I began to long for work that was more technical and intellectually challenging.

While on paternity leave I began to research several coding bootcamps in Denver as well as a few exclusively online programs. Turing stood out for a number of reasons. First, it has a phenomenal reputation. It is the only bootcamp that I know of that is a non-profit entity, which makes it seem far less hucksterish than other programs that promise high paying jobs in half the time that I will eventually spend at Turing. Turing also has a real commitment transparency regarding student outcomes - further differentiating it from some of its peers. 

Once I contacted Turing for more information, I learned that a former co-worker, Joanne Liu is a staff member at Turing. My connection to her coupled with the fact that Turing founder, Jeff Casimir has a background similar to my own in Teach for America additionally helped make Turing stand out from other well reputed programs.

Finally, when I visited Turing everything about the school confirmed my initial beliefs about the institution - it is just full of a diverse group of good people all working to unlock each other's potential for success in highly fulfilling technical careers.

My move to Denver represented a first life-optimizing gamble. Turing is the second and larger gamble. I forgo income at a time in my life when every cent counts. I work 70 or more hours each week in pursuit of technical understanding. I do this because I only get one shot at my life and every moment spent in a non-optimized state is one that I can never get back.

PayOuts

Any gambling comes with the expectation of a payout. Turing is no different. The payout, or course goals for Module 1 as articulated by Turing is a new set of skills including an ability to

  1. Understand fundamental Ruby syntax.
  2. Decompose complex technical challenges into a series of smaller problems.
  3. Build software using automated tests, pseudocode, implementation code, and refactoring.
  4. Develop the skills and procedures for effectively collaborating and pairing with other developers.
  5. Understand the culture, style, strengths, and weaknesses of working in the "tech world".

In reviewing the above goals, I believe the payout has met my expectation. I definitely can read and write Ruby code. At first, given my background in JavaScript, Ruby's syntax felt foreign. Now Ruby almost feels like English to me. I appreciate the community emphasis on style and readability - the idea that good code is easy for others to understand and collaborate on. 

Furthermore, I have developed a strong framework for thinking about problems that spans computer languages and syntax. It is the idea that large complex problems can be broken down into smaller problems, which can be further deconstructed into smaller pieces. Combining the solutions to many very small problems is how programmers are able to solve larger and far more complicated problems.

I also love the test driven design process we are schooled in at Turing. It makes a lot of sense, especially coming from the education world, that as a coder I need to plan my code with the end in mind and that before writing coding I should write a test to show that the code I intend to write actually does what I set out to accomplish. 

I am satisfied with the payout so far. But the real payout comes when I get hired as a developer in a few months. At that point I'll have even more perspective on the efficacy of my recent life choices.

Who Has A Place at the table

The question at this point is whether or not I recommend that others take a similar gamble and enroll at Turing. My success so far at Turing is aided by the fact that I have a lot of experience working with spreadsheets and Google Apps Script. It is not that the experience is directly translatable to the Turing context which requires neither beautiful spreadsheets nor Google Apps work. Rather my experience has shown me that first and foremost, I find technical work immensely fulfilling. I would not recommend Turing as a means of sampling the technical world. There are free online programs, tutorials, and meetups that can help with that. Turing is a firehose and taking a taste from a firehose is never a good idea. If I did not love the work I am engaged in daily at Turing, the quantity and complexity would be completely overwhelming.

My experience also has given me a modicum of understanding of what computers are, what the internet is, and how programs work. Without first hand experience with the practice of writing code I would have been lost at Turing. That is not to say that one has to have significant computer science training to succeed here. What I am suggesting is that I came to Turing self characterizing myself as an intermediate to advanced beginner coder. For that reason the Turing program has been 90-100% in my zone of proximal learning. 

I do not think I would have succeeded this module as an absolute first time coder. I am not trying to cast doubt on the program at Turing and I am sure there are many examples of complete novices going through the program and achieving successful outcomes. For me personally, feeling like I was in a state of perpetual catch up would not have been a good foundation for success.

There is also the time variable that is going to be different for everyone. I have a certain amount of time that I can dedicate to Turing given my recent entry into fatherhood and my commitment to continuing my marriage for the rest of my life. I know that lack of technical experience can definitely be overcome by time. While my twenty-year-old self had none of the technical skills I picked up through the last ten years of my career, my previous self would have been able to put in more time than I currently can muster. I do not want to dissuade those lacking technical experience from joining the Turing community. Lack of experience can be overcome through time and persistence.

The mission of Turing is to ferment economic change by increasing access to highly rewarding technical careers. To that end I believe Turing is on the right track. It is the clear winner compared to many of its peers and so far this has been the right gamble for me and my family. I'm looking forward to continuing this journey and sharing my experience.