Books every software engineer should read in 2024.

Engineering with Utsav
25 Feb 202417:18

Summary

TLDRIn this comprehensive guide, software engineer Utav shares his curated list of essential reads for software engineers aiming to excel in their field, beyond mere programming skills. Covering a holistic approach to software engineering, the video emphasizes understanding data structures, algorithms, best practices in coding, distributed systems, data-driven decision-making, and machine learning. Utav highlights key books that foster a deep understanding of these areas without dwelling on specific programming languages or frameworks. Additionally, the guide touches on productivity, engineering management, and real-world case studies, offering insights into creating maintainable, scalable software and advancing career development in the tech industry.

Takeaways

  • πŸ“Š Being a good software engineer requires a holistic understanding beyond just programming skills, including design, implementation, and deployment processes.
  • πŸ“š The video recommends books that focus on concepts and strategies to become a great software engineer, rather than specific programming languages or frameworks.
  • πŸ“ˆ 'Grokking Algorithms' is highlighted for its simple and intuitive explanations of complex topics in data structures and algorithms.
  • πŸ”§ Martin Fowler's 'Refactoring' is recommended over 'Clean Code' and 'Clean Architecture' due to the importance of improving existing code in today's rapid prototyping environment.
  • πŸ›  Understanding distributed systems is deemed crucial for all software engineers, with recommendations for beginners and more advanced learners.
  • πŸ“‰ Data-driven decision-making is emphasized, with book recommendations on distinguishing valuable data signals from noise and statistical literacy.
  • πŸ“± The importance of core understanding in machine learning is discussed, with book recommendations for beginners and those looking to delve deeper.
  • πŸ‘¨β€πŸ’» Engineering management skills are essential, with 'Engineering Management for the Rest of Us' providing insights and pointers for effective leadership.
  • πŸ“ Case studies in books like 'Software Engineering at Google' offer real-world insights into the practices of large tech companies.
  • πŸ”₯ 'Deep Work' by Cal Newport is recommended for enhancing productivity by overcoming workplace distractions and achieving focused work.

Q & A

  • What is the primary focus of the book recommendations mentioned in the video?

    -The book recommendations focus on providing holistic software engineering knowledge, covering concepts beyond just learning specific programming languages or frameworks. They aim to teach the process of software creation, data understanding, and application of machine learning in a globally distributed setup.

  • Why does the speaker not recommend books on specific programming languages for software engineers?

    -The speaker believes that being a good software engineer is not just about mastering programming languages or frameworks, but also about understanding the broader aspects of software creation, data analysis, and machine learning in a global context.

  • What book does the speaker recommend for understanding data structures and algorithms, and why?

    -The speaker recommends 'Grokking Algorithms' by Aditya Bhargava, as it explains complex topics in a simple, intuitive, and fun manner, making it more accessible and less intimidating than more academic texts.

  • Why does the speaker prefer 'Refactoring' by Martin Fowler over 'Clean Code' and 'Clean Architecture' by Robert C. Martin?

    -The speaker believes that in the current rapid prototyping environment, the act of refactoring (improving existing code) is more important than initially writing perfect code. 'Refactoring' focuses on transforming suboptimal code into maintainable and extensible production-ready code, which aligns better with modern software development practices.

  • What are the recommended books for understanding distributed systems?

    -For beginners, 'Understanding Distributed Systems' by Roberto Vitillo is recommended for its simplicity and coverage. For more in-depth knowledge, 'Designing Data-Intensive Applications' by Martin Kleppmann (the red book) is suggested.

  • What is the purpose of the book 'The Signal and the Noise' by Nate Silver in the context of software engineering?

    -The book 'The Signal and the Noise' is recommended for understanding how to separate valuable data signals from noise, an essential skill for making informed decisions based on data analytics in software engineering.

  • What are the suggested books for starting a journey in machine learning?

    -The speaker suggests starting with 'The 100 Page Machine Learning Book' by Andrei Burkov for a concise introduction, followed by 'Deep Learning' by Yoshua Bengio and Ian Goodfellow for more detailed study. 'Designing Machine Learning Systems' by Chip Huyen is recommended for applying ML in software systems.

  • Why is 'Engineering Management for the Rest of Us' by Sarah Drasner recommended for software engineering managers?

    -The book is recommended for its insights into the world of engineering management, offering practical advice, pointers, and real-world examples for effective management in software engineering.

  • What is the significance of the 'case studies' category in the book recommendations?

    -The 'case studies' category offers real-world examples and anecdotes about successes and failures in architecting large, high-scale applications, providing insights that typically come with experience but are rarely found in generic books.

  • Why is 'Deep Work' by Cal Newport suggested for software engineers, and what does it offer?

    -Deep Work' is suggested for its strategies on overcoming workplace distractions and achieving focused work, which is crucial for high productivity in software engineering.

Outlines

00:00

πŸ“š Essential Reads for Software Engineers

This segment introduces a curated list of books aimed at broadening the skills of software engineers beyond just programming language proficiency. The focus is on understanding the entire software development process, including design, implementation, deployment, data analysis, and machine learning in a globally distributed context. The speaker, Utav, a seasoned software engineer and entrepreneur based in Seattle, emphasizes the importance of holistic career development covering technical skills, efficiency, mindset, entrepreneurship, and financial freedom. Key book recommendations include 'Grokking Algorithms' by Aditya Bhargava for its intuitive approach to complex concepts, and 'Refactoring' by Martin Fowler, highlighting the importance of improving existing code over perfect initial code due to the rapid prototyping environment in today's software development landscape.

05:03

🌐 Navigating Distributed Systems and Data-Driven Design

This section emphasizes the critical importance of understanding distributed systems for modern software engineers, due to the global distribution of application components for improved availability, redundancy, and disaster recovery. Recommended readings include 'Understanding Distributed Systems' by Roberto Vitillo for beginners and 'Designing Data-Intensive Applications' by Martin Kleppmann for a deeper dive. The discussion also covers the necessity of being data-driven in 2024, recommending 'The Signal and the Noise' by Nate Silver for understanding data analysis and 'The Art of Statistics' by David Spiegelhalter for gaining statistical literacy. Additionally, the evolution of AI and its impact on software engineering is highlighted, suggesting books for those looking to start or deepen their understanding of machine learning.

10:04

πŸ€– Machine Learning Essentials and Career Transition

This paragraph delves into the foundational and advanced aspects of machine learning, crucial for software engineers in the AI-dominated landscape of 2024. Starting recommendations include 'The 100 Page Machine Learning Book' by Andrei Burkov for basics, followed by 'Deep Learning' by Yoshua Bengio and Ian Goodfellow for more comprehensive insights. Additionally, 'Designing Machine Learning Systems' by Chip Huyen is suggested for engineers focusing on building ML systems. The segment also introduces Interview Kickstart's SwitchUp course, offering a structured path for professionals transitioning into AI, data science, or machine learning roles, emphasizing practical learning and job interview preparation.

15:04

πŸ‘¨β€πŸ’Ό Insights into Engineering Management and Real-world Case Studies

This part of the script targets engineering managers and aspiring ones, recommending 'Engineering Management for the Rest of Us' by Sarah Drasner, which provides valuable insights and tips for effective management. Additionally, the segment introduces a new category of recommendations focusing on case studies from large-scale application development, with 'Software Engineering at Google' and 'Software Engineering the Hard Parts' as highlighted readings. These books offer real-world examples and anecdotes from major tech companies, aiming to impart lessons learned from successes and failures in a way that technical concepts alone cannot.

πŸ“ˆ Maximizing Productivity in Software Engineering

The final segment addresses productivity, a key aspect of achieving peak output in software engineering. 'Deep Work' by Cal Newport is recommended as the go-to book for understanding and overcoming workplace distractions, promoting focused and efficient work practices. The summary stresses the importance of productivity in realizing one's full potential, regardless of the specific field of work. This section also encourages viewers to explore previous book recommendations and share their own, fostering a community of continuous learning among software engineers.

Mindmap

Keywords

πŸ’‘Software Engineering

Software engineering is a detailed study and application of engineering to the design, development, and maintenance of software. The video emphasizes that being a good software engineer goes beyond just coding skills; it involves understanding the entire process of software creation including requirements, design, implementation, and deployment. The holistic approach is highlighted, indicating that software engineers should understand not just the technical, but also the process and improvement aspects through modern machine learning pipelines in a globally distributed setup.

πŸ’‘Refactoring

Refactoring is the process of restructuring existing computer code without changing its external behavior. It's aimed at improving the nonfunctional attributes of the software. In the video, refactoring is highlighted as more crucial than writing perfect code initially because in today's rapid prototyping environment, code often starts as a 'hack' and is then gradually improved. The speaker mentions Martin Fowler's book 'Refactoring' as a key resource, emphasizing the importance of transforming hacky, unmaintainable code into something more robust and maintainable.

πŸ’‘Distributed Systems

Distributed systems refer to a network of computers that communicate and coordinate their actions by passing messages. The video underscores the importance of understanding distributed systems, as most modern applications are built on such architectures for improved availability, redundancy, and disaster recovery. It introduces books for beginners and advanced learners to understand the principles and applications of distributed systems, suggesting that every software engineer should grasp these concepts.

πŸ’‘Data Driven

Being data-driven refers to making decisions based on data analysis rather than intuition or personal experience. In software engineering, this involves understanding what data to collect, how to interpret it, and distinguishing valuable signals from noise. The video stresses the importance of statistical literacy and being able to interpret data accurately, suggesting books that can provide insights into becoming more data-driven in the software development process.

πŸ’‘Machine Learning

Machine Learning (ML) is a subset of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed. The video highlights the increasing relevance of ML in software engineering and recommends books to get started with ML concepts. The speaker suggests that even if engineers are not directly working with ML, understanding its core principles is becoming increasingly important in the field.

πŸ’‘Engineering Management

Engineering management involves coordinating and leading engineering teams to ensure efficient project execution and innovation. The video discusses the transition from individual contributor roles to management positions and recommends 'Engineering Management for the rest of us' by Sarah Drasner for insights into effective engineering management practices. It emphasizes the importance of skills like prioritization, collaboration, and culture in managing engineering teams effectively.

πŸ’‘Case Studies

Case studies in software engineering provide real-world examples and experiences from the development of large-scale applications. The video introduces a new category of books that delve into case studies from major companies like Google and Microsoft. These books are recommended to gain insights into the successes and failures of large-scale application development, providing practical knowledge that usually comes with years of experience.

πŸ’‘Productivity

In the context of software engineering, productivity refers to the efficiency and effectiveness with which software engineers complete their work. The video discusses the importance of productivity for reaching one's highest potential output and recommends 'Deep Work' by Cal Newport for strategies to overcome workplace distractions and improve concentration. The focus is on developing the ability to perform deep, focused work to increase productivity.

πŸ’‘Data Structures and Algorithms

Data structures and algorithms are fundamental concepts in computer science that involve the organization of data and the methods used to manipulate it. The video suggests that a thorough understanding of these concepts is crucial for all software engineers, regardless of their specific domain. 'Grokking Algorithms' is recommended for its simple and intuitive explanation of complex topics, helping engineers build a solid foundation in these essential areas.

πŸ’‘Career Development

Career development in the context of the video pertains to the growth and progression of an individual's career in software engineering. The speaker outlines five key pillars of career development: technical skills, engineering efficiency, mindset, entrepreneurship, and financial freedom. The video aims to mentor viewers on these aspects, providing guidance and recommendations to enhance their software engineering careers and overall professional development.

Highlights

Annual list of books for software engineers focusing on holistic understanding of software development.

Grokking Algorithms recommended for understanding data structures and algorithms in a simple manner.

Importance of refactoring over perfect coding highlighted through the recommendation of 'Refactoring' by Martin Fowler.

Shift towards rapid prototyping and the practical necessity of refactoring in modern software development.

Understanding distributed systems is imperative, recommended starting with 'Understanding Distributed Systems' by Roberto Vitello.

For advanced learning in distributed systems, 'Designing Data-Intensive Applications' by Martin Kleppmann is recommended.

The importance of data-driven decision making in software engineering, with book recommendations 'The Signal and the Noise' by Nate Silver and 'The Art of Statistics' by David Spiegelhalter.

Machine learning essentials covered with recommendations for 'The 100 Page Machine Learning Book' by Andriy Burkov and 'Deep Learning' by Yoshua Bengio and Ian Goodfellow.

Designing Machine Learning Systems for practical implementation advice in software engineering.

Engineering management insights from 'Engineering Management for the Rest of Us' by Sarah Drasner.

Case studies in software engineering from 'Software Engineering at Google' and 'Software Engineering the Hard Parts' for real-world insights.

Productivity in software engineering emphasized with 'Deep Work' by Cal Newport.

The video aims to provide a comprehensive guide for software engineers to enhance their careers beyond just coding skills.

Interview Kickstart's switchup course for career transition into AI, data science, or machine learning.

The video serves as a holistic resource for both budding and experienced software engineers to develop well-rounded skills.

Transcripts

play00:00

[Music]

play00:09

so every year I make a list of books

play00:12

that I believe that every software

play00:14

engineer should read regardless of what

play00:16

your expertise is whether you are a

play00:18

front-end developer a backend engineer

play00:20

or you eat machine learning models for

play00:23

breakfast I believe that being a good

play00:25

software engineer in today's world isn't

play00:27

just about being the best programmer or

play00:29

a great designer a good software

play00:31

engineer holistically understands the

play00:34

process of creating software the

play00:36

requirements design implementation and

play00:39

deployment and it doesn't stop there a

play00:41

good software engineer understands the

play00:43

data signals and incremental

play00:45

improvements through modern machine

play00:46

learning pipelines all in a very

play00:49

globally distributed setup So to that

play00:51

end none of the books in this video will

play00:54

be teaching you how to learn a specific

play00:56

programming language or a framework I

play00:58

even made a video recently about why you

play01:00

don't need books to learn a new

play01:02

programming language um this list of

play01:05

books will instead teach you the

play01:07

concepts and give you the tools and

play01:09

strategies to become a great software

play01:11

engineer from a very holistic

play01:14

[Music]

play01:21

approach hi folks my name is utav I'm a

play01:23

software engineer based in Seattle over

play01:25

the past 15 years or so I've held

play01:27

diverse software engineering roles

play01:29

created a few Tech startups and I'm

play01:31

currently at Microsoft if you're new to

play01:33

this channel my goal here is to help you

play01:34

get the best out of your career by

play01:36

mentoring you around five key pillars of

play01:38

career development technical skills

play01:41

engineering efficiency mindset

play01:43

entrepreneurship and Financial Freedom

play01:45

so if that sounds interesting please

play01:47

consider subscribing and follow me for

play01:49

behind the scenes and monthly

play01:51

[Music]

play01:52

q&as okay so whether you're just

play01:54

starting out as a software engineer or

play01:56

you are a professional already you will

play01:59

need a thorough understanding of

play02:01

programming Concepts like data

play02:03

structures and algorithms for this my

play02:05

recommendation hasn't changed from last

play02:07

year the one book I would pick to

play02:09

recommend is Aditya varg's grocking

play02:12

algorithms the biggest reason I

play02:14

recommend this book year after year is

play02:16

because it explains complex topics in

play02:18

data structures and algorithms in a very

play02:20

simple intuitive manner don't take me

play02:22

wrong very white paperish academic books

play02:25

like introd algorithms by clrs or

play02:27

algorithm design manual from skner have

play02:29

the value but I do feel like those tend

play02:31

to be unnecessarily complex and scare

play02:33

away a lot of Engineers from getting

play02:35

interested in complex Concepts without

play02:38

interest you can't progress your

play02:39

learning this book takes the opposite

play02:41

approach by explaining things in a very

play02:43

casual and fun manner but is more than

play02:46

adequate to help you thoroughly grasp

play02:48

the concepts and if you ever want a more

play02:50

technical approach you can always pick

play02:52

one of those more academic books as a

play02:54

followup to this

play02:57

one you can learn all the coding you

play02:59

want want solve all the lead code

play03:01

problems blazing fast and you will

play03:03

probably do quite well in coding

play03:05

interviews but for actually being a good

play03:07

software engineer that alone won't get

play03:09

you too far there is an art to putting

play03:11

all your raw knowledge about coding and

play03:13

design together as an extensible and

play03:15

maintainable package that we call

play03:18

software and this usually comes with

play03:20

years of experience the learning that

play03:22

you get from doing the right things and

play03:24

all the wrong things the good news is

play03:26

that you don't have to wait a decade to

play03:28

gain some experience some books package

play03:30

this information in a very digestible

play03:32

and usable form as a set of best

play03:34

practices one of my favorite books for

play03:36

this is Martin fowers refactoring I used

play03:39

to recommend clean code and clean

play03:40

architecture by Robert C Martin as part

play03:42

of this category but I decided to drop

play03:44

those books this year I've been building

play03:47

software for more than two decades now

play03:49

and now more than ever companies and

play03:51

teams have moved to rapid prototyping

play03:53

where you build a hack together proof of

play03:55

concept completely drop it if it fails

play03:58

the feasibility test or Gra gradually

play04:00

turn that hacky po into production grade

play04:02

code if it passes the initial sniff test

play04:05

in this system there's really no time to

play04:07

write this perfect Enterprise level code

play04:09

that follows all the best practices in

play04:11

the middle of grabbing the next

play04:12

opportunity and turning around a

play04:14

workable demo to get Buy in from your

play04:16

senior leadership team there is no time

play04:18

to follow the golden route of perfect

play04:20

software design and this is why the act

play04:22

of refactoring which is basically

play04:24

improving existing code is way more

play04:26

important than writing great code in the

play04:28

first place and that's what this book is

play04:30

all about how to take crappy hacky

play04:32

unmaintainable code whether it's yours

play04:34

or someone else's and transform that

play04:37

into bug-free maintainable and

play04:39

extensible production ready Cod I'll

play04:41

also add a note here not just for this

play04:42

book but for any book that teaches you

play04:44

best practices don't take them as the

play04:46

Bible of coding and instead as a

play04:48

supplemental information that you could

play04:50

potentially apply in your scenario

play04:52

because not every principle applies to

play04:54

every situation and understanding that

play04:56

is as important as understanding the

play04:58

concepts themselves

play05:02

okay if you're still wondering what

play05:03

distributed systems are in 2024 you have

play05:06

either been living under a giant rock or

play05:08

you simply don't realize that literally

play05:10

every decent application you use is a

play05:12

collection of one or more globally

play05:15

distributed systems simply put days of

play05:17

Hosting your entire application on a Dev

play05:19

box under your desk are long gone even

play05:22

if your application is a monolith it

play05:23

will have multiple tiers that will

play05:25

eventually be distributed regionally or

play05:27

globally for availability redundancy

play05:29

disaster recovery and so on so it's

play05:32

imperative that every software engineer

play05:34

at least understands the major Concepts

play05:36

behind distributed architectures I have

play05:38

two book recommendations for this and

play05:40

they have remained the same for a few

play05:42

years now because one the space hasn't

play05:45

really seen any radical changes in these

play05:47

years and two no better books have come

play05:49

up if you're absolutely new to

play05:51

distributed systems start with Roberto

play05:54

vitello's understanding distributed

play05:56

system this book does for distributed

play05:58

systems what bling algorithms does for

play06:01

data structures and algorithms it

play06:03

simplifies the concepts and makes it

play06:04

easily digestible even for beginners at

play06:07

the same time it covers a lot of ground

play06:09

and gives you a highlevel view of the

play06:11

entire space I won't go into much more

play06:13

detail here but if you're interested in

play06:15

the details about this book check out my

play06:17

review I did a while back if you have

play06:19

worked with distributed architectures

play06:20

whether practically or academically then

play06:22

the next step is the Holy Grail of books

play06:25

for distributed systems and that's

play06:26

Martin kelman's designing data intensive

play06:29

applications commonly known as ddia or

play06:32

just the red book uh this book takes

play06:34

every concept covered in understanding

play06:36

distributed systems and Dives much

play06:39

deeper with implementation details case

play06:41

studies and even algorithms which makes

play06:43

this book also a great follow-up for the

play06:45

first

play06:48

one similar to distributed systems if

play06:51

you're not data driven in 2024 you're

play06:53

not doing it right you don't have to be

play06:55

or need to be a data scientist to

play06:57

understand data even a high level

play06:59

understanding understanding of what

play06:59

signals to look for how to collect data

play07:02

or interpret your data and Telemetry in

play07:04

a statistically accurate manner will go

play07:06

a long way in your software engineering

play07:08

career now if you're an actual data

play07:10

scientist you will be reading a lot more

play07:12

technical material in and around data

play07:14

science but since this video is for

play07:16

software Engineers I will recommend two

play07:18

books that are very easy reads but will

play07:20

give you deep insights into how you can

play07:22

leverage data to your advantage the

play07:24

first book here is the signal and the

play07:26

Noise by Nate silver which as the name

play07:28

suggests explores the idea of separating

play07:31

signals from the noise I've seen this

play07:33

happen too many times over the course of

play07:34

my career where teams and even

play07:36

organizations obsess over certain

play07:38

metrics just because they have the data

play07:40

to populate set metric and not because

play07:42

the metric is actually important or

play07:44

actionable so how do you decide what

play07:45

data to collect how to make sense of it

play07:47

and also confidently ignore a lot of

play07:49

stuff that comes in as noise the last

play07:51

part is equally as important as

play07:53

capturing valuable data I love this book

play07:55

because it investigates the idea of

play07:57

making predictions by distinguishing

play07:59

true signal from a ton of noisy data and

play08:02

the scenarios used in this book don't

play08:03

have anything to do with software

play08:04

engineering there are things like

play08:06

baseball hurricanes gambling and the

play08:08

stock market and that is the beauty of

play08:10

data it is universal which also means

play08:12

that the lessons you learn from this

play08:13

book are easily transferable to the

play08:15

field of software engineering the second

play08:17

book is about statistical literacy if

play08:19

you don't understand some key Concepts

play08:21

in statistics you will not be able to

play08:23

make sense of data regardless of how

play08:25

much noise is filtered out I remember

play08:27

when I first started working with data I

play08:28

realized I was a bit weak in some of the

play08:30

concepts in statistics so I reached out

play08:33

to a buddy of mine who's a data

play08:34

scientist and he recommended the book

play08:36

probability and statistics to me it was

play08:38

a good reference book but I felt like I

play08:40

was back in time doing College

play08:41

mathematics and that's the problem most

play08:44

books that teach mathematical Concepts

play08:46

tend to be very academic which takes a

play08:48

different mindset to read and which

play08:49

isn't always fun but fear not because

play08:52

the art of Statistics how to learn from

play08:54

data by David Spiegel halter will help

play08:56

you learn all the important Concepts and

play08:58

statistics while chilling in your couch

play09:01

seriously this is one of the easiest

play09:02

reads in statistics that covers such a

play09:04

wide breath of concept this book also

play09:06

has a ton of examples where statistical

play09:08

reasoning was applied to real world

play09:10

problems and this anecdotal form of

play09:12

teaching really helps you grasp the

play09:14

concepts helping you form a mental model

play09:16

of how you can interpret data to answer

play09:18

the questions you

play09:20

have since we are discussing the topic

play09:23

of data I cannot ignore the elephant in

play09:25

the room especially not in 2024 with

play09:27

diffusion models like Sora that just

play09:29

launched a few weeks ago we have gone

play09:31

from AI generating crappy videos like

play09:33

scary Will Smith gobling spaghetti to a

play09:36

pristine render of a couple walking

play09:37

around in Japan in less than 2 years and

play09:40

with the speed and intensity at which AI

play09:42

is being tagged to literally any

play09:44

application in existence it would be

play09:46

foolish as a software engineer to not at

play09:48

least have some core understanding of

play09:50

machine learning I have three book

play09:51

recommendations for machine learning the

play09:53

first one is the 100 page machine

play09:55

learning book by Andre bof this is a

play09:58

great little introduction to the world

play10:00

of machine learning it covers the basics

play10:02

of some of the most common machine

play10:03

learning Concepts like neural networks

play10:05

and deep learning which is what models

play10:07

like GPT 4 are based on I would say that

play10:09

this is a very solid first machine

play10:11

learning book um it's not going to make

play10:13

you an expert in ml obviously but it is

play10:15

going to cover all the basics in a

play10:17

concise and fun manner without

play10:18

overwhelming you or putting you to sleep

play10:20

if this book Sparks your interest then

play10:22

you can always refer to a more advanced

play10:24

book and that's my second recommendation

play10:27

if you want to get a bit more in depth

play10:29

dep my recommendation is to go with deep

play10:31

learning by yosua Benjo and Ian

play10:34

Goodfellow this is your typical machine

play10:35

learning book that covers the details

play10:37

and nuances in a more academic fashion

play10:39

or you can also go for the tried and

play10:41

tested route of the old book AI a modern

play10:43

approach by Peter norvic and Stuart

play10:45

Russell my final recommendation here is

play10:47

designing machine learning systems by

play10:49

chip huan since we are software

play10:51

Engineers rather than being experts in

play10:53

the models and algorithms themselves

play10:55

chances are likely that we will end up

play10:57

building systems that deal with machine

play10:59

learning and that's exactly what this

play11:01

book is for um it's essentially what

play11:03

designing data intensive application is

play11:04

for distributed systems it guides you

play11:06

through the process of creating training

play11:08

data feature application model retention

play11:11

and a whole lot more but if you aren't

play11:13

too keen on starting your machine

play11:15

Learning Journey all by yourself then

play11:17

today's video sponsor interview

play11:19

Kickstart and their switchup course can

play11:21

help you transition your career into AI

play11:24

data science or machine learning look

play11:26

the shift to artificial intelligence is

play11:28

here to stay and all of us will have to

play11:30

adapt our skills in some form to match

play11:32

these emerging Trends whether it is out

play11:34

of interest and curiosity or out of

play11:36

requirement but maybe you're not into

play11:37

learning a whole new language or a stack

play11:39

by yourself or maybe you a busy working

play11:41

professional who does not have time to

play11:43

go through all these books and tutorials

play11:45

and things like that whatever the reason

play11:47

is if you are eager to transition your

play11:49

career into AI data science or machine

play11:51

learning interview kickstarts switch a

play11:53

program is an excellent choice both

play11:56

their data science and machine learning

play11:57

curriculums cover the found foundations

play11:59

and the essentials like Concepts in

play12:01

mathematics and statistics to get you

play12:03

started on the right track each course

play12:05

also has a Capstone project to exercise

play12:07

all your learnings along with dedicated

play12:09

interview preparation time the classes

play12:11

are all live focused on practical

play12:12

learning and are agile with heavy focus

play12:15

on job interviews and the best of all

play12:16

they're taught by a combination of fang

play12:19

engineers and University instructors

play12:21

through the course you can also be

play12:23

assured that you will receive top-notch

play12:24

mentorship and one-on-one mock interview

play12:26

sessions from industry professionals who

play12:29

understand the hiring processes behind

play12:31

some of the best companies in the world

play12:33

with a strong Alumni network of over

play12:35

16,000 professionals you'll have access

play12:37

to referrals and Insider tips to help

play12:39

you land your next job interview so if

play12:42

you're interested in transitioning your

play12:43

career over to AI data science or

play12:45

machine learning attend interview

play12:47

kickstarts free webinar to see how their

play12:49

switch up course can help you the link

play12:51

will be in the description below also

play12:53

thanks to interview Kickstart for

play12:54

sponsoring this

play12:56

[Music]

play12:57

video okay my next section is primarily

play13:00

for engineering managers but I encourage

play13:03

everyone to read this because most of us

play13:05

will likely someday become software

play13:07

engineering managers the book is

play13:09

Engineering Management for the rest of

play13:11

us by Sarah drasner this is an excellent

play13:13

book that gives you an insight into the

play13:15

world of engineering managers and gives

play13:17

you some amazing pointers at being a

play13:19

great one at that as someone who's

play13:21

managed many different teams both as a

play13:23

tech lead and as an engineering manager

play13:25

I definitely think that this book has

play13:26

some very good advice pointers and real

play13:29

world examples to help you navigate your

play13:31

path as a software engineering manager

play13:33

or a future software engineering manager

play13:35

this book explores all the key areas

play13:37

that you'll deal as an em prioritization

play13:40

execution collaboration escalation

play13:42

feedback and culture to name a

play13:46

few okay we're still not done this year

play13:48

I decided to add a brand new category

play13:50

called case studies to my book

play13:52

recommendations look you can learn

play13:54

technical Concepts from pretty much

play13:55

anywhere but hearing stories anecdotes

play13:58

and real world example though they

play14:00

really help you grow and unfortunately

play14:02

you can't really get them from most

play14:04

books or generic YouTube videos that

play14:06

appeal to the masses that comes with

play14:08

experience but I have found that there

play14:10

are a few books over the past few years

play14:12

that I've released um that do a great

play14:14

job at filling that void and that's how

play14:16

this category was born these are two

play14:17

books that share very unique anecdotes

play14:19

about the successes and failures in

play14:21

architecting large highs scale

play14:23

applications and I think that both these

play14:25

books do an excellent job at giving you

play14:27

a glimpse at how it is to build large

play14:29

applications at some of the biggest

play14:31

companies like the likes of Microsoft

play14:33

Google Amazon so on and so forth the

play14:35

first book Is software engineering the

play14:36

hard Parts this is a great book to pick

play14:39

up because it is literally a collection

play14:41

of real world examples explaining

play14:43

anecdotally why large applications

play14:45

especially with distributed

play14:46

architectures are hard why things worked

play14:48

when they worked and why they failed

play14:50

often catastrophically while this book

play14:53

will never replace real experience as I

play14:55

said before this is the closest you'll

play14:57

get to one that can give give you a lot

play14:59

of information that only comes with

play15:00

experience please note that this book is

play15:02

not for absolute beginners you need to

play15:04

have at least some understanding of how

play15:05

large applications are built or at least

play15:07

a theoretical knowledge of distributed

play15:09

systems to fully enjoy this book my

play15:11

second recommendation here is software

play15:13

engineering at Google if you have ever

play15:14

wondered how it feels like to work at a

play15:16

large tech company like Google what

play15:18

engineering practices they follow to

play15:20

keep their code healthy and maintainable

play15:22

or how they manage their large code base

play15:24

this is a great book for you and even

play15:25

though this book has stories about

play15:27

Google the information here applies to

play15:29

pretty much any top tier big tech

play15:30

company and while this book does not lay

play15:33

out the best practices like the book

play15:34

refactoring does for example reading the

play15:37

stories here will still teach you some

play15:38

fundamental principles that involve

play15:40

designing architecting writing and

play15:42

maintaining

play15:43

[Music]

play15:45

code okay I promise this is the last

play15:47

category I didn't want to make five

play15:49

different videos about books trying to

play15:51

milk as many views as possible instead I

play15:53

wanted to make one really holistic video

play15:55

that can help every software engineer in

play15:57

all aspects of their work and even

play15:59

though productivity isn't directly

play16:01

related to software engineering per se

play16:03

it's hard to leave it behind as a

play16:05

category because if you aren't

play16:07

productive at what you do you will never

play16:09

really reach The Highest Potential

play16:10

output you can actually provide now

play16:13

productivity is a massive topic one that

play16:14

probably warrants a video on its own but

play16:16

for the sake of brevity I will make only

play16:18

one recommendation here if you had to

play16:20

read one book on productivity go ahead

play16:22

and grab deep work by Cal Newport this

play16:25

book examines current workplace culture

play16:27

and the unintentional distractions faced

play16:29

by employees and offers strategies to

play16:32

overcome these distractions this book is

play16:34

essentially divided into two parts the

play16:36

idea which discusses labor Trends and

play16:38

the rise of machine learning and

play16:40

practical rules for achieving deep work

play16:42

and the second part is the rules which

play16:44

provides practical guidelines and

play16:45

strategies for achieving deep work by

play16:48

emphasizing the importance of training

play16:49

the mind to focus and minimize

play16:51

distractions software engineer or not

play16:54

I'm sure anyone that reads this book

play16:56

will get value out of it also check out

play16:58

last year book recommendations for

play16:59

additional books that I did not include

play17:01

this year that still have value and if

play17:04

you have any recommendations on your own

play17:06

please add them in the comments so we

play17:07

can all read them and definitely watch

play17:09

my review of the Apple Vision Pro from a

play17:11

software engineering point of view and

play17:12

finally please do the usual and help out

play17:14

the channel like comment and subscribe

play17:17

cheers