5 Books That Can Change A Developer’s Career

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
i sometimes get asked for my book recommendations so here are five books that i think will help you to improve as a software developer i hope that you enjoy them [Music] hi i'm dave farley of continuous delivery welcome to my channel if you haven't been here before please do hit subscribe and if you enjoy it today hit like as well i'd like to begin as usual by thanking our sponsors harness equal experts octopus and spec flow they've been supporting our channel for a while and please do support them in turn by checking out their links in the in the description below i'm about to list my favorite books some of these are genuine greats of our discipline so it's rather presumptuous of me to include an ad for my own book amongst them alongside these fantastic works nevertheless i'm proud of my new book modern software engineering and the reviews so far have been great so do check it out and if you like it leave a review i didn't just want to give you my top five books to make you a great developer i thought that i'd add some additional colour with some of the books that have had an influence on my career which is not always the same things as books that will be directly useful to you and with a few honorable mentions that you really should read this has actually been quite a lot more difficult than i thought at first there are so many great books that have influenced me over the years and there are whole categories of books that i've missed here but here are my top five in reverse order at number five extreme programming explained by kent beck i'm pretty surprised maybe astonished with myself that this is so far down the list this book had a huge impact on me when i read it it introduced me to ideas that have with hindsight shaped my career ever since this along with a book called rapid development by steve mcconnell started me thinking for the first time really about the fact that how we organize ourselves and approach our work as developers has an important impact on how well we can do i had been practicing continuous integration for a few years before this kind of by accident and the team that i worked on even had a few automated tests but this book joined all of the pieces together into something that made sense to me i confessed to being skeptical at first when a friend suggested that we try something called extreme programming in our team but i've come to appreciate the importance and value of the ideas like working in small steps and optimizing for great feedback those are my words not ken's i i preach those i appreciate those ideas even more now in the benefit of 20 odd years of hindsight the book covers ideas like testing early and often incremental design daily deployment customer involvement continuous integration short development cycles and incremental planning if you really want to understand what agility means then read this book at least for me at least this book showed me how the ideas that i partially understood at the time fitted together applying this thinking to bigger and more complex projects was really the inspiration that led to my book continuous delivery i've sometimes described continuous delivery as an approach to as a kind of second generation extreme programming the only reason that this book is not higher up on my list is probably because it is so ingrained in my thinking these days that i don't often return to it it's been around for a long time but the ideas in it are just as fresh and for many people just as challenging and just as true as they've always been i sometimes think of something that i think is my idea and only later realized that that's what kent really meant all along the book starts with the opening line the goal of extreme programming is outstanding software development not a bad place to start really i mentioned in passing rapid development by steve mcconnell mcconnell his other great work was code complete a fantastic book but it didn't quite make my top five next in my list is the pragmatic programmer by dave thomas and andrew hunt i confess that this wasn't really a very influential book for me i kind of missed it the first time around although a lot of my friends were talking about it i now own the 20th anniversary edition which is pretty much a complete rewrite but the book was hugely influential and is packed full of easy to understand really important practical advice like extreme programming explained it's really easy to read too but it's densely packed with gems great ideas on every page i was reminding myself of the content for this video and was just randomly flicking through the book and reading a bit and i find myself stuck in reading more than i originally planned nodding and smiling as i went at the ideas and insights i recommend this book for all developers but particularly for junior developers who perhaps want a slightly broader perspective than only language syntax the other book that i'd recommend to juniors but that doesn't make my list is clean code i confess that clean code has not been one of my favorite books nevertheless lots of people love this book so it should be on your book self the reason that it wasn't one of my favorites was mostly because i got to my own ideas on many of these ideas before i got to read it it's on my bookshelf at least for me a much more influential book was actually the gang of four book so this place is third on my list to give it its correct title design patterns by gamma helm johnson and this ladies for a while this was so famous so influential that everyone just referred to it as the gang of four book this is a more computer sciencey book than the others so far but it introduced me and the world to software patterns this idea has become a staple now so pervasive that we have patterns for all sorts of things but this was the book that introduced it to our discipline if you've ever used an adapter an iterator an observer a strategy or a flyweight or a proxy you're relying on the ideas from this book more than only historical interest though these things are the tools of our trade still and understanding them well will help you in your career and to grow you as a good software developer and designer it's too simplistic of course to say follow these patterns and everything will be okay patterns don't work like that but if you have a problem in coding it's often true that the path has been trodden before someone's already seen this problem and they've they've come up with some answers that experience is captured in these patterns for computer science ebooks the gold standard is probably donald knuth's the art of computer programming this is a very old book news got won the turing award the computing version of the nobel prize in 1974 for his work on this book actually it isn't a book it's for volume 1 fundamental algorithms volume 2 semi-numerical algorithms volume 3 sorting and searching and volume 4 combinatorial algorithms this is not a book for the faint of heart this is difficult stuff taken from a very computer science perspective bill gates once said if you think you're an excellent programmer read news the art of computer programming and then you should send me your resume if you can read the whole thing so if you're even nerdier than me you should probably try this one but it doesn't make my list second on my list is a book that i think we will look back on as an extremely important work in our field it's accelerate by nicole fusgren jez humble and gene kim this book is subtitled the science of lean software and devops dr nicole fusgren the lead author of this book is these days a partner at microsoft research the book describes the approach taken to collecting and analyzing the data from the most scientifically valid study of software development practice that i am aware of the study was called the state of devops report and over the period of several years the dora team collected and analyzed tens of thousands of surveys from people working on software projects all around the world their peer-reviewed approach presents the most defensible findings about software development performance and these findings have been somewhat remarkable many of the statistics that i quote on this channel come from the state of devops report or the accelerate book they found that there is no trade-off between speed and quality in fact quite the reverse they found that high performing teams outperformed low performers by orders of magnitude for some measures deployment frequency for example they found that there is a correlation between high performing teams based on the technical measures of performance that form the basis of their study stability and throughput and the financial success of the companies that employ them the bottom line is is that high performing teams make the companies that they work for make more money this is an important book because it solves a problem that we had beforehand largely thought to be insoluble how do we compare the performance of disparate software development teams the answer it turns out is by taking a scientific sociological statistical approach and defining meaningful measurements that make sense for everyone the authors of this book have made a substantial contribution to our field to my mind stability is a measure of the quality of our work throughput is a measure of the efficiency with which we can produce work of that quality these things matter whatever the nature of the software that we produce or whatever the industry that we work in by tracking these measures you can test almost any idea does this change whatever it is increase the quality of our systems or does it increase the efficiency with which we can produce things if it makes either of these things worse it's probably a bad idea i think this book provides us with a means to step beyond merely guessing about what works and instead measuring it there were lots of books that i thought about in coming up with this list some of them i use as tools frequently like gloico adzic and david evans book 50 quick ideas to improve your user stories which includes the best description of a list of techniques to decompose stories into smaller pieces than i've ever read others were completely essential tools in the early part of my career but have become less relevant now my copy of the peter norton programmer's guide to the ibm pc he's so beaten up that the pages barely are able to stay inside the cover and i'm fairly sure that this is the second copy that i bought because the first one fell apart through use this was from the days before the public internet and so it was an essential reference and in daily use kernighan and richie on c strauss strip on c plus plus are in a similar category charles petzold books on windows programming um i cut my teeth on windows programming from from learning from petzl's books which was the bible in those early days i still own several editions as it evolved over time alongside windows to be honest though all of these books have not really stood this test of time i may value them for sentimental or nostalgic reasons but i can't imagine anyone unless they're doing some kind of weird retro computing stuff using them as tools for learning for modern software development there are other categories of books that stand up better though we can think of newth which i've already mentioned but also things like the mythical man month by fred brooks published in 1972 despite the fact that it's based on his experience of developing an operating system for a computer that you'd only find in a museum these days it's still as true today as it was in 1972 it talks about the importance of small collaborative teams the importance of coherence in design the limits of scaling teams by throwing people at a problem which includes the first use of that memorable phrase you can't make a baby in a month with nine women this kind of stuff doesn't really go out of fashion to illustrate this my own new book modern software engineering published a couple of weeks ago is currently doing pretty well it's hovering around the top of the amazon charts for the topic of software engineering but it's vying for first place with the mythical man month published in 1972 i think that may say something interesting about our industry there are some deeper truths that are more durable over time books on specific technology are obviously limited to the time horizon of that technology books on these deeper ideas last much longer actually i think that all of the books in my list are in this category there were many books that i struggled to leave out of my top five several of which fall into this broader category too like refactoring by martin fowler or team topologies by matt skelton and manuel paice both of which are tools that help us deal with in this case very different aspects of the software development problem and both are books that i'm convinced will have a very long shelf life my number one pick though is an important book to me at least it's so closely mirrored how i thought about software and design that i once told the author that i wish that i'd written it except i wouldn't have it's much better thought out than i could have done it's domain driven design by eric evans this is not an easy book but it is full of great ideas lots of people don't read to the end and miss some really important stuff as a result it's easy to give up there's a lot of stuff in this book but don't if you really do struggle with the middle section skip forward to the section on strategic design you will be missing out on some really interesting ideas in the refactoring towards deeper insights section and miss some great advice but there's real gold in the strategic design section of the book whatever you do don't miss reading that i think that domain driven design is the best book on software design it's certainly the best that i've ever read the ideas of bounded context and ubiquitous language inform how i approach design and lots of the ideas described in the book have become commonplace as a way to think about things lots of people have heard of things like anti-corruption layers without ever having read the book for example i think that reading this book will make you better at software design so that's my list but i've one more wild card to add this is actually not a software book but if you're sufficiently nerdy like me and at all interested in science then the most influential book on my thinking for a very long time has been the beginning of infinity by david deutsch this is a hard read it's but it's a simply mind-expanding book on the fundamentals and philosophy of science it's absolutely fantastic so those are my recommendations i suppose that it's rather obvious that as an author these books aren't the most influential books for me the books that most influence my career and my books i'm very proud of continuous delivery as a book because it's been my pleasure to see the ideas in it help people over the years i now make a living helping people myself to implement those ideas i hope you enjoyed my list my only problem now is how to find the time to re-read all of these fantastic books thank you very much for watching [Music]
Info
Channel: Continuous Delivery
Views: 93,937
Rating: undefined out of 5
Keywords: software books, software books 2021, books for programmers, best books for software engineer, best software developer books, software books 2022, software book review, programmer books, software development, software engineering, computer science, continuous delivery, devops, Dave Farley
Id: RfOYWeu5pGk
Channel Id: undefined
Length: 16min 58sec (1018 seconds)
Published: Wed Dec 22 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.