I started learning Python as part of my Cyber Security course (which is classroom based) we only spent one afternoon per week for one term (so far) and we we’re only learning the basics, but I have really enjoyed learning Python. So in my spare time I’ve been trying to increase my knowledge in Python to a point that I’m really comfortable and can write more complex programs. Once I’m totally happy with Python I’ll try to hop over to Java and C#.

I wanted to list some of the resources that I’ve been using improve my knowledge, because I’ve tried a load and some I like more than others (p.s. everything in my list is free).

I dip in out out of the following depending on how I feel…

  1. Harvard online CS50: Introduction to Computer Science URL: https://online-learning.harvard.edu/course/cs50-introduction-computer-science/

This mooc is really good at covering object oriented program fundamentals, the tutor covering the material is really energised and knows his stuff. The mooc includes both lectures and practice tasks for you to code.

  1. Jetbrains URL: https://www.jetbrains.com/academy/

If you sign up before 1st of July, you’ll get free access to Jetbrains until 2021 (no credit card required). I’ve been going through the Python tutorials and they’re really good. I’ve just been doing a couple of hours a week. They push their own IDE, PyCharm pretty hard (because it does some integration with their website). I didn’t really like it so have stuck with Visual Studio Code.

  1. Pygame/Youtube

I’ve known about Pygame for ages but whenever I’ve seen examples of games created in Pygame they’ve always looked really basic, I think this is because Python and Pygame is included in Raspbian (the Rasberry Pi distro) and Pygame is frequently used as a learning tool for kids. But it turns out that you can make attractive (2D) games in Pygame. Programming a game seems like a fun way to become learn to code complex functions and classes so this gets a thumbs up from me!