How to Understand Your Computer – The New Yorker

via How to Understand Your Computer – The New Yorker.

Early on in the book, Chandra makes a very interesting claim: many programmers and I.T. professionals have no real idea how computers work, either. Because they don’t need to, essentially; they need to make them perform specific tasks, but they don’t need to understand how they perform them.

He quotes a plaintive post by a programmer named Rob P. on the Q. & A. site stackexchange.com. Rob begins by saying that he is almost embarrassed to reveal what he’s about to reveal, given that he has a degree in computer science and has worked full time as a developer for five years. “But I Don’t Know How Computers Work!” he says. “I know there are components … the power supply, the motherboard, ram, CPU, etc … and I get the ‘general idea’ of what they do. But I really don’t understand how you go from a line of code like Console.Readline() in .NET (or Java or C++) and have it actually do stuff.”

Chandra goes on to provide a fairly thorough explanation of how computers work—of the things that are physically caused to happen by these coded commands, the “mediating dialect between human and machine.” He devotes an entire chapter early in the book to the language of logic that is the native tongue of computer processors; this is the torrent of binary numbers, of ones and zeros, that constitutes the universal grammar of machines. Chandra even goes so far as to include diagrams, as well as photographs of functioning logic gates constructed from Legos.

The Man Who Would Teach Machines to Think – The Atlantic

The Man Who Would Teach Machines to Think – The Atlantic.

It depends on what you mean by artificial intelligence.” Douglas Hofstadter is in a grocery store in Bloomington, Indiana, picking out salad ingredients. “If somebody meant by artificial intelligence the attempt to understand the mind, or to create something human-like, they might say—maybe they wouldn’t go this far—but they might say this is some of the only good work that’s ever been done.”

Their operating premise is simple: the mind is a very unusual piece of software, and the best way to understand how a piece of software works is to write it yourself. Computers are flexible enough to model the strange evolved convolutions of our thought, and yet responsive only to precise instructions. So if the endeavor succeeds, it will be a double victory: we will finally come to know the exact mechanics of our selves—and we’ll have made intelligent machines.

Stanford Machine Learning

via Machine Learning.

In this course, you’ll learn about some of the most widely used and successful machine learning techniques. You’ll have the opportunity to implement these algorithms yourself, and gain practice with them. You will also learn some of practical hands-on tricks and techniques (rarely discussed in textbooks) that help get learning algorithms to work well. This is an “applied” machine learning class, and we emphasize the intuitions and know-how needed to get learning algorithms to work in practice, rather than the mathematical derivations.

Familiarity with programming, basic linear algebra (matrices, vectors, matrix-vector multiplication), and basic probability (random variables, basic properties of probability) is assumed. Basic calculus (derivatives and partial derivatives) would be helpful and would give you additional intuitions about the algorithms, but isn’t required to fully complete this course.

The Great Works of Software — The Message — Medium

The Great Works of Software — The Message — Medium.

I realized that each one of these technologies set out to help people do something but consequently grew and changed over time. Each ultimately provided a way for large groups of people to talk about and think about very difficult problems:

  • Microsoft Office: How do we communicate about work
  • Photoshop: How do we create and manipulate images?
  • Pac-Man: How do we play?
  • Unix: How do we connect abstractions together to solve problems?
  • Emacs: How do we write programs that control computers?

Computer people often talk about products. But each of these five have come to represent something else—an engagement with hard problems that are typically thought to be in the domain of philosophy, literature, or art, rather than programming. This software doesn’t just let people do things; it gives them a way to talk about and share what they did.