What would you recommend doing to improve development skills both to be a better employee/developer and to prepare oneself for future interviews? Focus on learning your current languages in greater depth? Learning algorithms and data structures? Other things?
Of course, you can read a lot about software architecture and building scalable systems, but the best way to improve is to actually work on those systems at whatever level you can. Get your foot in the door with people building systems that serve hundreds of thousands to millions of customers. If you’re having a hard time doing that, build something on your own purely for the sake of proving that you understand the challenges of building complex software systems and software at scale. That way, when you go into an interview, you can say “yeah, I integrated a sharded multi-cluster DB with worldwide CDN endpoints and full management control.” (This quote is mostly jargon, but hopefully you get the idea) As a dev, DON’T WORRY about if people actually use what you build. Worry about how it’ll help you communicate your skills when you talk to people and interview.
Hope this helps. P.S. I’m a PM with a background in CS and I work with a lot of devs at many levels in a large tech company.
- During a career slump I joined the Project Management Institute and was about to get a certification before I got so busy I had no time for it. The PMI certifications are a good balance between affordable and meaningful.
- I did all the Python problems on HackerRank; this was a journey, like climbing a mountain, I learned a lot, had fun all the way, got practice for interview problems, etc. (I've seen other courses in other languages at that site and some others, but that one is in a class by itself -- I printed only my HackerRank Python certificate to hang on the wall because I am proud of it.)
- I challenged myself to print something every day to keep my inkjet printer from clogging up, but now I go to auctions and buy the cash registers from failing stores just to get the receipt printers, which I break the way a rock star breaks guitars. My son feels like he has to outdo me, so now he is making big anime art prints by putting together 8x8 inch squares.
- My image technology obsession has gotten me into arduino so I can build devices that paint images from a 1-d strip from a moving platform like an automobile. That's gotten me to rethink programming from the ground up.
If the imaging side projects go the way they are going there could be a day that somebody sees something I did that was different from anything they'd ever seen before and then work finds me. That was how I got "too busy" to get the PMI cert.
A lot of my technical growth comes from side projects I work on (for myself or open source).