Clean Code: A Handbook of Agile Software Craftsmanship


Robert C. Martin - 2007
    But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it. What kind of work will you be doing? You'll be reading code - lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding ‣ How to tell the difference between good and bad code‣ How to write good code and how to transform bad code into good code‣ How to create good names, good functions, good objects, and good classes‣ How to format code for maximum readability ‣ How to implement complete error handling without obscuring code logic ‣ How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

Think Like a Freak


Steven D. Levitt - 2014
    Then came SuperFreakonomics, a documentary film, an award-winning podcast, and more.Now, with Think Like a Freak, Steven D. Levitt and Stephen J. Dubner have written their most revolutionary book yet. With their trademark blend of captivating storytelling and unconventional analysis, they take us inside their thought process and teach us all to think a bit more productively, more creatively, more rationally—to think, that is, like a Freak.Levitt and Dubner offer a blueprint for an entirely new way to solve problems, whether your interest lies in minor lifehacks or major global reforms. As always, no topic is off-limits. They range from business to philanthropy to sports to politics, all with the goal of retraining your brain. Along the way, you’ll learn the secrets of a Japanese hot-dog-eating champion, the reason an Australian doctor swallowed a batch of dangerous bacteria, and why Nigerian e-mail scammers make a point of saying they’re from Nigeria.Some of the steps toward thinking like a Freak:First, put away your moral compass—because it’s hard to see a problem clearly if you’ve already decided what to do about it.Learn to say “I don’t know”—for until you can admit what you don’t yet know, it’s virtually impossible to learn what you need to.Think like a child—because you’ll come up with better ideas and ask better questions.Take a master class in incentives—because for better or worse, incentives rule our world.Learn to persuade people who don’t want to be persuaded—because being right is rarely enough to carry the day.Learn to appreciate the upside of quitting—because you can’t solve tomorrow’s problem if you aren’t willing to abandon today’s dud.Levitt and Dubner plainly see the world like no one else. Now you can too. Never before have such iconoclastic thinkers been so revealing—and so much fun to read.

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.

Probability and Statistics


Morris H. DeGroot - 1975
    Other new features include a chapter on simulation, a section on Gibbs sampling, what you should know boxes at the end of each chapter, and remarks to highlight difficult concepts.

How to Measure Anything: Finding the Value of "Intangibles" in Business


Douglas W. Hubbard - 1985
    Douglas Hubbard helps us create a path to know the answer to almost any question in business, in science, or in life . . . Hubbard helps us by showing us that when we seek metrics to solve problems, we are really trying to know something better than we know it now. How to Measure Anything provides just the tools most of us need to measure anything better, to gain that insight, to make progress, and to succeed." -Peter Tippett, PhD, M.D. Chief Technology Officer at CyberTrust and inventor of the first antivirus software "Doug Hubbard has provided an easy-to-read, demystifying explanation of how managers can inform themselves to make less risky, more profitable business decisions. We encourage our clients to try his powerful, practical techniques." -Peter Schay EVP and COO of The Advisory Council "As a reader you soon realize that actually everything can be measured while learning how to measure only what matters. This book cuts through conventional cliches and business rhetoric and offers practical steps to using measurements as a tool for better decision making. Hubbard bridges the gaps to make college statistics relevant and valuable for business decisions." -Ray Gilbert EVP Lucent "This book is remarkable in its range of measurement applications and its clarity of style. A must-read for every professional who has ever exclaimed, 'Sure, that concept is important, but can we measure it?'" -Dr. Jack Stenner Cofounder and CEO of MetraMetrics, Inc.

Business Driven Information Systems


Paige Baltzan - 2006
    The premise for this unique approach is that business initiatives should drive technology choices. Every discussion first addresses the business needs and then addresses the technology that supports those needs. This text provides the foundation that will enable students to achieve excellence in business, whether they major in operations management, manufacturing, sales, marketing, finance, human resources, accounting, or virtually any other business discipline. Business Driven Information Systems is designed to give students the ability to understand how information technology can be a point of strength for an organization.

Being Wrong: Adventures in the Margin of Error


Kathryn Schulz - 2010
    Kathryn Schulz, editor of Grist magazine, argues that error is the fundamental human condition and should be celebrated as such. Guiding the reader through the history and psychology of error, from Socrates to Alan Greenspan, Being Wrong will change the way you perceive screw-ups, both of the mammoth and daily variety, forever.

Principles of Microeconomics


Karl E. Case - 1989
    One of the all time best-sellers, this text is widely used because of its careful, streamlined, and intuitive chapter organization. Case & Fair, present a very precise and simplified microeconomic model first, before introducing all the exceptions and subtleties of a more complex economic world. Only after this simplified model is developed, do the authors give a thorough treatment of market imperfections, externalities, public finance, and international economics. (A detailed summary of this approach can be found on the page directly following the inside front cover).

Operations Research: An Introduction


Hamdy A. Taha - 1976
    The applications and computations in operations research are emphasized. Significantly revised, this text streamlines the coverage of the theory, applications, and computations of operations research. Numerical examples are effectively used to explain complex mathematical concepts. A separate chapter of fully analyzed applications aptly demonstrates the diverse use of OR. The popular commercial and tutorial software AMPL, Excel, Excel Solver, and Tora are used throughout the book to solve practical problems and to test theoretical concepts. New materials include Markov chains, TSP heuristics, new LP models, and a totally new simplex-based approach to LP sensitivity analysis.

Signing Illustrated (Revised Edition): The Complete Learning Guide


Mickey Flodin - 2004
    This easy-to-use guide is updated and expanded to include new computer and technology signs and offers a fast and simple approach to learning. Includes:- Vocabulary reviews- Fingerspelling exercises- Sign matching and memory aids- A complete glossary and a comprehensive index- Clear instructive drawings

The Ten-Day MBA : A Step-By-Step Guide To Mastering The Skills Taught In America's Top Business Schools


Steven Silbiger - 1993
    Features chapters on finance, marketing, accounting, strategy, quantitative analysis, operations, economics, organisational behaviour, and ethics, all revised to reflect the contemporary corporate culture and economic climate.

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

Structure and Interpretation of Computer Programs


Harold Abelson - 1984
    This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

Moneyball: The Art of Winning an Unfair Game


Michael Lewis - 2003
    Conventional wisdom long held that big name, highly athletic hitters and young pitchers with rocket arms were the ticket to success. But Beane and his staff, buoyed by massive amounts of carefully interpreted statistical data, believed that wins could be had by more affordable methods such as hitters with high on-base percentage and pitchers who get lots of ground outs. Given this information and a tight budget, Beane defied tradition and his own scouting department to build winning teams of young affordable players and inexpensive castoff veterans. Lewis was in the room with the A's top management as they spent the summer of 2002 adding and subtracting players and he provides outstanding play-by-play. In the June player draft, Beane acquired nearly every prospect he coveted (few of whom were coveted by other teams) and at the July trading deadline he engaged in a tense battle of nerves to acquire a lefty reliever. Besides being one of the most insider accounts ever written about baseball, Moneyball is populated with fascinating characters. We meet Jeremy Brown, an overweight college catcher who most teams project to be a 15th round draft pick (Beane takes him in the first). Sidearm pitcher Chad Bradford is plucked from the White Sox triple-A club to be a key set-up man and catcher Scott Hatteberg is rebuilt as a first baseman. But the most interesting character is Beane himself. A speedy athletic can't-miss prospect who somehow missed, Beane reinvents himself as a front-office guru, relying on players completely unlike, say, Billy Beane. Lewis, one of the top nonfiction writers of his era (Liar's Poker, The New New Thing), offers highly accessible explanations of baseball stats and his roadmap of Beane's economic approach makes Moneyball an appealing reading experience for business people and sports fans alike. --John Moe

Organizational Communication: Approaches and Processes


Katherine Miller - 2005
    Her writing style and consistent use of examples and case studies results in a text that undergraduates students will find easy to understand.