As a programmer who is suddenly entrusted with a lot of responsibilities at work, I'm having a hard time coping up with the uncertainty of not knowing a lot of things I'm supposed to be knowing. For example, I don't have much experience designing complex architectures and making the system work at scale, and that's exactly what I'm supposed to be working on at work in the coming weeks. There are no senior programmers in my team, so its scary to think that I have to be on top of my game at all times.<p>So my question is this: How do you deal with the uncertainty that comes with the nature of our craft? How do you keep learning new technologies quickly and adapt to the ever-changing use cases? How do you dive deep into a code base written by someone else, reverse-engineer it, understand the high-level logic and get things working as quickly as possible? Should I just go with the flow, give it my best and just fake it till I make it? Or is there a more scientific approach to this?
It is a tough spot to be in. I think you are quick to identify the skills gap. It might be worth raising this issue with management and see if they can hire a senior dev. If not then I'd say clarify your skill set to management and say you might need some time to do reading and get your skills up to scratch. If no cooperation from management then screw it, go with flow and give it your best shot.