Surviving Hack Reactor

Jason Sigmon
JSON’s Coding Adventures
5 min readNov 18, 2015
https://www.flickr.com/photos/lord_yo/3559511096/in/photostream/

The following is a breakdown of my experiences during the first six weeks of Hack Reactor. Hack Reactor is a 12-week program focused on learning Full Stack Javascript.

Week 1: This is Neat

Week One for me was an interesting experience due to the flood in South Carolina. I had to return home, which assumed would be terrible, but it was nice to have a support network in the form of my parents. The downside of being at home was having to battle internet issues. Hack Reactor kindly offered to let me solo the first week to mitigate these problems. This experience soloing allowed me to wrap my head around core Data Structure concepts. The biggest takeaway from this week is you should watch the videos at 1.5–2x to get the gist of a lecture. If you spend too long taking notes, you will begin to fall behind.

Resources

Data Structures Outline: https://medium.com/json-s-coding-adventures/first-encounter-with-data-structures-118fedec75f1

Week 2: The First Real Week

Week Two focused on constructor functions, n-queens, and D3. I recommend writing a blog post on Constructor Functions because they are really important and solidified my understanding. The second sprint focused on N-Queens, which is a traditional Comp Sci problem. You are trying to determine how many Queens can fit on a chess board; such that, no queen can attack another. My partner had a great grasp on this; so, we spent some time implementing a bitwise solution. Looking back, I do not recommend doing that until you thoroughly understand the problem. Our last sprint of the week was D3, which is a powerful graph library. You can find some resources below, and I look forward to expanding my knowledge of it in the future. Finally, this was also when my study group first started meeting. Many study groups don’t start till Week 5, but we enjoyed working together to study for the self-assessments.

Resources

Constructor Functions: https://medium.com/json-s-coding-adventures/javascript-factory-patterns-cc84d8e48a57

D3: http://bl.ocks.org/mbostock/3808218, http://latentflip.com/LearningD3/collider/docs/collider.html, https://www.dashingd3js.com/creating-svg-elements-based-on-data

Week 3: Hell Week

This week, in my opinion, is Hack Reactor’s Hell Week. You are enough into the program that monotony has started to set in, but you do have any freedom. We focused on trying to implement ajax with jQuery, but also had to deal with cross-site scripting attacks that made it hard to determine if your code was messing up or your site was hacked. Some of my classmates enjoyed it, but I found it hard to learn and deal with hackers simultaneously. We then had to deal with Backbone, which is tough to wrap your head around. I got through it largely thanks to the Udemy course linked below. That sprint caused me to realize I needed to review our previous material; so, I re-attempted N-queens and wrote my blog posts linked in this post. I think this was a great use of time because that material serves as the foundation for the rest of the course.

Resources

Escaping Characters: http://wonko.com/post/html-escaping

Node Security: https://nodesecurity.io/

Owasp: https://www.owasp.org/index.php/Main_Page

Udemy Backbone: https://www.udemy.com/backbonejs-tutorial/#/

Week 4: Break You Down to Build You Up

Week Four is Node Week. Many of my classmates hated this week because it was the first time they were not able to finish assignments or fully understand concepts. For me though, I had already become used to this and just felt this was the first decent week. I recommend if this is your first time struggling in Hack Reactor just to relax. A sprint does not reflect on your ability as a programmer but simply provides you exposure to new material. Once again, YouTube, cheat sheet, and a Udemy course were crucial to this. We also found out that we would be getting to Beta Test a new React course in Week 6. I was worried this would replace our MVP course, but I found out our schedule was being shifted around. I wasn’t sure what I would be building, but I hoped it would be interesting.

Resources

Node Exports: http://www.sitepoint.com/understanding-module-exports-exports-node-js/

Basic Node Intro: https://www.youtube.com/watch?v=pU9Q6oiQNd0

Closure: http://markdalgleish.com/presentations/gettingclosure/

Accessing Data in Node: http://blog.frankgrimm.net/2010/11/howto-access-http-message-body-post-data-in-node-js/

Node & MySQL: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/

SQL Commands Cheatsheet: http://cse.unl.edu/~sscott/ShowFiles/SQL/CheatSheet/SQLCheatSheet.html

Week 5: Getting better

Week Five started much better with a sprint I understood. I was able to finish the Authentication sprint and understand more about how to make an app more secure. The biggest takeaway is to ensure you hash your data before storing it. This makes it harder to crack than basic encryption that is more susceptible to dictionary attacks. After Authentication, we focused on deploying to Heroku, which was not that difficult. What was difficult was trying to get my computer set up for the sprint. I had used Heroku previously, but I had forgotten how much power it has. The best part is you can easily add integrations to improve your app. Finally, the week wrapped up with Angular. Previously, I thought Angular was very similar to MeteorJS. This Sprint allowed me to understand Angular is just a view and can act as a frontend for a Meteor application post-Meteor 1.2. We also got some exposure to MongoDB in the form of Mongoose. I had used MongoDB previously in Meteor, but I struggled to get it to work with Angular. Overall I think this was the week when a lot of things clicked for me.

Resources

Node Authentication: https://scotch.io/tutorials/easy-node-authentication-setup-and-local

Express Authentication: http://www.9bitstudios.com/2013/09/express-js-authentication/

Mongoose: https://scotch.io/tutorials/using-mongoosejs-in-node-js-and-mongodb-applications

Udemy Angular: https://www.udemy.com/learn-angularjs/

Week 6: Freedom

Week Six saw us trying to understand ReactJS. I had also heard of React before but had no idea what it did. The sprint involved us working with a well-known company’s API and trying to get it to stream data. My partner and I were both mentally drained at this point; so, we did not get very far into the sprint. We then were tasked with creating something in two days from scratch. I decided that I wanted to pick up React Native, which is designed to build Native Mobile Apps in Javascript. Previous Javascript ports relied on Webviews, but React Native converts the Javascript directly into Objective-C or Java. I built a rough todos app that didn’t work very well, but did allow me to understand React Native’s basics. Finally, we had the Hiring assessment. The best advice I can give is study, study, study. Don’t worry about it too much, but if you are struggling with the previous assessment do not be afraid to get help.

Resources

React Native on Android: http://facebook.github.io/react-native/docs/android-setup.html

React Components: http://ctheu.com/2015/02/12/how-to-communicate-between-react-components/

The first six weeks are a draining experience, and it is hard at times to stay focused. If you trust the process, you will get through it. Good Luck at Hack Reactor and feel free to reach out with any questions below.

--

--

Jason Sigmon
JSON’s Coding Adventures

Founder of Arternic, LCS Fan, and tweet @jaysig91. Feel free to reach out and say hello