The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.

Machine Learning for Hackers


Drew Conway - 2012
    Authors Drew Conway and John Myles White help you understand machine learning and statistics tools through a series of hands-on case studies, instead of a traditional math-heavy presentation.Each chapter focuses on a specific problem in machine learning, such as classification, prediction, optimization, and recommendation. Using the R programming language, you'll learn how to analyze sample datasets and write simple machine learning algorithms. "Machine Learning for Hackers" is ideal for programmers from any background, including business, government, and academic research.Develop a naive Bayesian classifier to determine if an email is spam, based only on its textUse linear regression to predict the number of page views for the top 1,000 websitesLearn optimization techniques by attempting to break a simple letter cipherCompare and contrast U.S. Senators statistically, based on their voting recordsBuild a "whom to follow" recommendation system from Twitter data

Doing Math with Python


Amit Saha - 2015
    Python is easy to learn, and it's perfect for exploring topics like statistics, geometry, probability, and calculus. You’ll learn to write programs to find derivatives, solve equations graphically, manipulate algebraic expressions, even examine projectile motion.Rather than crank through tedious calculations by hand, you'll learn how to use Python functions and modules to handle the number crunching while you focus on the principles behind the math. Exercises throughout teach fundamental programming concepts, like using functions, handling user input, and reading and manipulating data. As you learn to think computationally, you'll discover new ways to explore and think about math, and gain valuable programming skills that you can use to continue your study of math and computer science.If you’re interested in math but have yet to dip into programming, you’ll find that Python makes it easy to go deeper into the subject—let Python handle the tedious work while you spend more time on the math.

The Best of 2600: A Hacker Odyssey


Emmanuel Goldstein - 2008
    Find the best of the magazine's writing in Best of 2600: A Hacker Odyssey, a collection of the strongest, most interesting, and often most controversial articles covering 24 years of changes in technology, all from a hacker's perspective. Included are stories about the creation of the infamous tone dialer "red box" that allowed hackers to make free phone calls from payphones, the founding of the Electronic Frontier Foundation, and the insecurity of modern locks.

Crypto: How the Code Rebels Beat the Government—Saving Privacy in the Digital Age


Steven Levy - 2001
    From Stephen Levy—the author who made "hackers" a household word—comes this account of a revolution that is already affecting every citizen in the twenty-first century. Crypto tells the inside story of how a group of "crypto rebels"—nerds and visionaries turned freedom fighters—teamed up with corporate interests to beat Big Brother and ensure our privacy on the Internet. Levy's history of one of the most controversial and important topics of the digital age reads like the best futuristic fiction.

In Pursuit of the Unknown: 17 Equations That Changed the World


Ian Stewart - 2012
    We often overlook the historical link between mathematics and technological advances, says Stewart—but this connection is integral to any complete understanding of human history.Equations are modeled on the patterns we find in the world around us, says Stewart, and it is through equations that we are able to make sense of, and in turn influence, our world. Stewart locates the origins of each equation he presents—from Pythagoras's Theorem to Newton's Law of Gravity to Einstein's Theory of Relativity—within a particular historical moment, elucidating the development of mathematical and philosophical thought necessary for each equation's discovery. None of these equations emerged in a vacuum, Stewart shows; each drew, in some way, on past equations and the thinking of the day. In turn, all of these equations paved the way for major developments in mathematics, science, philosophy, and technology. Without logarithms (invented in the early 17th century by John Napier and improved by Henry Briggs), scientists would not have been able to calculate the movement of the planets, and mathematicians would not have been able to develop fractal geometry. The Wave Equation is one of the most important equations in physics, and is crucial for engineers studying the vibrations in vehicles and the response of buildings to earthquakes. And the equation at the heart of Information Theory, devised by Claude Shannon, is the basis of digital communication today.An approachable and informative guide to the equations upon which nearly every aspect of scientific and mathematical understanding depends, In Pursuit of the Unknown is also a reminder that equations have profoundly influenced our thinking and continue to make possible many of the advances that we take for granted.

Test Driven Development for Embedded C


James W. Grenning - 2010
    You thought TDD was for someone else, but it's not! It's for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers. TDD is a modern programming practice C developers need to know. It's a different way to program---unit tests are written in a tight feedback loop with the production code, assuring your code does what you think. You get valuable feedback every few minutes. You find mistakes before they become bugs. You get early warning of design problems. You get immediate notification of side effect defects. You get to spend more time adding valuable features to your product. James is one of the few experts in applying TDD to embedded C. With his 1.5 decades of training, coaching, and practicing TDD in C, C++, Java, and C# he will lead you from being a novice in TDD to using the techniques that few have mastered. This book is full of code written for embedded C programmers. You don't just see the end product, you see code and tests evolve. James leads you through the thought process and decisions made each step of the way. You'll learn techniques for test-driving code right next to the hardware, and you'll learn design principles and how to apply them to C to keep your code clean and flexible. To run the examples in this book, you will need a C/C++ development environment on your machine, and the GNU GCC tool chain or Microsoft Visual Studio for C++ (some project conversion may be needed).

Deep Learning with Python


François Chollet - 2017
    It is the technology behind photo tagging systems at Facebook and Google, self-driving cars, speech recognition systems on your smartphone, and much more.In particular, Deep learning excels at solving machine perception problems: understanding the content of image data, video data, or sound data. Here's a simple example: say you have a large collection of images, and that you want tags associated with each image, for example, "dog," "cat," etc. Deep learning can allow you to create a system that understands how to map such tags to images, learning only from examples. This system can then be applied to new images, automating the task of photo tagging. A deep learning model only has to be fed examples of a task to start generating useful results on new data.

Introducing Baudrillard


Chris Horrocks - 1996
    His style and assaults on sociology, feminism and Marxism have exposed him to accusations of being the pimp of postmodernism.

Who Owns the Future?


Jaron Lanier - 2013
    Who Owns the Future? is his visionary reckoning with the most urgent economic and social trend of our age: the poisonous concentration of money and power in our digital networks.Lanier has predicted how technology will transform our humanity for decades, and his insight has never been more urgently needed. He shows how Siren Servers, which exploit big data and the free sharing of information, led our economy into recession, imperiled personal privacy, and hollowed out the middle class. The networks that define our world—including social media, financial institutions, and intelligence agencies—now threaten to destroy it.But there is an alternative. In this provocative, poetic, and deeply humane book, Lanier charts a path toward a brighter future: an information economy that rewards ordinary people for what they do and share on the web.

The Nature of Code


Daniel Shiffman - 2012
    Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.

802.11 Wireless Networks: The Definitive Guide


Matthew S. Gast - 2002
    Foremost on that list is mobility, since going wireless frees you from the tether of an Ethernet cable at a desk. But that's just the tip of the cable-free iceberg. Wireless networks are also more flexible, faster and easier for you to use, and more affordable to deploy and maintain.The de facto standard for wireless networking is the 802.11 protocol, which includes Wi-Fi (the wireless standard known as 802.11b) and its faster cousin, 802.11g. With easy-to-install 802.11 network hardware available everywhere you turn, the choice seems simple, and many people dive into wireless computing with less thought and planning than they'd give to a wired network. But it's wise to be familiar with both the capabilities and risks associated with the 802.11 protocols. And 802.11 Wireless Networks: The Definitive Guide, 2nd Edition is the perfect place to start.This updated edition covers everything you'll ever need to know about wireless technology. Designed with the system administrator or serious home user in mind, it's a no-nonsense guide for setting up 802.11 on Windows and Linux. Among the wide range of topics covered are discussions on:deployment considerationsnetwork monitoring and performance tuningwireless security issueshow to use and select access pointsnetwork monitoring essentialswireless card configurationsecurity issues unique to wireless networksWith wireless technology, the advantages to its users are indeed plentiful. Companies no longer have to deal with the hassle and expense of wiring buildings, and households with several computers can avoid fights over who's online. And now, with 802.11 Wireless Networks: The Definitive Guide, 2nd Edition, you can integrate wireless technology into your current infrastructure with the utmost confidence.

Programming the Universe: A Quantum Computer Scientist Takes on the Cosmos


Seth Lloyd - 2006
    This wonderfully accessible book illuminates the professional and personal paths that led him to this remarkable conclusion.All interactions between particles in the universe, Lloyd explains, convey not only energy but also information—in other words, particles not only collide, they compute. And what is the entire universe computing, ultimately? “Its own dynamical evolution,” he says. “As the computation proceeds, reality unfolds.”To elucidate his theory, Lloyd examines the history of the cosmos, posing questions that in other hands might seem unfathomably complex: How much information is there in the universe? What information existed at the moment of the Big Bang and what happened to it? How do quantum mechanics and chaos theory interact to create our world? Could we attempt to re-create it on a giant quantum computer? Programming the Universe presents an original and compelling vision of reality, revealing our world in an entirely new light.

Surviving AI: The promise and peril of artificial intelligence


Calum Chace - 2015
    If we get it right it will make humans almost godlike. If we get it wrong... well, extinction is not the worst possible outcome.“Surviving AI” is a concise, easy-to-read guide to what's coming, taking you through technological unemployment (the economic singularity) and the possible creation of a superintelligence (the technological singularity).Here's what some of the leading thinkers in the field have to say about it:A sober and easy-to-read review of the risks and opportunities that humanity will face from AI. Jaan Tallinn – co-founder of Skype Understanding AI – its promise and its dangers – is emerging as one of the great challenges of coming decades and this is an invaluable guide to anyone who’s interested, confused, excited or scared. David Shukman – BBC Science Editor We have recently seen a surge in the volume of scholarly analysis of this topic; Chace impressively augments that with this high-quality, more general-audience discussion. Aubrey de Grey – CSO of SENS Research Foundation; former AI researcher It's rare to see a book about the potential End of the World that is fun to read without descending into sensationalism or crass oversimplification. Ben Goertzel – chairman of Novamente LLC Calum Chace is a prescient messenger of the risks and rewards of artificial intelligence. In “Surviving AI” he has identified the most essential issues and developed them with insight and wit – so that the very framing of the questions aids our search for answers. Chace’s sensible balance between AI’s promise and peril makes “Surviving AI” an excellent primer for anyone interested in what’s happening, how we got here, and where we are headed. Kenneth Cukier – co-author of “Big Data” If you’re not thinking about AI, you’re not thinking.  “Surviving AI” combines an essential grounding in the state of the art with a survey of scenarios that will be discussed with equal vigor at cocktail parties and academic colloquia. Chris Meyer – author of “Blur”, “It’s Alive”, and “Standing on the Sun” The appearance of Calum Chace's book is of some considerable personal satisfaction to me, because it signifies the fact that the level of social awareness of the rise of massively intelligent machines has finally reached the mainstream. If you want to survive the next few decades, you cannot afford NOT to read Chace's book. Prof. Dr. Hugo de Garis – former director of the Artificial Brain Lab, Xiamen University, China “Surviving AI” is an exceptionally clear, well-researched and balanced introduction to a complex and controversial topic, and is a compelling read to boot. Seán Ó hÉigeartaigh – executive director of Cambridge Centre for the Study of Existential Risk In “Surviving AI”, Calum Chace provides a marvellously accessible guide to the swirls of controversy that surround discussion of what is likely to be the single most important event in human history - the emergence of artificial super

Introducing Derrida


Jeff Collins - 1993
    Derrida's philosophy is an initially puzzling array of oblique, deviant and yet rigorous tactics for destabilizing texts, meanings and identities. Deconstruction, as these strategies have been called, has been reviled as a politically pernicioius nihilism and celebrated as a liberatory politics of indifference.