I'm currently working in python on a django project, working in a financial domain. I lead a few engineers and direct/manage some projects. But I feel like I'm missing out on something when I read about people making things in zig and rust, or how they apply some numerical modelling techniques to certain problems, plus the new technologies being developed. I feel like I'm very much not knowledgeable or distinguishable enough, so I want to refine my skill a bit and maintain "sharp" in case of something happening and i need to find a new job quickly. And i want to make sure that I'm learning all that I could be learning in my current position.
Some previous books I've read / enjoyed:
* The makings of an Expert Engineer * Designing data intensive applications (haven't finished, moved house and lost the book, want to pick it up again) * Designing Elixir Systems with OTP * Practical Common Lisp
I feel like I have learned a bit with the Elixir/CL books, inwhich I apply to how i write python, but I never branch out to doing my own projects in these languages, so I feel like I'm missing out on utilizing these tools fully.
Is there anything to read that could take me to the proverbial next level?
Learn more about whatever domain you are writing software for, then ask what skills you need to improve to solve a problem in that domain.
Also do not get hung up on specific languages or paradigms, the overarching patterns are universal and learning them makes things significantly easier to implement.
Finally the most generic advice, Algorithms and Data structures. When you start thinking in terms of "This is the data in memory" and "This is the algorithm manipulating the data" you will "level up" quickly. Software isn't cats and dogs and random objects. Thinking in objects can be a decent way to model systems but when you get into the details you are operating on instructions and data not on objects.
https://mahesh-hegde.github.io/readings
I recommend two books, none of them is technical. "Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft" and "The soul of a new machine".
Once you put yourself at the edge of knife, everything you want comes naturally, because you either swim or die.
Furthermore, build more and read less. Programming books, while a great resource, are detached from the everyday realities for software engineering. The skillset comes from applying concepts by doing the work.
If you really want to read something, pick a popular project on GitHub in Elixir or Zig and read through its source code.
Finally, if you haven’t augmented your workflows with AI-tooling, strongly consider doing so (and I don’t mean asking ChatGPT and copy/pasting answers, but actually full on agentic programming)
The skill gap you’re concerned about now is only going to increase if you’re not using every tool to your advantage. Simply knowing a few programming languages is not enough, in fact it should barely even matter once you’ve hit a certain level of experience.
mastering a tool doesn’t make you a better engineer, only better expert in a particular tool. And it is not the “next level”.
Next level is about getting a wider perspective and bigger picture view on your craft and your job.
On a conceptual/phylosophical level any decent book about building, engineering or designing any complex thing (preferably based on real events, not some made up boring fluff like “deadline” by Tom Demarco) would contain some gems.
I don’t know any single book that is full of gems.
To make this comment useful this is one of many examples, of a book that have couple of good ideas (about feedback system for example) https://www.goodreads.com/book/show/1501427.Managing_The_Des...
But, from your post it’s not clear specifically what you are looking for. If you think you will level up by learning how to apply numerical modelling techniques, then it’s probably best to focus on that.
It’s the real life exchange rate for algorithms and data structures. Basically understanding your infrastructure and its performance characteristics will help you design simpler ( and therefore better )systems
https://philip.greenspun.com/seia/
2) Tannenabum Networking and OSes
3) Get your domain and build something