> High level programming languages have come a long way in the past 20 years
Have they? How? It seems to me that we're not very far away from where we were. Yeah we're running on better tin, but the programming languages are pretty much the same - at least the mainstream ones are.
> So many things we no longer need to think about in normal day to day programming
I'm always surprised when I read comments like this. It's not necessarily wrong, but all programmers writing anything less than trivial will bump into limitations of the various types of data-structures eventually. Not understanding the trade-offs and not being able to make informed decisions about different approaches will be a problem. We may not have to write them ourselves, but we should certainly understand how they're implemented in my opinion.
I may be a special case in that I started programming on machines with tiny amounts of memory and with slow CPUs, and have spent time writing core data structures when in the games industry in the 90s, and now in my large web-application life have a large open-source library [1] which is all core data structures; but I honestly couldn't imagine being a successful developer without a key understanding of these things.
I think perhaps the explanation why modern applications seem as slow as, or in many cases slower than their Windows 3.11 equivalents loading stuff off a floppy disk, may be this general disregard for choosing good data structures.
We have a hardware that's thousands, if not a million times faster, yet it hardly seems to matter when the code is a thousand, if not a million times slower.
I do a lot of low-level stuff by choice. Early in my career, I fell into web development because I got a job offer from a friend, and I found myself writing for loops and various SQL queries. On a good day, I got to write a regex. Hell, these days, you hardly need for loops in javascript because they're hidden by frameworks. It was boring as all get-out, so I got out of the industry, went to university and learned a whole lot about programming. I try not to be elitist about it; I think it's important to acknowledge that a ton of people in the industry have a radically different perspective on the nature of programming.
> Not understanding the trade-offs and not being able to make informed decisions about different approaches will be a problem. We may not have to write them ourselves, but we should certainly understand how they're implemented in my opinion.
I agree. My argument is that they are no longer something everyone needs to know how to implement to be considered “can code at all”.
Have they? How? It seems to me that we're not very far away from where we were. Yeah we're running on better tin, but the programming languages are pretty much the same - at least the mainstream ones are.
> So many things we no longer need to think about in normal day to day programming
I'm always surprised when I read comments like this. It's not necessarily wrong, but all programmers writing anything less than trivial will bump into limitations of the various types of data-structures eventually. Not understanding the trade-offs and not being able to make informed decisions about different approaches will be a problem. We may not have to write them ourselves, but we should certainly understand how they're implemented in my opinion.
I may be a special case in that I started programming on machines with tiny amounts of memory and with slow CPUs, and have spent time writing core data structures when in the games industry in the 90s, and now in my large web-application life have a large open-source library [1] which is all core data structures; but I honestly couldn't imagine being a successful developer without a key understanding of these things.
[1] https://github.com/louthy/language-ext