Next Stop…Hack Reactor

“It is a mistake to think you can solve any major problems just with potatoes.” -Douglas Adams

My approach to learning programming, specifically full stack development, has been a combination of self-guided education and structured online courses. Since my first week of Hack Reactor (Cohort HRR26) is starting soon, I’d like to share some valuable steps I have taken to grow as a developer and feel confident in joining Hack Reactor’s immersive program to reach my goals.

Pandora’s Box of learning web development. That’s web development sparkling out.

Pandora’s Box

The double edged sword of having endless knowledge at your fingertips is aptly sharpened when wanting to learn a new skill in the “best way”.

I, like most I would imagine, want to learn A-Z of what I am learning while not wasting time, continuously improving, and hitting all the necessary material. Learning something as complex and nuanced as programming doesn’t really work that way though. There can be a lot of back and forth. Through vigorous searching, I personally found some peoples’ ideas of the “best way” to learn were either painful starting out or entirely divergent from my end goals. I don’t think we’ve found the silver bullet of perfect education when it comes to coding.

Here is where the double edged sword comes in. It’s great having 100+ different resources on how to console.log ‘hello world’ or even connect MongoDB to Express, but they all can’t be the best way to learn for every individual person. You have to do the work of finding what helps you learn at the pace that makes the concepts stick. By using many different learning resources, I gained a foundation of web development fundamentals while learning the importance of using educational strategies that work best for me.

After wading through a lot of informative, but sometimes not as fruitful educational resources, the good ones certainly stand out as being worth investing your time into and sharing with others. Not all learners are the same as all teachers are not the same. Some instructors that have stood out to me as being extremely helpful are David Malan, Brad Traversy, Wes Bos, and Colt Steele.

Resources that helped me gain web dev traction (in no certain order):

  • Codecademy is a great way to get an immediate feel for coding. It allows you get a taste of problem solving using real syntax while having a lot of guidance to prevent going off the rails.
  • FreeCodeCamp is an excellent hands-on program to start grasping HTML, CSS, and JavaScript fundamentals. I worked through the Front End Development Certificate program and enjoyed completing finished projects with little to no guidance. FCC does a great job at just giving enough information to force the learner to sort through documentation and ask the right questions in their community or Stack Overflow. FCC is where I started learning how to learn web development.
  • Javascript30 is a great set of daily challenges to learn from one of the best web development instructors out there. Wes Bos is your teacher over 30 days and provides fun instruction with cool applications.
  • Eloquent Javascript is a resource that comes up repeatedly if you look around long enough and for good reason. Step through the chapters and challenges to gain excellent perspective on key JS concepts.
  • The Web Developer Bootcamp by Colt Steele (“My name is Steele…Colt Steele”) is a highly-rated Udemy course that goes over full stack development using HTML, CSS, JS, jQuery, Bootstrap, Express and NodeJS. This course was put together well. I highly recommend taking it and devoting a lot of time working with all the technologies the course uses.
  • Hack Reactor Prep is where your skills and understanding of fundamental JS concepts are put to the test. Working through this online prep course was paramount to solidifying my grasp on the different moving parts of JS. There is an excellent flow of repetition and increasingly difficult sets of problems that really engages the user.
  • Codewars and CoderByte are both coding challenge sites that are full of scored practice problems that focus on programming fundamentals, patterns, data structures, and algorithms of different levels of difficulty.
  • JavaScript: The Definitive Guide by David Flanagan 6th Edition has pushed me to learn more of what is under the hood of JS and the exact low-level mechanics of how this language works. This is a monster of a resource guide that makes for great back and forth with reading and implementing code while learning.
  • YouTube videos. This is obvious, but I’ll list some of my favorites that have helped me immensely. MIT OpenCourseWare Fall 2016 Introduction to Computer Science is an excellent series that was great to work through, even if it uses Python which put me out of my JS comfort zone. In the same thread, Harvard CS50 is excellent resource that many recommend. I want to also point out the extremely valuable, although not as often recommended, Harvard courses CS75, CS76, and my personal favorite CS164. Beyond specific courses, I watch Traversy Media, Net Ninja, and Academind. Finally, I can’t recommend the CrashCourse Computer Science series enough — Carrie Anne Philbin is the best.

Some motivational poster action to soothe the soul

All Within Reach

One of the interesting aspects I have found while learning web development is that examples of its excellence and best practices are surrounding and used by us all daily. We have access to the product of top tier web development teams 24/7, which one can often take for granted. You can’t transpose this dynamic to all professional fields, but it can be found in some industries (e.g., music production, film, academic, etc.).

This was never clearer then when my amateur developer self wanted to hit the ground running and reproduce the amazing designs and websites with seamless cross-browser functionality that I’m so accustomed to interacting with, but then reality came rushing in. However, as the lovely motivational poster says, there is a gap in knowing that something looks good and being able to create what you know looks good. This couldn’t be truer for front end development.

Web development isn’t quick serve, but incremental in its rewards. I quickly learned to take my time and lock down important conceptual keystones before getting ahead of myself. So a 15 minute tutorial video could easily translate into 2 hours of nailing down a concept by reproducing it in CodePen, reading through the MDN, and, if applicable, trying to hash out any initial problems that I’m encountering while working with it in my limited scope. Rinse, repeat.

I recommend taking advantage of Chrome DevTools early on and when you want to get archaic, go ahead and start writing down the moving parts of a particular problem onto paper. I have learned a lot by dissecting styles of random landing page elements or writing down on legal pads all the moving parts of a database issue or even just a deeply nested object for clarification. The stack of legal pads by my desk is constantly growing.

Keep narrowing the gap of knowledge and execution. Please make sure to stay in touch if you want to follow me through my journey at Hack Reactor.