programming since the third grade. • Dropped out of the University of Wisconsin • CTO of a hedge fund at 20 • Started DesignerPages.com at 24 • Started Flatiron School at 28
to find the sqrt of x 1. Guess a number < x, known as g 2. Put it in x = g^2 3. If that is x, stop 4. If it is > x, guess a lower number 5. if it is < x, guess a higher number Codifying How To Knowledge
arbitrary positive starting value x0 (the closer to the actual square root of S, the better). 2. Let xn+1 be the average of xn and S / xn. 3. Repeat step 2 until the desired accuracy is achieved. http://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method
analytical engine, wrote the first algorithm intended to be processed by a machine. The analytical engine introduced logic and control flow to the difference engine. December 1815 - November 1852
merely adapted for tabulating the results of one particular function and of no other, but for developing and tabulating any function whatever. In fact the engine may be described as being the material expression of any indefinite function of any degree of generality and complexity... December 1815 - November 1852
pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent. December 1815 - November 1852
ever, the Mark 1 • first program ever, ACE • conceived of Artificial Intelligence • the turing test • really sad, but in 1952, was convicted for indecency for being a homosexual, was chemically castrated and eventually died of cyanide poisoning (probably a suicide).
the scattered particulars so that one makes clear the particular thing which he wishes to do. Second, the separation of ideas into classes, by dividing it where the natural joints are, and not trying to break any part, after the manner of a bad carver...
the scattered particulars so that one makes clear the particular thing which he wishes to do. Second, the separation of ideas into classes, by dividing it where the natural joints are, and not trying to break any part, after the manner of a bad carver... ...I love these processes of division and bringing together...and if I think any other man is able to see things that can naturally be collected into one and divided into many, him I will follow as if he were a god. Plato, greek philosopher guy, Phaedrus (Dialogue)
should be written in a language that was close to English rather than in machine code or languages close to machine code (such as assembly language) was captured in the new business language, and COBOL would go on to be the most ubiquitous business language to date. December 1906 - January 1992
forgiveness than it is to get permission. I had a running compiler and nobody would touch it. ... they carefully told me, computers could only do arithmetic; they could not do programs. You manage things, you lead people. December 1906 - January 1992
programming, three basic structures are used: sequence, repetition, and selection. Sequence is the execution of one program unit following another; repetition is the repeated execution of the same program unit until a desired program state is reached; and selection is the executing of one and only one of a fixed set of possible alternative program units depending on the program state.
computer] was actually beyond the electronic technology of the day, and, as a result, the question of how to get and keep the physical equipment more or less in working condition became in the early days the all-overriding concern. As a result, the topic became —primarily in the USA— prematurely known as "computer science" —which, actually is like referring to surgery as "knife science"— and it was firmly implanted in people's minds that computing science is about machines and their peripheral equipment. Quod non [Latin: "Which is not true"]
(and devious!) influence on our thinking habits, and, therefore, on our thinking abilities. FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use. About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead. An exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products.
science is to discover how to maintain order in a finite, but very large, discrete universe that is intricately intertwined. And a second, but not less important challenge is how to mold what you have achieved in solving the first problem, into a teachable discipline: it does not suffice to hone your own intellect (that will join you in your grave), you must teach others how to hone theirs. The more you concentrate on these two challenges, the clearer you will see that they are only two sides of the same coin: teaching yourself is discovering what is teachable.
programming simplicity and clarity - in short: what mathematicians call "elegance" - are not a dispensable luxury, but a crucial matter that decides between success and failure? The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
the GUI. You’re welcome. “I fear - as far as I can tell - that most undergraduate degrees in computer science these days are basically Java vocational training. I’ve heard complaints from even mighty Stanford University with its illustrious faculty that basically the undergraduate computer science program is little more than Java certification.”
You’re welcome. "The best way to predict the future is to invent it." "The real romance is out ahead and yet to come. The computer revolution hasn't started yet. Don't be misled by the enormous flow of money into bad defacto standards for unsophisticated buyers using poor adaptations of incomplete ideas."
quite early to music and literature, and a little later to architecture. And I think it's still coming to computer science. So, to drag the subject back to computers, one of the characteristics of a postmodern computer language is that it puts the focus not so much onto the problem to be solved, but rather onto the person trying to solve the problem. I claim that Perl does that, and I also claim that, on some level or other, it was the first computer language to do that.
it many times. The lesson for a language designer is that a language should be optimized for expressive power rather than for ease of learning. It's easy to learn to drive a golf cart, but it's hard to express yourself in one. You'd like to ignore some of the dimensions [of the language] to begin with. You'd like to be able to talk baby talk and be understood. It's okay if a language is difficult to learn, as long as you don't have to learn it all at once.
to be known as the World Wide Web. Based on the earlier "Enquire" work, it was designed to allow people to work together by combining their knowledge in a web of hypertext documents. He wrote the first World Wide Web server, "httpd", and the first client, "WorldWideWeb" a what-you-see-is-what-you- get hypertext browser/editor which ran in the NeXTStep environment. This work was started in October 1990, and the program "WorldWideWeb" first made available within CERN in December, and on the Internet at large in the summer of 1991.
using a computer knows the propensity to dream, the urge to make dreams come true and the tendency to miss lunch. Physicists analyze systems. Web scientists, however, can create the systems. The most important thing that was new was the idea of URI-or URL, that any piece of information anywhere should have an identifier, which will allow you to get hold of it.
not seen it yet. The future is still so much bigger than the past. The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation. When I invented the web, I didn't have to ask anyone's permission.
a technical one. I designed it for a social effect — to help people work together — and not as a technical toy. The ultimate goal of the Web is to support and improve our weblike existence in the world. We clump into families, associations, and companies. We develop trust across the miles and distrust around the corner. The Web does not just connect machines, it connects people.
seen as only connections, nothing else. We think of a dictionary as the repository of meaning, but it defines words only in terms of other words. I liked the idea that a piece of information is really defined only by what it's related to, and how it's related. There really is little else to meaning. The structure is everything. There are billions of neurons in our brains, but what are neurons? Just cells. The brain has no knowledge until connections are made between neurons. All that we know, all that we are, comes from the way our neurons are connected.
(100 million sites), 68% of the top 100 • started by Rob McCool (real name), as NCSA HTTPd Server • named apache after the native american tribe, but also because it is “A Patchy Server” - as in software patches • Mostly written by a guy named Brian Behlendorf (who was also the CTO for the Burning Man festival and apparently quite the raver) • Over 650 people have committed to this project 1995
Ruby is to make programmers happy. I started out to make a programming language that would make me happy, and as a side effect it’s made many, many programmers happy.” "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."
is the final element of beautiful code. So far I have talked about brevity, conservatism, simplicity, and flexibility. No element by itself will ensure a beautiful program.
become defined by your tastes rather than ability. Your tastes only narrow and exclude people. so create.” “Ruby is so... To code ruby is really to love, to feel passion, to feel pleasure, it stirs you inside so greatly, its such a beautiful language, also erotic i would say. Method calls striped, undressed of their parenthesis, chaining them together raw like... Just red ebullient jewel.”
be straight with you. I want you to cry. To weep. To whimper sweetly. This book is a poignant guide to Ruby. That means code so beautiful that tears are shed. That means gallant tales and somber truths that have you waking up the next morning in the arms of this book.”
conscience won’t let me call Ruby a computer language. That would imply that the language works primarily on the computer’s terms. That the language is designed to accommodate the computer, first and foremost. That therefore, we, the coders, are foreigners, seeking citizenship in the computer’s locale. It’s the computer’s language and we are translators for the world. But what do you call the language when your brain begins to think in that language? When you start to use the language’s own words and colloquialisms to express yourself. How can it be the computer’s language? It is ours, we speak it natively! We can no longer call it a computer language. It is the language of our thoughts.