> For the complete documentation index, see [llms.txt](https://fall2019.fullstackdeeplearning.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fall2019.fullstackdeeplearning.com/course-content/infrastructure-and-tooling/software-engineering.md).

# Software Engineering

{% embed url="<https://www.youtube.com/watch?v=DHgC6_JkaAU>" %}
Software Engineering - Infrastructure and Tooling
{% endembed %}

## Summary

* **Python** is the clear programming language of choice.
* **Visual Studio Code** makes for a very nice Python experience, with features such as built-in git staging and diffing, peek documentation, and linter code hints.
* **PyCharm** is a popular choice for Python developers.
* **Jupyter Notebooks** is the standard tool for quick prototyping and exploratory analysis, but it is not suitable to build machine learning products.
* **Streamlit** is a new tool that fulfills a common need - an interactive applet to communicate the modeling results.
