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.

Hackers & Painters: Big Ideas from the Computer Age


Paul Graham - 2004
    Who are these people, what motivates them, and why should you care?Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.

FREE Weights and Measures Study Guide: Conversion of over 1,000 units including Length, Area, Volume, Speed, Force, Energy, Electricity, Viscosity, Temperature, & more


MobileReference - 2007
    You will use it from high school to college and beyond. The full version is absolutely FREE. Features Conversion of over 1,000 units. Metric, English, and US customary systems. Length, Area, Volume, Speed, Force, Energy, Electricity, Viscosity, Temperature, and more. List of powers of 10 prefixes. Explanation of SI writing style. Approximate conversion of units. Clear and concise explanations. Difficult concepts are explained in simple terms. Navigate from Table of Contents or search for words or phrases. Add bookmarks and annotation. Access the guide anytime, anywhere - at home, on the train, in the subway. Use your down time to prepare for an exam. Always have the guide available for a quick reference. Indispensable resource for technical and life science students. The full version is absolutely FREE. FREE updates. Table of Contents Conversion of units: Length: Definition | Conversion Area: Definition | 2-D Formulae | 3-D Formulae | Conversion Volume: Definition | Formulae | Conversion Angle: Definition | Conversion Mass: Definition | Conversion Time: Definition | Conversion Speed: Definition | Conversion Acceleration: Definition | Conversion Force: Definition | Conversion Pressure or mechanical stress: Definition | Conversion Energy, work, or heat: Definition | Conversion Power: Definition | Conversion Angular momentum: Definition | Conversion Electricity: Current | Charge | Resistance | Voltage | Formulae | Conversion Viscosity: Definition | Conversion Information entropy: Definition | Conversion Temperature: Definition | Conversion Approximate conversion of units History: Systems of measurement | History of measurement Metric system (SI): Definition | SI writing style | Powers of 10 prefixes Other Systems: English system | Imperial unit | United States customary units | Comparison of the Imperial and U.S. customary systems

Kay’s Anatomy: A Complete (and Completely Disgusting) Guide to the Human Body


Adam Kay - 2020
    pretty weird. Yours is weird, mine is weird, your maths teacher's is even weirder.This book is going to tell you what's actually going on in there, and answer the really important questions, like:Are bogies safe to eat? Look, if your nose is going to all that effort of creating a snack, the least we can do is check out its nutritional value. (Yes, they're safe. Chew away!)and...How much of your life will you spend on the toilet? About a year - so bring a good book. (I recommend this one.)So sit back, relax, put on some rubber gloves, and let a doctor take you on a poo (and puke) filled tour of your insides. Welcome to Kay's Anatomy*.*a fancy word for your body. See, you're learning already.

The Backyard Bug Book for Kids: Storybook, Insect Facts, and Activities


Lauren Davidson - 2019
    Introduce your little one to the types of bugs they’re likely to see during their day, then help them remember what they’ve learned with fun, on-the-page challenges.Go beyond other bug books for kids with: Bugs galore—Learn cool facts about familiar insects: ladybugs, grasshoppers, dragonflies, and more. Amazing pictures—See creepy crawlies up close with big and colorful photos. Exciting activities—Continue the learning with all kinds of bug-themed activities. Give your child a bug’s-eye view of the world with this must-have title for anyone interested in bug books for kids.

Code Simplicity: The Fundamentals of Software


Max Kanat-Alexander - 2012
    This book contains the fundamental laws of software development, the primary pieces of understanding that make the difference between a mid-level/junior programmer and the high-level senior software engineer. The book exists to help all programmers understand the process of writing software, on a very fundamental level that can be applied to any programming language or project, from here into eternity. Code Simplicity is also written in such a way that even non-technical managers of software teams can gain an understanding of what the “right way” and the “wrong way” is (and why they are right and wrong) when it comes to software design. The focus of the book is primarily on “software design,” the process of creating a plan for a software project and making technical decisions about the pattern and structure of a system.

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.

Career Paths in Psychology: Where Your Degree Can Take You


Robert J. Sternberg - 1997
    In this comprehensive anthology, authors selected for their distinction in their chosen careers offer their professional - and personal - perspectives on 19 different graduate-level careers in psychology. Few fields of study offer more career opportunities than does psychology, and readers will find thoughtful discussions, leavened with tips and insights gained from personal experience, on the full range, including (to name only a few) academia, clinical psychology, health and school psychology, clinical neuropsychology, and government service. Each chapter discusses the nature of the career, its advantages and disadvantages, how to prepare for it, typical activities, ranges of financial compensation, opportunities for employment, and the personal attributes needed for success in the career. realities, challenges, and rewards of each career that the lab or lecture hall rarely provides. Reprinted eight times since the publication of the first edition in 1997, Career Paths in Psychology is recognized as the go-to sourcebook for anyone seeking a candid portrait of different careers in this ever-changing field. The second edition has been expanded (discussions of five new careers added) and updated to reflect current trends and changes in the field.

How Much Can a Bare Bear Bear?: What Are Homonyms and Homophones?


Brian P. Cleary - 2005
    Playful rhymes and comical cartoons make both concepts memorable. Each corresponding pair of homonyms and homophones is printed in color for easy identification. At the end, readers are challenged to apply what they've learned--and they'll have fun doing so.

Pro Git


Scott Chacon - 2009
    It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow.

JavaScript: The Good Parts


Douglas Crockford - 2008
    This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole--a subset you can use to create truly extensible and efficient code.Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In JavaScript: The Good Parts, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:SyntaxObjectsFunctionsInheritanceArraysRegular expressionsMethodsStyleBeautiful featuresThe real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to unlearn all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book.With JavaScript: The Good Parts, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.

Humans Are Underrated: Proving Your Value in the Age of Brilliant Technology


Geoff Colvin - 2015
    In a world like that, how will we and our children achieve a rising standard of living?The real issue is what we humans are hardwired to do for and with one another, arising from our deepest, most essentially human abilities—empathy, social sensitivity, storytelling, humor, forming relationships, creativity. These are how we create value that all people hunger for, that is unique and not easily quantified.Individuals and companies are already discovering that these high-value abilities create tremendous competitive advantage—more devoted customers, stronger cultures, breakthrough ideas, more effective teams. They’re discovering also that while many of us regard these abilities as innate traits—“he’s a real people person,” “she’s naturally creative”—it turns out they can all be developed and are being developed in far-sighted organizations from software firms to the U.S. Army to the Cleveland Clinic. To a far greater degree than most of us ever imagined, we already have what it takes.

Beautiful Code: Leading Programmers Explain How They Think


Andy OramLincoln Stein - 2007
    You will be able to look over the shoulder of major coding and design experts to see problems through their eyes.This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.

Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement


Eric Redmond - 2012
    As a modern application developer you need to understand the emerging field of data management, both RDBMS and NoSQL. Seven Databases in Seven Weeks takes you on a tour of some of the hottest open source databases today. In the tradition of Bruce A. Tate's Seven Languages in Seven Weeks, this book goes beyond your basic tutorial to explore the essential concepts at the core each technology. Redis, Neo4J, CouchDB, MongoDB, HBase, Riak and Postgres. With each database, you'll tackle a real-world data problem that highlights the concepts and features that make it shine. You'll explore the five data models employed by these databases-relational, key/value, columnar, document and graph-and which kinds of problems are best suited to each. You'll learn how MongoDB and CouchDB are strikingly different, and discover the Dynamo heritage at the heart of Riak. Make your applications faster with Redis and more connected with Neo4J. Use MapReduce to solve Big Data problems. Build clusters of servers using scalable services like Amazon's Elastic Compute Cloud (EC2). Discover the CAP theorem and its implications for your distributed data. Understand the tradeoffs between consistency and availability, and when you can use them to your advantage. Use multiple databases in concert to create a platform that's more than the sum of its parts, or find one that meets all your needs at once.Seven Databases in Seven Weeks will take you on a deep dive into each of the databases, their strengths and weaknesses, and how to choose the ones that fit your needs.What You Need: To get the most of of this book you'll have to follow along, and that means you'll need a *nix shell (Mac OSX or Linux preferred, Windows users will need Cygwin), and Java 6 (or greater) and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.

The Big Book of Maker Skills: Tools & Techniques for Building Great Tech Projects


Chris Hackett - 2014
    Step-by-step illustrations, helpful diagrams, and exceptional photography make this book an easy-to-follow and easy-on-the-eyes guide to getting your project done.With an emphasis on making DIY projects that can change the world, The Big Book of Maker Skills includes sections and tutorials on:Setting Up a HackerspacePicking the Right ToolsWelding SmartsCircuitry BasicsProgramming & ArduinosWorking with Wood3-D PrintingLaser-cuttingCNC RoutingTesting & PrototypingDrones and Space Exploration ToolsRoboticsBiotechnologySourcing and Crowdsourcing