Why Chris recommends these courses.
At first glance, Learning How to Learn may not seem related to software engineering. But software engineering is a rapidly changing field and over your career you are going to learn a vast number of different frameworks, technologies, and programming languages. Getting a good understanding of how to learn is an excellent 'meta skill.’
I have fond memories of Rice’s Interactive Programming courses. I started the courses knowing nothing about programming but left being able to write little arcade games like Pong and Blackjack. The enthusiasm of the instructors and the fact that I was having fun in the courses kept me motivated.
Algorithms are a core component of computer science, and studying them in detail will give you a solid foundation for future study. The Data Structures and Algorithms Specialization demands that you write a lot of code, which is the easiest way to get better. Plus, writing algorithms is excellent interview preparation for the tech companies you may someday want to work for!
Introduction to Mathematical Thinking will also give you a solid foundation. This course is an introduction to logic and also a crash course in how to think mathematically. As a software engineer, there is a new problem to solve every day, and learning methods and tools for approaching problems is always useful.
Once you have completed these courses, I recommend starting to think about specializing. Whether you want to do games programming, web development, or machine learning, this collection should give you a strong foundation to build on.