Think Like a Programmer


Book Description

The real challenge of programming isn't learning a language's syntax—it's learning to creatively solve problems so you can build something great. 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.




Problem Solving 101


Book Description

The fun and simple problem-solving guide that took Japan by storm Ken Watanabe originally wrote Problem Solving 101 for Japanese schoolchildren. His goal was to help shift the focus in Japanese education from memorization to critical thinking, by adapting some of the techniques he had learned as an elite McKinsey consultant. He was amazed to discover that adults were hungry for his fun and easy guide to problem solving and decision making. The book became a surprise Japanese bestseller, with more than 370,000 in print after six months. Now American businesspeople can also use it to master some powerful skills. Watanabe uses sample scenarios to illustrate his techniques, which include logic trees and matrixes. A rock band figures out how to drive up concert attendance. An aspiring animator budgets for a new computer purchase. Students decide which high school they will attend. Illustrated with diagrams and quirky drawings, the book is simple enough for a middleschooler to understand but sophisticated enough for business leaders to apply to their most challenging problems.




Learn to Code by Solving Problems


Book Description

Learn to Code by Solving Problems is a practical introduction to programming using Python. It uses coding-competition challenges to teach you the mechanics of coding and how to think like a savvy programmer. Computers are capable of solving almost any problem when given the right instructions. That’s where programming comes in. This beginner’s book will have you writing Python programs right away. You’ll solve interesting problems drawn from real coding competitions and build your programming skills as you go. Every chapter presents problems from coding challenge websites, where online judges test your solutions and provide targeted feedback. As you practice using core Python features, functions, and techniques, you’ll develop a clear understanding of data structures, algorithms, and other programming basics. Bonus exercises invite you to explore new concepts on your own, and multiple-choice questions encourage you to think about how each piece of code works. You’ll learn how to: Run Python code, work with strings, and use variables Write programs that make decisions Make code more efficient with while and for loops Use Python sets, lists, and dictionaries to organize, sort, and search data Design programs using functions and top-down design Create complete-search algorithms and use Big O notation to design more efficient code By the end of the book, you’ll not only be proficient in Python, but you’ll also understand how to think through problems and tackle them with code. Programming languages come and go, but this book gives you the lasting foundation you need to start thinking like a programmer.




Modern Software Engineering


Book Description

Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




The Science of Programming


Book Description

Describes basic programming principles and their step-by- step applications.Numerous examples are included.




Sprint


Book Description

From inside Google Ventures, a unique five-day process for solving tough problems, proven at thousands of companies in mobile, e-commerce, healthcare, finance, and more. Entrepreneurs and leaders face big questions every day: What’s the most important place to focus your effort, and how do you start? What will your idea look like in real life? How many meetings and discussions does it take before you can be sure you have the right solution? Now there’s a surefire way to answer these important questions: the Design Sprint, created at Google by Jake Knapp. This method is like fast-forwarding into the future, so you can see how customers react before you invest all the time and expense of creating your new product, service, or campaign. In a Design Sprint, you take a small team, clear your schedules for a week, and rapidly progress from problem, to prototype, to tested solution using the step-by-step five-day process in this book. A practical guide to answering critical business questions, Sprint is a book for teams of any size, from small startups to Fortune 100s, from teachers to nonprofits. It can replace the old office defaults with a smarter, more respectful, and more effective way of solving problems that brings out the best contributions of everyone on the team—and helps you spend your time on work that really matters.




Classic Computer Science Problems in Java


Book Description

Sharpen your coding skills by exploring established computer science problems! Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms. Summary Sharpen your coding skills by exploring established computer science problems! Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms. You’ll work through a series of exercises based in computer science fundamentals that are designed to improve your software development abilities, improve your understanding of artificial intelligence, and even prepare you to ace an interview. As you work through examples in search, clustering, graphs, and more, you'll remember important things you've forgotten and discover classic solutions to your "new" problems! Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Whatever software development problem you’re facing, odds are someone has already uncovered a solution. This book collects the most useful solutions devised, guiding you through a variety of challenges and tried-and-true problem-solving techniques. The principles and algorithms presented here are guaranteed to save you countless hours in project after project. About the book Classic Computer Science Problems in Java is a master class in computer programming designed around 55 exercises that have been used in computer science classrooms for years. You’ll work through hands-on examples as you explore core algorithms, constraint problems, AI applications, and much more. What's inside Recursion, memoization, and bit manipulation Search, graph, and genetic algorithms Constraint-satisfaction problems K-means clustering, neural networks, and adversarial search About the reader For intermediate Java programmers. About the author David Kopec is an assistant professor of Computer Science and Innovation at Champlain College in Burlington, Vermont. Table of Contents 1 Small problems 2 Search problems 3 Constraint-satisfaction problems 4 Graph problems 5 Genetic algorithms 6 K-means clustering 7 Fairly simple neural networks 8 Adversarial search 9 Miscellaneous problems 10 Interview with Brian Goetz




Solving Public Problems


Book Description

How to take advantage of technology, data, and the collective wisdom in our communities to design powerful solutions to contemporary problems The challenges societies face today, from inequality to climate change to systemic racism, cannot be solved with yesterday's toolkit. Solving Public Problems shows how readers can take advantage of digital technology, data, and the collective wisdom of our communities to design and deliver powerful solutions to contemporary problems. Offering a radical rethinking of the role of the public servant and the skills of the public workforce, this book is about the vast gap between failing public institutions and the huge number of public entrepreneurs doing extraordinary things--and how to close that gap. Drawing on lessons learned from decades of advising global leaders and from original interviews and surveys of thousands of public problem solvers, Beth Simone Noveck provides a practical guide for public servants, community leaders, students, and activists to become more effective, equitable, and inclusive leaders and repair our troubled, twenty-first-century world.




Nine Algorithms That Changed the Future


Book Description

Nine revolutionary algorithms that power our computers and smartphones Every day, we use our computers to perform remarkable feats. A simple web search picks out a handful of relevant needles from the world's biggest haystack. 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? John MacCormick answers this question in language anyone can understand, using vivid examples to explain the fundamental tricks behind nine computer algorithms that power our PCs, tablets, and smartphones.




Thinking, Fast and Slow


Book Description

*Major New York Times Bestseller *More than 2.6 million copies sold *One of The New York Times Book Review's ten best books of the year *Selected by The Wall Street Journal as one of the best nonfiction books of the year *Presidential Medal of Freedom Recipient *Daniel Kahneman's work with Amos Tversky is the subject of Michael Lewis's best-selling The Undoing Project: A Friendship That Changed Our Minds In his mega bestseller, Thinking, Fast and Slow, Daniel Kahneman, world-famous psychologist and winner of the Nobel Prize in Economics, takes us on a groundbreaking tour of the mind and explains the two systems that drive the way we think. System 1 is fast, intuitive, and emotional; System 2 is slower, more deliberative, and more logical. The impact of overconfidence on corporate strategies, the difficulties of predicting what will make us happy in the future, the profound effect of cognitive biases on everything from playing the stock market to planning our next vacation—each of these can be understood only by knowing how the two systems shape our judgments and decisions. Engaging the reader in a lively conversation about how we think, Kahneman reveals where we can and cannot trust our intuitions and how we can tap into the benefits of slow thinking. He offers practical and enlightening insights into how choices are made in both our business and our personal lives—and how we can use different techniques to guard against the mental glitches that often get us into trouble. Topping bestseller lists for almost ten years, Thinking, Fast and Slow is a contemporary classic, an essential book that has changed the lives of millions of readers.