I did it! I completed CS50!🔗
CS50 is Harvard's Introduction to Computer Science course. I first heard about it in 2020 during the pandemic lockdowns when there wasn't much to do at home. I tried taking the course then but didn't fully commit. I lost interest after the first week, mainly because I didn't have a good reason to learn computer science other than boredom.
Fast forward to 2024, I've tackled some large and complex software documentation projects. My favorite part of each project has been collaborating with Software Engineers. There's nothing quite like learning from those who build the products! As a Technical Writer, before I write, I must research, either using online resources or interviewing engineers. This finally gave me the motivation to complete the CS50 course. I wanted to understand the world around me better. How do words on our screens build applications? I thought this could help me become a better Technical Writer and ask better questions when working with developers.
The struggle was real🔗
Week 0 was pretty easy with Scratch, which provides a friendly interface to start learning programming concepts. Week 1 introduced C, and boy, was it tough. I had worked with Python a little bit (very little) in the past, so working with a low-level language was overwhelming at times. By week 6, when we covered Python, I could see the light at the end of the tunnel. Solving Python problem sets took me about half the time compared to C. It was mind-blowing to see how much Python abstracts away. Thank you, Python!
Another challenge was week 9 with Flask. The first problem set was manageable. The second one seemed fine until some checks failed upon submitting my solution. It took me embarrassingly long to realize my math was off in two routes—major facepalm.
Final project time!🔗
When it was time for the final project, I wondered what to build. There's nothing scarier than a blank page (except maybe for C ). I decided to create a Flask app called Crowrite, featuring various technical writing tools. Like documentation projects, much of the time was spent researching and figuring out which libraries would help achieve the needed functionality.
If you want to read more about Crowrite, check out this page!