Going beyond basic programming
November 23, 2011 1:32 PM   Subscribe

I'm a largely self-taught web designer (HTML/CSS/design) with fairly basic but competent enough programming skills (PHP/Javascript/Python) to do simple development and be able to understand roughly what's going on when I work with developers. What are some good things to learn (libraries, techniques, math?) in order to do more interactive and dynamic things on the web, particularly when it comes to data visualization?

To provide some more context, I'm going to be involved in a data visualization/software art project in the next few months. I'm not in a role where I'm expected to be doing complex graphics programming or anything like that, but I'd really like to be able to both better understand the code behind these sorts of things and be able to start building projects on my own. I'm very interested in the kinds of things showcased on the Chrome Experiments site, but don't know where to begin. Particularly scary to me is the math behind this kind of 3D experiment, but I feel like I could learn at least some basics given a few solid months and a plan of action.
posted by OverlappingElvis to Computers & Internet (5 answers total) 41 users marked this as a favorite
Best answer: Transformation matrices are sort of a core concept behind computer graphics.

Depending on what it is that you're visualizing, things like graph traversal algorithms may help you understand how your visualizations are built.

Really though, the Chrome Experiments site is just a bunch of OpenGL toys, except in javascript instead of C. The API is documented here if you want to learn OpenGL. The spec for WebGL is here.

There are lots of other fun computer graphics things you can learn for doing 3D programming, like binary space partitioning and shader languages that make the graphics card do work for you instead of the CPU.

Transformation matrices are pretty core to computer graphics though, more than any of the other things I linked to.
posted by tylerkaraszewski at 1:44 PM on November 23, 2011 [2 favorites]

Maybe processing?
posted by juv3nal at 2:31 PM on November 23, 2011 [1 favorite]

Not really specific to what you are after, but I found PHP Mastery helped me advance my PHP skills.
posted by backwards guitar at 3:37 PM on November 23, 2011

Oh there is also processingjs if that's more to your liking.
posted by juv3nal at 4:16 PM on November 23, 2011

Best answer: Protovis and its successor D3 are two Javascript libraries purpose-built for visualization, and can help you ease into graphical programming starting from data. Mike’s got the literature down pat and Protovis in particular is solidly grounded in visual communication theory. D3 by contrast is a more general toolkit and a step up to lusher, more complex interactions.

When you want to step over to something like three.js, you’ll really want to have read some of Tyler’s links above on transformation matrices.

Processing will help you get pixels on a screen, but the hand-holding ends there.
posted by migurski at 9:52 PM on November 23, 2011

« Older Thanksgiving Day kids activities?   |   Unique horror movie themes! Newer »
This thread is closed to new comments.