Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

January 17 2012

Program or be programmed?

Yesterday Douglas Rushkoff, who always manages to get me to think, published a column titled “Why I am learning to code and you should, too” in which he outlined his reasons for signing up with Codeacademy (Codeacademy is a service that offers free online exercises teaching complete newbies programming Javascript):

Learning to code means being able to imagine a new way of using the camera in your iPhone, or a new way for people to connect to each other, and then being able to bring that vision to reality.

He wrote about a similar perspective in his book titled “Program or be programmed”, which I reviewed here and which I totally ripped off for this post’s title. The idea is simple: More and more of our daily life gets digitalized, processed by algorithms and programs and we have to live with whatever those magic black boxes provide us with. And if we have no clue about how programming and algorithmic thinking works, we will have no clue about how the data some services spew our way might have been created and how we could influence it. Not being able to program makes us very powerless in a world where most things are done by programs, programs other people wrote.

Now we could force everyone to learn at least one programming language (in fact that topic came up in the discussion around my recent [German] talk borrowing the same title as this blogpost) where Jens Ohlig coined the brilliant phrase: “Maybe programming is this generation’s Latin?”

But that perspective is in a certain way very elitist. I know how to program, you reading this blog probably do, too. But many many people don’t and not cause of lazyness or not caring. Learning how to program takes time (that you can’t spend earning your livelyhood), it takes considerable resources (you need a computer for example and probably an internet connection) and it takes a certain mindset not everybody has. There are artists who program and use those tools to create brilliant pieces of beauty just as there are financial analysts that couldn’t code a simple Excel macro to save their lives. But it would be ignorant to deny that certain personality traits do make learning programming easier: Programming is very formal, structured and very abstract. You need a very analytical mind to learn it properly.

I don’t deny Rushkoff’s or Ohlig’s train of thought. In fact I deeply support it. But I don’t think that throwing a Javascript or Python tutorial people’s way will help anyone who’s not already halfway there.

In a certain way I think Facebook is a great case study here. Internet savvy people often joke about people whose whole internet is Facebook (just as people joked about the internet being more than “the web” before). The fact is: You might not like Facebook for whatever reasons (privacy, blue design, the interface, data portability or whatever) but when it comes to keeping track of your contacts, managing event invitations, chatting and sharing funny pictures Facebook just works. Yes, many are not using it “right” or “smart” or get all out of it they could, but they get the stuff they care about done.

And that is what we have to start building. In the discussions around my talk Michael Seemann brought up the open source movement as something he thought provided a good model for our future: In open source not everybody checks the code, very few do, but everybody could (or pay someone to do it for them). He proposed to create data management and “programming” tools in an open source way, that hide all of the uglyness from the user and empower them to get stuff done quickly even if they don’t understand the basics.

For a long time I have kinda argued against that idea. I thought that we should make programming languages simple (which is why I like Python) but that abstracting away too much of the internals would still leave people powerless. And to a certain degree I was and am right: People only using the abstracted tool will never be as powerful as the people using all of the potential a “real” programming language provides.

But, and here I changed my perspective, let’s come back to the Facebook example: Yes people whose internet is Facebook miss out on many brilliant things. But they are online, they can talk to many many people all over the world, can find new interests and broaden their horizon.

In a certain way it is just as it is with writing. Yes, “everybody” can write in the first world countries (not really, there are people who just can’t learn it properly) but not everybody can write a great novel. Hell many people can’t even write a semi-structured text summarizing their thoughts on a certain matter.

I think we’ll have to define our “minimum skill level of programming” that we teach people. That doesn’t mean that we should force all our kids through C, Java or Ruby courses. Maybe a simpler, more generic, less powerful language could be used. Something that kinda explains how dataflows work how computers “think” without dealing with functions and memory allocation?

I am not a teacher. I’m also not great at explaining things. But I do believe that teachers and hackers should maybe see if they can come up with a middle ground between “I can click the login button on the Facebook page” and “I write my own kernel in assembler”.

How do you think that middle ground could look? Do you believe we should teach everybody in school programming? I’d love to read your comments!

flattr this!

December 12 2011

November 09 2011

September 08 2011

November 24 2010

November 23 2010

November 14 2010

November 12 2010

Program or be Programmed

On my way home from some meeting I finally had the time to finish “Program or be Programmed” by Douglas Rushkoff. It’s a rather short book, you can finish it easily in one evening/sitting and it oulines 10 important rules for living in our digital age. The rules (and also the chapters of the book) are:

  1. TIME
    Do Not Be Always On
  2. PLACE
    Live in Person
    You May Always Choose None of the Above
    You Are Never Completely Right
  5. SCALE
    One Size Does Not Fit All
    Be Yourself
    Do Not Sell Your Friends
  8. FACT
    Tell the Truth
    Share, Don’t Steal
    Program or Be Programmed

I looked at some of the clippings I had from the book and thought I’d share a few to help you get an impression of the book:

On the new connected cybernetic organism:

But the cybernetic organism, so far, is more like a cybernetic mob than new collective human brain.

Some examples on disruptive technologies that were supposed to change the way people interact and express themselves:

The Axial Age invention of the twenty-two-letter alphabet did not lead to a society of literate Israelite readers, but a society of hearers, who would gather in the town square to listen to the Torah scroll read to them by a rabbi. Yes, it was better than being ignorant slaves, but it was a result far short of the medium’s real potential.

the invention of the printing press in the Renaissance led not to a society of writers but one of readers; except for a few cases, access to the presses was reserved, by force, for the use of those already in power.

On technology bias (every technology has one):

It may be true that “guns don’t kill people, people kill people”; but guns are a technology more biased to killing than, say, clock radios.

On a paradigm shift in reasearching on the Internet:

Instead, net research is more about engaging with data in order to dismiss it and move on—like a magazine one flips through not to read, but to make sure there’s nothing that has to be read. Reading becomes a process of elimination rather than deep engagement. Life becomes about knowing how not to know what one doesn’t have to know.

On abstraction and economy:

The existing bias of business toward abstraction combined with the net’s new emphasis on success through scale yielded a digital economy with almost no basis in actual commerce, the laws of supply and demand, or the creation of value.

On “user friendlyness” and why that is not a smart idea:

The idea was to turn the highly transparent medium of computing into a more opaque one, like television. Interfaces got thicker and more supposedly “user friendly” while the real workings of the machine got buried further in the background. The easy command-line interface (where you just type a word telling the machine what you want it to do) was replaced with clicking and dragging and pointing and watching. It’s no coincidence that installing a program in Windows required us to summon “The Wizard”—not the helper, the puppy, or even that “Paper Clip Man.” No, we needed the Wizard to re-mystify the simple task of dragging an application into the applications folder, and maybe a database file somewhere else.

I recommend that book to everybody who is interested in the Internet and who considers him or herself as “living online”.

UPDATE: Kevin Mark suggested this video of Douglas Rushkoff presenting his ideas at the Courant Institute NYU

Douglas Rushkoff – Program or Be Programmed

There’s also an interview covering some of the topics in the book here:

Douglas Rushkoff: Program or Be Programmed from DANGEROUS MINDS on Vimeo.

November 04 2010

November 02 2010

October 21 2010

The computer as an appliance

Computers and computery devices have gotten very important in probably all our lives as I wrote a few days ago: We rely heavily on all kinds of devices to keep our tasks or schedule or thoughts and contacts organized. We are cyborgs. But computers also have a bad side if you will: They are hard to use.

Computers are build by engineers, technical people and often usability comes last in their design process: Applications are somewhat confusing, they expect people to know a lot about the gory details and life in general hard (at least harder than it has to be). This has not only been a big criticism towards desktop linux ("oh it's all confusing and makes me think about shit!") as well as a huge sales pitch for Apple devices ("Yeah everything just works without any problem and every clicked button shoots fairy dust out of its butt").

We do have devices that are simpler to use: DVD players, gaming consoles, to a certain degree mobile phones and other so-called "appliances". The devices themselves are really complex technically but abstract all that behind a shiny clickable or touchable or otherwise really simple to use interface, for many of those things you probably didn't even read the manual. Why can't computers be that way?

The push towards netbooks or tablets comes from that angle. Since people know how the web works and we just give them something that does one thing: Pop up a browser as fast as possible (if it has flash that is a nice bonus). Tablets and specialiced netbook interfaces are (often, not always) a lot simpler to understand: They tend to focus the user on one application (eliminating the multitasking distraction) and they can streamline their interface a lot in order to bring the user into the web. It seems like a logical thing to bring this back to the personal computer now, a move that Apple just now announced for their Mac computers: Take knowledge from the tablets and smartphones and apply it to the desktop. Why should there be so many applications that all install differently? Why not have one store with "blessed" applications that do the thing people want?

No longer would people have to read and research to find the app they need right now, it's all one click away (kinda like on linux but without all the choice [cause choice can be a source of unhappiness as well]). Everybody wins.

I didn't reference my earlier article about our cyborg nature by accident at the beginning of this post and I want to come back to it now: I don't believe in the computer as an appliance.

Our computers and smart devices are an external part of our brain, they are like an extended cerebrum storing data, facts, connections, ideas and allowing us to do all kinds of funky things with them. But if we just had appliances we'd limit ourselves radically. Let's take the technology down a notch and go back to the basics, let's take paper.

Paper is cool. I can take a sheet of it and draw on it and write and link things I wrote with arrows and diagrams. While a sheet of paper has its physical limitations, it does allow me a huge degree of freedom. The sheet of paper is our modern programmable computer in this example. Now let's apply the appliance model to paper: Instead of being able to do waht we want to do we now have paper that we can only write on (ignore the fact that a restriction like that is not technically possible for this analogy please), or paper we can only draw on. Maybe we have specific paper that we can only write about certain topics on. On the paper with the bitten apple logo you can for example not draw a nude drawing (Apple hates the human body I guess).

I am not against making computers easier to use, to make accessing their potential easier but I am againt appliances when it comes to my brain: As Douglas Rushkoff argues it's "Program or be programmed".

This does not mean that everybody needs to be able to write program code, that's too narrow a view on programming. Taking the existing tools (programms and apps) available and combining them to build your own toolkit, using applications in "wrong" or let's better say "unexpected" ways is what allows us to have great ideas and do great things.

Our society puts so much weight on the idea that we are all individuals, different like little pretty snowflakes or pink ponies or whatever, how does that fit to demanding to standardize your external brain functions to simplistic "apps"?

Appliances rock. I have a PS3 to play games on and there's no thinking or fiddling around with it. I click the button on the controller and pretty pictures come to the screen (YAY!) but my brain deserves better.

flattr this!

October 19 2010

October 04 2010

September 27 2010

September 26 2010

September 14 2010

September 13 2010

August 31 2010

August 27 2010

August 26 2010

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!