4 ms·
I don't think Python is a good first language. It's far too abstracted. I've always felt that learning lower level languages first then moving up the ladder is
by dnkrtz 13y ago
I don't think Python is a good first language. It's far too abstracted. I've always felt that learning lower level languages first then moving up the ladder is the better approach.
- walshemj 13y agoYou right we dont teach mathematics by starting with advanced concepts we start with addition and subtraction. Back in high school in the 70's our first language was a variant machine language CECIL - which we had to do by sending of coding sheets to a bureau.
- LyndsySimon 13y agoI agree, and I love Python. Python is better suited to be the language you learn the architecture parts with. Basics should probably be in C.
- betterunix 13y agoI disagree; abstractions are good, and it is more important for students to learn to think abstractly than to learn how a computer works "under the hood." The vast majority of computing tasks involve abstract problems with abstract solutions -- computing account balances, querying databases, cryptography, UIs, networking, etc. Even basic things in a CS curriculum like data structures and algorithms require abstract approaches and gain very little from knowing low-level details. There is a place for the low-level details: computer architecture, compilers, and operating systems. Students should take these courses to be well-rounded and to see how theory is translated into practice, but elsewhere things should be done at a high level.
- Goladus 13y agoEven basic things in a CS curriculum like data structures and algorithms require abstract approaches and gain very little from knowing low-level details. I'd disagree somewhat. Data structures, from a CS perspective, often involve learning about low-level implementation details (why is accessing a hash O(1)? Why do array elements have to be the same size? What's the difference between representing a graph as a linked list versus a 2-dimensional matrix?). It's similar with algorithms. Even though you CAN use completely abstract computational models to learn algorithms, many of the most important algorithms are designed around tradeoffs between real-world resources and being able to map abstract algorithms to a low-level language like C is a very useful skill to those who have it.
- Goladus 13y agoI agree in principle but still think Python is best to start with, for two reasons. First, many people need a simple introduction to the entire concept of programming-- codifying precise instructions to a computer to get specific results. Second, python is a great tool for exploration of other low-level systems, eg the socket library, the posix library, the os library.
- collyw 13y agoI have seen some truly awful code that has been written in Python. It wouldn't have been possible in Java due to the nature of the language.
- Goladus 13y agoOne can write an O(n^2) that should be an O(n) algorithm in Java just as easily as Python. Bad code is bad code. On the scale of encouraging good practices and discouraging bad ones, Python does pretty well given the very low overhead to get started-- something Java does not have.