DS Unit 3 Sprint 9: Software Engineering

Welcome to Sprint 9

"A data scientist knows more about statistics than a software engineer and more about programming than a statistician."

Being a data scientist means applying statistics and data analysis; writing actual working code that runs and gets results. You've been doing that your entire time at BloomTech - but much of our work has been in the land of Python notebooks, a valuable but limited environment intended for exploration, not engineering.

Someplace a divide between science and engineering - theory and practice, ideas and application. A skilled data scientist masters both - science informs engineering, and engineering increases the rigor of the science by making it reproducible and scalable.

In this unit, we will build the core skills needed to communicate and work with software engineers. You may pleasantly surprise colleagues if you not only know the latest and greatest machine learning models but also be able to build and approach them with best practices in software development. To do this, we will go beyond Python notebooks into the world of modules, packages, containers, and beyond. Onwards!

Sprint Modules

Module 1

Python Modules, Packages, and Environments

Python Notebooks are a glorified REPL - read-eval-print loop. What if you want code that should live on and be reused in various circumstances? Enter modules, packages, and environments!

View Module

Module 2

OOP, Code Style, and Reviews

Learn to write code that others can effectively work with and maintain. We'll cover object-oriented programming principles, standard code style conventions, and the code review process.

View Module

Module 3

Containers and Reproducible Builds

Move beyond "works on my machine" to truly reproducible code. Learn to use Docker containers to create consistent, deployable environments that package your code and all its dependencies.

View Module

Module 4

Software Testing, Documentation, and Licensing

Complete your software engineering foundation by learning to write tests, create effective documentation, and understand open source licensing.

View Module

Code-Alongs & Sprint Challenge