Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers


John MacCormick - 2012
    A simple web search picks out a handful of relevant needles from the world's biggest haystack: the billions of pages on the World Wide Web. Uploading a photo to Facebook transmits millions of pieces of information over numerous error-prone network links, yet somehow a perfect copy of the photo arrives intact. Without even knowing it, we use public-key cryptography to transmit secret information like credit card numbers; and we use digital signatures to verify the identity of the websites we visit. How do our computers perform these tasks with such ease? This is the first book to answer that question in language anyone can understand, revealing the extraordinary ideas that power our PCs, laptops, and smartphones. Using vivid examples, John MacCormick explains the fundamental "tricks" behind nine types of computer algorithms, including artificial intelligence (where we learn about the "nearest neighbor trick" and "twenty questions trick"), Google's famous PageRank algorithm (which uses the "random surfer trick"), data compression, error correction, and much more. These revolutionary algorithms have changed our world: this book unlocks their secrets, and lays bare the incredible ideas that our computers use every day.

The Camera


Ansel Adams - 1980
    It covers everything from "seeing" the finished photo in advance, to lens choices. It is illustrated with many of Ansel Adams most famous images.

Effective Java


Joshua Bloch - 2001
    The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules. New library features include pervasive use of functional interfaces and streams, the java.time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections. In this new edition of Effective Java, Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use. Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers. As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Coverage includes:Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java.lang and java.util

Secrets and Lies: Digital Security in a Networked World


Bruce Schneier - 2000
    Identity Theft. Corporate Espionage. National secrets compromised. Can anyone promise security in our digital world?The man who introduced cryptography to the boardroom says no. But in this fascinating read, he shows us how to come closer by developing security measures in terms of context, tools, and strategy. Security is a process, not a product – one that system administrators and corporate executives alike must understand to survive.This edition updated with new information about post-9/11 security.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

A Theory of Fun for Game Design


Raph Koster - 2004
    It features a novel way of teaching interactive designers how to create and improve their designs to incorporate the highest degree of fun. As the book shows, designing for fun is all about making interactive products like games highly entertaining, engaging, and addictive. The book's unique approach of providing a highly visual storyboard approach combined with a narrative on the art and practice of designing for fun is sure to be a hit with game and interactive designers.At first glance A Theory of Fun for Game Design is a book that will truly inspire and challenge game designers to think in new ways; however, its universal message will influence designers from all walks of life. This book captures the real essence of what drives us to seek out products and experiences that are truly fun and entertaining. The author masterfully presents his engaging theory by showing readers how many designs are lacking because they are predictable and not engaging enough. He then explains how great designers use different types of elements in new ways to make designs more fun and compelling. Anyone who is interested in design will enjoy how the book works on two levels--as a quick inspiration guide to game design, or as an informative discussion that details the insightful thinking from a great mind in the game industry.

Layers: The Complete Guide to Photoshop's Most Powerful Feature


Matt Kloskowski - 2008
    Now, Matt returns with a major update that covers layers in Photoshop CS5 in the same concise, easy to understand way that's made him so well known in the field of Photoshop training.When asked about the original version of this book, Matt said, "I wanted it to be the Photoshop book that I wish was around when I was first learning." This update improves upon that concept. Within these pages, you'll learn about: Working with and managing multiple layers in Photoshop CS5 Building multiple-layer images Blending layers together Layer masking and just how easy it is Which of the 25+ layer blend modes you really need to know (there are just a few) Using layers to enhance and retouch your photos All of the tips and tricks that make using layers a breeze Plus, a new chapter on advanced layer techniques and compositing to help take your work to the next level If you want to fully understand layers in Photoshop CS5, this book is the one you've been waiting for!

Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts-- the Programmers Who Created the Software Revolution


Steve Lohr - 2001
    Lohr maps out the unique seductions of programming, and gives us an intimate portrait of the peculiar kind of genius that is drawn to this blend of art, science, and engineering, introducing us to the movers and shakers of the 1950s and the open-source movement of today. With original reporting and deft storytelling, Steve Lohr shows us how software transformed the world, and what it holds in store for our future.

Insights From Beyond the Lens: Inside the Art & Craft of Landscape Photography


Robert Rodriguez Jr. - 2012
    Based on real world experiences as a photographer as well as an instructor, speaker, and blogger, Robert distills his approach to capturing evocative images in a series of essays based on his popular Beyond the Lens blog.Beautifully illustrated with Robert's original photographs, you'll get an inside look at the mental process Robert uses when he's in the field scouting and making his images. While many books focus on the gear and technology, the aim here is to look inside the motivation, passion, and vision involved in successful landscape photography. Go behind the scenes as Robert explains how several images were made, how he draws inspiration from the Hudson River School of painters, and what resources he recommends for further exploration.

Essential Scrum: A Practical Guide to the Most Popular Agile Process


Kenneth S. Rubin - 2012
    Leading Scrum coach and trainer Kenny Rubin illuminates the values, principles, and practices of Scrum, and describes flexible, proven approaches that can help you implement it far more effectively. Whether you are new to Scrum or years into your use, this book will introduce, clarify, and deepen your Scrum knowledge at the team, product, and portfolio levels. Drawing from Rubin's experience helping hundreds of organizations succeed with Scrum, this book provides easy-to-digest descriptions enhanced by more than two hundred illustrations based on an entirely new visual icon language for describing Scrum's roles, artifacts, and activities. Essential Scrum will provide every team member, manager, and executive with a common understanding of Scrum, a shared vocabulary they can use in applying it, and practical knowledge for deriving maximum value from it.

A Guide to the Project Management Body of Knowledge (PMBOK® Guide)


Project Management Institute - 1995
    This internationally recognized standard provides the essential tools to practice project management and deliver organizational results.

Complete Digital Photography


Ben Long - 2001
    No longer do photographers have to be defensive because they prefer digital. Thanks to new technologies, digital cameras at all ends of the price spectrum can rival their film counterparts. If you have shifted from traditional to digital photography, and need to know what's different about shooting digital, this is the book for you. Now in its third edition, this bestseller has been fine-tuned and updated to provide you with the most current information on today's cameras that you'll find anywhere. Whether you're new to photography, or new to digital photography, you'll learn how to take the best possible shots. Even though your camera may pack an image sensor instead of film, taking good pictures still involves understanding apertures, shutter speeds, and metering techniques, as well as a few other issues that film shooters don't face. Fortunately, digital cameras also provide some unique tools to help you get the shot right the first time. Covering everything from the inner workings of your camera to the subtle intricacies of your image editing software, the book is divided into four sections. The first section provides a basic technical foundation that will prepare you for the rest of the book. It details the basics of how digital cameras work and gives you a quick photography primer. The second part explores everything you need to know to make an informed decision about which camera, computer, and software is right for you. In section three, you'll progress to the nitty gritty of shooting, including metering, choosing the right exposure, using histograms, flash photography, and much more. In the final section, you'll learn about digital editing and correction techniques, along with the various methods for outputting your images (print and electronic). If you're new to photography, you'll learn the basic theory that photographers have studied for decades, as well as the latest tools and techniques made possible by the shift to digital. If you're an experienced film photographer, you'll see how to translate the knowledge you already have into the digital realm. Features:* Includes completely revised and updated coverage* Provides new, detailed coverage of camera evaluation, including the latest technologies and affordable SLR cameras* Includes completely re-written explanations and examples of metering and exposure, including hands-on tutorials* Covers Photoshop CS and of Photoshop Elements 2.0* Includes many new tutorials on improved methods for correcting and enhancing photos, and addresses the most common types of corrections users want to make* Provides new and expanded coverage of the basic questions camera purchasers have, including how many pixels are needed, how to reduce red eye, shooting inside versus outside, etc. SYSTEM REQUIREMENTSTo work through the tutorials in the book, you will need Photoshop CS (a demo is included on the CD). WINDOWS: Intelr Pentiumr II or better; Microsoftr Windowsr 2000 with Service Pack 3, or Windows XP; 192MB of RAM (256MB recommended); 300MB of available drive space; Color monitor with 16- bit color card or better; CD-ROM drive. MACINTOSH: PowerPCr G3 or better; Mac OS X v. 10.2.4 or better; 192MB of RAM (256MB recommended); 350MB of available drive space; color monitor with 16- bit color support, or better; CD-ROM drive. Please check the individual demos for specifics

Backtrack 5 Wireless Penetration Testing Beginner's Guide


Vivek Ramachandran - 2011
    Every new attack is described in the form of a lab exercise with rich illustrations of all the steps associated. You will practically implement various attacks as you go along. If you are an IT security professional or a security consultant who wants to get started with wireless testing with Backtrack, or just plain inquisitive about wireless security and hacking, then this book is for you. The book assumes that you have familiarity with Backtrack and basic wireless concepts.

Read This If You Want to Take Great Photographs


Henry Carroll - 2014
    • A bestselling photography book with over 300,000 copies sold! • Learn top photography tips from 50 famous photographers • A must–have guide for amateur photographers and professional photographersRead This if You Want to Take Great Photographs contains no graphs, no techie diagrams and no camera–club jargon. Instead, it inspires readers through iconic images and playful copy, packed with hands–on tips.Split into five sections, the book covers composition, exposure, light, lenses and the art of seeing. Masterpieces by acclaimed photographers – including Henri Cartier–Bresson, Sebastião Salgado, Fay Godwin, Nadav Kander, Daido Moriyama and Martin Parr – serve to illustrate points and encourage readers to try out new ideas.Today's aspiring photographers want immediacy and see photography as an affordable way of expressing themselves quickly and creatively. This handbook meets their needs, teaching them how to take photographs using professional techniques.Read This If You Want to Take Great Photographs is part of the internationally–bestselling 'Read This' series, which has sold over half–a–million books worldwide and has been translated into over 20 languages.More titles in the 'Read This' series:Read This if You Want to Take Great Photographs of People by Henry Carroll (9781780676241)Read This if You Want to Take Great Photographs of Places by Henry Carroll (9781780679051)Use This if You Want to Take Great Photographs: A Photo Journal by Henry Carroll (9781780678887)Read This if You Want to Be Great at Drawing by Selwyn Leamy (9781786270542)Use This if You Want to Be Great at Drawing by Selwyn Leamy (9781786274052)Read This if You Want to Be Great at Drawing People by Selwyn Leamy (9781786275127)Read This if You Want to Be a Great Writer by Ross Raisin (9781786271976)Read This if You Want to Be Instagram Famous edited by Henry Carroll (9781780679679)Read This If You Want to Be YouTube Famous by Will Eagle (9781786275134)

Cracking the Coding Interview: 150 Programming Questions and Solutions


Gayle Laakmann McDowell - 2008
    This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice.The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered.Behind the ScenesLearn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook.Special SituationsThis section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know.Before the InterviewIn order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview.Behavioral PreparationAlthough most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses.Technical Questions (+ 5 Algorithm Approaches)This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview.150 Programming Questions and AnswersThis section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include• Arrays and Strings• Linked Lists• Stacks and Queues• Trees and Graphs• Bit Manipulation• Brain Teasers• Mathematics and Probability• Object-Oriented Design• Recursion and Dynamic Programming• Sorting and Searching• Scalability and Memory Limits• Testing• C and C++• Java• Databases• Threads and LocksFor the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself.Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added.Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.