Sharing is caring

To build data-intensive machine learning systems, you need a foundation ins software engineering and software design. Data structures and algorithms are the foundation upon which all systems are built. Knowing object-oriented design and design patterns helps tremendously in structuring your code. In these posts, I illustrate software engineering principles in Java and Python. Python is a dynamically typed language used for most machine learning-related code. Java is a statically typed language that underlies many data processing systems. Knowing how to write solid software in both languages is a great foundation for machine learning and data engineering roles or any other software engineering job.

If you just started on your software engineering journey, check out my guide to learning Java.

Object-Oriented Design (Java and Python)

I’ll introduce basic principles of object-oriented programming using Python and Java. Python is a very high-level language. I believe that seeing object-oriented design principles in a low-level language like Java helps develop a much deeper understanding. Therefore, I’ll add additional sections about the same concepts in Java but keep them separate for those of you who just want to read about Python or vice-versa.

Data Structures (Python)

Data Structures (Java)

SOLID Principles for Software Design

Further Resources

For writing these posts I’ve relied on several textbooks, online courses, and blogs.

Here you find a comprehensive list of educational resources on software development that I’ve used to write these posts and that I recommend for further study.

Sharing is caring