5 ms·
I've stopped recommending Python for learning programming, and instead have started recommending Go. Python's environment difficulties make it exponentially ha
by shakezula 5y ago
I've stopped recommending Python for learning programming, and instead have started recommending Go.
Python's environment difficulties make it exponentially harder for beginners to focus on actual programming concepts. Things like pyenv or virtualenvs or any of those things are blackboxes to beginners.
Go is simple, it's tightly coupled to version control so you can teach git at the same time in a meaningful way, and it's low level enough that CS concepts come up frequently, while being powerful enough that it will scale with a beginner's knowledge.
- ebb_earl_co 5y agoInteresting. Do you have a beginner’s course or tutorial that you would suggest? Something like the Rust book is wha came to mind
- shakezula 5y agoI would start with https://gobyexample.com/ https://gobyexample.com/ and https://learnxinyminutes.com/docs/go/ https://learnxinyminutes.com/docs/go/ Go By Example will take a beginner from Hello World to writing a server in a short time, and you can naturally splice in other skills.
- slownews45 5y agoMy wife started to learn to program - the setup overhead in python (going via mac -> git -> windows / linux) was crazy.
- spicybright 5y agoCan you not use your system's default python and open idle? Why involve git?
- macintux 5y agoOn Mac, at least as of Catalina, the system default Python is 2.something.
- spicybright 5y agoYou can't just use brew?
- macintux 5y agoSure, but you specifically asked about the system's default Python.
- alexmcc81 5y agoUnfortunately Go does not have an equivalent to Pandas as far as I know. The biggest attraction of Python is the ecosystem.
- shakezula 5y agoIf you have a specific library or platform requirement then this advice is obviously not applicable, but for learning programming and software engineering principles, I honestly can't think of a better introductory language than Go. I love Python, and the ecosystem is vast, you're right, but it has a serious issue with packaging, delivery, and dependency management. I have almost a decade of software engineering under my belt, and Python environment issues give me a hard time _regularly_. For beginners, it is a major demotivating factor that can be a death sentence for learning.
- selfhoster11 5y agoComing from Java, my reaction to pyenv and virtualenv was "why is this even needed?" Package management and SDKs are perennial fun times for all languages, but pyenv and virtualenv were just weird.