H2 intro

Since starting the second half of Makersquare, we – now as “Seniors” (!) – began our project phase, picking up what we learned in H1 and applying it directly to the production of fully functional “full-stack” applications.

This is done in four phases:

  1. “MVP” (or Minimum Viable Product) – Solo project, and the task is to produce a simple “full-stack” application from a blinking cursor. You’re given two days to do it, using any stack you want on the frontend and the backend.

    Check out what I did here: https://fxconverter.herokuapp.com/. This is a simple FX converter, using MEAN (MongoDB, Express, Angular, Node), that dynamically downloads a live refresh through a RESTful API of over 160 global currencies vs. USD and converts a user-inputted dollar amount into that foreign currency. For fun, there is a random GIF generator that pops up with a successful conversion!

  2. “Greenfield”. Work in a small team to produce another “full-stack” application. I was put into a team called the “Astonishing Owls” and given just under a week to complete it. (The name wasn’t really up to us, but we embraced it)

    Check out what we did here: https://astonishing-owls.herokuapp.com/. In this project, we also used MEAN and elected to expand a bit upon my MVP project. Also used a RESTful API, though with a different service provider, that provides current and historical spot rates of nearly 200 currencies. We built in user authentication and allowed users to save “favorite” currencies and build out a “portfolio” with varying notional amounts.

    One aspect of this project I enjoyed was the group dynamic, where we also got a feel of things like Git workflow, establishing user experiences, and setting group responsibilities like “Scrum Master”, “Project Owner”, and “Developer”. Not to mention the fact that we had a really good group!

  3. “Legacy”. This was an interesting twist, where the Greenfield team takes on someone else’s Greenfield project to add additional features. This was a different kind of challenge where you inherit and understand someone else’s code, diving into how they constructed their app and their thought process for how they built various parts of its functionality.

    Check out what we did here: http://legacy-owls.herokuapp.com/. This was an abstraction tool for latest news that’s downloaded from the New York Times. We streamlined the app a little bit, enabling data persistence of user info and allowing for “trending” and “favorited” stories to be saved in a database.

  4. “Thesis”. This is the big one, and the project I am working on now. More details to come!

Makersquare H1 thoughts

Makersquare’s 13 week program is structured in two parts:

  • the first six weeks, which is dedicated to the study of computer science fundamentals, Javascript technologies, and front-end and back-end computing concepts along with their associated frameworks; and
  • the second six weeks, which is focused on implementation of everything learned in the first half in a series of group-oriented projects.
  • the two parts are split up by what they call “solo week”, a week-long mental break that is kicked off with an all-day exam on Saturday that tests one’s retention of H1 (and determine whether one proceeds to H2). I must say, solo week was much needed for me!

Side note: for me, the first few days were a bit of a challenge in reorienting from a professional to student mentality; this included the little things, as simple as finding the right platform to take notes (I now use Evernote).

Anyway, w.r.t. the first six weeks, they are quite intensive. In summary:

  • Week 1:
    • Computer science fundamentals: time complexity, data structures (stacks, queues, graphs, trees, sets). Briefly touch on algorithms, though this could have been expanded a bit. For the self-studier, pick up Learning JavaScript Data Structures and Algorithms by Loiane Groner
    • Object instantiation patterns, functional decorators, functional binding techniques (actually, this last point is really important to know)
  • Week 2:
    • Greater dive into functional instantiation patterns
    • asynchronous Javascript: AJAX, HTTP
    • Browser security
  • Weeks 3 – 6 become slightly less “lecture style” and more “sprint” oriented, where concepts are introduced in two day “sprints” that kick off with a brief lecture in the morning of the first day followed by pair-programming. This is where students are split into groups of two to dive head-on to implement and/or debug pre-established code with the goal of learning the presented concept. This “rapid-iteration” style is – to some degree – meant to mimic the engineering work environment, where you are given a little bit of info and are supposed to use various resouces (e.g. your pair, the Google, etc) to work through the problem
    • Topics covered across the sprints included event systems, and touched on various frontend and backend frameworks including Backbone, Angular, React (frontend) and Node, Express (backend). Databases were reviewed briefly toward the end of the six weeks
  • On top of all of the above, every morning commences with an hour-long “toy problem”, where at 9AM a codewars-style problem is introduced. Supposed to stimulate the brain at the start of the day, I guess!

So in summary, the program is quite effective at introducing a lot of concepts in a short amount of time. The idea isn’t to become an expert in everything over the course of six weeks, but rather to know enough about a broad set of things to give one confidence to be able to diagnose and be resourceful on future similar and potentially more complicated problems than what’s introduced during sprints.

One of the great things about the program is that it embraces feedback, recognizing that its iterative approach to its curriculum is constantly improving. As such, it has implemented a formalized two-way feedback mechanism, where students can share their thoughts on ideas for improvement in the currculum or their experiences in general.

Inaugural post

Hi, I’m Canh. I just turned 31 in July 2016. My professional background is in investment banking, which I just left as I aspire to make a career switch into technology, more specifically as a web developer.

This is my first post, and hopefully one of a consistent set of blogs I’ll look to upload to share my journey into the field.

Before making the decision to leave, I knew very little about programming. Going further back, I studied engineering and finance as an undergrad and graduated in 2007. There, I took a couple of introductory courses in Java, but I don’t remember much from it.

I decided to make the change earlier this year, when I began to seriously look into the best ways to get into the field. I started studying various programming languages, primarily including JavaScript and Ruby and ultimately found the most utility in JavaScript. Online resources are vast – however given the plethora of options, it was daunting to me in finding where to begin.

The few (free) resources I found tremendously helpful were:
* https://www.codecademy.com/ – This gave a real basic introduction to HTML/CSS and has step-by-step interactive lessons to build a webpage. The JavaScript track is also a really good introduction and will take 10 hours of your time
* https://www.coderbyte.com/ & https://www.codewars.com/ – A good place to go for practice problems. You can pick whatever language you want – I primarily did these in JavaScript
* http://eloquentjavascript.net/index.html – A good book to read for Javascript. I’ve only made it through chapter five. I’d only do this after going through the resources I listed above because it reads at a pace that almost feels like more of a review of JavaScript concepts than a more basic intro

After going through all of the above, I found that I hit a bit of a wall in learning and looked into more robust ways of learning. I then stumbled upon the concept of ‘coding bootcamps’, which are training programs that are generally 12-13 weeks in duration and offer a robust crash course on programming and various technology frameworks, and while each has its own focus (i.e. JavaScript vs. Ruby), they are all generally structured the same.

Within the US, there are a couple of JavaScript-oriented bootcamps that I was attracted to: Hack Reactor / MakerSquare, and FullStack Academy. At the end of the day, I was most attracted to MakerSquare, where I’ll end up attending beginning the day after Labor Day.

Combination of considerations contributed to this:
1 – Desire to stay in the NYC area, instead of moving out to SF
2 – Extremely robust curriculum and proven outcomes
3 – Everyone I met throughout the admissions process were really just awesome and extremely supportive

Prior to the bootcamp, I took an online class through the Reactor Core schools called Fulcrum, which was a ~$3,000 program that was almost entirely the “pre-course” work for MKS, and I was able to use the Fulcrum tuition towards the $17,000 tuition for MKS.

So that’s it in a very quick introductory nutshell. Hopefully going forward, I’ll have more to say about the specifics of technologies used, my experience and thought process through this endeavor, etc, so it ends up being useful for anyone else aspiring to make a similar move.

So far, it’s been incredibly exciting. Admittedly, it’s also been a bit unnerving as I think about completely making a switch from something tried and relatively true to something as complicated as computer programming.

It takes grit, dedication, and determination – (the last one because you will find yourself in many cases where you’re completely stuck and sometimes with the feeling like you have nowhere to go).

So here goes!