mcraenich
Joined 8 years ago
Joined 8 years ago
At a bare minimum I think you're looking at someone who has a solid understanding of the code base and business they're working in.
Most businesses are a collection of people filling roles, doing exactly what they're supposed to do to keep their job. That doesn't often lend itself to nice to haves like career development frameworks.
If the business has a major incentive to provide it, it'll likely come into existence.
It was an interesting experience, but absolutely nothing about it was enjoyable, the language, the tooling, the support. All of it.
The 'mental model and scientific process' has less to do with code alone, and more to do with the holistic act of working for a business. Development is just a part of it. Books will teach you best practices (and you should know best practices), but they won't teach you how to be an effective team-member, or cog in the business.
It's also a problem with the modern world. We lack community, we lack physical, important work, and we spend our lives doing only one thing (programming). No matter what part of the industry you're in, this is going to get boring after a while.
My take is that there's no way around it - if you want excitement you're likely going to experience more stress. If you want stability, security, and a stress-free lifestyle you're going to be in a malaise with a bit of unease. There's no real silver bullet here beyond defining what you value, what your long-term goals are, and enjoying the ride toward those goals.
Where I think for a lot of people they learn about a thing, or a group of things, until they come to accept something as absolutely and definitely true - "what I know IS reality". Then the learning process just kind of stops there because they think they know, when really they just know slightly more.
I see it all the time, people with the illusion of knowledge when there is a ton more to the story.
If you're a decent generalist, maintenance of pretty much anything isn't that hard unless you're jumping into something low level like C++.
Architecture / building major applications from the ground up is harder, but this isn't that common of a task, and if you're building something mission critical and important, odds are you have a team. Or at least you should.