Think Like a Programmer: An Introduction to Creative Problem Solving


V. Anton Spraul - 2012
    In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.

Well-Designed: How to Use Empathy to Create Products People Love


Jon Kolko - 2014
    But in a world obsessed with the new, where cool added features often trump actual customer needs, it’s the consumer who suffers. In our quest to be more agile, we end up creating products that underwhelm.So how does a company like Nest, creator of the mundane thermostat, earn accolades like “beautiful” and “revolutionary” and a $3.2 billion Google buyout? What did Nest do differently to create a household product that people speak of with love?Nest, and companies like it, understand that emotional connection is critical to product development. And they use a clear, repeatable design process that focuses squarely on consumer engagement rather than piling on features for features’ sake.In this refreshingly jargon-free and practical book, product design expert Jon Kolko maps out this process, demonstrating how it will help you and your team conceive and build successful, emotionally resonant products again and again.The key, says Kolko, is empathy. You need to deeply understand customer needs and feelings, and this understanding must be reflected in the product. In successive chapters of the book, we see how leading companies use a design process of storytelling and iteration that evokes positive emotions, changes behavior, and creates deep engagement. Here are the four key steps:1. Determine a product-market fit by seeking signals from communities of users.2. Identify behavioral insights by conducting ethnographic research.3. Sketch a product strategy by synthesizing complex research data into simple insights.4. Polish the product details using visual representations to simplify complex ideas.Kolko walks the reader through each step, sharing eye-opening insights from his fifteen-year career in product design along the way.Whether you’re a designer, a product developer, or a marketer thinking about your company’s next offering, this book will forever change the way you think about—and create—successful products.

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

How to Solve It: A New Aspect of Mathematical Method


George Pólya - 1944
    Polya, How to Solve It will show anyone in any field how to think straight. In lucid and appealing prose, Polya reveals how the mathematical method of demonstrating a proof or finding an unknown can be of help in attacking any problem that can be reasoned out--from building a bridge to winning a game of anagrams. Generations of readers have relished Polya's deft--indeed, brilliant--instructions on stripping away irrelevancies and going straight to the heart of the problem.

Data Science For Dummies


Lillian Pierson - 2014
    Data Science For Dummies is the perfect starting point for IT professionals and students interested in making sense of their organization’s massive data sets and applying their findings to real-world business scenarios. From uncovering rich data sources to managing large amounts of data within hardware and software limitations, ensuring consistency in reporting, merging various data sources, and beyond, you’ll develop the know-how you need to effectively interpret data and tell a story that can be understood by anyone in your organization. Provides a background in data science fundamentals before moving on to working with relational databases and unstructured data and preparing your data for analysis Details different data visualization techniques that can be used to showcase and summarize your data Explains both supervised and unsupervised machine learning, including regression, model validation, and clustering techniques Includes coverage of big data processing tools like MapReduce, Hadoop, Dremel, Storm, and Spark It’s a big, big data world out there – let Data Science For Dummies help you harness its power and gain a competitive edge for your organization.

Better Presentations: A Guide for Scholars, Researchers, and Wonks


Jonathan Schwabish - 2016
    Most of us approach this task by converting a written document into slides, but the result is often a text-heavy presentation saddled with bullet points, stock images, and graphs too complex for an audience to decipher--much less understand. Presenting is fundamentally different from writing, and with only a little more time, a little more effort, and a little more planning, you can communicate your work with force and clarity.Designed for presenters of scholarly or data-intensive content, "Better Presentations "details essential strategies for developing clear, sophisticated, and visually captivating presentations. Following three core principles--visualize, unify, and focus--"Better Presentations" describes how to visualize data effectively, find and use images appropriately, choose sensible fonts and colors, edit text for powerful delivery, and restructure a written argument for maximum engagement and persuasion. With a range of clear examples for what to do (and what not to do), the practical package offered in" Better Presentations" shares the best techniques to display work and the best tactics for winning over audiences. It pushes presenters past the frustration and intimidation of the process to more effective, memorable, and persuasive presentations.

Applied Cryptography: Protocols, Algorithms, and Source Code in C


Bruce Schneier - 1993
    … The book the National Security Agency wanted never to be published." –Wired Magazine "…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal"…easily ranks as one of the most authoritative in its field." —PC Magazine"…the bible of code hackers." –The Millennium Whole Earth CatalogThis new edition of the cryptography classic provides you with a comprehensive survey of modern cryptography. The book details how programmers and electronic communications professionals can use cryptography—the technique of enciphering and deciphering messages-to maintain the privacy of computer data. It describes dozens of cryptography algorithms, gives practical advice on how to implement them into cryptographic software, and shows how they can be used to solve security problems. Covering the latest developments in practical cryptographic techniques, this new edition shows programmers who design computer applications, networks, and storage systems how they can build security into their software and systems. What's new in the Second Edition? * New information on the Clipper Chip, including ways to defeat the key escrow mechanism * New encryption algorithms, including algorithms from the former Soviet Union and South Africa, and the RC4 stream cipher * The latest protocols for digital signatures, authentication, secure elections, digital cash, and more * More detailed information on key management and cryptographic implementations

Shape Up: Stop Running in Circles and Ship Work that Matters


Ryan Singer - 2019
    "This book is a guide to how we do product development at Basecamp. It’s also a toolbox full of techniques that you can apply in your own way to your own process.Whether you’re a founder, CTO, product manager, designer, or developer, you’re probably here because of some common challenges that all software companies have to face."

An Elegant Puzzle: Systems of Engineering Management


Will Larson - 2019
    Management is a key part of any organization, yet the discipline is often self-taught and unstructured. Getting to the good solutions of complex management challenges can make the difference between fulfillment and frustration for teams, and, ultimately, the success or failure of companies. Will Larson's An Elegant Puzzle orients around the particular challenges of engineering management--from sizing teams to technical debt to succession planning--and provides a path to the good solutions. Drawing from his experience at Digg, Uber, and Stripe, Will Larson has developed a thoughtful approach to engineering management that leaders of all levels at companies of all sizes can apply. An Elegant Puzzle balances structured principles and human-centric thinking to help any leader create more effective and rewarding organizations for engineers to thrive in.

Building Products for the Enterprise: Product Management in Enterprise Software


Blair Reeves - 2018
    Creating high-quality software for the enterprise involves a much different set of challenges. In this practical book, two expert product managers provide straightforward guidance for people looking to join the thriving enterprise market.Authors Blair Reeves and Benjamin Gaines explain critical differences between enterprise and consumer products, and deliver strategies for overcoming challenges when building for the enterprise. You'll learn how to cultivate knowledge of your organization, the products you build, and the industry you serve.Explore why:Identifying customer vs user problems is an enterprise project manager's main challengeEffective collaboration requires in-depth knowledge of the organizationAnalyzing data is key to understanding why users buy and retain your productHaving experience in the industry you're building products for is valuableProduct longevity depends on knowing where the industry is headed

Think First: My No-Nonsense Approach to Creating Successful Products, Memorable User Experiences + Very Happy Customers


Joe Natoli - 2015
    Designing anything for people is tough, because we’re inherently complex and...well...messy. Which means that things like market share and ROI don’t come easy. But time and effort spent finding the right problems to solve allows designers, developers and product teams to take quantum leaps forward in exceeding the expectations of everyone involved. In Think First, Joe Natoli shows you exactly how to do this, using lessons learned from his 26 years as a UX consultant to Fortune 100 and 500 organizations. You’ll find proven principles, step-by-step methods and straightforward, jargon-free advice that can be applied to any kind of digital product. Think First proves that while people are indeed messy and complex, designing for them doesn’t have to be. Here’s what a few well-respected UX practitioners and authors had to say about Think First: “A very practical guide to success in business.” – Dr. Don Norman, Director of the DesignLab, UC San Diego and Author of The Design of Everyday Things “Think First is a practical guide to UX that makes sense of strategy and structure. Highly recommended!” – Peter Morville, Bestselling Author of Intertwingled “For designers and developers, understanding strategy and UX is an increasingly necessary skill. Joe Natoli’s Think First demystifies these foundational ideas in a very conversational, easy to read style.” – Ilise Benun, Founder of Marketing-Mentor.com and Author of 7+ Books Author Joe Natoli explains why he believes Think First is unlike any other book on the subject of UX strategy and design: "I didn’t want to write yet another book that covers the narrow, tactical pieces of the design process," he says, "because great design and great UX are the result of multiple activities across multiple people, roles and disciplines. It’s everybody’s business. Think First walks you through everything that must be considered to create great UX — and gives you a roadmap to make it happen." Think First details Joe's no-nonsense approach to creating successful products, powerful user experiences and very happy customers. He share countless lessons learned from more than 26 years as a UX consultant to Fortune 500 and 100 organizations — including a few he's learned the hard way :-) Think First serves as a roadmap to building a solid foundation for UX that’s strong enough to withstand any weather as projects move into design and coding. Here are just some of the things you’ll learn: - Simple user research methods that anyone can perform — even if you’ve never done research of any kind. - The right questions to ask stakeholders and users at the outset of any (and every) project. - The 3 crucial questions you must ask of every client, every time. - How to tell the difference between what people say they need vs. what they really need. - A better, simpler way to generate meaningful UX requirements at the outset of the project. - How to figure out what features and functions will result in great UX and deliver value to both users and the business. - How to avoid scope creep and the never-ending project scenario.

Badass: Making Users Awesome


Kathy Sierra - 2015
    The rules? No marketing budget, no PR stunts, and it must be sustainably successful. No short-term fads.This is not a game of chance. It is a game of skill and strategy.And it begins with a single question: given competing products of equal pricing, promotion, and perceived quality, why does one outsell the others?The answer doesn’t live in the sustainably successful products or services. The answer lives in those who use them.Our goal is to craft a strategy for creating successful users. And that strategy is full of surprising, counter-intuitive, and astonishingly simple techniques that don’t depend on a massive marketing or development budget. Techniques typically overlooked by even the most well-funded, well-staffed product teams.Every role is a key player in this game. Product development, engineering, marketing, user experience, support—everyone on the team. Even if that team is a start-up of one. Armed with a surprisingly overlooked science and a unique POV, we can can reduce the role of luck. We can build sustainably successful products and services that rely not on unethical persuasive marketing tricks but on helping our users have deeper, richer experiences. Not just in the moments while they’re using our product but, more importantly, in the moments when they aren’t.

Running Lean: Iterate from Plan A to a Plan That Works


Ash Maurya - 2012
    We’re building more products than ever before, but most of them fail—not because we can’t complete what we set out to build, but because we waste time, money, and effort building the wrong product.What we need is a systematic process for quickly vetting product ideas and raising our odds of success. That’s the promise of Running Lean.In this inspiring book, Ash Maurya takes you through an exacting strategy for achieving a "product/market fit" for your fledgling venture, based on his own experience in building a wide array of products from high-tech to no-tech. Throughout, he builds on the ideas and concepts of several innovative methodologies, including the Lean Startup, Customer Development, and bootstrapping.Running Lean is an ideal tool for business managers, CEOs, small business owners, developers and programmers, and anyone who’s interested in starting a business project.Find a problem worth solving, then define a solutionEngage your customers throughout the development cycleContinually test your product with smaller, faster iterationsBuild a feature, measure customer response, and verify/refute the ideaKnow when to "pivot" by changing your plan’s courseMaximize your efforts for speed, learning, and focusLearn the ideal time to raise your "big round" of fundingGet on track with The Lean Series Presented by Eric Ries—bestselling author of The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses—The Lean Series gives you solid footing in a proven methodology that will help your business succeed.

The Elements of Statistical Learning: Data Mining, Inference, and Prediction


Trevor Hastie - 2001
    With it has come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data mining, machine learning, and bioinformatics. Many of these tools have common underpinnings but are often expressed with different terminology. This book describes the important ideas in these areas in a common conceptual framework. While the approach is statistical, the emphasis is on concepts rather than mathematics. Many examples are given, with a liberal use of color graphics. It should be a valuable resource for statisticians and anyone interested in data mining in science or industry. The book's coverage is broad, from supervised learning (prediction) to unsupervised learning. The many topics include neural networks, support vector machines, classification trees and boosting—the first comprehensive treatment of this topic in any book. Trevor Hastie, Robert Tibshirani, and Jerome Friedman are professors of statistics at Stanford University. They are prominent researchers in this area: Hastie and Tibshirani developed generalized additive models and wrote a popular book of that title. Hastie wrote much of the statistical modeling software in S-PLUS and invented principal curves and surfaces. Tibshirani proposed the Lasso and is co-author of the very successful An Introduction to the Bootstrap. Friedman is the co-inventor of many data-mining tools including CART, MARS, and projection pursuit.

Thinking in Systems: A Primer


Donella H. Meadows - 2008
    Edited by the Sustainability Institute’s Diana Wright, this essential primer brings systems thinking out of the realm of computers and equations and into the tangible world, showing readers how to develop the systems-thinking skills that thought leaders across the globe consider critical for 21st-century life.Some of the biggest problems facing the world—war, hunger, poverty, and environmental degradation—are essentially system failures. They cannot be solved by fixing one piece in isolation from the others, because even seemingly minor details have enormous power to undermine the best efforts of too-narrow thinking.While readers will learn the conceptual tools and methods of systems thinking, the heart of the book is grander than methodology. Donella Meadows was known as much for nurturing positive outcomes as she was for delving into the science behind global dilemmas. She reminds readers to pay attention to what is important, not just what is quantifiable, to stay humble, and to stay a learner.In a world growing ever more complicated, crowded, and interdependent, Thinking in Systems helps readers avoid confusion and helplessness, the first step toward finding proactive and effective solutions.