How do I get better at software engineering and software design?

Author Message

Posted: 8/1/2020
Quote message 

I earned a computer science degree 4 years ago, and I feel like I learned a lot of theory and best practices as far as programming goes, and then when i got a corporate job, I was working with software and frameworks so far removed from the theory I had once knew, I lost all sense of 'good software design' and best practices. The frameworks took care of code seperate and organization, etc. I feel like I don't know enough about the higher level structure of good program design choices, I feel like just another 'code monkey'. I write software that works, but I feel its not high quality by any means. It feels like this with most languages I've worked with and projects I've done, C++, Java, python/django, PHP. I just feel like I've regressed since leaving school.

I've been looking at github accounts of some people/products I've started to idolize: cyanogen (android rom), syncthing (open source syncing software), etc and I see these great people doing great things. I feel like I'm not one of them, and I want to be.

What books, projects, or steps from here should I take to start really learning good software design again?

Thank you for any input!