What has been your best programming experience so far?

Was it the first time you compiled hello.c?

Was it the first time you made your name fill your fathers TV with that 80's home computer?

Was it the time you saved the day by fixing that bug no one else understood?

Let's share our good moments!

(This is not a question of when you knew you would get into programming. I want stories of joy in programming after you became proficient.)

+2  A: 

Probably the time I wrote a complete MIDI engine in C and assembler for a sound card that never quite made it to market. Wave-table based sound engine, and ahead of it's time. Had way too much fun.


+2  A: 

The moment that I realized that no programming language is perfect for all tasks. Each one has its merits, and the right one needs to be chosen for every project on an individual basis.

I was about to write it!
call me Steve
@Steve: I sometimes worry that I'm the only one. Now I know there are at least two! :)
Don't be silly, LISP is perfect for all tasks :-)
+2  A: 

Releasing a freeware application, seeing it get some publicity online, and watching the download count rise into the thousands and tens of thousands over the course of single afternoon. It wasn't the first application I made public, but it was one of the first really successful ones.

Of course, sometimes I think my worst moment was not considering charging a $1 license instead of going the freeware route. :)

Marc Charbonneau
+2  A: 

Using Turbo C I have made a Bubble Sort that gave me a lot of confidence in the programming

Jobi Joy
+1  A: 

It was when I kept running to the computer room during every and each class recess (10 minutes). I was making a board game in Unix/C. Of course, I kept thinking about my program during classes as often as other boys think about sex. I was a high-school student back in the 1980s.


When I first implemented a Design Pattern on my own, knowing that it was a specific pattern and seeing how well this could work in the future comes to mind as one of my best. This slightly beats the "It's alive!" when I first did some programming on my Commodore 64 back in the day and my e-shopping cart I did in 1998 would be my other two biggies.

I don't remember ever doing a hello.c, really. I remember doing a simple video game on a Commodore PET in assembly that may be my biggest achievement in that it had a few tricky parts like programming in the graphical parts and waste time routines as human reflexes weren't fast enough to get that fraction of a second that the PET took to take in the key stroke to move the little ship back and forth.

JB King
+1  A: 

Making a first-person 3D pacman clone in highschool while the students next to me tinkered in HTML.

+33  A: 

The most successful program I've ever written was a Perl script.

I wrote this for a woman I was dating (she was taking a Perl class at the time):

map(($r=$_,map(($y=$r-$_/3,$l[24-$r].=(' ','@')[$y**2-20*$y+($_**2)/3<0]),(0..30)),),(0..24));
print join("\n", map(reverse($_).$_, @l)), "\n";

Last year she married me. :-)

Bill Karwin
That's the cutest thing I have ever seen in perl. I congratulate you both.
Wow, that is some seriously fugly Perl! I really hope it was a JAPH, not production code. Can't argue with the results though. :-)
Sherm Pendley
I guess it's true, women loves perls. Also, for us normal folk, what does that script actually do?
Mike Robinson
HAHA! Check this:
@Mike: It prints a valentine heart as an ASCII graphic. The heart is calculated as an ellipse, using the distance formula and then transformed along a diagonal and mirror-imaged.
Bill Karwin
Power of sublimation and sex interest makes magic!
+3  A: 

I was working on a children's web site that focused on pre-school literacy skills, and I read an email from a proud mom whose child had finished reading a book from cover to cover for the first time.

Sherm Pendley
+5  A: 

About two years into my programming career I was experienced with Perl, FoxPro, and a couple of other esoteric languages. I had just written a program in Perl that was as efficient as I could make it, but it was still an order of magnitude too slow to be run in production. I realized that Perl wasn't going to give me the speed that I needed and didn't have any better tools in my toolkit.

I had considered learning C in the past but was intimidated by all the horror stories I'd heard and a bad book I had picked up at one point. I decided that learning C to solve this problem was the only solution, I knew this would be a significant feat as the program in question did file i/o, bitwise arithmetic, used hashes and a number of other things I had no idea how I would do in C. I spent 20 hours that weekend reading K&R and doing the exercises. On Sunday I rewrote the entire program (only about 150 lines in Perl, about 500 in C) in C. The result was a speed increase of about 20 fold as well as a smaller memory footprint.

This was a great experience for me because I successfully overcame my fear of C, picked up what I needed to know in a relatively small timeframe, and used my new-found skills to overcome a real-world problem. It was a significant confidence booster and a turning point in my career, I am fluent in C now and haven't had any problems learning new languages or technologies.

Another nice moment came when, a couple of years later, I stumbled across that original C program I had written expecting to see a number of beginner mistakes, bad practices, etc. I went through the code line by line and couldn't find a single problem. I ran the code through lint and it found one issue: a comparison between a signed and an unsigned type. This didn't affect the program at all but I fixed it anyway and felt good realizing the quality of code I was able to kick out that weekend two years ago.

Robert Gamble
+1  A: 

When I realized that I was able to fill up all my computer needs just by programming a software.

Example of what I just said : If I need something to check my Rss, I can do it without other people or other software, I can do it by myself or if I need to create a list of data I know that I can do it with a script instead of doing everything manually.

+5  A: 

I'll humbly share my own best experience so far. I wouldn't do so in the question to not keep my story up above everybody elses.

A few years ago, while on holiday, I spent an evening trying to explain programming to my 8 year old nephew, and in the process writing a Connect4 game that we were unable to beat.

I started by showing him how to make C# draw circles on the screen, and then using a timer, how to make them fall down. Then how to click columns to put pieces into the board, and letting the computer add a black after my white, then how the program could understand if it had won or lost, then finally min-maxing for best moves.

The amazing thing was that I accomplished all this in a few hours, while having fun explaining everything to my very patient nephew.

It made me understand something about pair programming also. Having someone watching what you do, and even having to explain what you do, forces your concentration.

+11  A: 

When some friends and I won a computer game programming contest organized by PC World maganize in Spain. We gave the floppy to the organization 1 hour before the deadline and the next month the magazine was published with all the games people submitted. Everybody interested could play all the games and vote for the game they liked the most. 2 months after that, the organization called us and said we were the winners.

But the most important point wasn't winning the contest. There was no Internet available for the people at home, but we received a lot of postal mail asking us for more levels of the game, greeting us and telling how much they liked the game. That was the best part.

+10  A: 

It was also, in a way, my worst programming experience.

In 1987, I was the sole programmer on a team of about a dozen people, most of them analysts and trainers. We were implementing a statewide automation project in dozens of California courts. For many courts, ours were the very first computers they'd ever had.

The project manager was a marketer at heart, and he had (of course) overpromised. The annual user conference was coming up, and he'd announced a very long list of features that would be in the release we'd be demonstrating there. The last month before the conference was hellish for me, as I worked several 70-hour weeks in a row getting it all done.

This was the experience of everyone on the project (including the manager). When I rolled in to the Oakland Hyatt at 9pm the night before the conference, everyone else was there, red-eyed, exhausted, burnt-out, and terrified about what the upcoming week was going to be like. I installed the working build on the servers they'd brought for the conference, and went home.

I returned at 7 the next morning and took my seat in the conference hall, where 200 court staff from around the state were gathering. The project manager was scheduled to demo the software to the assembled at 9. At 8:45, he came and sat next to me. He looked like hell. I'd actually gotten sleep the night before, he hadn't. He had in his hand the memo I'd sent him detailing all the new features and explaining how to demo them.

"I don't understand this," he said. I looked at him. "You're going to have to do this."

And so, with no preparation whatsoever, I got up in front of 200 people (many of them, by the way, hostile), and spent the next two and a half hours demonstrating all of the work I'd done in the preceding six months.

Nothing crashed. Nothing even looked wrong. The users loved what they were seeing. Many of the new features were actually applauded. I finished the demo, handled questions and answers for half an hour, and walked off to substantial applause.

I quit, of course. That wasn't an experience anyone should have had to tolerate. Both the project manager and my boss (I worked for a subcontractor) apologized to me and told me that I was probably right to quit, too.

I ended up working with the project manager at a company he'd started for another seven years after that. He never, ever did that again.

Robert Rossney
Never overpromised again OR never made you do a demo last minute?
Lance Roberts
Or never tried to do a presentation without rehearsing it?
Bill Karwin
Oh, he overpromised left and right. But he became something of a ninja at asserting that when were late delivering something it was because of some failure on the customer's end. I work with a lot of our customers to this day, and many of them still use "6 to 8 weeks" to mean "probably never."
Robert Rossney
So you worked for free 30 hours a week for several weeks? Would you expect a plumber or carpenter to do that? Why do developers so readily provide their services free of charge?
Tim Tonnesen
I was a lot younger and more foolish at the start of that project than I was at the end. It was a defining moment for me in very many ways. One of those ways is that I've never done that again.
Robert Rossney
+1  A: 

When I built the 3-d house walkthrough program and it worked.

Lance Roberts
+2  A: 

Gosh, there's so many...

  • I wrote a program for closing out charity auctions, and have used it dozens of times, raising money for kids, libraries, schools, etc. That's really satisfying.

  • Discovery of Differential Execution. Niftiness matched only by the difficulty in communicating it.

  • Ditto for flyweight processes.

  • Ditto for performance tuning by call-stack sampling.

  • Completing a project in about 1/10 the cost budgeted, by using a code generator.

  • My first compiler.

  • My first window system.

  • When I wrote a light-pen drawing program, in assembly, for the TX-0 computer (the first machine to have magnetic core memory).

  • My first fortran program, to design 4-bar linkages.

Mike Dunlavey
+1  A: 

My best programming experience (on the Timex/Sinclair 1000):

20 GOTO 10

After the 30 minutes it took me to get this far, it was only better and more useful from there. I did that when I was something like 10 years old, and I never ever thought I would be able to make a living one day by telling computers what to do.

K. Brafford
+1  A: 

Not one particular, but my best experiences usually come whenever I grasp a new concept. Some of my first experiences:

  • Truly understanding objects and how they relate (including database tables)
  • Understanding anonymous functions

Additionally, I always feel joyous when I fix and optimize a piece of broken code that used to spend hours processing data, putting a tremendous load on the system, and in general was a pain to work with. When it runs error-free, is easier to understand, is a tenth of the number of lines code, and uses less than a second to complete... makes me feel all giddy inside.


I've missed out on so much fun, the beginning of computer programming. I wish I've could have been a part of it all from the very beginning, not that we don't have many exciting years to come. Of age I'm 21, just started a 5-year Master in informatics. After reading all of these wonderful stories I realize how much I will learn and develop as a programmer over the course of my education. Thanks! :)

+1  A: 

Drawing hangman animation dunking a ball in basket on a tim-011 computer in our school.

Tim-011 had monochrome monitor.

I draw frames on a millimeter paper and then put them in code one by one just by "drawLine", "drawCircle"...



It was ugly but my Michael was dunking.

Teacher asked me how I did it and told me not to come to his class. :)

+3  A: 

My best experience was writing the automatic garbage collector for a language that was a little like Lisp. I was in charge of coding the memory management subsystem of the language, and the AGC was the major programming challenge of that subsystem.

Most of the other members of the team that wrote the language were either smarter than me or more proficient than me or both. It was a joy to work with them. We did a form of code review that's still seen as radical, decades later. We managed each other, and we each coded our own subsystem.

The AGC ran without detected bugs for over a year. Just as well. Debugging the thing would have been hell.

Walter Mitty
It is always a joy to work people one can learn from.

Have had a few, but the one that comes to mind was a combination of Lotus cc:Mail, Applescript and Hypercard. I like getting different hardware to work with each other and this way a lot of fun.

  1. cc:Mail on a Pentium PC, receives a library search script and stores it in a text file on the server
  2. Applescript, on the Mac, takes the file and passes it to a Hypercard library management tool. Hypercard outputs the resulting text file to the server
  3. cc:Mail takes the text file and returns it to the original sender.

That was back in 1998 in Karachi, Pakistan.


I started a software company back in 1991 more or less on a lark (I wanted to learn C after years doing Lisp/AI development). I assumed that I'd just sell a few packages via shareware for a few extra $$s and gain a new skill in the process.

Well, life has a way of changing your plans and that "shareware on the side" evolved into a real company. My best moment happened a few years ago when we won our industry's biggest award: a Nova7 for "Best Computerized Technology Supplier" based on votes from actual users. We've won that award every year it has been given (5 in all) at this point but nothing compared with the rush of that first year's award.

Mark Brittingham
+1  A: 

I would say my best programing experience so far would have to be when I realized in high school that people would actually pay me to do this stuff. You mean I get to play with software all day, AND you'll pay me?

I know, not exactly a programing experience, but it kept me from going to business school just because "that's what you're supposed to do" if you're good with numbers, and kept me programming.

Shawn Craver

Figuring out the cause of this....

+1  A: 

I wrote a little video poker game for Palm OS. I watched my father and brother play it for a couple of hours. It made me feel good to have created something that they liked.

Kristopher Johnson

C#.NET, when LINQ (and the lambda operator) was introduced.

At this very moment, everything changed. Programming, as fun as it always was, now became a truly delightful experience.

All the pain of imperative coding was forgotten, no more wasted time with trifle tasks, but declarative "I want this, go for it, you stupid machine"!

And second best was the introduction of WPF.

Now, every other programming language and toolkit fell lightyears behind.

There is nothing comparable to LINQ and nothing comparable to WPF.

Turing Complete

Definitely the first thing I ever rendered in 3D.