Original Post
This question comes up a lot from beginners, or even competent programmers who want to get to that next level: How can I as a programmer improve?
I've gone through many of the common answers there. I've learned a variety of languages, I've worked in a variety of paradigms, I've worked on hard problems, I've gotten some experience with large systems, and some experience leading teams & mentoring others.
Not to say there's plenty more to learn. I still am weaker on some fundamentals than I'd like, I could use more experience with leadership things, large scale design, and machine interface concepts. And of course there's a ton of libraries that I don't know that would likely provide benefit. But these all seem like relatively little things that I've just missed; things that aren't terribly challenging but simply branches I've not explored.
In the past, I've been along these sort of branches or little incremental improvement and later realized that while useful, they weren't really the big jumps that I got by working on core programming skills and concepts. So I feel like my improvement is a bit stagnated when I look around and only see incremental advancements.
So I expect there's something vital I don't see (or don't consider vital since I don't know enough). Is that the case? Or is there just diminishing returns once you're a fairly skilled developer? Eventually you're just keeping current on technology and honing a specialization?
I've gone through many of the common answers there. I've learned a variety of languages, I've worked in a variety of paradigms, I've worked on hard problems, I've gotten some experience with large systems, and some experience leading teams & mentoring others.
Not to say there's plenty more to learn. I still am weaker on some fundamentals than I'd like, I could use more experience with leadership things, large scale design, and machine interface concepts. And of course there's a ton of libraries that I don't know that would likely provide benefit. But these all seem like relatively little things that I've just missed; things that aren't terribly challenging but simply branches I've not explored.
In the past, I've been along these sort of branches or little incremental improvement and later realized that while useful, they weren't really the big jumps that I got by working on core programming skills and concepts. So I feel like my improvement is a bit stagnated when I look around and only see incremental advancements.
So I expect there's something vital I don't see (or don't consider vital since I don't know enough). Is that the case? Or is there just diminishing returns once you're a fairly skilled developer? Eventually you're just keeping current on technology and honing a specialization?