How I got started programming

Mr. Paul C. Dix tagged me to answer these...

How old were you when you started programming?

I started to understand the concept of programming around age nine or ten. I remember how amazing I thought it was that making the computer do new things didn't require rooms full of special equipment.

How did you get started programming?

A lot of my experiences around this time are blurred together.

My parents got me into a beginner programming course for kids at the local community college. The instructor taught the basics of variables and control structures while the students swapped QBasic games they downloaded at home.

The first program I distinctly remember working on calculated golf handicaps from a series of scores. I wrote it with an elementary school friend in his basement using a copy of Borland C++ he found. We fumbled around with functions like getch and cout without any idea that they stood for.

What was your first language?

Beginners All-purpose Symbolic Instructional Code.

What was the first real program you wrote?

When I joined the website development team at my high school half way though the ninth grade, I took on the task of creating a system to post football scores and statistics to our website. After a frustrating first attempt in Perl, I discovered PHP and rewrote it.

The program allowed our statistician to enter the numbers into a form, saving the web team from having to manually enter all the data from paper print outs. It calculated simple averages and YTD totals.

What languages have you used since you started programming?

In no particular order: QBasic, Visual Basic, Bash, Java, JavaScript, C, C++, Ruby, Perl, PHP, Python, and SQL.

So far, Ruby is my favorite hands down. I'm fortunate enough to say I've never written a line of real production code in either Java or .NET.

What was your first professional programming gig?

The summer before my senior year of high school, I interned in a local government IT applications department. The other developers were doing mostly ASP work, but I built their first PHP application which I deployed on their first Linux server.

Unsatisfied with the maintainability of PHP apps I had built in the past, I developed a Struts-like framework in the process. At this point I was feeling pain with the PHP language and the lack of a suitable web development framework. After a brief exploration into Python, I would soon find relief in Ruby and Rails.

If there is one thing you learned along the way that you would tell new developers, what would it be?

Engage in the community, both locally and online, as much as possible. Attend user group meetings, contribute to mailing lists, blog, go to conferences that look interesting. Surround yourself with other programmers, especially those you admire. You won't regret it.

What's the most fun you've ever had programming?

Solving interesting problems with great developers while building applications with an impact. 'Nuff said.

Up Next

It's entirely optional, of course.

Story Driven Development slides posted

Just wrapped up my Story Driven Development talk at GoRuCo 2008. There were some great questions at the end, and I'm looking forward to more hallway track conversations about SDD.

Download the slides as a PDF (1.6 MB)

Note: Confreaks is recording the talks today, so a full video of my presentation should be online soon.

weplay launches

The online community for youth sports I’ve been working on for the last month or so, weplay, is now in public beta. It’s been a roller coaster, but entirely worth it.

As part of this launch, we’re set to appear on the front page of the New York Times business section in tomorrow’s paper. The online version of the article is already available, and we’ve been busy all night responding to our first production load…. ever.

Check it out, don’t mind a few bumps and bruises as we settle in, and expect more to come soon. Oh, and be sure to checkout my weplay profile.

Presenting at GoRuCo in NYC

I just received word that my proposal to speak at NYC’s very own second annual GoRuCo has been accepted. The conference is set for Saturday, April 26th at Pace University downtown. My topic will be the same as my Scotland on Rails presentation.

I’m really excited to have the opportunity to present at home, in front of many of my friends and colleagues. Now I just need to make sure I don’t suck. Better get back to working on my slide deck…

Presenting at Scotland on Rails

I’m going to be presenting on Story Driven Development at the first Scottish Ruby on Rails conference, Scotland on Rails. I’ll be exploring the concept of Story-first development from both an agile process and implementation standpoint.

Topics will include:

  • Collaborating with the product owner on stories
  • What makes good stories and scenarios?
  • Driving stories with a browser simulator like Webrat
  • Potential pitfalls and ways to avoid them

If you’re going to be in Edinburgh for the conference, let me know.

YUI Pages plugin 0.1.0 released

Tonight I’m releasing version 0.1.0 of my new YUI Pages Rails plugin. Here’s a quick example of what it can do (from the README):

<% yui_page :width => YUIPages::PAGE_750, :secondary => YUIPages::RIGHT_180 do %>
  <% header do %>
    Page title
  <% end %>

  <% body do %>
    <% main do %>
      <% grid :columns => YUIPages::GRID_75_25 do %>
        <% unit do %>
          Content for the 75% width first column.
        <% end %>
        <% unit do %>
          Content for the 25% width second column.
        <% end %>
      <% end %>
    <% end %>

    <% secondary do %>
      Content for the 180px right sidebar.
    <% end %>      
  <% end %>

  <% footer do %>
    Footer links here
  <% end %>
<% end %>

This light (less than 90 lines of code) plugin saves me from having to remember or care about the YUI Grids CSS IDs and classes, and handles preparing correct markup regardless of my grid arrangement.

No more looking up that “yui-t3” means a 300px sidebar on the left or forgetting to class the first unit in a grid with “first” because I moved things around in my layout file. A small victory, but a victory nonetheless.

SVN is at http://svn.eastmedia.net/public/plugins/yui_pages/. Check out the full README.

"What's new in Rails 2?" slides posted

Thanks to everyone who attended my “What’s new in Rails 2?” talk last night at NYC.rb. The questions were great, and I picked up a few tips myself from the discussions we had.

Download the slides as a PDF (1.4 MB).