Think Python


Allen B. Downey - 2002
    It covers the basics of computer programming, including variables and values, functions, conditionals and control flow, program development and debugging. Later chapters cover basic algorithms and data structures.

The C Programming Language


Brian W. Kernighan - 1978
    It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard. From the Preface: We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form. As we said in the first preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way. We hope that this book will help you to learn C and use it well.

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)


Michael T. Nygard - 2007
    Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.Mike explains that many problems with systems today start with the design.

Interaction Design: Beyond Human-Computer Interaction


Yvonne Rogers - 2001
    It should be labelled 'start here'." --Pieter Jan Stappers, ID-StudioLab, Delft University of Technology

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.

Learn You a Haskell for Great Good!


Miran Lipovača - 2011
    Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her horizons. The well-known web tutorial on which this book is based is widely regarded as the best way for beginners to learn Haskell, and receives over 30,000 unique visitors monthly.

Microinteractions: Designing with Details


Dan Saffer - 2013
    With this practical book, you’ll learn how to design effective microinteractions: the small details that exist inside and around features. How can users change a setting? How do they turn on mute, or know they have a new email message?Through vivid, real-world examples from today’s devices and applications, author Dan Saffer walks you through a microinteraction’s essential parts, then shows you how to use them in a mobile app, a web widget, and an appliance. You’ll quickly discover how microinteractions can change a product from one that’s tolerated into one that’s treasured.Explore a microinteraction’s structure: triggers, rules, feedback, modes, and loopsLearn the types of triggers that initiate a microinteractionCreate simple rules that define how your microinteraction can be usedHelp users understand the rules with feedback, using graphics, sounds, and vibrationsUse modes to let users set preferences or modify a microinteractionExtend a microinteraction’s life with loops, such as “Get data every 30 seconds”

The Art of Electronics


Paul Horowitz - 1980
    Widely accepted as the authoritative text and reference on electronic circuit design, both analog and digital, this book revolutionized the teaching of electronics by emphasizing the methods actually used by circuit designers -- a combination of some basic laws, rules of thumb, and a large bag of tricks. The result is a largely nonmathematical treatment that encourages circuit intuition, brainstorming, and simplified calculations of circuit values and performance. The new Art of Electronics retains the feeling of informality and easy access that helped make the first edition so successful and popular. It is an ideal first textbook on electronics for scientists and engineers and an indispensable reference for anyone, professional or amateur, who works with electronic circuits.

How to Think Like a Great Graphic Designer


Debbie Millman - 2007
    How do they think, how do they connect to others, what special skills do they have? In honest and revealing interviews, nineteen designers, including Stefan Sagmeister, Michael Beirut, David Carson, and Milton Glaser, share their approaches, processes, opinions, and thoughts about their work with noted brand designer Debbie Millman. The internet radio talk host of Design Matters, Millman persuades the greatest graphic designers of our time to speak frankly and openly about their work. How to Think Like a Great GraphicDesigners offers a rare opportunity to observe and understand the giants of the industry. Designers interviewed include: —Milton Glaser —Stefan Sagmeister —David Carson —Paula Scher —Abbott Miler —Lucille Tenazas —Paul Sahre —Emily Oberman and Bonnie Siegler —Chip Kidd —James Victore —Carin Goldberg —Michael Bierut —Seymour Chwast —Jessica Helfand and William Drenttel —Steff Geissbuhler —John MaedaAllworth Press, an imprint of Skyhorse Publishing, publishes a broad range of books on the visual and performing arts, with emphasis on the business of art. Our titles cover subjects such as graphic design, theater, branding, fine art, photography, interior design, writing, acting, film, how to start careers, business and legal forms, business practices, and more. While we don't aspire to publish a New York Times bestseller or a national bestseller, we are deeply committed to quality books that help creative professionals succeed and thrive. We often publish in areas overlooked by other publishers and welcome the author whose expertise can help our audience of readers.

The Sketchnote Handbook: The Illustrated Guide to Visual Note Taking


Mike Rohde - 2012
    Author Mike Rohde shows you how to incorporate sketchnoting techniques into your note-taking process--regardless of your artistic abilities--to help you better process the information that you are hearing and seeing through drawing, and to actually have fun taking notes. The Sketchnote Handbook explains and illustrates practical sketchnote techniques for taking visual notes at your own pace as well as in real time during meetings and events. Rhode also addresses most people's fear of drawing by showing, step-by-step, how to quickly draw people, faces, type, and simple objects for effective and fast sketchnoting. The book looks like a peek into the author's private sketchnote journal, but it functions like a beginner's guide to sketchnoting with easy-to-follow instructions for drawing out your notes that will leave you itching to attend a meeting just so you can draw about it.

Street Logos


Tristan Manco - 2004
    Fresh coats of paint and newly pasted posters appear overnight in cities across the world. New artists, new ideas, and new tactics displace faded images in a perpetual process of renewal and metamorphosis. From Los Angeles to Barcelona, Stockholm to Tokyo, Melbourne to Milan, wall spaces are a breeding ground for graphic and typographic forms as artists unleash their daily creations.Current graffiti art is reflective of the world around it. Using new materials and techniques, its innovators are creating a language of forms and images infused with contemporary graphic design and illustration. Fluent in branding and graphic imagery, they have been replacing tags with more personal logos and shifting from typographic to iconographic forms of communication.Street Logos is a worldwide celebration of these new developments in twenty-first-century graffiti, an essential sourcebook for all art and design professionals, and a delight to everyone excited by the vitality of the street.

101 Things I Learned in Architecture School


Matthew Frederick - 2006
    It is also a book they may want to keep out of view of their professors, for it expresses in clear and simple language things that tend to be murky and abstruse in the classroom. These 101 concise lessons in design, drawing, the creative process, and presentation--from the basics of "How to Draw a Line" to the complexities of color theory--provide a much-needed primer in architectural literacy, making concrete what too often is left nebulous or open-ended in the architecture curriculum. Each lesson utilizes a two-page format, with a brief explanation and an illustration that can range from diagrammatic to whimsical. The lesson on "How to Draw a Line" is illustrated by examples of good and bad lines; a lesson on the dangers of awkward floor level changes shows the television actor Dick Van Dyke in the midst of a pratfall; a discussion of the proportional differences between traditional and modern buildings features a drawing of a building split neatly in half between the two. Written by an architect and instructor who remembers well the fog of his own student days, 101 Things I Learned in Architecture School provides valuable guideposts for navigating the design studio and other classes in the architecture curriculum. Architecture graduates--from young designers to experienced practitioners--will turn to the book as well, for inspiration and a guide back to basics when solving a complex design problem.

Learning PHP, MySQL, and JavaScript: A Step-By-Step Guide to Creating Dynamic Websites


Robin Nixon - 2009
    You'll learn how to create responsive, data-driven websites with PHP, MySQL, and JavaScript, regardless of whether you already know how to program. Discover how the powerful combination of PHP and MySQL provides an easy way to build modern websites complete with dynamic data and user interaction. You'll also learn how to add JavaScript to create rich Internet applications and websites.Learning PHP, MySQL, and JavaScript explains each technology separately, shows you how to combine them, and introduces valuable web programming concepts, including objects, XHTML, cookies, and session management. You'll practice what you've learned with review questions in each chapter, and find a sample social networking platform built with the elements introduced in this book. This book will help you:-Understand PHP essentials and the basics of object-oriented programming-Master MySQL, from database structure to complex queries-Create web pages with PHP and MySQL by integrating forms and other HTML features-Learn about JavaScript, from functions and event handling to accessing the Document Object Model-Use libraries and packages, including the Smarty web template system, PEAR program repository, and the Yahoo! User Interface Library -Make Ajax calls and turn your website into a highly dynamic environment-Upload and manipulate files and images, validate user input, and secure your applications

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People


Aditya Y. Bhargava - 2015
    The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.

Game Programming Patterns


Robert Nystrom - 2011
    Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and how the service locator pattern can help you provide access to services such as sound without coupling your code to any particular sound driver or sound hardware. Games have much in common with other software, but also a number of unique constraints. Some of the patterns in this book are well-known in other domains of software development. Other of the patterns are unique to gaming. In either case, Robert Nystrom bridges from the ivory tower world of software architecture to the in-the-trenches reality of hardcore game programming. You'll learn the patterns and the general problems that they solve. You'll come away able to apply powerful and reusable architectural solutions that enable you to produce higher quality games with less effort than before. Applies classic design patterns to game programming. Introduces new patterns specific to game programming. Brings abstract software architecture down to Earth with approachable writing and an emphasis on simple code that shows each pattern in practice. What you'll learn Overcome architectural challenges unique to game programming Apply lessons from the larger software world to games. Tie different parts of a game (graphics, sound, AI) into a cohesive whole. Create elegant and maintainable architecture. Achieve good, low-level performance. Gain insight into professional, game development. Who this book is forGame Programming Patterns is aimed at professional game programmers who, while successful in shipping games, are frustrated at how hard it sometimes is to add and modify features when a game is under development. Game Programming Patterns shows how to apply modern software practices to the problem of game development while still maintaining the blazing-fast performance demanded by hard-core gamers. Game Programming Patterns also appeals to those learning about game programming in their spare time. Hobbyists and aspiring professionals alike will find much to learn in this book about pathfinding, collision detection, and other game-programming problem domains.