This track will teach you how to program like a programmer. To optimize your code, you'll first learn how to use built-in functions and modules. Then, you will be able to practice writing functions using best practices. This includes how to use context managers and decorators and how to write documentation. You'll gain a better understanding of software engineering concepts such as modularity, documentation and automated testing. Next, you will dive in to unit-testing skills such as debugging code and Test Driven Development (TDD), using fixtures, and mocking. You'll also use packages such as NumPy and setuptools, Python, Pycodestyle, and NumPy. You'll use your object-oriented programming skills (OOP) to read, reuse and maintain your code by the end of this track. This track will take you on a Python programming journey.