• No results found

Computer Science Distilled

N/A
N/A
Protected

Academic year: 2021

Share "Computer Science Distilled"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

2

233//0011//2200118 8 CCoommppuutteer r SScciieenncce e DDiissttiilllleedd

h

httttppss::////ssoouurrcceemmaakkiinngg..ccoomm//ccoommppuutteerr--sscciieennccee--ddiissttiilllleed d 11//3355

Computer Science

Computer Science Distilled

 Distilled

Meet a new book! It’s called

Meet a new book! It’s called Computer Science DistilledComputer Science Distilled, and it’s the missing book on the principles, and it’s the missing book on the principles

of computation for ordinary

of computation for ordinary programmers. It avoiprogrammers. It avoids the complexity coders don’t need. It gets theds the complexity coders don’t need. It gets the

main points across.

main points across.

Imagine how empowering it

Imagine how empowering it would feel to underswould feel to understand the important tand the important conceconcepts all seniorpts all senior

programmers abide by. This

programmers abide by. This book makes it easy abook makes it easy and enjoyable for you to do so—no nd enjoyable for you to do so—no burnouts,burnouts,

no exhaustion or frustration

no exhaustion or frustration from academic jargofrom academic jargon!n!

It’s a short book, written in p

It’s a short book, written in plain, basic English. Itlain, basic English. It presents ideas in their simplest form. It focuses presents ideas in their simplest form. It focuses

on practical aspects of computer science that matter most: everyday things that directly impact the

on practical aspects of computer science that matter most: everyday things that directly impact the

quality of your code.

quality of your code.

 Look inside

 Look inside

DOWNLOAD THE FIRST 2

DOWNLOAD THE FIRST 2

CHAPTERS OF THE BOOK FOR

CHAPTERS OF THE BOOK FOR

FREE AND CHECK THE QUALITY OF

FREE AND CHECK THE QUALITY OF

THE BOOK FOR YOURSELF.

THE BOOK FOR YOURSELF.

What's inside the book?

What's inside the book?

An introduction into computer logic and math

An introduction into computer logic and math

that helps to: that helps to:   Model

 Model ideasideas into owcharts and  into owcharts and pseudocode.pseudocode.

(2)

h

httttppss::////ssoouurrcceemmaakkiinngg..ccoomm//ccoommppuutteerr--sscciieennccee--ddiissttiilllleed d 22//3355  Learn to know right from wrong with

 Learn to know right from wrong with logiclogic..

Count

Count stuff. stuff.

 Calculate

 Calculate probabilitiesprobabilities safely. safely.

4 ways to

4 ways to

measure algorithms complexit

measure algorithms complexit

y

y

that allow you to: that allow you to:   Count and interpret

 Count and interpret timetime complexities. complexities.

 Express their growth with

 Express their growth with fancyfancy Big-OBig-O’’s.s.

 Run away from

 Run away from exponentialexponential algorithms. algorithms.

 Make sure you have enough computer

 Make sure you have enough computer memory memory ..

8 strategies to solve

8 strategies to solve

computation problems

computation problems

that let you: that let you:   Handle repetitive tasks through

 Handle repetitive tasks through iterationiteration..

 Iterate elegantly using

 Iterate elegantly using recursionrecursion..

 Use

 Use brute forcebrute force when you’re lazy but powerful. when you’re lazy but powerful.

 Test bad options and then

 Test bad options and then backtrackbacktrack..

 Save time with

 Save time with heuristicsheuristics for a reasonable way out. for a reasonable way out.

Divide and conquer

Divide and conquer your toughest  your toughest opponents.opponents.

 Identify old issues

 Identify old issues dynamically dynamically  not to waste energy again. not to waste energy again.

Bound

Bound your problem so the  your problem so the solution doesn’t escape.solution doesn’t escape.

15 most common data types and structures

15 most common data types and structures

that show you: that show you:  How abstract data types

How abstract data types keep your code clean. keep your code clean.

Common abstractions

Common abstractions you need in your toolbox. you need in your toolbox.

 Different ways to

 Different ways to structure datastructure data in memory. in memory.

7 sorting,

7 sorting,

searching and graphs-related algorithms

searching and graphs-related algorithms

that educate you how to: that educate you how to:   Efciently

 Efciently sortsort super long lists. super long lists.

 Quickly

 Quickly searchsearch for the item you need. for the item you need.

 Operate and manipulate

 Operate and manipulate graphsgraphs..

 Use WWII

 Use WWII operations researchoperations research to optimize processes. to optimize processes.

5 major types of databases

5 major types of databases

that let you: that let you:   Understand the

(3)

2

233//0011//2200118 8 CCoommppuutteer r SScciieenncce e DDiissttiilllleedd

h

httttppss::////ssoouurrcceemmaakkiinngg..ccoomm//ccoommppuutteerr--sscciieennccee--ddiissttiilllleed d 22//3355  Learn to know right from wrong with

 Learn to know right from wrong with logiclogic..

Count

Count stuff. stuff.

 Calculate

 Calculate probabilitiesprobabilities safely. safely.

4 ways to

4 ways to

measure algorithms complexit

measure algorithms complexit

y

y

that allow you to: that allow you to:   Count and interpret

 Count and interpret timetime complexities. complexities.

 Express their growth with

 Express their growth with fancyfancy Big-OBig-O’’s.s.

 Run away from

 Run away from exponentialexponential algorithms. algorithms.

 Make sure you have enough computer

 Make sure you have enough computer memory memory ..

8 strategies to solve

8 strategies to solve

computation problems

computation problems

that let you: that let you:   Handle repetitive tasks through

 Handle repetitive tasks through iterationiteration..

 Iterate elegantly using

 Iterate elegantly using recursionrecursion..

 Use

 Use brute forcebrute force when you’re lazy but powerful. when you’re lazy but powerful.

 Test bad options and then

 Test bad options and then backtrackbacktrack..

 Save time with

 Save time with heuristicsheuristics for a reasonable way out. for a reasonable way out.

Divide and conquer

Divide and conquer your toughest  your toughest opponents.opponents.

 Identify old issues

 Identify old issues dynamically dynamically  not to waste energy again. not to waste energy again.

Bound

Bound your problem so the  your problem so the solution doesn’t escape.solution doesn’t escape.

15 most common data types and structures

15 most common data types and structures

that show you: that show you:  How abstract data types

How abstract data types keep your code clean. keep your code clean.

Common abstractions

Common abstractions you need in your toolbox. you need in your toolbox.

 Different ways to

 Different ways to structure datastructure data in memory. in memory.

7 sorting,

7 sorting,

searching and graphs-related algorithms

searching and graphs-related algorithms

that educate you how to: that educate you how to:   Efciently

 Efciently sortsort super long lists. super long lists.

 Quickly

 Quickly searchsearch for the item you need. for the item you need.

 Operate and manipulate

 Operate and manipulate graphsgraphs..

 Use WWII

 Use WWII operations researchoperations research to optimize processes. to optimize processes.

5 major types of databases

5 major types of databases

that let you: that let you:   Understand the

(4)

h

httttppss::////ssoouurrcceemmaakkiinngg..ccoomm//ccoommppuutteerr--sscciieennccee--ddiissttiilllleed d 33//3355  Be exible using

 Be exible using non-relationalnon-relational database systems. database systems.

 Coordinate computers and

 Coordinate computers and distributedistribute your data. your data.

 Map stuff better with

 Map stuff better with geographicalgeographical database systems. database systems.

 Share data across systems thanks to data

 Share data across systems thanks to data serializationserialization..

A tour into

A tour into

computer architecture

computer architecture

where you will learn to: where you will learn to:   Understand foundations

 Understand foundations of computerof computerarchitecturearchitecture..

 Choose a

 Choose a compilercompiler to translate your code for computers. to translate your code for computers.

 Trade storage for speed with the

 Trade storage for speed with the memory hierarchy memory hierarchy ..

An overview of a programming language

An overview of a programming language

where you will see how to: where you will see how to:   Spot the secret

 Spot the secret linguisticslinguistics that govern code. that govern code.

 Store your precious information inside

 Store your precious information inside variables variables..

 Think solutions under different

 Think solutions under different paradigmsparadigms..

Who's the Author?

Who's the Author?

Hi! My name is Wladston, and I have a master’s degree in computer

Hi! My name is Wladston, and I have a master’s degree in computer

science. I love academic work: my research was published in

science. I love academic work: my research was published in

several prestigious conferences. But I have to admit: learning

several prestigious conferences. But I have to admit: learning

computer science from traditional textbooks was tough. How on

computer science from traditional textbooks was tough. How on

Earth can anyone who’s not a full-time academic researcher learn

Earth can anyone who’s not a full-time academic researcher learn

from these books? No

from these books? No wonder most people don’t learnwonder most people don’t learneven theeven the

basics

basics of computer science. of computer science.

That’s why I took on the challenge to create a different computer science book, from scratch. Along

That’s why I took on the challenge to create a different computer science book, from scratch. Along

the years, I collected and simplied computer science points every programmer must know—

the years, I collected and simplied computer science points every programmer must know—

ditching the rigor and formality of academia. Now, I’m proud to nally show you the result of my

ditching the rigor and formality of academia. Now, I’m proud to nally show you the result of my

work.

work.

Why should I buy this book?

Why should I buy this book?

Besides making you a better programmer,

Besides making you a better programmer, Computer Science DistilledComputer Science Distilled can boost your career in can boost your career in

several ways:

(5)

23/01/2018 Computer Science Distilled

https://sourcemaking.com/computer-science-distilled 4/35

HAVE YOUR CODE APPRECIATED, NOT DASHED

It’s super frustrating to have someone reviewing your code, just to tell you it’s broken or poorly built. It’s like getting a bad mark on that assignment you worked so hard on. Junior coders constantly get ruthlessly criticized by senior programmers. Learning the features and different forms of expression offered by your programming language, you can acquire the experience required to write great code, faster. Computer Science Distilled shows you how to use idiomatic features of programming languages, and write clear and meaningful code that sets the standard.

SHINE IN PROGRAMMING INTERVIEWS

Many coders fall prey to tricky job interview questions. Without any prior knowledge of problems commonly discussed in these interviews, even geniuses can tank. If you learn the basics of these problems before your interviews, that can dramatically improve your performance. You’ll feel condent to discuss these common problems. And you’ll impress the interviewer with your thorough answers!

CONNECT WITH EXPERIENCED CODERS

Doesn’t it feel great to talk to people the same way they’re used to talk? Once you internalize the basics of computer science, that’ll happen automatically in your workplace. You won’t feel lost and out of place, as most beginners do. Work will feel more natural. You’ll communicate your ideas using the same terms experienced engineers use. People notice that: your colleagues will feel you’re an “insider”, who knows the drill and can be trusted. Without external help it can take a long time for that to happen. Computer Science Distilled gets you off the starting blocks.

BE PROUD OF YOUR CODE

Once you’re familiar with how programmers separate code that handles input/output code from problem-solving code, you’ll naturally and effortlessly begin to organize your code in modular, reusable ways. Your code will be easier to understand. You’ll feel like a great architect, proudly looking at the structure of your creations. And your colleagues will be thrilled to work with your code!

DON’T BE SCARED OF DATABASE SYSTEMS

There’s a database system behind every commercial piece of software. Computer Science Distilled gives you a basic knowledge of databases, so you can have a complete understanding of the system you’re working on. It lays out the key aspects involved in choosing the adequate type of database for each different scenario. Having a basic understanding of every aspect of your software project, you’ll be on top of your game. In some cases, you might even identify points of improvement in imsy database systems, and discuss those with your team.

MASTER YOUR CRAFT

People see computers as black boxes that work in magic and mysterious ways. They expect you to be the dude that knows this stuff. That’s why you need to understand how your tools work. Your computer is much more than just a gadget… it’s a wonderful piece of engineering. It feels great

(6)

https://sourcemaking.com/computer-science-distilled 5/35 to grasp the splendor of its inner workings. In doing so, you become more prepared to take

on any programming challenge, and to improve and optimize mission-critical code.

Here's what other people say 

+ Write a review

I truly wish this book had existed when I was in school. If you want a painless introduction to the very core of computer science, This is it! 

The concepts that are explained in the book are useful for any level, from beginner to

advanced in my opinion. It has helped me tremendously to strengthen concepts I had trouble with in the past, and the author manages to explain it in a way that's light and entertaining at  the same time.

I'm particularly glad that the author starts from the ground up, with a gentle introduction to the Maths you will need. Very few books (If any) take the trouble of dedicating a couple of  chapters to Math alone before diving into how it's used in Computer Science.

The title of the book perfectly summarizes what the author managed to successfully do, which is to 'Distill' every CS concept and present it in a way that's brain-friendly. In Summary, the best introduction to CS you will ever nd.

      / Jose Estrella-Campaña

 A really nice introduction to computer science for those that do not have time for more

academic books about the topic. It allows to grasp the basic concepts, introduces some neat  algorithms, and strengthens good algorithm design, while allowing the reader to get into writing good code very soon. I would certainly recommend anyone interested in programming to read it and not be surprised or dissuaded by the emoticons in the beginning of each chapter. This book goes reasonably into the topic and is not just a childish CS intro. Also, thanks to its style, good examples, and the use of web sources, it truly looks like a 21st century introduction to the topic.

(7)

23/01/2018 Computer Science Distilled

https://sourcemaking.com/computer-science-distilled 6/35

 An easy-to-follow guide through those fundamental principles of computer science that are only hazily grasped or completely unknown to us non-programmers who nevertheless program. Purists may complain about the author's use of emojis. For only a few hours reading it is

remarkable for how much it contains.

I would recommend the book for students of any discipline, including computer science, casual or professional coders in any programming language.

There is a class of reader for whom this book is probably too basic, namely software engineers with a recent academic computer science background.

      / shortTimer

 Show more reviews

The book will be available to you in PDF, ePub and Mobi formats immediately upon purchase, so you can easily read it on your iPad, Kindle or other portable device.

(8)

https://sourcemaking.com/computer-science-distilled 7/35

For

$22.50

 you will get:

 Computer Science Distilled in PDF, ePub and Mobi formats. 8 chapters, 124 illustration and 169 pages of great content. Access to all future updates.

 And all of this with a 30-day money-back guarantee.

 Buy now 

Design Patterns AntiPatterns Refactoring UML My account Forum Contact us About us © 2007-2018 SourceMaking.com

All rights reserved. Privacy policy

$9.95

(9)

23/01/2018 Computer Science Distilled

(10)
(11)

23/01/2018 Computer Science Distilled

(12)
(13)

23/01/2018 Computer Science Distilled

(14)
(15)

23/01/2018 Computer Science Distilled

(16)
(17)

23/01/2018 Computer Science Distilled

(18)
(19)

23/01/2018 Computer Science Distilled

(20)
(21)

23/01/2018 Computer Science Distilled

(22)
(23)

23/01/2018 Computer Science Distilled

(24)
(25)

23/01/2018 Computer Science Distilled

(26)
(27)

23/01/2018 Computer Science Distilled

(28)
(29)

23/01/2018 Computer Science Distilled

(30)
(31)

23/01/2018 Computer Science Distilled

(32)
(33)

23/01/2018 Computer Science Distilled

(34)
(35)

23/01/2018 Computer Science Distilled

References

Related documents

– In almost all surveyed States, an agreement concluded in a case of international child abduction needs to be incorporated in a judgment, turned into a court order, or be

Interestingly, she uses more than one colour for Setswana to symbolise different things- both love and calmness and creativity (figure 53). She notes that she has went through a

There seemed little exploitation of the possible synergies between these actors, making use of the knowledge and unbiased nature of public extension workers, the resources and

In order to evaluate the performance of the proposed method for MS lesion segmentation, two different datasets were used: the publicly available ISBI 2015 Longitudinal MS

Notice how we did not need to know how the con- structors and selectors in the previous section were implemented in order to use them.. This is what we mean by the implementation

The code breaks when expiration dates reach the year 2000, despite the use of a Date abstract data type with a stable interface and programming language enforced strong

An array is defined both by the fact that it is a sequence of data items of the same basic type, but also by the fact that it is possible to directly access each of the positions in