This repo helps document my progress in learning how to code in programming languages new to me, with an initial focus on Python and Scratch. Apart from the outline in this file, the repo also contains a collection of useful resources, some notes on version control, some ideas for programming tasks as well as an irregularly updated report. I have also begun to use it for documenting my progress regarding data science more broadly, e.g. in terms of query languages like SQL or SPARQL or data formats like JSON.
Documentation of my progress in learning Python.
More and more of the software I come across in research contexts but also around Wikimedia is written in Python, which means I have seen a fair bit of Python code already, so it's about time to try and actually learn to write it myself in a way that is not too inconsiderate of any users or readers that may ever get. Besides, for data work, “[i]t’s actually pretty hard to argue against using Python”. More details on the pros and cons of Python can be found in this blog post.
Comparison of programming languages
Never having taken any computer science classes, the precise pros and cons of different languages remain somewhat of a mystery to me, but I am conscious that Python tends to be much slower than compiled languages like C or Fortran, and that's fine for most of my purposes. I am interested in ways to reduce the speed gap, though, as well as in how Python compares to other languages when it comes to data science.
For a more playful approach to comparing programming languages, see Dylan Beattie's The Art of Code.
Documentation of my progress in learning Scratch.
I've come across numerous examples of introductions to programming that use visual programming languages like Scratch, Alice or Blockly. Since I am frequently in a position to explain programming concepts to non-programmers, I thought I'd familiarize myself with one of those visual languages, so as to help those beginning coders make best use of the available introductory materials.