what's up guys coding Jesus here guys in today's video I want to talk about five books that you should read if you want to break into the space of quantitative trading as a software engineer and these are books that will in general make you a better programmer and more well-rounded so even if you don't want to break into the space reading these books will help level up your game and will stay with you really for the rest of your career as a software engineer without further Ado guys let's get into it the first book is going to be tcpip Illustrated volume 1 this is going to cover your network related Concepts and these are often frequently asked questions in any software engineering interview now this book is very thick and it contains 800 Pages I'm going to be putting a Google sheet in the description box below that's going to tell you every chapter and every subsection that you should know cuz I've read this entire book cover to cover and I know what's going to be important for you so that's where I think you're going to get the most value out of this not just me telling you hey there's this book you know go read it slapping you over the head with it okay I'm going to be telling you exactly which chapters are going to be relevant for you for your own personal development this is going to be talking about things like tcpip well obviously it's in the title but it's going to go into more detail about things like multicast UDP ARP uh maximum you know transmission units uh selective acknowledgements congestion control window sizing TCP keep Al lives Etc all important concepts for you to understand throughout your career as a software engineer sometimes things that might be us in kind of like a junior interview but are most likely going to be expected for you to know at a higher level interview kind of like a mid- level or senior level interview okay the next book is going to be equally as important this book usually gets rounds dedicated to it in a actual interview so sometimes you know if you're interviewing at quantitative trading firms you might have a round dedicated to computer architecture you will Ace that round if you read the first two sections of this book this book is called operating systems Three Easy Pieces it's split up into three sections concurrency virtualization and persistence okay concurrency and virtualization are going to be very important this is going to be talking about things like translation look aside buffers it's going to be talking things about like internal fragmentation Bas and Bounds segmentation uh how memory is allocated threads versus processes process table what does a call stack look like what's a function pointer all right all very important Concepts multi-level feedback cues um time slicing round robin algorithms for scheduling work what is a scheduler Etc so operating systems Three Easy Pieces very important once again in the description box below I'll have a link to this book and the relevant chapters okay the next book on our plate is going to be about the actual Hardware of the computer itself so you understand the operating system which is essentially a piece of software that's running that has a certain level of privilege and they also understand the networking stack because you've read the networking book I just recommended and the sections that I recommended now you have to understand what the hardware is how does a computer look like internally under the hood and this book inside the machine is going to give you exactly that okay this is going to talk to you about things like the front end and the back end of the CPU it's going to talk to you about things like super scaler design pipelining caching cash coherency cash Affinity it's going to talk to you about things like cash lines Etc so this is going to be very important for you to understand um the way this book is written is kind of like how CPU was originally designed and the evolution of the CPU a lot of this is going to talk to you about things that are CPU specific which I'm going to tell you guys to skip if you read the Google sheet in the description box below but at the same time it has a lot of very high level important Concepts like Branch prediction tables Branch prediction units um x64 what does that mean uh computer architecture in terms of um um alus what does that look like what is a instruction pointer Etc all things that have existed regardless of the point in time that you've lived in when it comes to the CPU so these are all important parts of CPU development and the CPUs I guess life cycle as an instruction gets fetched for memory and goes from wherever on dis into cash propagates through cash into the CPU and how that instruction that gets propagated throughout the CPU and eventually turned into something meaningful that is the execution of a program okay now these are the these three books that I just recommended are are language agnostic they have nothing to do with the programming language in particular now I'm going the last two books are going to be language specific and if you're looking to break into Quant trading you want to get this in like C++ or maybe C or Python and some companies use Java but just in general I'm going to talk you about the theme that this book should cover and you'll find that language specific book that covers this theme hopefully that's clear okay the book that I want to recommend is called C++ concurrency in action by Anthony Williams okay this is a C++ concurrency book we read about concurrency in the operating systems book that book told us what concurrency looks like at the operating system level okay what's happening when a thread is being created memory is allocated blah blah blah blah blah blah okay now you want to talk about how you can actually go ahead and do that enable that concurrency via the language of choice that you have C++ concurrency and action is great usually books like these that are language specific ific concurrency they are going to focus on Concepts that might be a little difficult to grasp es especially with a harder language like C++ books like these you might need to read more than once once twice three times that doesn't mean you need to read it cover to cover three times it might mean that you read the whole book once then you go out into the world and you see for example how these concepts are used and you refer back to this book to solidify your understanding that's why I write a lot of notes in this book as you can see I write a lot of notes I can pick up on important Concepts and points in this book that I know I will need to revisit simply by virtue of reading so many books that I know what content is most likely going to be important so I put some notes I underline certain things and while these books are thick a lot of these books have diagrams guys so don't get anxious don't get nervous the last book that I want to talk about once again these last two books so the concurrency one and this one that I'm going to show you right now are language specific but they focus on a theme that's the most important part here they focus on a theme that you're going to need to know and understand and this last theme the one we just talked about was concurrency this last theme is going to be about core guidelines writing Clean safe efficient fast code code that people are going to want to read okay code that you're going to be proud of to submit if you're that type of person that says well I feel kind of sketchy about my code I have like four nested if statements how do I make this better you should be right to be sketched about it cuz when I see four nested if statements in a piece of code I know that this person probably isn't doing something right they haven't read enough about design patterns they haven't read enough about core guidelines or clean code I even see Senior software Engineers doing this guys senior software Engineers that have functions that are like 120 lines that makes no sense okay you need to delegate responsibility you need to understand how to write great design how to utilize design patterns to make your code more readable and make your code something you're proud of submitting so let's get into it I'm going to show you two books you can read either or if you're a C++ developer you can read both I read both I think I'm in the um that section of a book that's online where if you read the book and find a mistake you submit a correction I think it's called the Arata anyways if you know what I'm talking about put it in the comment section below I think I'm in the Arata of this book um cuz I've read it word for word and I've noticed some mistakes and i' I've corrected them but regardless these two books are great beautiful C++ and C++ software design like I said guys this is going to be high level and lowlevel architectural design patterns that are going to take your programming to the next level these are C++ specific you I'm sure you can find the equivalent in python or the equivalent in C or the equivalent in Java okay understanding the core guidelines and ways to utilize the language to write high quality software using certain patterns and certain designs is going to help you take your code to the next level make you a more confident software engineer and in general make you a better candidate for the role of Quant trading and really any industry out there guys if you like this video give me a thumbs up subscribe um if you want to speak to me one-on-one about breaking to Quant trading Link in the description box below I have a calendly link you can book my time if you guys would like to join access to the Discord watch these videos early you're going to become a patron patreon Link in the description box below if you'd like to watch My Life Behind the Scenes I post nothing Quant don't message me about Quant trading you can follow me on Instagram and do so there thanks for watching this video guys cheers