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

> it cripples users for years before they can figure out what's actually going on under the hood.

it doesn't - python hides the unimportant aspect of the computer; namely, it abstracts the memory allocation and resource process. You treat the computer, under python, as an abstract machine which has unlimited memory, and don't worry about its use. you focus on algorithmic understanding and fundamental data structures.

Once you grasped the computer science fundamentals, then you tear open the box and learn the underlying impl. of a computer - such as memory allocation, and assembly, etc (ostensibly, by making your own operating system using C, and/or writing a compiler using C).

you can replace python with haskell, which imho, does an even better job as a first language.



To be fair, python has many robust features beyond gc. For example, dicts, which are bread and butter for python abstract away 1000s of lines of C, which leads to very confused students when they first see errors like 'unhashable type: list'. Encountering leaky abstractions always made me uncomfortable when I took my first classes, but for a very first class its still probably better than dealing with memory allocation in C depending on what one expects from an intro class.


But when you start using dicts at the beginning, you would be learning about hash maps and what hashing is, etc. This is basically computer science 101 stuff, with which python makes an environment much easier to learn with.


> haskell

Sure, sure - monads and all... I wonder if there is even a beginner programmer’s learning material that uses Haskell.




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

Search: