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.

Secrets of Mental Math: The Mathemagician's Guide to Lightning Calculation and Amazing Math Tricks


Arthur T. Benjamin - 1993
    Get ready to amaze your friends—and yourself—with incredible calculations you never thought you could master, as renowned “mathemagician” Arthur Benjamin shares his techniques for lightning-quick calculations and amazing number tricks. This book will teach you to do math in your head faster than you ever thought possible, dramatically improve your memory for numbers, and—maybe for the first time—make mathematics fun.Yes, even you can learn to do seemingly complex equations in your head; all you need to learn are a few tricks. You’ll be able to quickly multiply and divide triple digits, compute with fractions, and determine squares, cubes, and roots without blinking an eye. No matter what your age or current math ability, Secrets of Mental Math will allow you to perform fantastic feats of the mind effortlessly. This is the math they never taught you in school.Also available as an eBook

Elementary Differential Equations


Earl D. Rainville - 1962
    Each chapter includes many illustrative examples to assist the reader. The book emphasizes methods for finding solutions to differential equations. It provides many abundant exercises, applications, and solved examples with careful attention given to readability. Elementary Differential Equations includes a thorough treatment of power series techniques. In addition, the book presents a classical treatment of several physical problems to show how Fourier series become involved in the solution of those problems. The eighth edition of Elementary Differential Equations has been revised to include a new supplement in many chapters that provides suggestions and exercises for using a computer to assist in the understanding of the material in the chapter. It also now provides an introduction to the phase plane and to different types of phase portraits. A valuable reference book for readers interested in exploring the technological and other applications of differential equations.

Human Physiology


Stuart Ira Fox - 2007
    The beginning chapters introduce basic chemical and biological concepts to provide students with the framework they need to comprehend physiological principles. The chapters that follow promote conceptual understanding rather than rote memorization of facts. Health applications are included throughout the book to heighten interest, deepen understanding of physiological concepts, and help students relate the material to their individual career goals. Every effort has been made to help students integrate related concepts and understand the relationships between anatomical structures and their functions.

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2


Dave Shreiner - 1999
    The OpenGL Programming Guide provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. It is far and away the most important book on OpenGL, and is commonly referred to by programmers simply as the Red book. Last summer the OpenGL Architectural Review Board (ARB) announced the release of the version 2.0 standard, incorporating the OpenGL Shader Language (GLSL) officially into the spec. This is the biggest change in OpenGL since its inception. This new edition will provide basic information about GLSL itself, as well as all the other changes to the 1.5 and 1.0 versions. the official, comprehensive guide to GLSL itself. A few years ago, pundits were predicting the imminent demise of OpenGL. Far from expiring, however, OpenGL has had a resurgence in the last couple years, and has solidified its position as the defacto standard for high-quality computer graphics. This book remains the necessary guide for any developer doing graphics programming. The sample source code in the book will be available on the book's web site.

Probability And Statistics For Engineers And Scientists


Ronald E. Walpole - 1978
     Offers extensively updated coverage, new problem sets, and chapter-ending material to enhance the book’s relevance to today’s engineers and scientists. Includes new problem sets demonstrating updated applications to engineering as well as biological, physical, and computer science. Emphasizes key ideas as well as the risks and hazards associated with practical application of the material. Includes new material on topics including: difference between discrete and continuous measurements; binary data; quartiles; importance of experimental design; “dummy” variables; rules for expectations and variances of linear functions; Poisson distribution; Weibull and lognormal distributions; central limit theorem, and data plotting. Introduces Bayesian statistics, including its applications to many fields. For those interested in learning more about probability and statistics.

Microbiology


Lansing M. Prescott - 2004
    This title is suitable for students preparing for careers in medicine, dentistry, nursing, and allied health, as well as research, teaching, and industry.

Here's Looking at Euclid: A Surprising Excursion Through the Astonishing World of Math


Alex Bellos - 2010
    But, Alex Bellos says, "math can be inspiring and brilliantly creative. Mathematical thought is one of the great achievements of the human race, and arguably the foundation of all human progress. The world of mathematics is a remarkable place."Bellos has traveled all around the globe and has plunged into history to uncover fascinating stories of mathematical achievement, from the breakthroughs of Euclid, the greatest mathematician of all time, to the creations of the Zen master of origami, one of the hottest areas of mathematical work today. Taking us into the wilds of the Amazon, he tells the story of a tribe there who can count only to five and reports on the latest findings about the math instinct--including the revelation that ants can actually count how many steps they've taken. Journeying to the Bay of Bengal, he interviews a Hindu sage about the brilliant mathematical insights of the Buddha, while in Japan he visits the godfather of Sudoku and introduces the brainteasing delights of mathematical games.Exploring the mysteries of randomness, he explains why it is impossible for our iPods to truly randomly select songs. In probing the many intrigues of that most beloved of numbers, pi, he visits with two brothers so obsessed with the elusive number that they built a supercomputer in their Manhattan apartment to study it. Throughout, the journey is enhanced with a wealth of intriguing illustrations, such as of the clever puzzles known as tangrams and the crochet creation of an American math professor who suddenly realized one day that she could knit a representation of higher dimensional space that no one had been able to visualize. Whether writing about how algebra solved Swedish traffic problems, visiting the Mental Calculation World Cup to disclose the secrets of lightning calculation, or exploring the links between pineapples and beautiful teeth, Bellos is a wonderfully engaging guide who never fails to delight even as he edifies. "Here's Looking at Euclid "is a rare gem that brings the beauty of math to life.

Discrete Mathematical Structures with Applications to Computer Science


Jean-Paul Tremblay - 1975
    

Short-Cut Math


Gerard W. Kelly - 1969
    Short-Cut Math is a concise, remarkably clear compendium of about 150 math short-cuts — timesaving tricks that provide faster, easier ways to add, subtract, multiply, and divide.By using the simple foolproof methods in this volume, you can double or triple your calculation speed — even if you always hated math in school. Here's a sampling of the amazingly effective techniques you will learn in minutes: Adding by 10 Groups; No-Carry Addition; Subtraction Without Borrowing; Multiplying by Aliquot Parts; Test for Divisibility by Odd and Even Numbers; Simplifying Dividends and Divisors; Fastest Way to Add or Subtract Any Pair of Fractions; Multiplying and Dividing with Mixed Numbers, and more.The short-cuts in this book require no special math ability. If you can do ordinary arithmetic, you will have no trouble with these methods. There are no complicated formulas or unfamiliar jargon — no long drills or exercises. For each problem, the author provides an explanation of the method and a step-by-step solution. Then the short-cut is applied, with a proof and an explanation of why it works.Students, teachers, businesspeople, accountants, bank tellers, check-out clerks — anyone who uses numbers and wishes to increase his or her speed and arithmetical agility, can benefit from the clear, easy-to-follow techniques given here.

The Linux Command Line


William E. Shotts Jr. - 2012
    Available here:readmeaway.com/download?i=1593279523The Linux Command Line, 2nd Edition: A Complete Introduction PDF by William ShottsRead The Linux Command Line, 2nd Edition: A Complete Introduction PDF from No Starch Press,William ShottsDownload William Shotts’s PDF E-book The Linux Command Line, 2nd Edition: A Complete Introduction

Fundamentals of Database Systems


Ramez Elmasri - 1989
    It features excellent examples and access to Addison Wesley's database Web site that includes further teaching, tutorials and many useful student resources.

Computer Science Illuminated


Nell B. Dale - 2002
    Written By Two Of Today'S Most Respected Computer Science Educators, Nell Dale And John Lewis, The Text Provides A Broad Overview Of The Many Aspects Of The Discipline From A Generic View Point. Separate Program Language Chapters Are Available As Bundle Items For Those Instructors Who Would Like To Explore A Particular Programming Language With Their Students. The Many Layers Of Computing Are Thoroughly Explained Beginning With The Information Layer, Working Through The Hardware, Programming, Operating Systems, Application, And Communication Layers, And Ending With A Discussion On The Limitations Of Computing. Perfect For Introductory Computing And Computer Science Courses, Computer Science Illuminated, Third Edition's Thorough Presentation Of Computing Systems Provides Computer Science Majors With A Solid Foundation For Further Study, And Offers Non-Majors A Comprehensive And Complete Introduction To Computing.

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.

Flask Web Development: Developing Web Applications with Python


Miguel Grinberg - 2014
    With this hands-on book, you’ll learn Flask from the ground up by developing a complete social blogging application step-by-step. Author Miguel Grinberg walks you through the framework’s core functionality, and shows you how to extend applications with advanced web techniques such as database migration and web service communication.Rather than impose development guidelines as other frameworks do, Flask leaves the business of extensions up to you. If you have Python experience, this book shows you how to take advantage of that creative freedom.- Learn Flask’s basic application structure and write an example app- Work with must-have components—templates, databases, web forms, and email support- Use packages and modules to structure a large application that scales- Implement user authentication, roles, and profiles- Build a blogging feature by reusing templates, paginating item lists, and working with rich text- Use a Flask-based RESTful API to expose app functionality to smartphones, tablets, and other third-party clients- Learn how to run unit tests and enhance application performance- Explore options for deploying your web app to a production server