Training the workers of tomorrow

So last month, after seeing loads of Twitter ads for a HTML/Javascript class in Portland, I signed up for a class from Code Fellows. The class finished last week, and I wanted to write up some thoughts about it.

The class was their introductory “Foundations I” course and the aim was to introduce students to HTML, CSS, Javascript, jQuery, and the fundamentals of computer science. That sounded like a heck of a lot to cover in 8 2hr sessions over 4 weeks, but you’re probably wondering why I even signed up for it, since I know HTML/CSS pretty well and probably have introductory experience with everything else. My answer is that I have never learned javascript, like not even a hello world or basic understanding of the fundamentals and I’ve always wanted to sit down and do that. The second reason is that I was curious what a crash course in technology is like and what companies are doing today to try and train people to get into the industry. I wanted to see what coursework covered and how continued development and/or recruiting followed from it.

The course overall was good. The first week we dove right into the basics of javascript, with loads of homework assignments and small group work, and I felt like I was drowning in a good way. It was pretty intense right out of the gate, and continued for the next week. We kept progressing with javascript mainly, and after a couple weeks finally got to jQuery. It was nice to see why jQuery made things easier (we spent two weeks writing javascript by hand, to learn “the hard way”) but I would have understood if the class was jquery-only instead. After the first couple weeks, the organization of the class kind of got murky. We didn’t have tons of small homework assignments and instead did bigger projects once a week. There was still some group work, but it was mostly to help each other solve our own project problems instead of work together. The third week of the course we covered algorithms and it turned out to be a really good section that taught me how to evaluate efficiency (I know what Big O, n log n vs. linear n vs. n^2 all mean). The final week we just mostly worked on our final project.

The course covered a lot of things outside of the basic subject matter in the course description. We had to learn how to use github and all the tools around that and we spent time getting deep into Google Chrome’s devtools which was key to javascript debugging. We covered CSS a bit and only HTML briefly -- I suggested to the instructors that they drop “learning HTML/CSS” as any part of the class and instead assume future students know enough about HTML/CSS to use them fluently in the class. I felt bad for anyone that came into that class never having viewed source before.

The course instruction could have been a lot more organized. It felt like we used a dozen different tools and web apps to do the class to the point where during a possible ice storm that would cancel a class meeting I had to check in three places to get updates (chat, discussion board, announcement site). I kind of wish they built their own CMS to handle everything in one place instead of requiring so many outside tools. The homework was fun, challenging, and intense the first week, less so the second week, then non-existent until the end. Our homework assignments were to make little javascript guessing games and improve existing ones, but I felt like more real-world homework could have been better. Perhaps give us 80% completed code projects we have to finish, or a 100% done project that has significant javascript syntax errors (this is closer to what real coders do each day). I also wish the class taught people how to progressively enhance a web page, so that maybe on day 1 we build a basic homepage for ourselves and by the end of the course it’s all parallax and jquery and impressive looking.

Overall, I had a good time for the energy and costs involved, I finally got a basic understanding of javascript and I completed a bunch of codeschool and codeacademy tutorials I never had the motivation to finish.

My final project is here, and our assignment was to make a visualization of sorting algorithms where we compare one form to another in any way we felt. I remembered the story my old friend Chris Wetherell told me about trying to join Google eons ago, and I used that story as a jumping off point to illustrate some basic number array sorts.

With this course under my belt, I’m working on a new small project I hope to finish this month that basically just requires a bit of jquery and HTML to get working.

I could also tell this intro class was mostly a gateway drug to the more advanced stuff Code Fellows teaches (and the pricing goes significantly up), but I don’t see myself joining their next javascript class with my barely introductory proficiency, but I am curious about their intense python courses for real world web development (but that class runs $10,000, guarantees a job at the end, but only after months of intense daily classes and work). I’m not sure if I’m that into Python just yet.