Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security

Princeton University Press
2
Free sample

The basics of how computer hardware, software, and systems work, and the risks they create for our privacy and security

Computers are everywhere. Some of them are highly visible, in laptops, tablets, cell phones, and smart watches. But most are invisible, like those in appliances, cars, medical equipment, transportation systems, power grids, and weapons. We never see the myriad computers that quietly collect, share, and sometimes leak vast amounts of personal data about us. Through computers, governments and companies increasingly monitor what we do. Social networks and advertisers know far more about us than we should be comfortable with, using information we freely give them. Criminals have all-too-easy access to our data. Do we truly understand the power of computers in our world?

Understanding the Digital World explains how computer hardware, software, networks, and systems work. Topics include how computers are built and how they compute; what programming is and why it is difficult; how the Internet and the web operate; and how all of these affect our security, privacy, property, and other important social, political, and economic issues. This book also touches on fundamental ideas from computer science and some of the inherent limitations of computers. It includes numerous color illustrations, notes on sources for further exploration, and a glossary to explain technical terms and buzzwords.

Understanding the Digital World is a must-read for all who want to know more about computers and communications. It explains, precisely and carefully, not only how they operate but also how they influence our daily lives, in terms anyone can understand, no matter what their experience and knowledge of technology.

Read more

About the author

Brian W. Kernighan is a professor in the Department of Computer Science at Princeton University. He is the coauthor of ten other books, including the computing classic The C Programming Language (Prentice Hall). He lives in Princeton, New Jersey.
Read more

Reviews

4.5
2 total
Loading...

Additional Information

Publisher
Princeton University Press
Read more
Published on
Jan 9, 2017
Read more
Pages
256
Read more
ISBN
9781400884803
Read more
Language
English
Read more
Genres
Computers / Computer Science
Computers / Hardware / General
Computers / Networking / General
Computers / Programming / General
Computers / Security / General
Computers / Security / Networking
Computers / Software Development & Engineering / General
Read more
Content Protection
This content is DRM protected.
Read more
Read Aloud
Available on Android devices
Read more
Eligible for Family Library

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
Alan A. A. Donovan
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries.

The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.

Brian W. Kernighan
With the same insight and authority that made their book The Unix Programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive.

The practice of programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with issues like compatibility, robustness, and reliability, while meeting specifications.

The Practice of Programming covers all these topics, and more. This book is full of practical advice and real-world examples in C, C++, Java, and a variety of special-purpose languages. It includes chapters on:

debugging: finding bugs quickly and methodically testing: guaranteeing that software works correctly and reliably performance: making programs faster and more compact portability: ensuring that programs run everywhere without change design: balancing goals and constraints to decide which algorithms and data structures are best interfaces: using abstraction and information hiding to control the interactions between components style: writing code that works well and is a pleasure to read notation: choosing languages and tools that let the machine do more of the work

Kernighan and Pike have distilled years of experience writing programs, teaching, and working with other programmers to create this book. Anyone who writes software will profit from the principles and guidance in The Practice of Programming .

Darril Gibson
Windows security concepts and technologies for IT beginners

IT security can be a complex topic, especially for those new to the field of IT. This full-color book, with a focus on the Microsoft Technology Associate (MTA) program, offers a clear and easy-to-understand approach to Windows security risks and attacks for newcomers to the world of IT. By paring down to just the essentials, beginners gain a solid foundation of security concepts upon which more advanced topics and technologies can be built.

This straightforward guide begins each chapter by laying out a list of topics to be discussed, followed by a concise discussion of the core networking skills you need to have to gain a strong handle on the subject matter. Chapters conclude with review questions and suggested labs so you can measure your level of understanding of the chapter's content.

Serves as an ideal resource for gaining a solid understanding of fundamental security concepts and skills Offers a straightforward and direct approach to security basics and covers anti-malware software products, firewalls, network topologies and devices, network ports, and more Reviews all the topics you need to know for taking the MTA 98-367 exam Provides an overview of security components, looks at securing access with permissions, addresses audit policies and network auditing, and examines protecting clients and servers

If you're new to IT and interested in entering the IT workforce, then Microsoft Windows Security Essentials is essential reading.

Alan A. A. Donovan
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries.

The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.

Alan A. A. Donovan, Brian W. Kernighan
本書是學習Go語言的權威資源,它展現如何撰寫清楚且正確的Go程式以解決實務上的問題。閱讀此書無需Go或其他特定語言的經驗,JavaScript、Ruby、Python、Java或C++等程式設計師都能夠輕鬆上手。

*第一章討論Go的基本概念,介紹檔案輸出入、文字處理、簡單圖形、與網路用戶端以及伺服器等。

*前幾個章節涵蓋了Go程式的結構元素:語法、流程控制、資料型別、與組織程式套件、檔案及函式。書中範例展示標準函式庫的套件並示範如何自行建構套件。其後的章節則深入解釋套件機制、如何使用Go工具建構、測試與維護專案。

*方法與介面相關章節介紹Go獨特的物件導向程式設計方式,其方法可以在間接滿足條件的型別與介面上宣告。這些章節以實際的範例解釋了封裝、組合與可替換性的重要原則。

*兩個與並行性有關的篇章深入此越顯重要的主題。首先是goroutine與channel基本機制的討論,描述Go最為人稱道的交談循序程式。其次是使用共用變數的傳統並行性。這些章節為首次遭遇並行性的程式設計師提供堅實的基礎。

*最後兩章探索Go的低階功能,一個是使用reflection的元編程藝術,另一個是如何使用unsafe套件在特殊情況下跳脫型別系統以及使用cgo工具建構Go的C函式庫連結。

書中數百個有趣與實用的Go範例程式涵蓋整個語言最重要的套件與各種應用。每一章都有練習題以測試你的理解並探索擴充與替代方案。原始碼可從http://gopl.io/下載並能使用go get命令取得、建構、與安裝。

#碁峰資訊 GOTOP Information Inc.

Brian W. Kernighan
Přestože světově proslulá kniha o programovacím jazyku C od jeho zakladatelů vychází v češtině teprve v roce 2006, pro mnohé programátory, kteří ve svém oboru něco dokázali, je již léta vyhlášeným pojmem, stejně jako jména autorů Briana W. Kernighana a Dennise M. Ritchieho. I když současné anglické vydání pochází z roku 1988 (první bylo napsáno v roce 1978), zůstává i v době překladu do češtiny předním celosvětovým bestsellerem, z něhož čerpají základy i detaily jazyka C začátečníci a studenti, ověřené informace autoři jiných publikací a odpovědi na své náhlé otázky programátoři, pro něž je programování v C nebo C++ denním chlebíčkem. Protože v roce 1999 byla přijata nová verze standardu ANSI C, nechal navíc český vydavatel text pečlivě aktualizovat o příslušné změny a novinky. Autorem doplňků, které stojí v kapitolách a na závěr knihy stranou původního textu, je Miroslav Virius – tedy další jméno, jež je samo o sobě zárukou vysoké odbornosti a promyšleného výkladu. Příklady v knize jsou převážně kompletní funkční programy (nejen obvyklé fragmenty), plně lokalizované do češtiny a českého prostředí, což vše dohromady činí knihu snadno použitelnou i pro začátečníky. Protože neobsahuje úvod do programování, předpokládá pouze určitou znalost jeho základních principů (např. proměnné, přiřazovací příkazy, cykly a funkce). Kniha vás zasvětí do následujících aspektů jazyka C: - Principy a základní prostředky jazyka - Typy, operátory, výrazy - Řízení běhu programu - Funkce a struktura programu - Ukazatele - Struktury - Vstup a výstup - Rozhraní systému Unix - Referenční příručka jazyka - Standardní knihovna - Přehled změn ve vývoji jazyka - Hlavní novinky standardu C99 Kromě správného pochopení jazyka C a nalezení přesných informací o konstrukci a účelu jeho prvků bude i pro zkušenější programátory neocenitelným přínosem dílo mistrů svého oboru i jen pozorně přečíst a pozorovat efektivní použití programovacího jazyka, zásady kvalitního návrhu programů a vysoké znovupoužitelnosti kódu. O autorech: Brian W. Kernighan a Dennis M. Ritchie jsou vynálezci jazyka C a jedněmi z hlavních osobností v dřívějším vývoji Unixu. Oba pracují od konce 60. let ve výzkumném centru počítačových věd v Bell Laboratories/Lucent Technologies (první z nich údajně dokonce stále ve stejné kanceláři). Kernighan píše programy a příležitostně knihy, např. The Unix Programming Environment nebo The Elements of Programming Style a je konzultantem pro knižní edici Professional Computing u nakladatelství Addison-Wesley. Ritchie se zasloužil např. o vývoj jazyků ALTRAN, BCPL, C či Multics a systému Unix, dnes vede menší výzkumný tým pro distribuované operační systémy, programovací jazyky a síťový hardware.
Brian W. Kernighan
With the same insight and authority that made their book The Unix Programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive.

The practice of programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with issues like compatibility, robustness, and reliability, while meeting specifications.

The Practice of Programming covers all these topics, and more. This book is full of practical advice and real-world examples in C, C++, Java, and a variety of special-purpose languages. It includes chapters on:

debugging: finding bugs quickly and methodically testing: guaranteeing that software works correctly and reliably performance: making programs faster and more compact portability: ensuring that programs run everywhere without change design: balancing goals and constraints to decide which algorithms and data structures are best interfaces: using abstraction and information hiding to control the interactions between components style: writing code that works well and is a pleasure to read notation: choosing languages and tools that let the machine do more of the work

Kernighan and Pike have distilled years of experience writing programs, teaching, and working with other programmers to create this book. Anyone who writes software will profit from the principles and guidance in The Practice of Programming .

©2017 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.