FREE 5-week Software Engineering crash course curriculum designed specifically for Data Scientists and Machine Learning Engineers.

All resources are free.

WEEK 1: CS FUNDAMENTALS

Topics:

• Data structures: arrays, trees, hash tables

• Algorithms: sorting, searching, recursion

• Time & space complexity, bigO notation

Resources

• Python Structs. (TutorialsPt): https://lnkd.in/e9Rimsum

• Sort & Search (Khan Acad): https://lnkd.in/eSdx4k-A

• Python Recurs. (Programiz): https://lnkd.in/e7ZtnPC7

• Big O w/ Python (A Skerritt) https://lnkd.in/eZrpsju3

WEEK 2: DESIGN PATTERNS

Topics

• Object-Oriented Design/Programming (OOD/OOP)

• Design Patterns (Singleton, Factory, Strategy, etc)

• Microservices vs Monolith Architecture

Resources

• OOP (GeeksforGeeks): https://lnkd.in/e8epDukG

• Python Patterns (B Rhodes) https://lnkd.in/e9MBSDys

• Micro vs Mono (Dig Ocean): https://lnkd.in/eScGm6uE

WEEK 3: PRODUCTION-GRADE DEVELOPMENT

Topics

• Writing clean code

• Unit testing

• Git basics & workflow

• Code review practices

• Performance optimization

• Vectorization

Resources

• Clean Code (freeCodeCamp): https://lnkd.in/eEq8kRc2

• Testing (Real Python): https://lnkd.in/eqT2Ezeq

• Git Simple Guide (R Dudler) https://lnkd.in/eukSiVEK

• Code Reviews (Codecdmy): https://lnkd.in/eC9mkFyx

• Profiling (Real Python): https://lnkd.in/eBRUkdSc

• Vectorization (PySpeed) https://lnkd.in/e7VZZz4n

WEEK 4: HOW SYSTEM COMMUNICATE

Topics:

• REST & RESTful APIs

• Data formats: JSON, XML

• Servers, web applications, API clients

Resources:

• RESTful APIs (Medium): https://lnkd.in/ecN3vFRw

• Data formats (Astronomer): https://lnkd.in/e_rCxbTm

• Building Flask APIs (Auth0): https://lnkd.in/eSxt3Sd2

WEEK 5: DEPLOYING & MAINTAINING SOFTWARE AT SCALE

Topics

• Containerization / Docker

• Cloud computing (AWS, GCP, Azure)

• Load balancing

• CI/CD

Resources

• Docker intro (TechWorld): https://lnkd.in/eXBrDunZ

• Cloud computing (Edureka): https://lnkd.in/ee334BXR

• Load balancing (DigOcean): https://lnkd.in/e5rXeaTT

• Setting up CI/CD (CircleCI): https://lnkd.in/eGW7pH3K

thanks @jackblandin.

Recent Post

FAQ's

Machine learning is a field at the intersection of data science and software engineering. Here's a breakdown:
- Data Science: Focuses on extracting knowledge and insights from data. Machine learning is one of the tools used for this purpose.
- Software Engineering: Deals with designing, developing, and maintaining software applications. Machine learning models often need to be integrated into software applications for real-world use.

- The lines can blur. Software engineers with strong data analysis skills and an understanding of statistics and ML can transition into data science roles. However, data scientists often have additional expertise in data wrangling, domain knowledge, and communication skills.

Understanding software engineering concepts can benefit data scientists and ML engineers in several ways:
- Model Deployment: They can better understand how to deploy their models into production environments and interact with software systems.
- Collaboration: Effective communication with software engineers becomes easier when data scientists share a basic understanding of software development practices.
- Building Custom Tools: Data scientists and ML engineers with coding skills can develop custom tools and automate tasks to improve efficiency.

This course likely focuses on foundational software engineering concepts relevant to data science and ML, such as:
- Programming Languages: Python is widely used in both data science and software engineering. The course might cover Python fundamentals and libraries like NumPy and Pandas.
- Version Control Systems: Git is an essential tool for managing code changes and collaboration. The course might introduce Git fundamentals.
- Software Development Fundamentals: Concepts like object-oriented programming, data structures, and algorithms might be covered to provide a software engineering mindset.
- Building and Testing Software: The course might introduce practices for writing clean code, testing software functionality, and debugging errors.

This crash course can equip data scientists and ML engineers with basic software engineering skills, leading to:
- Improved Collaboration: Better communication and understanding with software engineer colleagues.
- Enhanced Problem-Solving: The ability to approach problems from both data science and software engineering perspectives.
- Increased Efficiency: The potential to automate tasks and build custom tools using coding skills.

- Software engineering principles and practices are crucial for effectively managing and deploying machine learning models, collaborating on data-intensive projects, and ensuring the reliability and scalability of AI-driven applications.

- By mastering essential software engineering concepts and practices, participants can enhance their employability, contribute more effectively to cross-functional teams, and tackle complex data-driven projects with confidence.

- While prior experience in programming and basic understanding of data science concepts are recommended, this crash course is designed to accommodate learners of all levels, from beginners to experienced professionals.

- This crash course aims to equip data scientists and machine learning engineers with essential software engineering skills to enhance their proficiency in building robust, scalable, and maintainable software systems.

- While a crash course provides a starting point, a successful transition to software engineering might require additional education and experience building software projects.

Scroll to Top
Register For A Course