Python is a terrible choice as a first language. Idiomatic python is just glue code that obfuscates the underlying algorithms. Object oriented programming (implementation inheritance) is increasingly regarded as an antipattern, and it encourages that too. The massive performance penalty of writing logic in python vs calling out to external libraries mostly forces developers to program by lego-brick assembling externa…
Python is a great first language, because you can learn the basics in an afternoon, but it is still capable of handling (and actually used for) many real-world tasks from robotics to games to scientific computing. Its low barrier to entry, high reward/effort ratio and quick feedback loop make a good way to recruit potential CS majors! As others have mentioned, Python's slowness can also require you to pick good algor…
Low barrier to entry and quick feedback loop are shared with Racket in this case, and Racket offers much more to learn.