I wanted to share a new toy, so here's a rare professional-life cameo from Floodlight, the digital storytelling platform I co-founded. We've just updated our embed widget feature so you can now embed lists of stories based on a keyword or topic. Below, I've included the stories (tutorials, really) I've created about data visualization and data storytelling. Enjoy!
Monday, October 28, 2013
Monday, September 23, 2013
In case you have trouble reading my handwriting...
Reasons the Albuquerque Airport is Awesome:
- It's a SUNport, not an airport.
- It has a bi-plane from 1914 (almost 100 years old!).
- There are portraits memorializing drug- and bomb-sniffing dogs (wearing police badges!) mounted on the wall.
- It was free WiFi.
- There's art (paintings, sculptures, ceramics) everywhere, including 20 giant wooden ceiling beams across the main entry hall, each painted (and carved) with a different animal or design.
- The lines are practically non-existent.
- It's really colorful (like most of New Mexico).
Friday, September 13, 2013
Instead of doing today's create, I chose a recent one I found more intriguing: Celebrate the 600th Daily Create by expressing "600" in a drawing that doesn't use numbers.
Some ideas to illustrate 600 as...
- ...an age (think: Methuselah)
- ...a crowd of people/insects/deer
- ...discrete feathers, or frogs, or pieces of popcorn (popped v. unpopped kernels, by volume, could be interesting)
- ....a weight. Hmmm, what weighs 600 lbs?
|He's kind of nervous about getting weighed at the doctor's office, for obvious reasons.|
|And of course, a grizzle bear would have a driver's license. I used "600" in here but...who cares?|
Friday, September 06, 2013
And an overlooked element of that support is the music that, thanks to modern technology, I can take with me up and down mountain passes.
Out of the many races I do - trail, road, relay, ultra - hundred-milers are the only ones where I use headphones. Why? Because 24+ hours is a lot of time to spend with your own head. My prime directive during a 100-miler is to stay happy. If I'm happy, I'm running (or hiking, as is more often the case) well. Trouble starts when my mood dips.
With the help of friends and family (Amy, Robbie, Sarah, Kayanna, Anat, Helen, Kaya, all the Wirfs-Brocks), who shared songs that make them happy, I put together this playlist: 267 songs, 17+ hours of music, an artesian well of happiness. And it worked. This playlist, which has been evolving since my 100-mile debut last year, was an especially important "member of my crew" at Cascade Crest last weekend, where I ran without a pacer until the last four miles (thanks, Mom!).
So, here it is! (Sorry, you'll have to scroll.)
View in Google Drive
I included the years in there because it's mildly interesting to see the chronological distribution of the music. That data is iffy (sometimes it's the year of a re-release, because it's from iTunes), and not available for every song...yet!
Monday, July 15, 2013
You may find yourself wading across a chest-deep river to get to an island, all so you can punch some holes in a mysterious yet oddly pretty pattern in a tiny piece of Tyvek-paper.
Or standing on railroad tracks while an angry local - who in your paranoid mind has a shotgun at the ready - shouts that he's called the sheriff and you better, "get your ass outta here because you're standing on private property."
Or secretly being thankful that a couple of other racers stopped your teammate to ask for a bike pump, because god that hill was steep and you didn't think you'd be able to keep peddling all the way to the top, anyway.
Or sharing a wet canoe with the biggest, hairiest spiders you've ever seen, which are surely harmless otherwise they wouldn't need to look to intimidating, as your teammate drags you upstream for a mile through the Shenandoah River.
Or picking spiderwebs as thick as rubberbands out of face/arms/legs/ears/hair/everywhere.
Or trying to explain to the race director, as you're about to get up on the podium, that you can't tell him what your team name means* right now, but you'd be happy to tell him later because it's a little bit embarrassing.
If you are me, and you are lucky enough to have Ben (who I'm 86 percent certain is an alien from a planet of athlete-navigator-pun-makers) as your teammate, you'll find yourself doing all of these things.
Whoa, back up, what is adventure racing anyway?
It's a multi-sport, solo or team race that has no specified course, just flags hidden in the woods that you have to find. You get to use a map, compass and your wits to figure out the fastest way to get to as many of the flags as you possibly can in a specified amount of time (in our case, 12 hours). To do that, you bushwhack, run, hike, bike, hike-a-bike, paddle, portage, swim, crawl - whatever is necessary, really. The specific race Team Funfnip did was the Adrenaline Rush AR, in the Shenandoah Valley (which, if you've been following along, is very close to where I recently ran the Massanutten Mountain 100), put on by marvelous people who call themselves Adventure Addicts on June 15, 2013.
*Before you go any further, you gotta explain this Funfnip thing...
I suppose. I did bring this embarrassment on myself, after all. Funfnip is German for "five+nipples." Huh? Well, my team has two people and five nipples on it. You do the rest of the math. I wanted to make it a neat Dutch compound word (because in Dutch you can glom words together and it's perfectly syntactically and semantically acceptable), so next time we might be Vijftepelploeg or Vijftepelteam (Chandler sent me these translations after we'd already registered, so Funfnip it was, thanks to Google translate). Moving on!
Now the part of the race report where I tell you what happened, in roughly chronological order.
One week to go
A big part of adventure racing is mountain biking. A week before the race, I had been mountain biking exactly twice (and the first time I don't think really counted, because it was early-season-biking in Oregon, and there were giant logs every 20 yards or so, so I was basically off my bike the entire time hoisting it over obstacles...and we biked up to the top of the mountain on a road). And I didn't own a mountain bike. So my first pre-race mission was to find a bike to rent. My second pre-race mission was to figure out how to ride it (at least perfunctorily) on some trails.
The Monday before the race we went to College Park Bicycles, who I have to hat-tip because they were super friendly and let me rent the bike for a week and then apply the cost of the rental to purchasing the bike - which I did! (Also, I dig their circa-1998 website.) For those of you out there who care about these things, I got a user (probably mid-2000s, judging from the graphic styling) Trek 8000, which is a front-suspension bike - perfect for a noob like me who doesn't really need anything fancy yet.
|The hot-pink duct tape is my handiwork...the mud, too!|
|Hidden surprise: The cassette is red on the inside!|
When I was checking out he bike, a thunderstorm erupted. So I test-rode it in sheets of rain through the University of Maryland quad, getting a stylish mud-strip on my butt. Clearly, this bike and I were going to be fast friends.
The next day, we went to Patapsco State Park to try out some real, "intermediate-level" trails. It was...fun? Scary? Both? I found out that I swear a lot when I mountain bike, enjoy going up hills (even the steep ones), and am really scared of going downhill (especially the steep ones) - pretty much the opposite of my running personality (except for the swearing). I got my first fall out of the way (into some blackberry bushes), and enjoyed that so much that I fell again. Most important, I came back to the car saying, "We should do more of this crazy mountain biking stuff..."
One day to go
The night before the race, we joined a couple of friends, who are also adventure racers and who volunteered at the Adrenaline Rush event, to camp near the race start. This also served as our race warm-up, because we had to navigate to the campsite in the dark, which consisted of driving on windy, narrow mountain roads with subtle and confusing signage. Despite the three different "Elizabeth Furnace" signs we made it to the campsite - by the cutoff time, no less! We were rewarded with a night full of screaming infants, barking dogs, and snoring neighbors.
We had to get up way too early, so I don't have a very good memory of what happened before the race. There was eating. There was drinking. There was checking in. There was studying of the map. There was nervous eyeing of other teams and their intimidating matching spandex outfits.
Ben, our team's designated navigator (cuz he has the skillz), put the first map (we would use four maps throughout the day, but only got one when we checked-in) in a ziploc bag. We noticed that other teams had these fancy waterproof cases that hung around their necks. Pssh, why would you need that? Well, we'd find out...
My designated role was "person who tries to keep up and not cry." So that I wouldn't feel like complete deadweight, we decided that I would be the keeper of our passport (a tiny piece of Tyvek), and do the glamorous (if glamorous means getting messy/muddy/wet/poison ivy all over you) job of punching in at each checkpoint.
Get to the race part already!
Ok! The race started with an on-foot prologue? What's a prologue? Good question - I didn't know until I found myself in one. Basically, the real first leg of the race was a mountain bike segment, but because everyone starts at the same time (both 6-hour and 12-hour races), they needed to give us a short task to spread us out a bit so we wouldn't be tripping over each other and throwing elbows and playing lemmings. In this case, it was an extra map they handed us about two minutes before that start that had one check-in location on it. We had to run to that point and then run back to our bikes, which were staged next to the starting line.
The check-in point was uphill - good for spreading racers out - and you had some options: You could run up a road, then cut into the woods for a short bushwhack (shortest option), or you could take a trail (longer, but no bush-whacking required). We chose the road. Success! Then it was back down the hill to get our bike gear on. The prologue was also a nice confidence booster. Hey, we can do this!
Stage One: Mountain Biking, 14 checkpoints, must go in order, ~3.5 hours
|Map for the first mountain biking leg|
The course was set up in such a way that it took us all over the park, through marshes (where we biked on boardwalks), to the top of ridges, down by the river, up into tributaries, etc. Most of the check-points were 100 meters from the trail or closer, so we were on our bikes most of the time. There were also a few points where we took off-trail shortcuts and hiked our bikes. During this stage of the race, we saw lots of teams and got to chat with them.
- There was a guy biking with kayak paddles strapped to his back (I was scared he would wipe out and impale someone).
- For a bit, we were near a female soloist who was kicking butt on a cross bike!
- We stopped to help a male two-person team who had gotten their fifth flat tire of the day and needed to borrow our bike pump. They ended up being able to finish the race (and doing really well!) despite the fact that the guilty tube was leaking and one of them had to walk his bike back.
- I was, as expected, a wuss on the steep downhills. But on the uphills I schooled lots of people :)
- Ben was an amazing navigator. We ended up getting all the checkpoints on this segment.
- We had tons of fun...yay!
|The trekking/orienteering map, with Ben's route penned in blue. (Note that it's the same map as for the mountain biking leg, but with different checkpoints.)|
- A fire road (not on the map) magically appeared on top of a ridge, right where we wanted to run.
- We met up with a male soloist around checkpoint seven or eight and finished out the course with him. We got to chat (well, Ben and him chatted, I kind of huffed along behind them), and also we got an extra pair of eyes to help find the last few checkpoints. It was a nice example of how race teams are allowed - and often encouraged - to work together if they so choose.
- A bit after that, we met up with a female soloist (who would go on to win her division) who finished the final checkpoint with us.
- One checkpoint (number four, but we got to it last) looked like it was located directly in the middle of a wide stream. Guess what? It was! And guess who got to wade to the middle in rib-deep water to go get it? Me! It felt amazing, because at this point we were at the height of the day's heat and humidity. At least the race organizers were kind enough to put up a rope for us :)
|Paddling and second biking leg map|
- We'd paddle along, taking frequently breaks because our arms felt like they wanted to fall off, zig-zagging down the river because I was "steering" the canoe.
- We'd find a stretch of shore where we could get out of the water.
- We'd nearly kill ourselves trying to drag our canoe up on said shore.
- We'd run over land to find a checkpoint.
**Note: Ben would like to correct this by saying that we weren't ever really lost, we just didn't know where we were for a little bit. I asked, "Isn't that the definition of lost?"
He replied, "No, to be lost you need to not know where you were and be somewhere you don't want to be." We didn't know where we were, but we never ended up somewhere we didn't want to be (or, at least not for more than 100 meters or so). Thus, not lost. Ok!
|The "rules of travel" -- pretty much equivalent to the rules of a board game|
This part was really fun, because we love trekking and running and orienteering! But it was sad, because the race was almost over, and we didn't want to miss the cut-off time because then we'd be docked a point for each five minutes we were late.
(Honestly, I felt like I was a contestant on America's Next Top Model and this was the go-see episode. And if I've learned anything from watching too much reality TV, it's that you better make it back on time, because models can never be late or they'll be fired and shamed by Tyra Banks.)
Even though we didn't have much time, we got to pick up some really exciting trekking checkpoints. One one, I had to swim/wade (yet again) to an island. On another, I had to root around in a ditch. (By now, I was getting pretty good at that.) We tried to pick up one more, which was on a hillside inlet, but it was getting dark and we couldn't find it. I was starting to freak out about the time cutoff, so I told Ben we had to go back. He was sure he would have had it if we'd looked for
So how did you do? This was a race, after all...
Well...we won! Our division, at least. Here are the full results.
We were first in the co-ed two-person division, which had five teams in it. We just squeaked by, getting only one more point than the second place team. You can't really get any closer than that. They arrived four minutes earlier than us. So, if we had one less checkpoint, they would have won. (Ranking is decided by total number of points, then if there is a tie, the faster time wins.) We also got ninth overall, out of 32 starting teams (and 29 finishing teams).
We got these sweet bike-chain/bottle-opener key-chains as our "medals":
|Our "trophy" - best medal ever!|
Ok, so what did you learn from all of this?
Learning? I was supposed to be learning something? Ok, here's my best shot:
- Adventure racing is rad because all of the distractions (navigating, strategizing, route-finding, swimming/wading/crawling/hauling) make you forget how tired you are. This makes it fun.
- Make decisions and stick with them. You won't always be able to predict the best course of action. For example, the overland route that took us straight to a disgruntled local would most definitely have been faster - if it weren't for the disgruntled local. But we had no way of knowing there would be an obstacle that would cost us 30 minutes or so. You can't predict those things, but you can minimize the waffling time.
- If you want to analyze what went right and what went wrong (which of course, I do), the time to do that is after the race.
- Navigation is probably the most important skill you can have. Unless you aren't your team's navigator, in which case the most important skill you can have is not-whining.
- Everything will get wet. Waterproof does not really mean waterproof.
- Poison ivy is the worst.
- Ben is much more succinct with his lessons learned: "Just play the cards you're dealt."
Proof! We need proof. Do you have pictures?
There was a professional photographer, Vladimir Bukalo, who was all over the course (seriously) and took lots of amazing photos (1268 of them!). Here are the links (more photos if you want to go a-huntin'):
- Getting ready by studying the map (and again, this time giving the photographer a funny look).
- Teammates -- so in synch! This is my fav. We probably look so happy because it's at the start of the race we haven't been beaten to shreds yet. (Also, I'm a big dork.)
- Happy biking Ben-the-alien! (Oh, I rode a bike, too.) (And again.)
- We met up with a male solo-ist and did the last few controls of the orienteering course before the paddle together. Here's Ben and the solo-ist (I was trailing behind a few meters then caught up on the hill :) ... and again (and a close-up).
- This is where I pretended to help haul the canoe (guess who did all the work?).
- Biking part two.
- Wading through the water (and again, and again, and dorkface, and no it's not what it looks like).
- Relishing that post-race feeling. Podium spot!
Wednesday, February 06, 2013
Welcome to the Schoolyard Scrimmage.
No, it's not a recess brawl or a lunchtime food fight. It's a collaborative problem solving party.
The event, organized by Hi Howard of Front Range BOCES and ReWork, brought professionals from disparate fields (architecture, philanthropy, law) together with education administrators to come up with solutions to real problems using a method called rapid prototyping.
Let’s unpack that a bit. Rapid prototyping is a process for quickly testing out potential solutions and getting real feedback from real people. The central idea is that if you incorporate user feedback (or as I like to call it, real people feedback) into the design process as early as possible, and continue to incorporate it through ideation, refinement, and production, you’ll learn more and get to a good solution more quickly and more efficiently.
Google’s Tom Chi is a rapid prototyping advocate, and we watched a short video where he gave us the hows and whys. Here are a few of his verbal gems:
“Most businesses are just a big guessathon....Don’t guess. Learn.” Chi says that is may feel like guessing is cheaper, but doing is cheaper if you can figure out how to do things quickly.
Don’t fail. Learn. Start-ups like to boast about failing fast, but Chi prefers to call it learning fast. The concept of failure puts you in an uncreative mindset. Ideas that ultimately succeed are often slightly modified versions of things that, technically, were failures.
Don’t argue. Just try it. Chi recommends that if you find yourself discussing whether or not something would work, force yourself to stop talking and start prototyping.
|Quotes are better as doodles, right?|
- As quickly as possible, move from an idea to a working model that approximates it.
- Try out the working model on a customer/user (or someone who can stand in for one).
- Improve your model based on the feedback and do the process all over again.
Easier said than done, right? At the Schoolyard Scrimmage, we worked in small, pre-determined groups and had a facilitated timeline that forced us to move from the brainstorming/ideation phase to the building phase to the testing phase. We tested and then iterated on two ideas -- so four cycles of rapid prototyping and user feedback. It was fast. And it was difficult. And it was fun.
In my group, working on how an elementary school might offer health and fitness programs in non-traditional spaces, brainstorming came easily. But rapid prototyping is not the same as rapid brainstorming. Finding the right focus that would allow us to prototype, learn, and iterate was the hardest part.
Nonetheless, the event was a success. And we all took home a new challenge: Bring rapid prototyping into our daily work. After few days back at my desk, I’ve found that this process makes sense conceptually, but has been hard to incorporate into my workflow. It’s more of a mental and cultural shift than anything else. But I have become more sensitive to times when we’re steeped in discussion rather than active experimentation, and I’ve been seeking out, and acting on, feedback as much as possible.
Whether it’s hopping along dinosaur tracks, doodling, or simply asking questions and soliciting feedback earlier and more frequently, I hope a rapid prototyping mindset will add a little color and insight to my day.
Best part: Learning - and trying - a new mode of thinking in a group setting.
Hardest part: Moving from ideation into prototyping and testing. For me, the ideation stage is the fun part. But it’s clear the prototyping and testing part is essential for ideas to succeed.
Biggest takeaway: If you find yourself guessing, speculating about, or discussing a problem, that’s great. It’s what we do as humans and it’s part of the creative process. But push yourself to find a quick and dirty way to test your guess. It’ll make your guesses go farther (and it’s also fun).
Monday, January 28, 2013
I've been taking a course called "Diving Into Data," taught by Lisa Williams, through the Knight Center for Journalism in the Americas. Of course, I've been diving into data for some time now, but class has been fun and I've gotten to play with some fun tools that I haven't had time to experiment on my own, like Processing.
For this week's homework, we're building live forms using Google Drive and creating charts that automatically update based on the responses. I'm pretty predictable, so I made a short survey about craft beer. Click here if you want to take it.
Here are some charts based on the responses I've been getting so far. If everything works (fingers crossed!), these charts should update whenever someone new fills out the survey. This is a good test to see whether Google tools work well together, since Blogger is owned by Google.
I'll be playing with this more (prettifying the charts, adding information like the total number of survey respondents, etc.), but I wanted to get this up there so I can start getting feedback on it. The more interesting data (in my opinion) will be the quantitative data (how much do you spend per week on beer? what do you think is a reasonable price to pay for a beer?). I've set up a spreadsheet that tracks, in real time, the mean, range, and standard deviation of those responses, but haven't yet figured out the best way to display it.
And here's the compiled data. Let me know what you think...
Wednesday, December 05, 2012
But recently, I finally found something that could motivate me to sit down and play with D3.js:
|Some of my homebrew brown ale|
Data visualization and beer are two of my favorite things (plus writing plus running), so it makes sense. With the help of Scott Murray's excellent tutorials and a good strain of Brett, I got to work.
Various people have looked at breweries per capita by state in the U.S., but I wanted to show where the quality beer is concentrated. You know, beer you write songs about. Beer you want to share with your best friends. Beer that inspires you to learn some code. So I used data* from the Great American Beer Festival released on the number of medal winners at October's 2012 event. (Sadly, I missed it...) Basic question: Which state has the most, best beer?
Here's my first dataviz with D3, showing the total number of medals won in each state [or view here]:
Main takeaway: California rises above the rest when you look at sheer beer medals won. The other big winners are Colorado and Oregon (my home and my home state), which isn't a surprise if you know your beer.
Ok, it's ugly. It's not that informative. It doesn't have proper labels yet. It has this funky color scheme that doesn't really help you understand the data. There are lots of things I still need to figure out how to do (how do I make the labels for the "zero" states display in black instead of white? how do I make it so when I mouse-over one state, only that state changes from a label to a value? etc.). But bottom line is, the power of this tool is starting to emerge.
From here, I thought, not every state has the same number of breweries. So we still aren't looking at the density of good beer. And here's where I started to realize the beauty of D3. I created the visualization above to read the information from a CSV table. Now I wanted to add a new column to that table - breweries per state - and I could.
Are you impressed yet? Ok, stay with me...
I found that information** from the Brewers Association. Unfortunately, the Brewers Association only has data on the number of breweries per state through 2011. (They have the total breweries in the U.S. as of July 2012, but it isn't broken down by state.) So yes, you're right, there's a big flaw in the next piece of analysis I'm going to do. But remember, this is all a learning exercise so I can become a D3 wizard-in-training. (The upside is now I can go back and get the 2011 data from the Great American Beer Festival and redo my analysis - and in the process figure out a better way to extract/scrape data from a PDF.)
So. Found the breweries per state data, added it to my CSV file, and BOOM! I could redraw my chart so that it now displays the medals per brewery won in each sate. BAM! I only had to change two places in the code. (Values are coming soon - I need to figure out how to round the numbers so they look pretty.)
D3 viz number two, medals per brewery by state [or view here]:
Main takeaway: Wyoming breweries deliver with each earning roughly 2/3 of a medal. And Utah, my favorite unexpected underdog beer state, also cleans up. Uinta? Epic? Irresistible.
Magic, huh? It's all through the power of scales, which are super nifty things in D3 you can read about here or here or here. Essentially, with D3 you don't have to figure out the scale. You can feed it new data and it will scale everything for you. Seeing as, when I make charts in Illustrator, I spend tons of time making sure the scales are accurate, this is pretty fantastic.
At this point, we're rolling, and doing basic visualization-for-exploration is easier (well, almost) than doing it in Excel. Promise. Because next, I downloaded some population data from the U.S. Census Bureau (again, 2011 data because they haven't released the 2012 ACS yet), and TADA!, now we can re-draw our bar chart to show medals won per 100,000 people. Cool.
D3 viz number three, medals per capita by state [or view here]:
Main takeaway: Wyoming still kills it. But Colorado and Oregon aren't too shabby.
- Figuring out those tweaks and little touches that will make these charts actually useful to someone.
- D3 is known for having slick as hell transitions and animations. I want to make my charts morph into each other!
- With D3, you can make maps. It's a natural fit for this dataset...
- Wouldn't it be cool to be able to search for the nearest medal winner, based on where you are?
- One year doesn't really give you an accurate picture of the beer scene, because judges are fickle and new breweries pop up all the time. It would be fun to compile several years of GABF data.
- Not all of the categories have the same number of entries. Some are packed (everyone wants to submit an IPA) and some are relatively esoteric. You could weight the medals by the relative steepness of the competition.
Public Service Announcement: Hug a bar chart
I recently put together a speed-tutorial on creating bar charts in Fusion Tables for a work event. What I told people was, "Never underestimate the power of the bar chart. It's the workhorse of the data visualization world." I just want to give another shout out to bar charts, because really, they are so simple yet so flexible and powerful. So, go out and hug -- er, create one today.
*Both the GABF and the Brewer Association published their data in PDFs. Yup. But the story of getting it out is a blog post for another day...
**Brewers Association lists 1989 total breweries in 2011, but when I added the state numbers the total was 1987. Maybe the missing 2 are in Puerto Rico?
Wednesday, October 05, 2011
|The buttons read: "I <3 Oregon beers" and "Oregon gives me wood" (from the Laurelwood Brewery in Portland)|
Ching Ching by Bend Brewing, Bend, Oregon
Style: Sour with hibiscus and pomegranate
Notes: Pinky/orange color...simply amazing!
ABV: 9.5% (watch out)
Flemish Kiss by The Commons Brewery, Portland, Oregon
Style: "Bread" ale/pale ale
Notes: Slightly sour (just a hint!), lemony, fresh
The Stoic by Deschutes, Bend, Oregon
Style: Belgian quadruppel
Notes: Smells like a sour but finishes like a sweet Trappist
ABV: 11% (monastic strength)
Urkontinent by Dogfish Head, Milton, Delaware
Style: Belgian dubbel
Notes: Smells like coffee; brewed with rooibos tea
Red and White by Dogfish Head, Milton, Delaware
Style: Belgian wit
Notes: Sour and light, wine-y (aged in Pinot Noir barrels), really drinkable
Abbey's Ale by Seven Brides, Silverton, Oregon
Style: Belgian quadruppel
Notes: A sour quad! Super drinkable, not puckering -- my favorite of the night! I had seconds (and I wasn't the only one...)
Cockeye Cooper by Uinta, Salt Lake City, Utah
Notes: Light, cherry. Strong flavor but really unique. Delicious.
Diamond Kings by Brugge Brasserie, Indianapolis, IN
Style: Belgian quadruppel
Notes: Ages in Cabernet barrels -- tastes heavenly!
Also of note...
Everything crazy and experimental by Short's, all the tart and tangy fruit beers by Rocky Mountain Brewing in Colorado Springs (think New Glarus' Raspberry Tart, but better), and Laughing Dog's Anubis imperial coffee porter.
|#Hacktoberfest left me feeling mushier than this plate of potatoes and mystery green goo. I want to give a group hug to the world! (Image credit: Flickr user russeljsmith shared with a Creative Commons license)|
People are makers. We can’t help it. But why? Why do people write, bake, program or paint?
Here's my best guess: Our minds are lonely places where our thoughts languish. Until, that is, we can turn them into essays, pies, code, pictures -- something another human being can interact with. Making -- whatever it is you make -- is a way of connecting.
Once we know how to make something, we understand it better. We understand the person who made it better. And we understand ourselves better. By learning new ways to make things, we expand what we are able to imagine. The world of possibilities explodes.
Let me defer to my favorite episode of Radiolab to explain. Words. Go listen to it. Right now. Please.
For those of you disregarding my advice...shame on you! But here’s a quick summary: Words aren’t just words -- they are ideas. Before we have the words for a concept, we don’t have the ability to understand it. This has been shown with spatial concepts, time, empathy, all kinds of things. Our ability to think is inseparably bound to language.
What does this have to do with programming? At last week’s hackfest, I realized that programming is the same as writing. Or rather, I was able to map the programming process -- which, previously, I'd found daunting and unwelcoming -- onto a process of making that I find intuitive: writing.
Writing is thinking. And so is programming.
Language expands our capacity to understand and interact with the world as beings who can write and speak. And new skills -- for example, programming -- expands our capacity to understand and interact with the world as beings who can make and create. Last week, by getting better acquainted with some of the basic building blocks of a program -- code, logic, how different elements interact -- I was able to imagine possibilities that I couldn’t before.
And that’s why I want to learn more. Now I’m hooked.
I’m inspired to continue to expand my skills as a programmer -- which is really just expanding my skills as a thinker and a maker. So what are my next steps?
- I started an intro to computer science class from MIT’s open courseware. I really enjoyed the first problem set. A lot a lot. But then I stopped. So I’m going to finish it.
- I want to apply what I’m learning through real projects. For me, that probably means data visualization.
I’m amazed the diverse backgrounds of the #hacktoberfest participants. As Nicola mentioned in her blog, many people who are verifiable coding ninjas don’t have any formal background in CS or don’t work as programmers. So, it’d be interesting to, as a way of motivating others to take the plunge, collect stories about how people got into programming.
Here comes the audience participation part:
- How did you first learn to code?
- What was the first piece of code you wrote that you were really, truly proud of?