TrainingConferencesAbout UsContact UsAdvertiseSQE.com

StickyMinds.com: brain food for building better software

Join

Join

Clarify Your Search Criteria
Tips on Using Our Search Feature(s)
StickyMinds.com Home
ResourcesEventsTopicsPowerPassJobs
Software Testing & QA Online Community  >  Detail: Relearning to Program



A StickyMinds.com Original
Article Picture
Relearning to Program

By Clarke Ching

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Twenty years ago, Clarke Ching fell in love with programming. Then he got a job doing just that and fell out of love within five years. Fifteen years later, Clarke sought the help of a well-known programmer for advice on how to rekindle his dormant passion for programming. The advice Clarke received led to a greater discovery.


Tricentis
Twenty years ago—half my life—I was an excellent developer. Then I got my first full-time, grown-up job as a programmer, and I hated it. I was working on a COBOL credit-card system that was older than I was. I'd gone from a world where I excelled to one where it was difficult to be anything other than average. Five years or so I worked as a programmer in different languages and different environments until eventually I admitted it: My love affair with programming was over.

Since then I've worked as a manager, analyst, consultant, and author. But you know what? Fifteen years later, I still love programming. And I miss it.

A few months ago, I decided to do something about it. I asked Andy Hunt—a guy whom I think of as a programmer's programmer—if and how I could learn to code again. He knew that I didn't want to write code professionally. I just wanted to get my hands dirty for a little while to see if I still "got it."

In the process, I also hoped to understand my programmer friends a little more than I currently did. Andy suggested learning Ruby. He also recommended reading "Learn to Program" by Chris Pine.

Ruby is an interpreted programming language that runs on Windows, Linux, and Mac (and probably a few other operating systems as well). It's an easy language to set up (it's pre-installed on Macs), and it's really easy to learn compared to most programming languages. Ruby is also free, which never hurts, and it's used commercially as well. Within thirty minutes of downloading the book, I had set up Ruby, written, and executed my first program. The program added 1 and 2 together then wrote the answer to the screen. If you are wondering, the answer was 3, not "Hello World."

Now, this probably sounds daft to you since you weren't there, but I was delighted with myself when I saw the number 3 come up on the screen. For a brief but pleasant moment, I thought to myself, "I've still got it!"

If you feel even the merest pang of envy, then why not grab your nearest, friendly programmer and ask him to help you download and install Ruby. Then fire up a text editor and type in "puts 1 + 2", save the file as myprog.rb, run it from the command line and see what happens. You could probably manage this without a programmer, but if it makes it easier, then why not ask for help?

I originally learned to code using languages like Pascal, Modula-2, and C. Things have changed a lot since then. The world's gone all object-oriented, for a start, and according to my developer friends, a whole lot more complicated with Java and C# and their enormous libraries.

But, did you see how short myprog.rb was? That's why Ruby is a good choice for learning or relearning programming. It is short, simple, and to the point. As a developer friend put it, you type less but get more done.

Of course, that's all a bit "Programming 101," and there's a lot more to programming than that. One must learn loops, variables, objects, methods, arrays, and recursion. The good news: I relearned all of those on day two of my affair with Ruby. I worked my way through the book, doing some of the exercises and skipping others. I wrote an integer-to-Roman-number conversion program. It read the integer and wrote out its Roman number equivalent. I wrote it as a loop, and then I rewrote it recursively. I only scratched the surface, but it felt good. I'll be sticking with my day job, for sure, but, hey, it's a start.

I wasn't going to mention my little experiment to anyone until I read an article by Derek Sivers, "founder, president, and sole-programmer of cdbaby.com." Derek is a self-taught PHP programmer. He built cdbaby.com from scratch using PHP. A few years ago, with help from a top-notch developer, he rewrote the site using Ruby on Rails. Two years into the project, Derek cancelled the rewrite for a number of reasons. Then, in two months, he rewrote the entire project in PHP claiming that "It's the most beautiful PHP I've ever written, all wonderfully MVC and DRY, and I owe it all to Rails."

As a programmer Derek may have been self-taught, but he was no slouch. He created a commercially successful Web site from scratch, on his own—something few professionally taught programmers can claim. I suspect that Derek was an above-average programmer despite being self-taught. Yet, by working with Ruby on Rails which my programmer friends tell me makes it difficult for programmers to write badly designed code, he learned how to become a better programmer.

And that's what got me thinking: I wonder how many programmers out there could become better programmers, more productive programmers, and perhaps even happier programmers if they spent a little time working with Ruby on Rails (or an alternative) and learned new design skills?

I don't know the answer to that question, so please leave your comments below.


About the Author
Clarke Ching is a New Zealander living in Scotland. In addition to being an independent consultant and a regular columnist on StickyMinds.com, he's a passionate advocate of agile software development and a chairman of the AgileScotland special interest group, which meets monthly in Edinburgh. Clarke currently is writing a book titled Rolling Rocks Downhill, in which he explains why working with software projects often feels like pushing rocks uphill. He also demonstrates how to use lean, quality, and agile techniques to make your projects more productive and predictable. Read more about his book and other articles and listen to his podcasts at www.clarkeching.com.

Back to Top
 

StickyMinds.com Weekly Column From 11/17/2008 

Member Comments
Add Your CommentCollapse Comments
 
Comment:    
by Gerard Miller 11/19/2008


Mr. Strazzere,

This article is relevant to readers of StickyMinds for two reasons.

One reason is testing always involved programming. Years ago it may have been shell scripts but I'm a tester now and we write test cases in Java. For Cruisecontrol and Ant we program via XML files.

The second reason is that we work with developers. Relearning to Program helps us to understand what motivates programmers. Which helps us inspire programmers to create better products not from their point of view or even our point of view but from the customer’s point of view. Since the customer ultimately pays our salaries keeping customers in mind is a Good Thing.

Mick

...Collapse Comments

 
 
Comment:    
by Joseph Strazzere 11/18/2008

"And that's what got me thinking: I wonder how many programmers out there could become better programmers, more productive programmers, and perhaps even happier programmers if they spent a little time working with Ruby on Rails (or an alternative) and learned new design skills?"

Sounds like fun and all, but I'm left wondering why this article appears in StickyMinds? If this related to QA/testing/quality?


 
 
Comment:    
by Scott Ellern 11/17/2008

I read this while I had bugzilla open in another window. the quip was "There's only really one metric to me for future software development, which is -- do you write less code to get the same thing done?" -- Bill Gates (2005)
Your 'programmer friend' perhaps?

Author's Response:
11/18/2008    
I wish!

 
Back to Top



 
Ads By Google
What's This?
 
 



About Us   |   Contact Us   |   Terms & Conditions   |   Privacy Policy   |   RSS Feed



© 2013 StickyMinds.com. All rights reserved.
PNSQC

Tricentis



STARWEST