$30 off During Our Annual Pro Sale. View Details »

On Programming

On Programming

Talk given at CodeMania in Auckland NZ, 4/12/13

Ana Betts

April 10, 2013
Tweet

More Decks by Ana Betts

Other Decks in Programming

Transcript

  1. On Programming

    View Slide

  2. @xpaulbettsx

    View Slide

  3. What is Programming?

    View Slide

  4. - Why is it not engineering
    - Engineering is about optimization problems, that’s boring (to me)
    - Building things that already exists

    View Slide

  5. - Why is it not business
    - Business is competition
    - Finance doesn't create *anything*

    View Slide

  6. I posit, that programming is way more like this...

    View Slide

  7. Or maybe this. This is my friend Marci.
    When I started University, instead of living with computer science or engineering people, I
    checked the wrong box and ended up living with the arts and modern dancers.

    View Slide

  8. This is Sleater-Kinney, I don’t know them

    View Slide

  9. This is Mark Rothko, I don’t know him either

    View Slide

  10. Programming as Art
    Art is about human expression through language. Programming, art, music, dance, they’re all
    a *medium* to communicate an *idea* to others.
    Depending on your idea, certain mediums are more suitable than others. Dance as a medium
    struggles to be concrete, it is often very abstract. Paintings struggle to escape the
    concreteness of a form inside a frame.

    View Slide

  11. This is _why the Lucky Stiff. He used code in a very different way than most of us. The thing I
    like is that he threw out the constraints most of us live under when writing code.
    What would you write if you had very different goals than “Maintainability”, “Performance”,
    etc?

    View Slide

  12. The ideas that _why were interested in, were around teaching people how to program. When
    he decided to do this, he chose the *medium* of comics, and wrote a book called “_why’s
    Poignant Guide to Ruby”. He had an idea, but expressed it in a very novel way

    View Slide

  13. So, when I want to become a better programmer or think about programming as a
    profession, I like to read books about art and design, so I thought I’d share a few things I’ve
    learned from these books.
    Programming as a profession has been around for what, 50 years? We’re toddlers as a
    profession compared to design or architecture. We can learn a lot from great designers and
    artists.
    Now, if you’ve went to art school, this slide is probably making you groan - “Every first-year
    art student reads this book in University”. But for me it’s new, so humor me :)

    View Slide

  14. “What you need to know about the next piece is
    contained in the last piece. The place to learn
    about your materials is in the last use of your
    materials. The place to learn about your execution
    is in your execution.
    Put simply, your work is your guide: a complete,
    comprehensive, limitless reference book on your
    work.”

    View Slide

  15. “Art is a high calling – fears are coincidental. Coincidental,
    sneaky and disruptive, we might add, disguising
    themselves variously as laziness, resistance to deadlines,
    irritation with materials or surroundings, distraction over
    the achievements of others – indeed as anything that
    keeps you from giving your work your best shot.
    What separates artists from ex-artists is that those who
    challenge their fears, continue; those who don't, quit.”

    View Slide

  16. So, at this point, you may be saying, “This is *mostly* bullshit, I’ve got deadlines and
    managers.” And you’d be right. We’re not quite like painters or sculptors, whose goal is
    solely expression. Our work also has concrete goals and constraints - code usually serves a
    concrete function.
    So, I’d say instead of thinking of ourselves as painters, I think of ourselves more like Graphic
    Designers or Architects.

    View Slide

  17. These are buildings by Frank Gehry, one of the most prolific modern architects in the world.
    Buildings can’t just be works of art, people actually *use* them for stuff.

    View Slide

  18. This is Armchair No F 51, designed by Walter Gropius, one of the founding members of the
    Bauhaus school in Germany. Chairs are kind of the “symbol” of Industrial (Product) Design - it
    is both a means of expression and aesthetic, yet has very real constraints and goals; a
    person-shaped person has to sit in this chair

    View Slide

  19. This is Paul Rand, a graphic designer whose forté was logo design. Let’s see if you recognize
    a few of his logos

    View Slide

  20. View Slide

  21. The funny thing is, you probably are thinking right now, “This logo isn’t that great”. Paul
    Rand writes about this - at first, your feelings about a company are built upon the logo, but
    eventually, your feelings about the company are projected *onto* the logo.
    This logo probably looks dated to you, because IBM feels dated to you.

    View Slide

  22. Paul Rand wrote a great collection of essays, called “Design Form and Chaos”

    View Slide

  23. “ Design is the fusion of form and content, the realization
    and unique expression of an idea.
    Design entails a part-whole relationship expressed in
    terms of facture, space, contrast, balance, proportion,
    pattern, repetition, scale, size, shape, color, value, texture,
    and weight.
    These are the means; unity, harmony, grace, and rhythm
    are desirable ends.”

    View Slide

  24. “To be modern is not a fashion, it is a
    state. It is necessary to understand
    history, and he who understands
    history, knows how to find continuity
    between that which was, that which is,
    and that which will be.”
    - Le Corbusier
    So, the moral of the story is, learn C.
    Paul Rand not only had very poignant thoughts on design, he also had thought very
    thoroughly about the *relationship* between business and design, and what a Professional
    Designer should be.

    View Slide

  25. This is the logo for NeXT, the company founded by Steve Jobs, whose technology is the base
    for OS X and iOS to this day (“Remember NSString? “NeXTStep String”).
    Steve Jobs gave an interview in the 90s about Paul Rand, and he described when he asked
    Paul to design the NeXT logo, he said, “Can you give me a few options?”
    Paul said, “No. I will solve your *business problem*, and you will pay me for it.”

    View Slide

  26. “What has always kept the designer and
    client at odds is the same thing that has kept
    them in accord.
    For the former, design is a means for
    invention and experiment, for the latter, a
    means of achieving economic, political, or
    social ends.”

    View Slide

  27. This is another great book, about Juxtaposed Pictorial Images in Deliberate Sequence™.

    View Slide

  28. There’s a lot of interesting parallels to code, I like this one about abstraction.

    View Slide

  29. Scott also had something really interesting to say about what *is* art. I think by his
    standards, we can definitely close the book on whether programming is art or not.

    View Slide

  30. But in my mind, the most useful thing that Scott talks about in this book, is the path of a
    great artist. All of us progress in our development, from six backwards
    First, we learn the surface and craft of writing code, to succeed at just getting the thing to
    work - as we get better, we start to understand structure and the way things *should* be
    built.
    As we get better, we start understanding what came before us and how to understand code in
    the context of what comes before it, when to fit in, and when to build something very
    different and question the fundamental assumptions of the language and domain.

    View Slide

  31. From then on, you can go one of two ways - you can use code as a *means* to effect a
    cultural change outside of our art.
    Programmers more than anything else today have the power to change the world more than
    any other profession. Television is dead, the world revolves around the Internet and *we*
    create that Internet. You can use your abilities along with others like designers to make the
    world a different place than it was before.

    View Slide

  32. You can also dive into our art itself - your ideas and how they are expressed via code can
    change the fundamental way in which we build things. How should people write software in
    five years? What would make C# obsolete? What would make Git seem archaic?

    View Slide

  33. What is your mission?
    So, you really owe it to yourself, to ask what you *want* to do in the world, and what your
    path is to get there

    View Slide

  34. Not only should individuals have a mission, but companies should too.
    Kyle Neath is our director of design at GitHub, and he really changed how I thought about
    what GitHub does, when he posed to us the philosophical question that GitHub tries to
    answer

    View Slide

  35. “What is the best way
    to write software?”

    View Slide

  36. “Working together is better
    than working alone”
    So, this is the statement that we came up with as *our* mission - we want to make it so that
    this is *always* true.

    View Slide

  37. This is Clay Shirky, he’s a famous author and Internet™ Blogger™. He said something that a
    lot of people forget

    View Slide

  38. “Ideas that spread,
    win.”
    Ideas that aren’t shared with others don’t go anywhere, even if you write the best code in the
    whole world.
    So, I want to leave you with one thing, from Steve Jobs.

    View Slide

  39. No, not that Steve Jobs

    View Slide

  40. This one.

    View Slide

  41. Fake Steve Jobs is a blog written by Daniel Lyons, the senior editor of Forbes magazine. One
    of my favorite articles in all the Internet is a post he wrote entitled, “A not-so-brief chat with
    Randall Stephenson (the CEO of AT&T)”. When the iPhone first came out in the US, AT&T was
    the exclusive carrier.
    So, a lot of people say this phrase, “Change the world.”, so much so that it doesn’t really have
    much motivational value these days. So let me explain further what this phrase means by
    cribbing from this article a bit:

    View Slide

  42. “Okay, so you were born in 1960, so maybe you don’t remember Meet the Beatles. Or do you?
    Do you remember that album? Came out in the beginning of 1964. The one with the four
    guys in black and white, half their faces white, half in shadow? Just four faces against a black
    backdrop?”

    View Slide

  43. “Now, the thing about that album was, on the day it hit the U.S. the whole world changed.
    Like, before that day, the world was one way, music was one way, culture was one way — and
    then after that day the world was never the same ever again, and as soon as you heard that
    album you knew that, and even if you were only nine years old, which I was, you just knew.
    You knew. Sales were crazy. I mean nuts. The thing was a huge smash hit. By April, twelve
    weeks after that album came out, the Beatles had the top five spots on the Billboard chart.”

    View Slide

  44. “It’s not like that album was the first rock album ever. It’s not like nobody ever made a band
    with some guitars and drums before. But it was radical. It was new. They took old forms and
    made them new. Same with us. We didn’t invent the smartphone or the PDA or the music
    player or the Web browser. We just made them better. We made them new. We changed the
    fucking world, Randall.”

    View Slide

  45. Thanks!
    So, go change the world.

    View Slide