I’ve recently been putting a lot of hours into levelling up my computer science and coding, mostly covering Python, Tensorflow, machine learning, and a few little projects to scratch personal itches.

Over the past few weeks I’ve got a nice little workflow going. Here are some of the things I do:

Make the Most of Free Resources

I’ve been using Coursera for their course on Nand2Tetris, and MIT’s Open Courseware for their courses on Python and data science. I’m especially a fan of MIT’s offering because it doesn’t ask for you to sign up – something that’s more of a concern in these days of massive Facebook data breaches.

Pop Out Youtube Videos

While the above sites are good, I have to keep their page open in my browser to view the video on my laptop screen. Luckily MIT’s videos are all on Youtube too, so I use the Youtube Popout Player extension for Firefox. With that, and my Linux desktop allowing me to keep certain windows on top, I can play the video in the corner of my desktop while focusing on the code in my editor.

Use Jupyter Notebook

I’d played with Jupyter a fair bit before, but didn’t really see the point. Why bother when I have Sublime Text?

But since we use Jupyter at Remix, I thought I should play with it a bit more, and I’m starting to fall in love, especially with their tab completion and special commands. It’s a bit of a pain to set up if you’re unfamiliar with Docker or the command line, but well worth it. Having said that, I wouldn’t say it’s great for everything. Learning coding and data science? Sure. Building programs that do file IO, web serving, or need GUIs? Maybe not so much.

Now I’ve started playing with JupyterLab, the next generation of Jupyter Notebook. It’s even more of an IDE, and I’m just getting started learning the new features. So far, so good!