Things I Recommend
Or have enjoyed reading / watching
Software Books:
I would add a caveat here that when I first started reading software books (after a few years of programming), I failed to appreciate that all this knowledge will be constrained by the business environment. You can't just sweep aside resource constraints or deadlines and "do it properly", and constant compromises must be made.
So I suggest reading these books that describe the ideal way of building software, and realise that you will likely never hit this level of perfection and reach a coding Nirvana that we all so desperately want to see. Building great software is expensive (mind you building crappy software can become expensive too but for different reasons). So my viewpoint now is to try and incorporate these ideas when I can, and to do my best to just make the projects I work on a little less crappy than they were before I arrived.
I think that is a noble pursuit and I've learned to take satisfaction from that rather than be disappointed I can never reach the promised land.
An interesting book about software project management, and how throwing more people at a project to try and hit a deadline can actually make the project further behind schedule than it was before.
Full of lots of hard-won wisdom and interesting case studies from the early days.
Knowing different software patterns can be very helpful for many reasons. First, why re-invent the wheel. Second, it helps you predict if what you are planning is actually going to be a good idea, and third getting some consistency across the project.
While I agree not always practical to write software this way, I think the importance of test automation is not to be overlooked.
I think this topic does what it says on the tin. It uses a lot of different terminology but once you understand what he's getting at you can appreciate how failing to do this will always make your life harder. Whether you agree with the approach or not, it's happening so you may as well be aware of it.
Probably one of the best books I've read for a developer. Just lots of very good advice and more of a tour around the subject than a focus on any one particular idea.
Most people erroneously think that "Agile" replaced "Waterfall", when this is not really correct at all. The original "Waterfall" methodology was actually a paper about how NOT to build software that way. This is an important life lesson I think to Read the Source material rather than get your information second or third hand.
Not very long, but again you'd be amazed at how many people want to "do agile", but have picked up all the ideas by osmosis and have totally missed the point. If you are doing stand-ups, have sprints, and a kanban, and think that's "agile", you've missed the point. It's like saying because you use knives and a chopping board, you are making great food. Again, better to Read the Source and make up your own mind than play Chinese whispers.
I found this a very interesting book. Like many of these books and ideas, you are often limited in how you can actually apply them. For example avoiding frameworks is not that easy to do, but understanding their risks and limitations helps you make an informed choice on whether to use them or not, or how to plan long-term for your software projects.
Reading this book is like having a crystal ball as you can learn from decades of mistakes in the software industry.
Software Lectures:
I have also learned a tremendous amount from high quality YouTube videos. I will do my best to catalogue them here (more to come later on!):