Experienced but feeling incompetent and overwhelmed

I just answered a question like this yesterday. I'm a full stack, and I do feel it's absurd to keep up, but I do. The main reason I have is because I conceptually understand things and I'm a big picture top down learner, not an attention to detail bottom up, kinda guy. My strengths are if you need a guy to be a junior level competency in a week and lower mid in a month, I am your guy. Also, I'm built for management. My weaknesses, I struggle to care about nuance that I find unimportant. For example, I think DRY is stupid and encourages shoving all of your code into and opinionated closet, I'm more of a I'll leave that towel on the floor for everyone else to step over kinda guy. Also I have to ask a lot of questions; which can come off as dumb to specialists.

Knowing all of the shit I do is only beneficial in places like startups and that's not for everyone, but even at that those places are dumb and hire devs with pedigree that are "attention to detail" people. Places like FAANG just straight up aren't for me. The last thing is we can intimidate the wrong people. What I mean is there's a lot of formally experienced developers out there that didn't keep up and have worked out an everyday process to continuously accomplish mediocre work and once they come across us alarms about their positions go off. We also have a tendency to burnout due to context switching.

To answer your questions I'll go into a rant about how I learn. The first thing is I build massive applications on my own. If I fail, I come out with a whole new knowledge base. The best way to learn is by doing, at work you need approval to do something, so I do my own startups whenever I'm not working with companies. When I came across Kubernetes for the first time it addressed a problem I had with something I created. My CTO basically told us all how much we were spending on server costs, and it was a "holy shit I need to know that moment." I had learned that containerization basically standardized dev envs across systems, and I needed that because I've worked with junk dev envs, so kubernetes, with all of its server cost reduction was the next logical step. The reasons for why and how it fits as a tool stood out to make my life easier through experiences that I had building things on my own with no help. So I start with understanding the purpose that the tool I'm about to learn has.

When I start learning, again I'm a top down learner, I pick a course, race through it on 2x (more if I can) make notes how all of the components work together, and then go through the course again and fill in notes about each component. The best thing is that a lot of courses you can just get transcripts and feed them to chatGBT to make notes for you, then just snag some screen shots, find a few cheatsheets, and now you have context switching notes.

I don't learn everything too. For example all of the backends I know are MVC, or similar. Laravel, .Net, Spring boot, Django, Express, Nest, they all do things in pretty similar ways. The same goes with Angular (this one is sorta an outlier, but it's MVC), Vue, and React. It's just all the same after a while. To learn Rust, I'm going to start with learning the frontend framework and move down to lower level work. The point is that conceptually you have transferable skills. Understanding concepts is what I do, I don't care about the small intricacies that differ from framework to framework unless I'm trying to solve a problem that involves that. I won't even lie, after a context switch it can take me hours until I'm not looking at another pieces of code to map through a js loop. I do know how to spot time complexity issues, so why would me not being able to remember to map through a js loop matter until I need to?

So the TLDR for how I learn is: I build things. Run into problems. Understand the reasoning for the new thing I'm learning. Speed through until I understand how everything conceptually works together. Integrate what I've learned into transferable concepts to learn more. I don't focus on the small stuff until it comes up.

/r/ExperiencedDevs Thread