Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



My wife started to learn to program - the setup overhead in python (going via mac -> git -> windows / linux) was crazy.


Can you not use your system's default python and open idle? Why involve git?


On Mac, at least as of Catalina, the system default Python is 2.something.


You can't just use brew?


Sure, but you specifically asked about the system's default Python.


Coming 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.


Unfortunately Go does not have an equivalent to Pandas as far as I know. The biggest attraction of Python is the ecosystem.


If 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.


Interesting. Do you have a beginner’s course or tutorial that you would suggest? Something like the Rust book is wha came to mind


I would start with https://gobyexample.com/ and 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: