Note: This class provides high-level discussion around the most important web technologies to help you make technology decisions. It will not cover the actual usage of these technologies.
Launching a web startup? There are numerous technology decisions that have to made as you start to build your product, and your decisions will affect your company for years. In today's complex web technology ecosystem, it can be easy to get lost and overwhelmed by the dozens of new technologies that are appearing all the time. Do any of these sound familiar?
"Should I be building on Ruby or Python?"
Short Answer: For web development, Ruby is better, although Python is also great.
"Why is there so much contention over PHP? Is it bad or good?"
Short Answer: PHP was poorly designed language from the beginning, and PHP development tends to be slower and build up more technical debt.
"What is this new Node.JS thing? Should I be using it for my app?"
Short Answer: Node.JS is great for real-time apps. If your app doesn't involve real-time (and most don't), then you really don't need to worry about it!
"Why is there so much buzz about Ruby on Rails right now?"
Short Answer: Ruby on Rails allows you to prototype extremely quickly, and it currently has the most robust ecosystem of developers and plugins in the world.
"Isn't Ruby on Rails supposed to be slow?"
Short Answer: In its early days, this was a significant problem, but with many advances in both Ruby and Ruby on Rails, this is no longer a huge concern.
"What are the advantages of using Amazon Web Services?"
Short Answer: Using AWS will save your engineering team hundreds of man-hours of system administration and maintenance.
"How long will it take to build X?"
Bring your idea to the class and we'll take a look!
Of course, the answers to these questions are greatly simplified, and there are many other factors that should be taken into consideration. Come to learn more about the technical considerations you need to take into account when launching your startup!
The class will start with a structured introduction to the architecture of the world wide web and the standard web application. Covered topics will include:
From there, we branch off to many possible topics (e.g. Ruby on Rails, Heroku, Amazon Web Services, Mobile Applications), based on your interests and questions! In past classes, we've covered a wide range of topics, from best practices when working with a contracted developer, to the extent to which you should learn to code, to discussion on the different engineering roles within a company.
Brandon is a student at Harvard University studying Computer Science, currently interning at Asana as a software engineer. Brandon has worked on distributed key-value datastores at RapLeaf, building a Rails application from the ground up at Knewton as a NYC Turing Fellow, and building an Android application from scratch as the only Android engineer at Safertaxi. He also built Remindavax, a web application now serving over 3500 women in clinics in rural India. Brandon served as the Technical Director of HackHarvard and was a teaching fellow for Harvard's Data Structure and Algorithms class.