Hello!
I'm a recent college graduate with a B.S. in Computer Science, and I've been working as a software engineer for the last 6 months. I work for a small company that makes a windows desktop application loosely related to payment processing. The code base is 10+ years old. It's all built around the .NET ecosystem so the majority of the code is C#, but there's also SQL server backend. The "vision" for this product has changed as the company has grown, and there has never been a fresh rebuild. So, the code is a little haunted and it comes with all the aches and pains of "legacy code" (I know it could be worse).
To clarify, I like my job. Genuinely! I like software development. I like the company. I like my coworkers. I like the pay.
But, I'm stressed! I'm stressed about losing my job. I'm stressed about not completing my assignments on time. I'm worried that I'm not getting any better at my job. I'm worried about getting fired for underperformance.
In a nutshell, I'm always worried about not being skilled enough. My recent performance review came back positive! But, my anxiety doesn't sleep. I'm safe today, but what about tomorrow?
My therapist and I will work through the anxiety, that's not why I'm here. I'm here because I'm looking for professional advice. Software development is a meritocracy, I've made peace with that. If I want to stay a software engineer, I need to keep improving.
Speaking honestly, I'm not sure I want to spend my free time on this Earth getting better at my job... However, I'm going ignore that feeling because I need money and this is the best job I've ever had. So, I want to get better at my job, but I'm overwhelmed by the how.
The easy answer I've seen online is "get good". Translation, grind it out. Read every book. Write a million programs. Learn every language. Start your own tech blog. That's hyperbole, but still, this "grind set" ain't working for me.
I've been told to focus on practice on daily problems(LeetCode / Interview Prep). These problems can be interesting puzzles, but they don't really provide insight in my daily work. Also, I don't live in a "Tech Hub" where it's advantageous to switch jobs every 1-2 years.
I have a reading list a mile long, but I haven't put a dent in it. I've made many attempts, but my eyes glaze over after an hour of reading something like, Design Patterns: Elements of Reusable Object-Oriented Software (1994) I can do better here, it just feels so slow and tedious...
My manager has directed me toward the various trainings from https://learn.microsoft.com/. I'm not sure if these are helpful, or just appealing to management because they quantify professional development. Oh! You completed your task, and you got a badge to show for it? Checkbox. Maybe I'm wrong?
What about learning through personal projects? I know that I should have a personal website, and a GitHub full of projects and open source contributions, but I don't. I don't have much free time during the week. When the weekend comes around I'd rather not be programming at a desk like I have been all week.
Admittedly, I can be better. It's hard to help someone who says "I don't wanna", or "Ugh... this is so boring and I can't focus" Something has to give, so I'll go first. Laziness aside, I can commit to 2-4 hours a week of study. Let's start there.
I'm not asking for a silver bullet. No one is going to have a perfect zero-2-hero programming course that will turn me in to a 10x developer. I don't want that.
I want to know how you handle it.
If software development is your 9-5, and not your passion. How do you keep improving?
Where does your confidence come from? When layoffs come around, how do you know that you are safe? Or, how do you know that your skill set is relevant and desirable?
Thank you for reading.