Since we haven’t really started to dive into our project, I want to share with you a few MOOCs (Massive Open Online Courses) that I found extremely helpful for my CS journey.
Are MOOCs good for me?
When I decided to make a career transition into software engineering, I had a hard time deciding what would be the best way for me to achieve my goal, so I tried out different approaches. I enrolled in OSU’s Post-Baccalaureate Computer Science program, I joined a web development bootcamp, and I took several MOOCs from renowned universities. It’s hard to tell which is the best way for everyone – I believe it really depends on personal experience. For me, I had an internship opportunity through OSU’s CS program and I built my portfolio through the bootcamp and landed my very first full-time software engineer position, but when it comes to with which I had the most fun, it’s the MOOCs. And here’s the best part – it’s completely FREE.
If you’re determined and self-disciplined, I definitely recommend MOOCs. There’s nothing you can’t learn freely on the internet.
My Recommendations
Here are some of the courses I took and really enjoyed. The courses were taught by amazing instructors with interesting projects, and yes they can be quite intense, but they’re fulfilling and rewarding at the same time.
CS106A: Programming Methodology (Stanford University)
This was the very first course I took when my CS journey started. I had no experience in programming at that time. I couldn’t think of a better choice! The course was taught in Java. The course was very interesting and it covered a lot of basic programming topics. What I like the most was that the instructor showed us the importance of problem-solving. It’s not only about the syntax. It’s about how you can creatively and elegantly solve a problem.
CS 61B: Data Structures (UC Berkeley)
This course was also taught in Java. It intensively covered main data structures and some algorithms and provided really clean code examples. It also included interesting projects that I even included one of them in my portfolio.
Coursera: Algorithms (Princeton University, Part 1 & 2)
A deeper and more comprehensive learning in algorithms. Also taught in Java with clean and precise code, and it provided clear explanation and demonstration to help you understand the algorithms.
Some other MOOCs I Heard Were Amazing Too
Udacity: Introduction to Computer Science
A CS introductory course in Python.
CS 61A: Structure and Interpretation of Computer Programs (UC Berkeley)
Another CS introductory course in Python that will improve your Python skills significantly.
CSE351: The Hardware/Software Interface (University of Washington)
A classic CS course in C programming language with really interesting projects. The next thing on my list after the capstone project!
Hope you find these courses helpful cause I surely did!