I do sometimes wonder whether my starting programming as a web developer and not as some hardcore assembly hacker will ultimately lower my ceiling on what I can accomplish.
I’ve never really had to deal with memory management, hardware, or stuff like that. I started by building super simple HTML pages, learned some CSS, moved on to PHP before jumping ship to Python where I’ve largely stayed. Of course I’ve dabbled with tons of languages in between, but web and python programming is how I categorize what I do.
Would I be a better programmer if I had the battle scars of dealing with low level stuff like memory and pointers? The canonical answer here is “of course,” but I have my doubts. For what I do and what I’m interested in, I just don’t always see the usefulness of that low-level stuff. I’m building web pages, not web browsers.
The way I see it is programming is a tool to get stuff done. Decades ago the tools were primitive. This imposed all kinds of constraints on the human doing the programming. You had to manage memory yourself, for example. But as the years progressed so did the tools. Now the tools are advanced enough that we can offload that tedious stuff to the computer and let the human focus on the bigger picture. Let’s celebrate that.