Soft Skills: The Software Developer's Life Manual


John Z. Sonmez - 2014
    In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement

Thinking, Fast and Slow


Daniel Kahneman - 2011
    System 1 is fast, intuitive, and emotional; System 2 is slower, more deliberative, and more logical. Kahneman exposes the extraordinary capabilities—and also the faults and biases—of fast thinking, and reveals the pervasive influence of intuitive impressions on our thoughts and behavior. The impact of loss aversion and overconfidence on corporate strategies, the difficulties of predicting what will make us happy in the future, the challenges of properly framing risks at work and at home, the profound effect of cognitive biases on everything from playing the stock market to planning the next vacation—each of these can be understood only by knowing how the two systems work together to 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. Thinking, Fast and Slow will transform the way you think about thinking.

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.

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.

The Net Delusion: The Dark Side of Internet Freedom


Evgeny Morozov - 2010
    Yet for all the talk about the democratizing power of the Internet, regimes in Iran and China are as stable and repressive as ever. In fact, authoritarian governments are effectively using the Internet to suppress free speech, hone their surveillance techniques, disseminate cutting-edge propaganda, and pacify their populations with digital entertainment. Could the recent Western obsession with promoting democracy by digital means backfire?In this spirited book, journalist and social commentator Evgeny Morozov shows that by falling for the supposedly democratizing nature of the Internet, Western do-gooders may have missed how it also entrenches dictators, threatens dissidents, and makes it harder - not easier - to promote democracy. Buzzwords like "21st-century statecraft" sound good in PowerPoint presentations, but the reality is that "digital diplomacy" requires just as much oversight and consideration as any other kind of diplomacy.Marshaling compelling evidence, Morozov shows why we must stop thinking of the Internet and social media as inherently liberating and why ambitious and seemingly noble initiatives like the promotion of "Internet freedom" might have disastrous implications for the future of democracy as a whole.

Why Everyone (Else) Is a Hypocrite: Evolution and the Modular Mind


Robert Kurzban - 2010
    Why? Hypocrisy is the natural state of the human mind.Robert Kurzban shows us that the key to understanding our behavioral inconsistencies lies in understanding the mind's design. The human mind consists of many specialized units designed by the process of evolution by natural selection. While these modules sometimes work together seamlessly, they don't always, resulting in impossibly contradictory beliefs, vacillations between patience and impulsiveness, violations of our supposed moral principles, and overinflated views of ourselves.This modular, evolutionary psychological view of the mind undermines deeply held intuitions about ourselves, as well as a range of scientific theories that require a self with consistent beliefs and preferences. Modularity suggests that there is no I. Instead, each of us is a contentious we--a collection of discrete but interacting systems whose constant conflicts shape our interactions with one another and our experience of the world.In clear language, full of wit and rich in examples, Kurzban explains the roots and implications of our inconsistent minds, and why it is perfectly natural to believe that everyone else is a hypocrite.

Professional Android 4 Application Development


Reto Meier - 2012
    If you're anexperienced developer, you can start creating robust mobile Androidapps right away with this professional guide to Android 4application development. Written by one of Google's lead Androiddeveloper advocates, this practical book walks you through a seriesof hands-on projects that illustrate the features of the AndroidSDK. That includes all the new APIs introduced in Android 3 and 4, including building for tablets, using the Action Bar, Wi-Fi Direct, NFC Beam, and more.Shows experienced developers how to create mobile applicationsfor Android smartphones and tabletsRevised and expanded to cover all the Android SDK releasesincluding Android 4.0 (Ice Cream Sandwich), including all updatedAPIs, and the latest changes to the Android platform.Explains new and enhanced features such as drag and drop, fragments, the action bar, enhanced multitouch support, newenvironmental sensor support, major improvements to the animationframework, and a range of new communications techniques includingNFC and Wi-Fi direct.Provides practical guidance on publishing and marketing yourapplications, best practices for user experience, and moreThis book helps you learn to master the design, lifecycle, andUI of an Android app through practical exercises, which you canthen use as a basis for developing your own Android apps.

What Would Google Do?


Jeff Jarvis - 2009
    By “reverse engineering the fastest growing company in the history of the world,” author Jeff Jarvis, proprietor of Buzzmachine.com, one of the Web’s most widely respected media blogs, offers indispensible strategies for solving the toughest new problems facing businesses today. With a new afterword from the author, What Would Google Do? is the business book that every leader or potential leader in every industry must read.

Types and Programming Languages


Benjamin C. Pierce - 2002
    The study of type systems--and of programming languages from a type-theoretic perspective--has important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability


Steve Krug - 2000
    And it’s still short, profusely illustrated…and best of all–fun to read.If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.

Neuroscience


George J. Augustine - 1996
    Created primarily for medical and premedical students, 'Neuroscience' emphasizes the structure of the nervous system, the correlation of structure and function, and the structure/function relationships particularly pertinent to the practice of medicine.

Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

Hello World: Being Human in the Age of Algorithms


Hannah Fry - 2018
    It’s time we stand face-to-digital-face with the true powers and limitations of the algorithms that already automate important decisions in healthcare, transportation, crime, and commerce. Hello World is indispensable preparation for the moral quandaries of a world run by code, and with the unfailingly entertaining Hannah Fry as our guide, we’ll be discussing these issues long after the last page is turned.

Deep Thinking: Where Machine Intelligence Ends and Human Creativity Begins


Garry Kasparov - 2017
    It was the dawn of a new era in artificial intelligence: a machine capable of beating the reigning human champion at this most cerebral game. That moment was more than a century in the making, and in this breakthrough book, Kasparov reveals his astonishing side of the story for the first time. He describes how it felt to strategize against an implacable, untiring opponent with the whole world watching, and recounts the history of machine intelligence through the microcosm of chess, considered by generations of scientific pioneers to be a key to unlocking the secrets of human and machine cognition. Kasparov uses his unrivaled experience to look into the future of intelligent machines and sees it bright with possibility. As many critics decry artificial intelligence as a menace, particularly to human jobs, Kasparov shows how humanity can rise to new heights with the help of our most extraordinary creations, rather than fear them. Deep Thinking is a tightly argued case for technological progress, from the man who stood at its precipice with his own career at stake.

Mapping the Mind


Rita Carter - 1998
    We can actually observe a person's brain registering a joke or experiencing a painful memory. Drawing on the latest imaging technology and the expertise of distinguished scientists, Rita Carter explores the geography of the human brain. Her writing is clear, accessible, witty, and the book's 150 illustrations—most in color—present an illustrated guide to that wondrous, coconut-sized, wrinkled gray mass we carry inside our heads.Mapping the Mind charts the way human behavior and culture have been molded by the landscape of the brain. Carter shows how our personalities reflect the biological mechanisms underlying thought and emotion and how behavioral eccentricities may be traced to abnormalities in an individual brain. Obsessions and compulsions seem to be caused by a stuck neural switch in a region that monitors the environment for danger. Addictions stem from dysfunction in the brain's reward system. Even the sense of religious experience has been linked to activity in a certain brain region. The differences between men and women's brains, the question of a "gay brain," and conditions such as dyslexia, autism, and mania are also explored.Looking inside the brain, writes Carter, we see that actions follow from our perceptions, which are due to brain activity dictated by a neuronal structure formed from the interplay between our genes and the environment. Without sidestepping the question of free will, Carter suggests that future generations will use our increasing knowledge of the brain to "enhance those mental qualities that give sweetness and meaning to our lives, and to eradicate those that are destructive."