DEV Community

Discussion on: What language would you recommend for a beginner?

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

I definitely recommend Python. It provides a good foundation for understanding computer programming. It has plenty of technical aspects to grow into as you're ready, but keeps the complicated stuff mostly out of sight until you want it.

It also doesn't encourage bad habits, rather guiding towards good habits and style, without whacking you on the knuckles if you get it wrong. Tools like flake8 and black help with this. You can then jump from (idiomatic) Python to any other language, and you'll find a lot of the good practice ports.

Python also works well with the functional, object-oriented, and procedural paradigms, or any combination thereof. You aren't forced to use any one of them. As with literally any language, you have to learn how to use these well, but they're all supported in a way that accommodates responsible mix-and-match.

And yes, virtual environments are easy. They're actually easier than having to mess with system-wide stuff, because you can have multiple venvs like sandboxes, each with precisely the tools and packages you need for any given project. Here's the only four commands you need:

python3 -m venv myvenv  # create virtual environment
source venv/bin/activate  # turn on virtual environment
pip install <whatever>  # install stuff
deactivate  # when you're done

(That's on Linux. Just as easy on Windows, the commands are only slightly different.)