Exploring the wider world of coding in the winter of (COVID-19/)20/21

Sunday 31 January 2021 / coding


It's been a few months since my last major Flatiron bootcamp project. Since then, via Flatiron I've learned about:

I've also built on my previously primarily self-taught HTML and CSS skills - CSS now feels a little (little) bit less of a dark art - and completed Harvard's CS50 Introduction to Computer Science. This post is mostly focused on the final few projects of CS50, while the next will cover my second major Flatiron project.

For the final problem set of CS50, I decided to take the web track. This was partly because I wanted to get CS50 finished in 2020 and was conscious that I'd probably be more familiar with and efficient at completing web projects, but also partly because the technologies involved brought with them a level of unfamiliarity.

For the first of the two 'problems', I created a four-page website on learning Japanese called Nihongooo! The website incorporates the Bootstrap framework and JavaScript that injects and automatically plays a YouTube video of Japanese jazz when an "I'm feeling jazzy" button is clicked.

The second of the two problems involved implementing the Python and SQL (and HTML and CSS) introduced in the previous two 'weeks', as well as connecting to an API for up-to-date data retrieval in order to build out a simple web app with user management. This offered an opportunity to apply some of the HTTP requests and routing principles I'd been learning through Flatiron, but under Python's Flask web framework - a great chance to get used to Ruby's biggest rival!

After the last of the problem sets, the only thing left for CS50 was the final project. I'd enjoyed implementing a readability estimator in C in the third week of CS50 (known as 'week 2', because computer science) and reimplementing this in Python in week 6 (the seventh week), so I decided again to walk the line between the familiar and unfamiliar by building on this logic and reimplementing it once more, only this time within the framework of a JavaScript-based Chrome extension. This was a great chance to really dive into JavaScript in order to start getting experience of building more interactive, dynamic web experiences. Excitingly, the extension became my first project deployed beyond GitHub - it's now published on the Chrome Web Store as Selected Text Readability. A demo is at the bottom of this page.

This winter I also started one of CS50's follow-on courses, CS50G or GD50 Introduction to Game Development. While I haven't had too much time to progress with CS50G, together it, CS50 and watching Celeste developer Noel Berry stream game development on Twitch (NoelFB) have really started to flesh out the foundations of my understanding of the wider world of coding!

In my next post, I'll talk about the Sinatra web app I've just developed (and deployed) for my second independent, self-led Flatiron project.