I have a question that might resonate with other early-career SWEs. How do I become better at the "serious" parts of work?
I got a maths-heavy master's degree in computer science. Formally, I now work as a data scientist, but really, I engineer software.
I am confident in my programming abilities. I write clean code, design elegant abstractions, test everything etc. But I still feel like there's a more "serious" degree of software engineering that I find boring and I feel like I'm not great at it: Writing design documents, properly tracking decisions, careful planning, building infrastructure and deciding on expensive infrastructure projects, all sorts of compliance stuff.
My question is: As I use more and more AI to help with programming, how do I get better and find joy in the more managerial tasks of software engineering? Does confidence just come with experience? Can I get better faster? Or is it all worthless anyways and I should focus on the code?
These are important skills as a data scientist as well and as such shouldn't be new for you. I'm not sure what sort of strategy you've been employing to get any serious data science work done.
> how do I get better and find joy in the more managerial tasks of software engineering?
Maybe you don't and that is okay. You don't have to find every single part of software engineering joyous. This goes for non-managerial work as well. Not all problems are blessed with being fun. Just do it regardless.
> Does confidence just come with experience?
Yes.
> Can I get better faster?
Yes. You get faster at any task you repeat often enough.
> Or is it all worthless anyways and I should focus on the code?
Some of it, maybe, maybe not. You'll know what kinds of non-programming activities help your programming after trying them out for a while. I for example don't love design documents for every little mundane feature. However, for larger, complex tasks the act of writing something, anything at all helps me bring clarity to my thoughts. I've also found development diaries extremely useful for any project where I go more than a week between development sessions. The important point is that I found this out by testing it out and reflecting on my experience and/or results.