Straight, simple guide to survive SUTD's 10.009 Digital World module
"Can you code?" A simple question that invariably leads to heated debates on how early you 'learnt' coding and how fast you can pick it up. One will also observe the emergence of the extremely proficient (and sometimes their oversized egos), but seeking to learn at their feet, realise that their methods are simply too hard to understand.
Well, this guide is for normal human beings looking to pick up a useful skill. It is divided into 2 parts:
- Learning Python
- Acing the exam
1. Download Python 3 with Anaconda
- As of 2018, SUTD has been using Python 3 instead of Python 2 to teach Digital World. i.e. The Python versions start with 3 (e.g. Python 3.7 instead of 2.7).
- Around Janurary, you should get an email from the course lead asking you to download Anaconda
- Anaconda is "Anaconda Distribution is the fastest and easiest way to do Python and R data science and machine learning on Linux, Windows, and Mac OS X. It's the industry standard for developing, testing, and training on a single machine." Read: Download all the libraries you need for digital world so you don't need to worry about it later.
- Most of the course will be taught using Python's standard library, however, there should be a data science week where you will need a bunch of other libraries
- Also, iPython (one of the popular IDEs for Python) is included
- I recommend Eric Matthes' (Author of Python Crash course) cheat sheet. He's done an excellent job at putting just the right amount of information in a visually appealing way. I've compiled a subset of his work in this repo.
- The goal of this is twofold. First, to familiarise yourself with the syntax. Second, to develop a heuristic to learn from other's code
- Favourites include Pycharm (recommended, good style recommendations), Visual studio (lightweight), iPython notebook (good for viewing what your code does step by step, not much style recommendations)
- A good IDE helps with the identification of mistakes and makes reccomendations to follow proper coding conventions
- Remembering the shortcuts helps to type faster
- See what's in your data structures
- Find your errors quickly
- While proper coding conventions and program structure is important, digital world exams are marked to check whether you understand the concepts and less on the syntax
- Again, they're checking for programming thinking first, syntax second
- Python Crash Course Cheat sheet
- Python Style Guide