Simplicity is prerequisite for reliability.
--Edsger W.Dijkstra
Although there are many ways to present complex information, such as the underlying design and construction of interconnected software systems, my goal here is to provide an easy-to-follow guide or roadmap to the mental models, components, and conventions around modern software engineering in the context of building usable, scalable and maintainable web applications.
Whether you are pursuing a career in software engineering or you just want to learn how to create web applications and software-enabled startups, this guide will introduce you to the big puzzle pieces that have proven themselves over the last decade of web development and show signs of continued success in the tech ecosystem. We will explore what these pieces are, why you want to use them, and how to get started with each of them (including code samples).
To make the most of this guide you'll just need an open mind, a willingness to try new things, and maybe a nugget or an idea that you would like to realize in software, be it personal or professional. Once you grasp the concepts and gain a little bit of hands-on experience, you will soon find yourself with enhanced capabilities, new perspectives on what's possible, and excitement about your journeys.
While structured in a (mostly) front-to-back way, this guide can be explored according to your curiosity or needs. If you feel that you know about each topic, quiz yourself with the practice questions contained at the end of each section before moving on entirely. Once you have covered all of the material, spend some time with the advanced sections to build out an MVP (Minimum Viable Product) and pitch it as your very own startup. Be sure to ask any questions you encounter and send us your demos along the way. We can't wait to see what you come up with. Onward!