Traditional Computer Science education sucks big time when it comes to modern agile technologies like Ruby on Rails, Django, NodeJS, and NoSQL databases. Last time I checked, the maximum that was offered were classes in Web Design I, Web Design II and Photoshop Basics. WTF?! Don’t get me wrong. I have Master’s degree in Information Systems Technology and value fundamentals, but I was never taught anything up-to-date. There was some ASP, some C++, some SQL, but most of my learning I had to do on my own. Sure there are tons information online and in books, but not everybody has time, dedication, focus and self-discipline to master a new technical skill this way. Reading a book or watching a screencast is just not enough. The best learning comes from 25% books, 25% peer-to-peer communication and discussion, 25% student-to-teacher relationship; the last 25% is the time and practice on your own.
The goal was not to make a profit. So we priced the training very aggressively twice or thrice lower than the market price of our competitors in order to attract students. The results were amazing! The goal was to sell at least 10 seats and we had 15 people in our first class! Big thanks to Yuri Rabinovich, killer StartupMonthly team and its vast network of people interested in technology :)
Overall, students were tired, but happy with the number of new technologies they’ve tried. It was sort of a Chinese Buffet of Programming. You don’t have to try everything, you only pick what you want and indulge in it :) Here is the list of topics to give you an idea:
- Agile, Continuous Deployment, TDD, Pair Programming
- NodeJS and its advantages. Event driven programming.
- MongoDB and Document Store and Key-Value concepts.
- JSON, structure and examples.
- Could computing. Cloud platforms: Windows Azure, Heroku.
- Structure of HTTP Request and Response: headers, body, methods
- RESTful API, examples and advantages.
- jQuery: AJAX, cross-domain calls and JSONP
- Twitter Bootstrap: grid layout, form components, icons
- LESS: mixins, variables and compilation.
- BackboneJS: structure, events, view, sub-views, models, collections and event listeners and event binding.
- Generating of SSH keys, configuring Git, GitHub, Heroku and Windows Azure for deployment.
- Installation and basic configuration of NodeJS and MongoDB in local environment.
- Deployment of NodeJS and MongoDB and static/front-end applications to PaaS cloud services like Windows Azure and Heroku with Git.
- Building sample applications with NodeJS, jQuery, BackboneJS, Twitter Bootstrap, MongoDB, Parse.com and other tools/technologies. Deploying it to cloud services.
- Building your own idea/prototype and presenting it. Deploying it to cloud services.
- Practicing Paired Programming and Test-Driven Development techniques.
By the end of the weekend, we had 3 teams with 2 to 3 people in each. The teams built or started to build applications using their own ideas. One of them was a remake of Reddit with better UX/UI and the other was a service for angry ex-girlfriends to post (mostly negative I suspect) feedbacks on their ex-boyfriends :)
Here are some testimonials from the students:
“Thanks for putting this workshop together this weekend… what we did with Bootstrap + Parse was really quick & awesome” – Mariya Yao.
“Thanks a lot to all and special thanks to Azat and Yuri.
I enjoyed it a lot and felt motivated to work hard to know these technologies” – Shelly Arora.