Struggling to grasp .NET backend concepts despite positive feedback at work

Hey everyone,

I’m in a bit of a pickle. I’ve been working as a fullstack dev with .NET for a while now. My team thinks I’m doing great, but I feel like I’m just winging it on the backend.

Don’t get me wrong, I can build stuff that works. But when it comes to things like data access and testing, I’m mostly just copying what others do. I use all these fancy terms like DbSet, IQueryable, and dependency injection, but I couldn’t explain them if my life depended on it.

Testing is another weak spot. I write unit tests and use Moq, but I don’t really get what’s happening under the hood.

The frontend stuff makes sense to me (I used to do JavaScript), but the backend is still a mystery. I can deliver features, but it feels like I’m just putting puzzle pieces together without understanding the big picture.

The worst part? After work, I’m too drained to dive into tutorials or side projects like I used to.

Anyone else been through this? How did you get past it? I’m all ears for advice!

hey ryan, sounds like quite the journey! have you tried reverse-engineering existing code? it can be super helpfull. maybe pick a simple feature and break it down step by step? also, what about joining some .net forums or discord channels? sometimes chatting with other devs can spark those aha moments. keep your chin up, you’re doing better than you think!

yo, i feel ya man. been there, done that. what helped me was breaking things down into smaller bits. like, pick one concept and really dig into it. maybe start with dependency injection? its not as scary as it sounds. also, dont be afraid to bug ur teammates for help. theyre probably happy to explain stuff. keep at it!

I’ve been in your shoes, and it’s a common experience for many developers transitioning to backend work. The key is to focus on understanding core concepts rather than just memorizing syntax. Start by diving deep into one concept at a time, like dependency injection or ORMs. Dedicate small chunks of time, even just 15 minutes a day, to read documentation or watch short tutorials on specific topics.

For testing, try writing tests before implementing features (TDD approach). This forces you to think about the expected behavior and often leads to better understanding. Don’t be afraid to ask your colleagues for explanations or pair programming sessions. They might appreciate your initiative to improve.

Remember, feeling like you’re ‘winging it’ is part of the learning process. Keep pushing yourself to understand the ‘why’ behind the code you write, and gradually, the bigger picture will come into focus.