4 ms·
Reasons why Python is great to teach: * Simplicity - you can write Hello world and have a 'that's cool' moment earlier than java * General purpose - whether y
by sixhobbits 6y ago
Reasons why Python is great to teach:
* Simplicity - you can write Hello world and have a 'that's cool' moment earlier than java
* General purpose - whether you're interested in web apps, data analysis, games, command line apps, you'll be able to do it with Python (the 'second best language for any problem' aspect)
* Community - a lot of people know it, it's easy to get questions answered. There are libraries, tutorials, etc
Reasons why Python is not great to teach:
* Horrible set up even with (or because of?) modern tooling and many options. Many beginners will get frustrated and lose interest after several hours of messing with configuration
* Too magic sometimes - easy to pick up bad habits by doing things that are 'allowed' in Python, but not in most languages
Overall I still think Python is one of the best first languages to show someone, but I'm glad I learned Java shortly afterwards followed by brief introductions to dozens more languages.
- falcolas 6y ago> Horrible set up For the purposes of teaching, there’s very few reasons to go beyond the standard library (‘Requests’ is why I qualify this). Restricting yourself to that means that python is, most times, already set up for you. It only gets confusing when you start to use shared libraries.
- sixhobbits 6y agoThis is not true on Windows and in general even for beginners I would not recommend the default install of Python on mac.
- falcolas 6y agoWSL gives you Python 3 with an apt install, and homebrew can replace the default 2.7 with Python 3. Using Python on Windows without WSL is a bit harder, but it's really just a package install and explicit `python file.py` call in a command window. I don't believe that any of these are onerous enough to justify calling them "Horrible [to] set up".
- cjf4 6y agoI'd add multi-paradigm. It's really powerful that you compare teach/compare/mix OO, FP, and others without leaving the language.