MOOCs for CS Newbies

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!

Becoming A Software Engineer

Welcome to my blog for the CS467 capstone project. To get started, I want to take a moment to share my journey so far.

Where It All Started

I majored in Business back in college, but soon after entering the industry I realized it’s not where my passion lies in. I then had the opportunity to work as a system analyst for a couple years, designing in-house softwares for our employees and sales representatives. I’ve sharpened my skills in various fields including communication, product management, database design, SQL language, data analysis and visualization.

The Transition

Having been working closely with software engineers, I became more and more interested in software engineering and I decided to make a career transition when I moved from East Asia to the US in 2019. I started this post-bacc computer science program at OSU, during which I also took a little detour and completed a web development bootcamp. I also found some really great MOOCs (Massive Open Online Courses) that were extremely helpful in deepening my knowledge and working on interesting projects. All the experience and hard work combined, I landed my first software engineer job at a small e-commerce start-up in 2020 after being a full-time student for about a year. The funny part of it is I’d used and was rather good at Java, Python, C++ and the MERN stack, but I was hired for a C# developer position. One more item to my skill set!

In the summer of 2021, I interned as an SDE at Amazon for 12 weeks. The experience once again broadened my horizons. I’ve learned so much in the design process for my intern project: coming up with solutions, evaluating them from different aspects, and conducting design review meetings with the whole team. More importantly, I learned to write better and cleaner code each day through my internship. The experience was invaluable to me cause it showed me how a good software engineer works and led me to keep working to become a better one.

What’s Next?

This is my last term at OSU. I don’t know which capstone project I’ll be working on just yet, but I’m super excited to learn new skills and work with new teammates. Will keep you posted!