Book picks similar to
The Non-Designer's Design Book by Robin P. Williams
design
non-fiction
nonfiction
graphic-design
Fluent Python: Clear, Concise, and Effective Programming
Luciano Ramalho - 2015
With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work"
Are You Smart Enough to Work at Google?
William Poundstone - 2012
The blades start moving in 60 seconds. What do you do? If you want to work at Google, or any of America's best companies, you need to have an answer to this and other puzzling questions. Are You Smart Enough to Work at Google? guides readers through the surprising solutions to dozens of the most challenging interview questions. The book covers the importance of creative thinking, ways to get a leg up on the competition, what your Facebook page says about you, and much more. Are You Smart Enough to Work at Google? is a must-read for anyone who wants to succeed in today's job market.
Designing Data-Intensive Applications
Martin Kleppmann - 2015
Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures
Mismatch: How Inclusion Shapes Design
Kat Holmes - 2018
Something as simple as color choices can render a product unusable for millions. These mismatches are the building blocks of exclusion. In Mismatch, Kat Holmes describes how design can lead to exclusion, and how design can also remedy exclusion. Inclusive design methods--designing objects with rather than for excluded users--can create elegant solutions that work well and benefit all.Holmes tells stories of pioneers of inclusive design, many of whom were drawn to work on inclusion because of their own experiences of exclusion. A gamer and designer who depends on voice recognition shows Holmes his "Wall of Exclusion," which displays dozens of game controllers that require two hands to operate; an architect shares her firsthand knowledge of how design can fail communities, gleaned from growing up in Detroit's housing projects; an astronomer who began to lose her eyesight adapts a technique called "sonification" so she can "listen" to the stars.Designing for inclusion is not a feel-good sideline. Holmes shows how inclusion can be a source of innovation and growth, especially for digital technologies. It can be a catalyst for creativity and a boost for the bottom line as a customer base expands. And each time we remedy a mismatched interaction, we create an opportunity for more people to contribute to society in meaningful ways.
Modern Operating Systems
Andrew S. Tanenbaum - 1992
What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson
The Art of Deception: Controlling the Human Element of Security
Kevin D. Mitnick - 2001
Since his release from federal prison, in 1998, Mitnick has turned his life around and established himself as one of the most sought-after computer security experts worldwide. Now, in The Art of Deception, the world's most notorious hacker gives new meaning to the old adage, "It takes a thief to catch a thief." Focusing on the human factors involved with information security, Mitnick explains why all the firewalls and encryption protocols in the world will never be enough to stop a savvy grifter intent on rifling a corporate database or an irate employee determined to crash a system. With the help of many fascinating true stories of successful attacks on business and government, he illustrates just how susceptible even the most locked-down information systems are to a slick con artist impersonating an IRS agent. Narrating from the points of view of both the attacker and the victims, he explains why each attack was so successful and how it could have been prevented in an engaging and highly readable style reminiscent of a true-crime novel. And, perhaps most importantly, Mitnick offers advice for preventing these types of social engineering hacks through security protocols, training programs, and manuals that address the human element of security.
Designing for the Social Web
Joshua Porter - 2008
With tons of examples from real-world interfaces and a touch of the underlying social psychology theory, Joshua Porter shows you how to design your next great social web application.
The Timeless Way of Building
Christopher W. Alexander - 1978
It is thousands of years old, and the same today as it has always been. The great traditional buildings of the past, the villages and tents and temples in which man feels at home, have always been made by people who were very close to the center of this way. It is not possible to make great buildings, or great towns, beautiful places, places where you feel yourself, places where you feel alive, except by following this way. And, as you will see, this way will lead anyone who looks for it to buildings which are themselves as ancient in their form as the trees and hills, and as our faces are.”The Timeless Way of Building is the introductory volume to Alexander’s other works, A Pattern Language and The Oregon Experiment, in the Center for Environmental Structure series.
CSS3: The Missing Manual
David Sawyer McFarland - 2012
This Missing Manual shows you how to take your HTML and CSS skills to the next level, with valuable tips, tricks, and step-by-step instructions. You’ll quickly learn how to build web pages that look great and run fast on devices and screens of all sizes.The important stuff you need to know:Start with the basics. Write CSS3-friendly HTML, including the HTML5 tags recognized by today’s browsers.Apply real-world design. Format text, create navigation tools, and enhance pages with graphics.Make your pages lively. Create eye-catching animations and give your visitors attractive tables and forms.Take control of page layouts. Use professional design techniques such as floats and positioning.Look great on any device. Craft websites that adapt to desktop, tablet, and mobile browsers.Get advanced techniques. Use CSS3 more effectively and efficiently, and ensure that your web pages look good when printed.
Peopleware: Productive Projects and Teams
Tom DeMarco - 1987
The answers aren't easy -- just incredibly successful.
100 Ideas That Changed Graphic Design
Steven Heller - 2012
The 100 entries, arranged broadly in chronological order, range from technical (overprinting, rub-on designs, split fountain); to stylistic (swashes on caps, loud typography, and white space); to objects (dust jackets, design handbooks); and methods (paper cut-outs, pixelation).
Managing Humans: Biting and Humorous Tales of a Software Engineering Manager
Michael Lopp - 2007
Drawing on Lopp's management experiences at Apple, Netscape, Symantec, and Borland, this book is full of stories based on companies in the Silicon Valley where people have been known to yell at each other. It is a place full of dysfunctional bright people who are in an incredible hurry to find the next big thing so they can strike it rich and then do it all over again. Among these people are managers, a strange breed of people who through a mystical organizational ritual have been given power over your future and your bank account.Whether you're an aspiring manager, a current manager, or just wondering what the heck a manager does all day, there is a story in this book that will speak to you.
Observing the User Experience: A Practitioner's Guide to User Research
Mike Kuniavsky - 2003
Observing the User Experience will help you bridge that gap to understand what your users want and need from your product, and whether they'll be able to use what you've created.Filled with real-world experience and a wealth of practical information, this book presents a complete toolbox of techniques to help designers and developers see through the eyes of their users. It provides in-depth coverage of 13 user experience research techniques that will provide a basis for developing better products, whether they're Web, software or mobile based. In addition, it's written with an understanding of how software is developed in the real world, taking tight budgets, short schedules, and existing processes into account.
Damn Good Advice (For People with Talent!): How To Unleash Your Creative Potential by America's Master Communicator, George Lois
George Lois - 2012
Offering indispensle lessons, practical advice, facts, anecdotes and inspiration, this book is a timeless creative bible for all those looking to succeed in life, business and creativity. These are key lessons derived from the incomparle life of 'Master Communicator' George Lois, the original Mad Man of Madison Avenue. Written and compiled by the man The Wall Street Journal called "prodigy, enfant terrible, founder of agencies, creator of legends," each step is borne from a passion to succeed and a disdain for the status quo.Organised into inspirational, bite-sized pointers, each page offers fresh insight into the sources of success, from identifying your heroes to identifying yourself. The ideas, images and illustrations presented in this book are fresh, witty and in-your-face. Whether it's communicating your point in nanosecond, creating an explosive portfolio or making your presence felt, no one is better placed than George Lois to teach you the process of creativity.Poignant, punchy and to-the-point, Damn Good Advice (For People With Talent!) is a must have for anyone on a quest for success.
Code: The Hidden Language of Computer Hardware and Software
Charles Petzold - 1999
And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.