# Welcome

> Simplicity is prerequisite for reliability.\
> \--*Edsger W\.Dijkstra*

### Getting Started

![Let's get started.](https://3306182299-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-McBkLAIIwtMD4k3wBPA%2F-McBr01JsvI1_btVMz4w%2F-McFLDoRnm2ypQ6Uti_O%2Fdanielle-macinnes-IuLgi9PWETU-unsplash.jpg?alt=media\&token=29e5801b-5182-4de8-9dbb-526e92e60a88)

**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).&#x20;

**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!*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adroit.andycary.com/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
