tags:

views:

6029

answers:

182

What's the first program you ever wrote that you were proud of and why?

For me it was probably a Delphi 2 program I wrote that simply monitored Windows' memory usage and displayed a bar graph in the shell notification area like the Task Manager CPU graph, but in blue!

It was a big deal because I had a friend who was a better programmer than me and we were engaged in a silly race to find out who could be the first to figure out how to display something in the system tray (this would have been when the system tray was still quite new and exciting). I discovered the Shell_NotifyIcon API, worked out how to call it from Object Pascal and beat him to it. Granted, it doesn't seem a big deal now, but I hadn't been programming the PC or Windows for long at the time and it was a real breakthrough when the Windows API Gods deigned to display my icon next to the clock!

+7  A: 

I can look at every bit of code that I have ever written and think "I can do this to make this better". I know...but it's my neurosis and I like it.

EBGreen
+2  A: 

I animated a bicycle using the old CGI and Borland Pascal for DOS.

Ovidiu Pacurar
+11  A: 

Multi-threaded, multi-panel, internationalized (as much as the underlying DOS supported) clock for DESQview, all written in i386 assembly!

Brian Knoblauch
+1 for doing awesome thing in i386 assembly!
Maxim
So much love, awesome and heart blood have been poured into that humble clock, and yet no (ordinary) user in the world will ever understand the feat. :)
Christian Vest Hansen
+4  A: 

I built a back end to a flash front end. The backend did the following: Pulled data from flash, stored it in a custom created file storage system (which allowed saves, deletes, and updates), and fed the data back to flash. And it all WORKED :D.

MatthewRummler
+15  A: 

A program to draw a donut in original Basic on an 8086.

Hey, I was 5 at the time, I was allowed to be proud of it!

tloach
+1 for early geek points.
Gamecat
Define "donut": annulus or torus? I wrote a program to draw a properly-shaded torus (actually made of polygons so not quite a torus) in AmigaBASIC, but I was about 15 not 5!
Hugh Allen
5?? I'm tempted to downvote due to bluffing.
omgzor
Umm. I think I was writing in BASIC at 6 or 7.. what's your point dmindreader?
maxwellb
I started programming (of sorts; Origin's Omega tank-sim) when I was 7. You can't imagine how excited I was when my grandfather discovered that the source code for the 'AI' opponents was in oddly-named text files in the program's directory.
Novelocrat
When I was 5 I chewed on the TV remote control.
StackedCrooked
I still chew it >.<
Pondidum
+1 I was writing Basic at that age too :D
mbehan
They did not have computers when I was 5.(well, the defense department probably did)
Mark Schultheiss
I didn't get started until 7, but it was on a c64 - so, BASIC.
Erik Forbes
+2  A: 

Hobby sphere: I once made a tekst adventure game in the time when they where still hot.

Educational sphere: My master thesis. A complete tool to apply object oriented metrics to software.

Professional: A tool to measure and model the performance of complex computer systems.

Gamecat
+12  A: 

I wrote a solar system simulator in Turbo Pascal 5.0 that had planets moving on elliptical trajectories on the screen when I was in the 9th grade.

Pop Catalin
Did pluto and neptune ever crash in your simulation? :D
Drew
I did one of those in i386 assembly back in the day. I got divide by zero errors whenever objects crashed. :-)
Brian Knoblauch
+5  A: 

I wrote a musical application in BASIC that displayed the score sheet on the monitor and change the note colors as it played the music (kinda like a musical Karaoke). I wish I had kept the code around... :(

Ricardo Villamil
You invented Guitar Hero! ;-)
Jonathan Deamer
I made something like this in Turbo Pascal. You could write music and it would play it back... on the sound card! Take that PC Speaker!
Jared Updike
+8  A: 

I wrote a Christmas program that played 4 songs and showed four sets of graphics on a Radio Shack MC-10. I was 10 myself.

My father would play a key on a piano and I would keep typing new numbers to POKE until I found the closest sound to what I wanted... we are not musical, it was pathetic.

I was frustrated, because this, my first program, used up all the memory in the computer (4K of RAM).

Man, I am a geek.

Jason
You can calculate the frequencies of musical notes. An octave is a doubling of frequency and there are 12 semitones in an octave, so the ratio between successive semitones is the 12th root of 2, ie. exp(log(2)/12).
Hugh Allen
I had one of these when I was 13. The "racing" game I typed in was a block with 4 smaller blocks on it for "wheels." You had to move the car between two moving thick lines that represented the sides of the road. You needed the 16k expansion module, shown on the back in the above photo.
Bratch
+3  A: 

A large upgrade to an existing warehousing system with extensive re-modelling of the back-end.

It's in use every day and to this day not one bug has been reported with it. :D

The apps I wrote before it I was only satisfied with as opposed to being truly proud.

Quibblesome
+3  A: 

I had an assignment in university to determine which of several prospective employees would bring the most value to a shop. They provided us with a sample of customers coming into the store on a few days and a selection of potential employees. I felt that they didn't really provide us with sufficient data to make the analysis, so I wrote a program that uses Poisson Distributions to create more sample sets based on the few sample sets we were given and bootstrapping the sample to generate more samples. A fairly elegant over-engineered solution to the problem, and it impressed the prof.

Elie
+5  A: 
Bill the Lizard
Hey! You only wrote 9 because I said I was 10! ;)
Jason
LOL! I didn't read yours until I posted mine. Beat you by a year. :)
Bill the Lizard
I had the same system. A friend had the expansion port - I was jealous!
Tim
+1  A: 

An application that would automatically click the mouse for me so that I would not get OOS from some silly arcade game.

Nat
+6  A: 

I wrote a multi-threading library for HDOS in 8080 assembly language. Since the underlying OS was not re-entrant, it had to intercept system calls to make sure that only one thread could use the OS at any time. I was only in high school at the time, I was amazed that it worked and that it was actually pretty robust.

Ferruccio
+1 I am always chuffed when I create a system, debug it and it turns out to be very robust. It is like magic!
Tom Leys
This reminds me of when I first implemented an AVL tree and tested it. Once I finally got it working and ran a testcase that insert/deleted a million items, it felt like it "locked in".
Joey Adams
+11  A: 

For me it would have to be an animated 3D wireframe cube in Turbo C++ 1.0 for Dos when I was 13 or so. I showed my parents and they were like, "so?". But it was a major achievement for me at the time - this was well before the internet and 3D engines, so had to work it all out myself.

KiwiBastard
I did the same thing when I was 13. I had no literature and had to figure out the math behind it. I used a cube, which I twisted and turned to see if I could figure out the formula. This was back in 1984.
Gert G
+3  A: 

A shoot-em-up on the TRS-80 (assembly language, sound, joystick support).

Stephan Leclercq
Holy crap, that's awesome!
Sam152
+245  A: 

I always think the software I wrote yesterday sucks, the software I'm writing today is cool, and the software I'm going to write tomorrow will rock!

Steve
This is the Correct Answer.
Rob Howard
i agree 100% +1
WalterJ89
maybe you just learn a lot faster than I do, but it usually takes me a couple weeks before my old stuff looks crufty :-P
STW
@Steve: haha, thats so true. I wonder if thats linked to the type of programmer you are? i.e. I find I'm always trying to implement technologies or patterns I've never used before, whereas others might concentrate more on solidifying skills....umm, I sound quite flaky..
andy
Best explanation ever. +1
Pat
+3  A: 

Poohwer, a 4k intro for The Gathering 1997. x86 16-bit assembly all the way, most of the code was done using pen and paper during lessons in school :).

Jonas Gulle
Works on DosBox... nice!
Liran Orevi
+1  A: 

I wrote minesweeper using the TI-83 BASIC compiler sophmore year of high school. In retrospect that was really impressive, especially given that I typed the whole darn thing out using the calculator keyboard.

That was the last thing I wrote that I was truly proud of.

Ignorance is bliss and nowadays every project is an exercise in understanding how little I knew when I started on it and how I have been doing everything wrong till this morning. FULL REWRITE!!!

George Mauer
+3  A: 

I'm with Bill the Lizard. My first programming success was on a TI-99 4A. I still remember the BASIC programming book that came with it. It detailed all the BASIC keywords, one per page, and employed a large legible font. I think the readability was key to my early attempts at programming. If it had been a complicated language or a scary book, I'd probably have quit before I started.

My first program that I was proud of involved drawing Pac man on the screen and getting him to move across the screen. I never did get the program finished so I could control him using the joystick. Oh well :)

Ken Pespisa
+41  A: 

I always liked the maze screensaver that Sun workstations had, the one that drew the maze then solved it.

So I wrote one for Windows in VB6. I released it as "T-Shirt ware", ie, if you like it, send me a t-shirt. I got a few of the most hideous company t-shirts ever produced.

Unfortunately, I have no idea where the code is now. I think you can still find the screensaver out there somewhere though.

Moose
I've used this or a clone...
Nick
T-Shirt ware is the coolest thing I've heard all week. I'm gonna come up with something to release just to get the worst T-shirts ever.
BFreeman
Yeah. +1 for cool geek culture trivia.
Andrew
Upvoting for tshirtwear as well!
overslacked
I heared about postcardware. Do you like this? Send me a postcard. Teeshirt is better though, I wouldnt send a postcard but I would send a t-shirt :-)
Josef Sábl
I've had a few postcards from a few postcard-ware apps i've developed. It sounds funny but it's heart warming to receive a gift from someone who enjoys using your software.
Gary Willoughby
+2  A: 

An embedded application that captured the input sent from an engine sensor, and dumped results over a serial port to a PC that processed the raw data. It was the first program I wrote that actually did something useful.

Airsource Ltd
+5  A: 

I wrote a C++ program to manage a sub sandwich shop with some friends in CSC 2xx. This was my first C++ project of any size. I was proud because:

  1. We actually used Windows - everything I had done to that point was in DOS (1992). This was a risk but it really paid off. Our program was much more user friendly than that produced by other teams.
  2. It was a team effort that was very successful. We all worked on sub-components, and glued it all together at the end of the project. We spent a couple of days debugging it in my dorm room before it was due. It was my first, true team development experience.
  3. It was fully featured. I was surprised at the program. I think you really could have run a sub shop with it.
  4. We got an A and high praise from a tough CompSci prof.

The program was extremely primitive compared to what I write now, but it exhibited everything that is good about business programming for me. I was able to hang out with fellow nerds and watch sci-fi movies while writing richly featured, functional software.

Jason Jackson
+1  A: 

Around 1993 I ported "TeX and friends" from Unix to the Amiga (aka "AmiWeb2c"). The "best" part of this implementation was an ARexx script that simulated the recursive construction of SMakefiles for the SAS/C compiler along the lines of "configure.sh".

Although a full compile of the set of programs took several hours on my A2000, it was always a moment of pride when the whole task finished successfully.

Andreas Scherer
+1  A: 

My old 99 MHz 386's hard drive crashed. So one cold December I wrote multiplayer pong with crazy obstacles by swapping DOS floppies with mouse floppies with BASIC floppies.

+1  A: 

When I was young and just learning C++, I learned about file I/O and then immediately wrote a program that's basically a simplified version of tar. I wrote the entire thing in a couple of hours without really knowing the file I/O API. I was stunned when it compiled on the first try and ran bug-free...

rmeador
A: 

I was 12. I wrote a program in my Apple IIe to input a series of up to 12 numbers and generate all possible combinations of six numbers so my father could try to win the lottery (he never did it btw).

Paulo Guedes
+19  A: 

Wrote a game for the Apple II called "Suicide!" (incorrectly listed as "Suicide"), which has three things going for it:

  1. It was the first video game with punctuation in its title
  2. I wrote the bulk of it when I was 13 in 6502 assembly
  3. The splat sounds when the guys hit the ground are pretty awesome
plinth
+1  A: 

I used to alternatively run a BBS, a telnet client, and a few other things on my TRS-80, but it used to seem like it took forever to boot up. Sometimes I just wanted to hit the reset button and bail and have it bring up the BBS, or whatever else I might want running.

I had a joystick that had the feature of being able to "unlock" the springs so that it would not return to center.

So I figured out how to read it: Joysticks are just a capacitor and a variable resistor and a on/off reader. You charge the cap, then time how long it takes the reader to go back to "off".

Then I wrote a little assembly language program that could poll for the four cardinal positions and return them as an exit level to my batch file (or whatever passed for that back then, I forget).

Anyway, it worked well. If I left the joystick "up", it would bring up the BBS, ...

I wasn't proud so much for the technical skills as I was at the innovation of solving an unsolvable problem by thinking "outside the box".

Bill K
A: 

In school with the orange book "Basic Basic" as my guide I wrote a program to compute the minimum final exam scores needed in various subjects in order to attain your final grade of choice: A, B, C etc.

George Jempty
+3  A: 

In 1986, (Now I'm dating myself) I wrote a program in C for my Mechanical Engineering MSME degree that did Finite Element Analysis (FEA) Stress-Strain problem on an arbitrary arrangement of triangular geometric tesselations of a two-dimensional flat surface, with a defined load placed on it... The arrangement of triangular sections was an array of "triangle" structs each of which was defined as an array of three node structs,with the x-y point coordinates of the three corners of the triangle, each Node struct had an x and a y member...

As the FEA math required it, the program included a general routine to invert an diagonally symmetric square matrix of arbitrary size, so it had to use recursion at each level to "invert" the n-1 x n-1 submatrix for each element in the matrix at the parent level, until it was "inverting" the 1 x 1 matrix for each individual cell...

fun...

Charles Bretana
err...what? :o/
Gary Willoughby
+25  A: 
Charles Bretana
The first program that I felt proud about was an unbeatable tic-tac-toe game for the HP-41C.
Glenn
I wrote some HP-41CV financial code to do NPV calculations that did discrete and continuous interest calculations. I got obsessed with reducing the number of instructions to a minimum. That led me to a book of secret mode operators that made me realise that I had left the realm of normality.
Andy
I soooo miss my HP-41CV. I lost it in my last year of college. The 48SX I got to replace it was a fine machine, (matrices natively!), but it *just* doesn't have the same simple beauty.
Euro Micelli
I really love my HP-41C. I still have it here in my desk drawer, even though I haven't used it in ten years or so. I wrote an alarm-clock program that woke me up in the mornings, tailored to my schedule and habits, and the way I like to wake up.
Thomas Padron-McCarthy
+1  A: 

I was 14, wrote a reaction test for MIKROSHA computer (based on Russian i8080 clone). Sent it to a distributor, it become popular and I got some money (equivalent of 7-10 icecreams). My parents were very proud and I understood that I can program for living...

Dmitry Khalatov
+2  A: 

I wrote a game in BASIC on a Vic 20 in 1985 that consisted of 9 separate games on 9 adjoining screens that you walked in & out of. It was called "Meltdown" - 3 nuclear rods went missing and you had to go find them. Robts chased you and things shot at you and it had a maze somewhere. I actually enjoyed playing it, even after having written it. I had the luxury of the Super Expander so I had 6-1/2k or RAM to burn and reeeally sophisticated graphics.

The game got lost in the annals of time. I probably taped some crappy 80's album over it.

Then I went on to do various random things in Television & film, thinking that computer programming would get me nowhere. Doh! Gross FAIL in parental guidance there. I am only now returning to re-learn how to code. Have I missed anything?

I think I peaked too early.

CAD bloke
A: 

I wrote some tiny clone of Visual C++ in Visual C++ 6.0...

The whole thing included a compiler (for some kind of structured pseudo code), a machine language translator, one interpreter (emuling a subset of x86 instructions), and a little debugger.

That was for a college project in data structures, when I was 17. I learned a lot of GUIs and data structures (an overkiller feature was the use of AVL Trees for the compilation ;)

Alex. S.
+1  A: 

I wrote an infinite loop that alerted lyrics to a song. I sent it to everyone I knew.

My very first rick roll.

danpickett
A: 

A VT100 terminal emulator (with 80 columns, true descenders, and itty bitty fonts) for the Commodore 64.

Edward Kmett
A: 

In 9th grade (1981) I took a class in programming using BASIC on the Apple IIe. The first semester's project was a simple menu screen, which I finished the first day. By the end of the week I had written a 3D graphics program that drew a cube that rotated around all three axes and moved forward and backward in space. The teacher took one look at it and didn't bother me for the rest of the semester.

MusiGenesis
+2  A: 

I wrote a full Final Fantasy style role playing game engine in Qbasic when I was 12, complete with assembly graphics routines and smooth pixel by pixel scrolling.

Then I realized that making the game engine was a lot more fun than making the game.

FlySwat
then you realized that you lost your soul... =)
Seiti
when I was 12, I wrote an operating system :P j/k
hasen j
When I was 13 I wrote an operating system... Well if you call some hackish bits of code that happened to let you do some very basic things without a previous OS an operating system...
Earlz
Same here @Earlz os.exe on DOS made in Pascal with windows, fonts, themes and 0 apps :D
F.Aquino
A: 

I can recall a few instances of projects I was proud of - all around the same time. The initial foray with the TI994A I didn't count because I knew the basic programs I was writing were crap or I was just copying them out of a magazine:

So, here it goes: 1. Solution to an Artificial intelligence class problem - in Scheme - a generaic solver for missionary and cannibal problem for arbitrary boat sizes and arbitrary number of missionary and cannibals

  1. All the solutions to the SICP coursebook during my undergraduate class

  2. A project I completed for a friend's father for scheduling resources. This turned out to be an NP complete problem. I used a bunch of heuristics and didn't need the optimal solution - just any solution. I did that in C on 16 bit windows in Turbo C during my sophomore year I think.

  3. My final project for a C programming languages "lab" course. We had to write a spreadsheet. That was fun.

Tim
+69  A: 

I didn't study computer science in college (at least, not at first), so I had to teach myself a lot of the fundamentals.

In my first programming job, I encountered an interesting situation where I wanted to iterate through a sorted array. Because I didn't know the standard library well enough, I didn't know that there were standard sorting routines. And I didn't know anything about standard algorithms. (In fact, I don't think I even knew what the word "algorithm" meant.)

So I got out a pen and a pad of paper and started brainstorming a generalizable technique for sorting an array, regardless of its initial state. After about 20 minutes, I came up with this little gem (in pseudocode):

function sort(array) {
   boolean isSorted = false
   while (!isSorted) {
      isSorted = true
      for (i = 1 .. array.length) {
         if (array[i] < array[i - 1]) {
            array.swap(i, i - 1)
            isSorted= false
         }
      }
   }
}

I was very proud of myself for discovering this little swapping trick.

I remember thinking about those guys who could solve a rubik's cube, regardless of its initial state, by following a series of steps. And that always amazed me. How could it be possible to solve all the millions of different rubik's cube permutations with only one simple formula???

To me, my sorting trick felt like a similar accomplishment.

A few weeks later, I was telling one of my buddies about this sorting algorithm I had invented, and he said "That's just a bubble sort! You didn't invent it, and it's one of the worst ways to sort an array, with n-squared performance!"

After he explained to me what he was talking about (I had also never heard of big-oh notation at that point), I was a little bit deflated, feeling a little less clever than when I had walked into the room.

But I distinctly remember the feeling of pride that I had at the "eureka" moment when I figured out the "swap-sort routine" (which, I think, is what I called it back then).

benjismith
+1 - Never care who did it first, as long as you did it yourself!
SnOrfus
+1 for the same reason as SnOrfus
Michael Buen
If you found that by yourself really early on than you don't suck, no matter how badly this sort sucks. Hey for the first 20 years the best way CS knew was salt-shaker sort which was derived from bubble sort (took (N/2)^2 time).
Joshua
Very cool. How old were you, when you reinvented this? Bubble sort was the first moment that made me realize what the word algorithm really means. Before I knew bubblesort, I was only scripting, not actually programming.
Josef Sábl
That's really funny, exactly the same thing happened to me when I was around 16!
ole_berlin
@JS: I was 22 at the time.
benjismith
You most certainly did invent bubble sort! You just weren't the *first* to have invented it.
Nick Lewis
I first "invented" bubble sort when I went to programming competition at school (around 14y/o). Everybody have prepared in advance but I didn't knew a thing. And of-course first task was to sort something. So while everybody was solving one task after another I was inventing bubble sort :) Although I finished in the end but still I was very proud of myself.
Sergej Andrejev
A: 

A breakout clone.

I'd always made lots of little programs, and I enjoyed making them, but I usually made them to try something out. They didn't have much real use. I had made some fun games in TI-BASIC that were pretty complex, but that was the closest to useful finished programs I had made.

Well one time I decided to make a breakout clone in C. I always liked making games, but usually I'd make bits work and get tired of it. This time everything came together and I kept it going.

Not only did the game work (ball bouncing around right, breaking bricks) but I added some extra features that made it all feel so complete (especially compared to older projects). It had a nice menu, multiple levels, and read the levels by reading bitmap images and interpreting the colors as kinds of bricks, which made it trivial to make new levels (instead of hardcoding them in the source).

The program worked and was fun. It felt like a real program. It was up there in quality with some of the freeware out there (not great stuff, but it felt mostly complete). I learned quite a bit about Allegro (the library I used) at the time, as well as ways of structuring the main loop of the program to support the menu and such.

I've made far more impressive programs since then doing database work, printing, 3D, and more. But that was the first time I made what felt like a REAL application or program and not some little one-off test program. That was my first program to be really proud of.

I really REALLY wish I still had it. I wrote it probably about '97-'99 or so during the summer, but if I saved it (I can't remember for sure) I know I lost it in a hard drive crash later ('02 or so).

MBCook
A: 

A simple and stupid drawing program for my TI-83.

daniel
A: 

I remember in early middle school I wrote a program in Basic to play a simple arrangement Toccata and Fugue in D minor on the internal speaker. I didn't have my Logitech SoundMan card yet. Those were the days...

Chris Kloberdanz
A: 

I wrote a bare bones C application that had it's own GUI and interfaced with a low level mouse driver back in the days of Dos. It was really fun having to draw the entire screen and I got it all working fairly seamlessly. I was really happy with how well it all came together even though it was just a learning exercise for myself.

-MrPortico

MrPortico
A: 

A Yahtzee game in BASIC on a C-64.

Adam Tegen
A: 

In grade school, I wrote a simple graphics editor for the Apple IIe. It mapped keyboard buttons to commands such as color selection, point and line creations, etc.

The fun part of the program was that it did not store the picture itself - it stored the key commands used to make the picture. This had the side effect that it would replay your actions on the screen when you loaded a file from disk, which gave a simplistic animation effect. Depending on what was being drawn, this could end up creating some very humorous effects.

It was great watching my friends compete about who could come up with the best/funniest pictures.

JeremyDWill
A: 

JavaScript "WinBrick" (apparently it's actually called "Break Out"... but I knew it by a different name).

Check it out... (click on the link 'WinBrick' up there), and play "Brick Stage One" (tis the best).

Timothy Khouri
A: 

On my Apple ][ I wrote a hangman program. You could play against the computer either guessing the word or letting the computer guess. The computer built up a dictionary of words that you had used and picked one of those out at random. I was proud because it seemed to be learning, and I'd figured out how to write out a file to floppy disk from the program. It also had groovy "hires" graphics of the hangman drawing.

WW
A: 

It might sound basic, but I built a calculator using Visual C++. We had an assignment to produce simple math functions in Intro to C++ and I took it a step further making a customized GUI. I was quite proud of myself, though my professor was less than interested.

JoshFinnie
+1  A: 

Maybe that TI-57 program that drawn (non-duplicated) random numbers for French Lotto. Hey, it generated 5 good numbers (out of 6 on 49 possibilities) for a grid, which allowed me to buy my first computer! (a CBM 4016, 1MHz CPU, 16KB of memory).

And the first elaborate program I wrote was a full screen text editor on Unix (SCO Unix on PC) in C using Curses. I wrote it because I don't like vi which was the only editor available there... And I learned a lot in the process.

PhiLho
+1 for not liking vi so much that you wrote your own!
RCIX
+1  A: 

The first program I ever wrote displayed a large heart from a Timex Sinclair 1000 (with 14K RAM expansion!) on an attached TV (no monitors yet), which I made for my high school English class. The assignment was essentially show-and-tell of something that you love.

My second program, which became the first of which I was really proud, was a 3D wire frame graphics modeling engine on an Apple II. It loaded a wire-frame model into memory, then displayed it as green lines (edges) on a black background, which you could then "walk through" using the arrow/PgUp/PgDn keys.

My third program, which became the first of which I was really proud that I actually shared with another human being, was a complete and faithful implementation of the Yahtzee dice game for the Hewlett-Packard 2000C timeshare mainframe. On the one black & white video terminal, it would do full-screen refreshes for each move, but on the many printer terminals it would save paper by adjusting to show only immediate information about your current move, and show the entire "board" only when specifically requested by command.

I did all these during my first semester of my sophomore year in high school.

My "heart" program got lots of giggles from my classmates. Almost no one ever saw my 3D graphics engine, but I played with it a lot. But my Yahtzee program was played by everyone in my beginning computer class, and eventually by everyone in EVERY computer class, so that I ended up getting the only "A" in my class because no one else was finishing their assignments. At the end of the year, I became the shoe-in for the Computer Student of the Year Award because everyone was addicted to my game, and everyone knew me on sight.

Rob Williams
A: 

The first one I got really proud of was the first one I wrote on my own, using Delphi, when I was still taking programming classes. It was a prank program, that would change the location of the OK button, count how many times you tried to click it, print different messages depending on how long did you keep trying and some other stuff... I never sent it to anyone, but I was really proud of all the things I learned on my own

Gabe
A: 

A 1 hour exercise programming that take 2 arbitrarly long integers (i.e. longer than 4 bytes) and multiply them. Flawless! (of course we didn't have much time to test it properly...)

Seiti
A: 

It was in 1983... A TV game named "The count is right" was very popular in France. You get 6 numbers between 1 and 100 and you should find the best way to combine them using simple operations to reach or be as closer as possible to a random number between 100 and 999. Players got 45 seconds to do it. (ex: 795= (1+2+2x25) x (25-10))

I did program a solver for this game on my Oric 1. it's heart was a 6502 at 1Mhz and Basic was way too slow. Even assembler was to slow without some neat algorithm tricks and I was very happy when I succeeded to go down around 20s.

+24  A: 
10 PRINT "THIS STORE SUCKS!!!"
20 GOTO 10

This was in an electronics store, on a display model 8-bit something-or-other.

fenomas
I used to do stuff like this on the display Commodore 64 that was in my local Sears store in the mall.
fiveprime
same here... my brother and i did this to many a commodore 64 in chandlers.
Leon Bambrick
I used to do stuff like this at school as a kid, on Apple II's, and convince teachers it was a virus.
Tristan Havelick
I always put on a trailing ; so that it would suppress the carriage return and fill the screen. I was 11 so gimme some slack.
MikeJ
adding the semicolon took you from cool to 733t
Neil N
"From cool to teet?"
deceze
733t, kiddie hacker speak for LEET, which is slang for ELITE. Sheesh never spent time on a BBS did ya?
Neil N
I *think* deceze knows what it means. But the correct... uh, is spelling the right word here? is l33t :) http://en.wikipedia.org/wiki/Leet
Pekka
if anything 7 usually == t not l but anything goes
jk
Or "1337", where 1 = L and 7 = T
GalacticCowboy
A: 

Easychat -> application over intranet to chat, send offline messages, and such.

Skuta
A: 

A Que card app.

Some years ago I was taking a french class and had a pile of little que-cards. I also owned a Palm.

I figured I'd spend a day and writer a quick little que card app.. Took me about 6 hours. I put it out on the net for free. (why not?)

About 6 months later Katrina happened, a month after that, someone gave a school in the area a pile of palms. They wrote me a letter saying thanks.. The installed the software on all the palms that were donated.
Kids are using the program to help with math and history..

If I stop programing today I can say I've done my job. Something I did contributed to the world.

baash05
A: 

A TI-83 Calcualtor game where you move a "U" to catch a falling "*". That was my benchmark for any game I made on that.

A: 

TI-83 also.... My first program ever was the first program I was ever proud of.

Pong written in BASIC on the TI-83+, I wish I still had the code today... several(4-7) hours typed on the calculator itself.. chock full of ludicrous amounts of labels and GOTOs for program control and slow as molasses, not to mention the final program took up a good third of your storage... but hey! it worked, and it was pong!

Thank you for this moment of nostalgia I'm having now :)

argonide
+1  A: 

An Asteroids clone in QBasic. It was awesome!

Claudiu
+2  A: 

I was 13 or 14. We had some coursework for an exam based around a game played with dice; it was all about probability and prediction. To begin with, though, the coursework demanded that you played a "significant" number of games to gather results. Most people saw this as an excuse to kill time in lessons devoted to the coursework, just rolling die after die after die.

After about 50 runs, I decided that it was dumb doing this by hand when we had computers to do this kind of boring, repetitive work for us.

So I spent my research-phase woring on implementing the game in QBasic. The program asked for how many games you wanted played, and dumped out the distribution of results. I could run 10,000 games in a few minutes on a DX2/66. So I ended up with easily the largest number of sample games played in the class (with, of course, the same distribution of results as everyone else - just with a much smoother graph), and also with a cute appendix with the sourcecode in.

Not my first program by a long way, but the first one I was proud of - it solved a problem I'd identified.

infovore
A: 

on qbasic show text that you type

Omar Abid
A: 

A mini Star Trek Next Gen "adventure" game (you had about five choices in the entire game), complete with title sequence and explosions in ASCII art (with a "sleep 1" in between each frame), when I was 9 and got a hold of my Dad's 286 laptop.

I later "upgraded" it to use "for ii = 1 to 10000 ... next ii" no-op loops to get more than one frame per second. A true thedailywtf.com candidate in the making. :-|

Rob Howard
A: 

First I am and always have been a smart ass. In college I knew more about programming the 60 year old civil engineer who drew the short straw and had to teach freshmen FORTRAN. He got even, Instead of assigning a final test, he gave everyone a different assigment as a final grade. Mine was to write a FORTRAN program, using a punch card deck, to convert Roman numerals to decimal and back. For anyone under a certain age, FORTRAN has almost no string handling functions. I rewrote it 3 times before I was satisfied. I still have that card deck some place in the attic. Oh yea I did get a A for the course.

Jim C
A: 

I wrote a chat client for our LAN in Flash using an swf to exe converter. I actually learn't programming in ActionScript just for this application. It was such a rush to see something I made work.

Saurabh Sawant
+1  A: 

I'm late to the party, but I'll throw this into the ring.

The first program I was truly proud of was a demon dialer I wrote to crack MCI. I hacked it on my Atari 800 (!). It worked through the T: driver to the Atari 1030 300 baud modem (!!).

It was simple, but I wrote it to be feature-rich. You entered the local MCI phone number, a range of code numbers, and a long-distance number to verify access. (Kids, this is how it was in the far-distant 80s. You called your long-distance provider on a local Ma Bell line, entered an access code, and then dialed long-distance numbers on MCI's dime.)

My program dialed the local MCI number, waited a configurable number of seconds (say, 5), then beeped down the line the next code number. It would then send down the long-distance number, which was to be a highly-available modem, such as a point-of-presence for CompuServe or The Source or such. If the 1030 detected a carrier, it logged the code number as a success. Otherwise, onto the next number. When the program finished, it would write to disk a printer-ready report of verified access codes. The report took me the most time, believe it or not, and I was proud of how smart it all looked.

Well, MCI's codes back then (1984?) were five digits long, not a hard crack. The first day I came home from school with a report of eight long-distance codes. Am I smart? No, MCI was dumb. Years later a coworker of mine told me of a professor at UC Santa Barbara assigned him a combinatorics problem related to MCI's choice of code length. I proudly told him I had beat the problem.

My program spread to high-school-level hacker BBS', and I enjoyed a brief recognition as an Atari hacker. I also shared those MCI codes with my high school buddies, who thought I was working small miracles with "a game machine." I wound up invited to an online hacker's club which did nothing but talk about how cool it would be to hack the nuclear codes from Reagan. Nothing came of that, as you might guess.

It was a cool little program.

Jim Nelson
+7  A: 
10 PRINT "HELLO"
20 GOTO 10
ilitirit
Same... with a semi-colon on the end of line 10.
David McEwing
Same, with colors!
Liran Orevi
Same, with an insulting message for my friend sitting next to me. Wait... actually, I'm not that proud...
Martinho Fernandes
A: 

I wrote a TI Basic Hockey game when I was in high school.

But I'm most proud of a C++ sidescrolling ASCII-based Windows console sidescroller. It had an easy plaintext (editable in Notepad) level capability which allowed anyone to make levels. Apparently, it's still shown by my instructor in his C++ classes.

Strozykowski
A: 

I remember being quite chuffed with a player vs CPU game of pong I wrote for my calculator. Can't remember the model now though so -1 for geek points :)

jammus
A: 

I wrote a program in Atari LOGO on my Atari 800XL that used the animated turtles the language provided to allow two joysticks hooked up to the machine to 'fly' the turtles around the screen (You could morph the turtles to look like whatever you wanted, so I made them look like an X-Wing and a Tie Fighter from Star Wars :)

I remember implenting firing lasers too, but I never got that working 100%.

Anyway, much fun. Right around that same time I remember writing an ultra simplistic screen paint program in Atari BASIC - you painted with the joystick and changed color by pushing the fire button :)

I also remember being tickled pink when I wrote a program in 6502 Assembly with a BASIC loader (No expensive Assembler cartridges for me) that flashed the screen different colors and made a sprite whizz vertically up the screen (Horizontal movement was hard - you had to actually copy the image through memory).

Ah those were the days!

feoh
A: 

I wrote a game in CA Clipper, it was a space invaders clone but I was very very excited about it, it had even sound (using beeps).

Fabio Gomes
A: 

This was a while ago, but it was the first C++ program i wrote pretty much, all it did was compare two strings to see if they were anagrams, the bonus marks were to also implement an pangram checker.

For the anagram part, i just checked in the standard library for a .compare() function for strings, my program was pretty simple, input, .compare(), output, but most of the class didn't think to use a built in function, and did all sorts of crazy things to check.

My teacher at the time always said "Don't reinvent the wheel" and thats why i was proud of this program :P

Deinumite
A: 

Around 1994-1995 we had this Excalibur BBS system where the client ran in Windows and you could do more than one thing at a time, like download files, read forums, and even get onto the Internet. One of these systems required the user to pay to gain access and the payment process was slow. You could sign up and wait for someone to process your credit card offline, or you could mail a check and wait for that to get processed.

Since some people wanted access RIGHT NOW, we used a telephone service that you would call to get a code, and the charge would show up on your telephone bill. I wrote the part where the user entered the code, the code was validated off some master list, and the user was then granted access to the system based on the code. It was my first real application using Borland C++ that made use of DLLs.

We called it the Telephone Access Billing System (TABS) and had a few Excalibur BBS systems using the software, until most people stopped using dial up and found better ways to get onto the Internet.

Bratch
+1  A: 

Windows 98.

Keng
+1  A: 

I wrote a spell checking application.

It took a text file as input, and compared all of the words to a dictionary. The dictionary was being stored in memory as a BST, so it took a couple of seconds to load, but the actual spell checking was done very quickly.

Once all of the spell checking was done it would print any possibly wrong words and their position in the text file.

Sure, it's nothing much to write now, but back when I wrote it I was pretty chuffed that I could write an application that would not only work, but was actually useful. While I wouldn't ever use this application for spell-checking, it did teach me a few things along the way.

+2  A: 

In 7th grade, when me and a friend got into a fight over who could program our TI-83 calculators better. After suffering numerous humiliating defeats, I finally made a prime factor program that could factor faster than his (but only in large numbers) and had much smaller memory usage.

Eventually, he prevailed as the superior programmer, making connect4 and hangman while I was still stuck on pong (note: don't try to make pong on a calcuator using BASIC. It doesn't work well at all).

The joke's on him, however, because I optimized all his games after he was done with them, then added my name to the "CREDITS" page he habitually inserted.

+2  A: 

My first program that I wrote in C (not counting "hello world") was for a monitoring and control application for a NASA satellite.

I call bullshit on this. Your second ever C program controlled a NASA satellite?
Charlie Somerville
This is only feasible if you had a lot of prior programming experience in a similar procedural language(such as Pascal)
Earlz
+1  A: 

I was quite proud of a program I wrote for the Commodore 64, in about 1987, which read the disk directory and sorted it alphabetically and printed it out on the screen. Wrote it in 6502 assembler on paper, typed it into the assembly monitor and it worked first time. :)

I was also very proud of a bresenham line drawing program that I wrote in assembler, which would draw a line using points from x1,y1 to x2,y2. It took me ages to work it all through from first principles but I'm sure it didn't seem so impressive to others!

Jon DellOro
+1  A: 

It was a program to control the access to computer lab. It may be ugly, un-optimized, but I'm very proud of it because I used everything I knew at the moment (OO, friend functions, overloading operators).

Whenever I see the code I get funny feeling. I really should try to get it running again (it was made in Borland C++) I made a little map of how the computer lab was arranged (all in command prompt) so a user could see which computers were free, where out of service, didn't have internet, etc. I got an A+ on that project :D

isc_fausto
+1  A: 

My first program I was kind of proud of was a Knight Rider game written in BASIC on a C64. Must be more than 20 years ago. It was very simple of course. You had an interface that emulated KITT's cockpit and could activate things like "super persuit mode". The display would flash or make other funny things to show you what KITT's current state was.

Later on, in school, I wrote a race simulator for the TI-82. The calculator's display would show a part of a lane which would become narrower the further you drove. You had to make sure that your car did not leave the track and dodged obstacles. It was a major success in class. Unfortunately, for our final exams all calculators were collected and their memory flushed. Gone was this masterpiece of mankind.

Typhix
Sweet! I love Knight Rider!
leeand00
Ah yes, the TI-8x calculators. There were a lot of people in my class that had programs that didn't execute, but only contained gibberish like I=U/R. :P
The_Fox
+1  A: 

I think the first program I was really proud of was an adventure game like thing that I wrote in Java Swing. (I stole the graphics from Space Quest 4, copying each frame as I paused the action). I looked up an algorithm to draw a line with so I could make "Roger" walk to where ever the user clicked. I also used trig to figure out which direction "Roger" was walking so that the right set of images would be displayed to simulate him walking N, S, E, W or NW, NE, SE, or SW.

At one point I screwed up the the algorithm and he was doing the moon walk like Michael Jackson.

leeand00
A: 

When I was 13 or so, I acquired an Atari 800XL and started writing games, partly in assembly and partly in Basic. One of my games (called Wheelchair Jack, about a guy that had to navigate through a cave in a wheelchair with a jet-engine attached [don't ask ;-)]) had this feature where the background scrolled horizontally, with a speed that depended on how close the main character was to the edge of the screen. This part of the code was programmed in the vertical blank interrupt to avoid any jittering and boy was it cool! (for 1983).

Bernie
A: 

I wrote a simple slot-machine in Python. It started out with selecting 3 random numbers and checking to see if they matched, and went all the way to up to 5-way checking on 9 numbers with a bankroll and variable betting.

What made me proud was coming from a pure Basic background, it was my first time with iterative development, comments, refactoring, defined functions, and source control. I took it as proof Basic doesn't ruin you for life.

J.T. Hurley
+1  A: 

I had derived a shortest path algorithm from a simple path algorithm for an assignment in my second semester of college. What makes me proud is that I tried to derive an algorithm instead of searching the internet for one.

swamplord
+1  A: 

A lot of the programs that I've made are pretty mundane, but during my vBulletin modification days I had written an article system to allow users to use their vBulletin forum software to power their website, allowing users to generate their own content for your site. It lasted for about a month and the new version of vBulletin came out, making my work obsolete.

As I'm still a beginner with the whole programming thing I decided to write a program to test my skills, so I decided to write a cinema booking system. Two days later I had two written in C and Java, introducing me to more practical use with pointers and ArrayLists. All in all, these are my favourites because they're the first programs that have really demonstrated my ability to my most important critic. Myself.

EnderMB
+17  A: 

Hello World! Because it compiled and ran!

Robert Durgin
My first Hello World was interpreted.
Jared Updike
Mine was just 'Hello'.
StackedCrooked
I got a syntax error
Mark Schultheiss
+1  A: 

I wrote a function plotter in high school with QBasic, Now that I think about it had a great exception handling system, that makes me proud

Mark
A: 

The DECtape recovery program for the PDP-10, in 1969.

Through a cockpit error, the wrong tape's directory block could be written over the correct directory block, making all the tape's files unreadable. But the underlying file mapping information was still there, even though the file names were really lost.

This happened at my site, losing about 1 month's programming effort for a colleague.

The management wanted to write off to DECUS to try and obtain a recovery program. I offered to write one. Less than 24 hours later, wall clock time, I had a working prototype, and I had recovered the vital files from the tape that precipitated the crisis.

I was proud of that program because of the fast turnaround between problem statement and problem resolution.

The various UNDELETE programs written much later for CP/M and MS-DOS reminded me of this little effort of mine.

Walter Mitty
A: 

I was in high school and wrote a rendition of spyhunter in QBasic and networked so that several people could play at once.

Chris Ballance
+1  A: 

I wrote a lightcycle game based on the Tron movie on my Vic-20. Then re-wrote it for my Atari 1200. I was pretty proud of it at the time. It even used SAM (remember that?) to speak the score after each round.

Dana
+1  A: 

My first program was:

10 print "Hello World!"
20 goto 10

This was on an Commodore Plus/4. Long time ago and i was proud about it, since it was running big time on my tv set.

Cheers, murphy

A: 

Ha.

  • If I had to be honest, I'd have to say the first Logo Writer program I wrote which drew a scene and played a movie about a tragic helicopter crash.
  • Then there was a program I put together for a lego mindstorm robot I was proud of, which I wasn't happy with until it played the imperial death march as it pushed cans out of a circle.
  • After that, there's a lull in pride for a few years, then I recreated tetris in java for a subject. My only regret was never getting it to play the midi. Never got the hang of important the sound management library to get it to play the tetris theme in system beeps...still don't (forgot about that, might need to check into it later tonight)
Nonick
A: 

Back in university, I took a class named "Interactive Computing". This was just after Win 3.1 came out, but the class used APL as the teaching language.

A couple of us figured out how to shell out from the APL interpreter, load windows & start a window program - remember those days?

We initially got 0's, but after arguing that we stuck to the letter (if not the spirit) of the assignment, ended up with an A.

chris
+1  A: 

I think the first program I wrote that I was truly proud of was an implementation of the AKS primality test. I had to write my own integer polynomial class with polynomial division that was hard to get right the first time.

James Matta
A: 

When I was around 9 or 10 I wrote a reusable and extendable menu system on the Sinclair ZX Spectrum 48k. That definitely was the first thing I was really proud of - that I still remember well today, that is.

One part I really liked about it was what at the time I thought of as "using GOSUB in creative ways"... which was very much eased by the fact that GOSUB in Speccy-BASIC accepted any old integer expression as an argument rather than being limited to constants like most other BASIC-dialects did at the time. It was also the first time I instinctively tried to clearly separate the presentation from the code behind it.

A few years later I also rewrote Larry Laffer as a text adventure (with soundtrack!) for the same machine... ;)

Oliver Giesen
A: 

Many moons ago, I made an animated Jumpman graphic written in BASIC on my Atari 800.

Alvin Ashcraft
+1  A: 

In highschool I wrote a random insult generator during math class on my TI83 calculator, it would pick from several hardcoded lists of words and add them together to generate an insult. I gave a copy to a couple people via the link cable and by the end of the year it was floating around the entire school. I had several people show me the program on their calculators, to which i responded, "Ya, i made that" :D

LoginError
I wrote a sentence generator in Visual Basic with text-to-speech; having the computer speak the insults/threats/etc. added much to the humor. I introduced it to some friends with whom I was doing a school project. I had to get something from the house, so I left them to my program. When I came back half an hour later, they were still generating sentences with it :D
Joey Adams
A: 

A C# based WinForms application in my systray that would listen for BlackBerry devices, identify it, and sync the particular iTunes playlist (sans DRM'd music) for that specific BlackBerry onto it's memory card.

It had preferences to sync one or multiple playlists (mixed media formats) into the correct locations on the BlackBerry for the media player to detect it and allow playback It also had the ability to manage multiple BlackBerry playlist settings so that it would sync my favorite music and movies to my Pearl, and then my wife's favorites to her Curve.

invenetix
A: 

I wrote an application back in the mid 90's that would let anyone cancel posts on usenet newsgroups. It was never widely released.

I also wrote some assembly language graphics/sounds demos (demo scene stuff) back in the day (late 80's/early 90's). I still remember using look up tables and sin/cos and bit shifting for dividing. Not everyone had a FPU then. :-)

Also, in the 80's I wrote a terminal program and BBS software for the Atari ST.

Wow, this question brings back memories. :-)

Dana Holt
A: 

I think it would have to be my Turbo Pascal rolodex program. It was a TSR. Those were the bomb, yo.

chaos
@chaos Terminate and Stay Resident. And they WERE the bomb. Around 1990-1991.
Clayton
@Clayton: Yeah, you know it.
chaos
... *visualizing it* ... ... So why was a rolodex a TSR? How did you use it?
TokenMacGuy
I hit alt-R or something and up pops my little window (high-ASCII pseudographics with a fancy drop-shadow and all). Since it was a TSR, I could do this while I was dialed in to a BBS or playing Rogue or whatever. All my contact information at the touch of a hotkey. Rad, I know.
chaos
A: 

Multivariate regressions. BASIC. Circa 1981.

Clayton
+1  A: 

Wrote a clunky web-browser in HyperCard. Yes, really. Didn't do very good at all at parsing html (wasn't familiar with those design patterns then), but the browsing task worked fine.

I gave it up when I discovered my 512kE did not have enough memory to run HyperCard AND SLIP. Hmm... Still have the fat-mac, maybe I can make it happen in C.

TokenMacGuy
+7  A: 

Humane chmod

The first program I code that I was proud of was a shell replacement/complement for chmod command in unix.

I think (no, I'm sure, It must have) been written in sh.

We were learning C in second semester and we all were troubled with the new environment: UNIX (until that day I though DOS and Operating System were interchangeably words OMG). I must have been 19 years old.

It was quite challenging to edit code and make it work there.

After several frustrating minutes one manages to edit and compile hello world:

$ vi hello.c 
~ #include<stdio.h>
~
~ void main()
~ { 
~
~  printf("Hello\n");
~
~ }
~
:wq
$ cc hello.c
$ a.out
$ Hello

Uff quite an accomplishment!! Formating was a bonus!!

Well next thing you wanted to make your "golden" hello.c read only for you don't want to screw it by mistake and then make it editable again, you were faced to deal with....

chmod!!!


 $ chmod 777 Hello.c ( or was it 755? 153 rwx??? aaarg!!! )

Everyone hate it!!!

So I came up with something that would accept the file permissions as parameter like this

chmod rwxr--r-- Hello.c

And then

chmod --------- Hello.c

Or

chmod r-xr-x-r-- Hello.c

Whatever you wanted! ( well almost , later I learn there was some other file permission ) ) But the point was that you write it exactly the way you see it in ls -l. Plus if it couldn't handle the input it forwarded to /bin/chmod :P

Micro celebrity!!, the script was very popular in my class and was distributed all over the place.

A few weeks later someone discover "man" and not only discover it but really put attention to it and discovered that

chmod u+w Hello.c

and

chmod u-w Hello.c

did the job already, and that was the end of my script.

Well. Then I really got hooked into programming and a new world opened in front my eyes!!!

OscarRyz
Actually, I'd really like `chmod` to accept `r-xr-x-r--`-like input. I so rarely use the darn thing I always forget who was supposed to be `u`, `g`, `o` and `a`, especially since I tend to confuse `o` with `owner`.
deceze
A: 

That would probably be my arbitrary-precision factorial program that I wrote in C for fun before I started college. But, even then, when I look back at the kind of code I sort of write back then, I wanna puke.

Hao Wooi Lim
A: 

2D arcade in shoot-em-up style in C++/OpenGL with working AI and two different weapons. I was 12, I think.

I am proud because it was a turning point in my programming craft. I began to wonder how to simplify complex parts of the code, first time felt a "smell" of magic numbers, began to wonder if I can divide classes more and make them independent, and begin to think if I need to create a (what I now know is) smart pointer to manage memoryleaks (which were happening). It wasn't just a bunch of code in C or VB6 as before but something that I was rewriting to make it more readable.

Obviously it wasn't a true C++ that I was writing in, more like C with classes -- I didn't much know about STL.

mannicken
A: 

I wrote an instant messenger chat bot platform in java that supported multiple protocols, multiple chat engines, and had the ability to spy on other conversations over IM. The whole thing was configurable using an XML config file.

While relatively simple, this was the first application that I "engineered" using proper architectural techniques. It came out quite well and had many downloads as an open source system.

Ryan Michela
A: 

Mine was a quizzer program written in QBasic that was special for several reasons:

  • It had mouse support and clickable buttons that were styled after windows. Pretty cool stuff for a DOS-based environment!
  • The program read in its questions/answers from files on disk, so its data was completely configurable.
  • This was the largest program I had worked on at that time (QB was the first language I learned) and really helped me push my limits and learn the ins-and-outs of the language/environment. For example, at one point I even picked up a copy of QuickBasic to compile the code down to an EXE.

I've moved on to better stuff since then, but it would be fun to dig up that code if there is still a copy around someplace...

Justin Ethier
A: 

A snake game in Turbo Pascal, was the first real program I made.

hiena
A: 

When I was 13 instead of doing all of the silly busy work calculations for my algebra/geometry class I decided to automate. I build a basic calculator in VisualBasic and added in all of my geometry functions. I could do linear and quadratic regressions, and solve for unknown sides of various shapes.

The best part was having the shapes displayed just like they were on the homework assignments. I just typed the known values into fields until it had enough info, then it spit out the unknowns into the other fields.

After I told my friends it became not only the first program I was proud of, but my first 'professional' program as well :)

greenguy1090
A: 

I wrote a little math game in commodore basic for my 64 when I was about 11 or 12. I was very proud of how it showed you how to do multiplication of 3-digit numbers in a font I drew myself. (The numbers were about 1/5th the height of the screen for ease of reading on a TV.)

It was a trashy gosub/goto spaghetti mess that I would probably retch over if I stumbled over the source code today. But at the time I was rather proud of it.

jmucchiello
A: 

I wrote a program that converted engineering specs from a "Wang Super No Problem #4" no kidding. I printed them out the serial port into text files and then imported them into Word Perfect. I even had to make the serial cable. They paid me $300 dollars in 1986. I will never forget it. I never had so much fun and they even will pay you! I was a full time programmer in a year, mostly with Clarion Professional Developer and have never looked back.

Although sitting here in my office again at 9:30 pm makes me wonder if I had kept my job as a life insurance agent, how would things have been different. Maybe my golf handicap.

It's a great and rewarding career. Now i am learning Haskell.

Gary
+3  A: 

I'm currently specifying and writing a (domain specific) programming language.

My intention is to design something like XSLT, but with better algorithmic abilities and more powerful in most aspects (that's a lot of work!).

I'm very proud of it ;)
It's my first big project I'm proud of.

Most basic functionality works already.

It will be released under the GPL when ready (just give me one more year).

ivan_ivanovich_ivanoff
it's been a year, fess up ;)
RCIX
A: 

When I was 13, I wrote a program in i8080 machine codes that implemented sound reverberation using a cyclic buffer to store the sound samples it read from a port.

The computer I used only had 64 Kb total RAM, of them 48Kb were available to the user, so storing more than a few seconds of sound was impossible, and storing only a few seconds seemed pointless.

So I spent a day chewing on this issue and then after midnight when my parents were fast asleep, I got this idea of the cyclic buffer. I got up and sketched it in a school notebook and then implemented it the following morning.

zvolkov
A: 

When I was about 12 or 13 I wrote a "choose your own adventure"-style adventure game in BASIC on my brother's TI graphing calculator. I think the story was that you went into a funhouse and got kidnapped. You had to decide whether to go left or right, run from your kidnapper or fight, etc., and I even had a few different endings.

Jason Hall
A: 

I was 7 or 8 years old when I started with GW-BASIC on my dad's 8086 using nothing but the GW-BASIC function reference book that came with MS-DOS 3.x. I created a calculator. I was extremely proud of discovering the algorithm to display the correct number as you were typing it. That is: The number on the display * 10 + the number you pressed = new number on the display. I've been hooked on programming ever since.

The second proudest I was of my 2.5D Wolfenstein-like engine/game I wrote in Q-Basic. It was only flat filled polygons and ran at up to 5 fps on the fastest Pentium I could get my hands on. I switched to C++/OpenGL after that.

Sander Marechal
+1  A: 

I'm fairly new to programming. Me and a friend do some of the puzzles on www.projecteuler.net. He makes them in C# and i do them in PHP because my knowledge of C# isn't that great.

On one assignment you had to calculate something which returned a very big integer and PHP doesn't return the full number, only the Scientific notation. So I wrote a function that would calculate it and return the whole number instead of just the scientific notation.

function bigexpo($nummer,$macht)
{
    if($macht == 0)
    {
     return 1;
     break;
    }
    if($macht == 1)
    {
     return $nummer;
     break;
    }
    $array[] = $nummer;
    for($i=1; $i < $macht; $i++)
    {
     $count = count($array);
     for($b = 0; $b < $count; $b++)
     {
      $array[$b] = $array[$b] * $nummer;
     }
     for($c = 0; $c < $count; $c++)
     {
      while($array[$c] > 9)
      {
       if($array[$c] >=100)
       {
        $array[$c] -= 100;
        $array[$c+2] += 2;
       }
       elseif($array[$c] <100 && $array[$c] >= 50)
       {
        $array[$c] -= 50;
        $array[$c+1] += 5; 
       }
       else
       {
        $array[$c] -= 10;
        $array[$c+1] += 1;
       }
      }
     }
    }

    $count = count($array);
    for($i = $count; $i >= 0; $i--)
    {
     echo $array[$i];  
    }
}
A: 

I wrote an accounts receivable system for a small music publishing company (circa 1980). It ran on a CDC Cyber on which the company was allowed to borrow some timesharing resources. The programs in the system were written in COBOL.

A: 

It was Football Manager simulationg game I have written on my Atari 130XE when I was twelve. It was the only game I wrote that I actually played. It had graphical display of position of ball on the pitch. The only drawback was AI of course which was not there at all. All you had to do was to beat statistics.

The second was Genealogy program I made for my girlfriend and I actually sold about twenty copies later. These were first money I made as a programmer and I used them to but an electrical guitar :-)

Josef Sábl
A: 

My first QBASIC textadventure. It was featuring an (IMO) amazing story with space pirates and the last survivor on board of a captured spacecraft. There also were nice colored console effects. I've had sent it to the PC-Games Magazine and the delivered it on CD with their next issue.

I still have it on my website for download. It is in German language :)

codymanix
+9  A: 

When I was 13 I wrote an equation solver for the C64. It was a simple program, but had a nice GUI and a catchy name: Determinator.

I sent it to a German computer magazine and they paid me 200 bucks.
It was the first money I earned with programing and it made me really proud.

Some twenty years later I accidentally found that Determinator is still alive at plus4world.

Ludwig Weinzierl
+1  A: 

The first was a Frogger Clone on the TS 1000 (with the 16K memory add on).

Then I wrote a lunar lander clone for the Commodore 64. That was really cool.

(Sorry, I couldn't limit it to just one ;-)

Clay Nichols
+1  A: 

A web spider.

Zombies
A: 

Well, let's see. I was able to create an interface which was strikingly similar to industry standard (without ever SEEING said standard), I designed and built my first GUI, and I was able to translate XML to JavaScript through Actionscript... All and all, I would say that was pretty intense for someone who had only been at it for a year.

Christopher W. Allen-Poole
+1  A: 

I wrote a vocabulary database and test program in Mallard Basic on my dads Amstrad PCW 8512. I'd written programs on my Commodore 64 at that point, but this was the first one I wrote that was well written and did something useful.

Unfortunately I never did use it as intended, to improve my French and German at school, and ended up having to study Computer Science at University instead of whatever those grand subjects would have lead to.

justinhj
+1  A: 

For me, I can't remember which of the two it was that came first, but it was either:

  1. An Object Pascal MIDI playback library that I released as freeware back in The Day. It was cool because it had a nice, device independent architecture, and it was the first thing I wrote where I really "got" OOP.

  2. A simple scheduling program for a small music school. He had really unique needs, and paid me $300 for the 30 hours or so that it took to put together the app. It was cool to me because I got to use my recently-learned on-disk B-Tree stuff to make searching for students lightning fast, and it used the Technojock Toolkit to make the displays all cool (you know, for a DOS program!) Oh, and it was my first paying gig. I was about 15, and never worked for $10 an hour since. :-)

Tim Sullivan
A: 

Well, I think the project that I just completed today could qualify for this. Even though I am nearing the end of my degree, I felt very satisfied once I finally got things working.

In our systems programming class we developed a very simple operating system which we then extended as smaller teams. My chosen project was to develop a hard disk driver, which I can easily say was one of the most difficult and yet rewarding programs that I had written in my short programming career. While it is not a fully featured driver, the code was written in only a few weeks with a full load of other courses, so I was very proud to actually get it working in time for our final demonstration to the professor.

Writing device drivers and operating system development in general has always been a major interest of mine, so this was an awesome project to do. I was ecstatic when I finally had my driver operating correctly and I could read/write without error to the disk.

While it was fun, I must say it is rather depressing when working with hardware and serious errors occur and you have absolutely no feedback as to what is happening.

TURBOxSPOOL
+1  A: 

A library for accessing the mouse on M$-DOS. For some strange reason I was very proud of this, since I suffered from the I-Know-it-all syndrome at the time.

Gilad Naor
+6  A: 

A Dungeons and Dragons Treasure Generator.

Remember the tables, the endless rolls to figure out what the party gets based on the treasure types from the monsters... Well, I had a complete automated system.

Ha ... Geeked out. Sooo fun.

Gabriel
Can't beat the feel of "really random" good ol' die rolls, though. I still borrow friends' dice if I don't have any, instead of using a RNG. I suppose if I were doing the same, I'd have manually input a number, and looked up the treasure in code.
maxwellb
:D ... agreed. The 'really random' and good ol' die - just feel great.
Gabriel
A: 

The pinnacle of uselessness: a graphical "demo" on the Amiga 500 back in the eighties, written completely in 68k assembly language. It featured dancing color bars fully controlled by copper lists and the amazing copper coprocessor, scrolling and waving text controller by shifting the monitor scanlines, ...

Even by today's standards, it's amazing what the Amiga could do.

Brings back memories...

Philippe Leybaert
A: 

I wrote a memory resident program in Pascal while at college that mimicked the effect of the Cascade Virus - where the letters would randomly fall to the bottom of the screen every so often. Also wrote one to bounce a few asterisks around the screen. Thought they were both pretty cool at the time..

Nick
A: 

My academic project was a inventory system in Foxpro. But as I had a inclination towards C, I had prepared a welcome graphics screen in C / DOS . It made me feel good.

Next, I had a chance to work with mouse / keyboard handling on C , DOS. This was very interesting, as I got the chance to work with interrups. At that point of time int64x became my most used function, and led me to look into C more.

Sujay Ghosh
A: 

To me it was a Tic Tac Toe in Ada for a school project (1st year). It was really neat with XML logs and a cool structure. It also had an awesome shell UI with ASCII art and everything!

It wasn't my first program ever, but it was the first one that was doing something interesting.

marcgg
+2  A: 

I was at a summer day camp and we were being taught Logo. For the end of the camp we were supposed to make some project to demonstrate on parents day.

I wrote code for a robotic wheelchair (made out of Lego) that had a laser sight on it that would try to find and run into other people's robots and projects. It worked really well, but I felt bad when it knocked down someone's tower project.

I was really proud of my destructive robot.

samoz
+1  A: 

A QBasic program that rendered a 3D cube which I animated to rotate based on keyboard input. That was one of the moments where my young but nerdy brain realized that math is awesome.

Larsenal
When I did this sort of thing, I first empirically discovered the relationship between distance and perceived size by using a ruler and a wall.
Joey Adams
+1  A: 

I challenged myself to write a Forth implementation in an hour. It turns out it wasn't that hard.

Later, I challenged myself to write a simple Scheme-ish language in two days. This was much harder but I had much more experience at that point, so I don't think it made me quite as proud.

Zifre
In what language was the Forth implementation?
Liran Orevi
The Forth implementation was in FreeBASIC. The Scheme-ish language was in C++ with Flex and Bison.
Zifre
A: 
#include <stdio.h>

void main()
{
    printf( "Hello World!\n" );
}

Yes, I realized later (this was when I was 8 or 9 years old), that this is not the way we do things. I believe all of my C programs later used int main( int argc, char *argv[] ).

However, I was learning C with some friends (an elementary school user group.. ok, with a private teacher), and it was neat. We had a book, I think "Teach yourself C in 23 Easy Lessons" or something like that, and it came with, I think, Borland Turbo C Compiler.

This was circa 1995. I was proud of it.

maxwellb
A: 

Back in 1997 I wrote a game called "The Pits" in Turbo Pascal. I basically found something on the 286's we were using that was game like, basically navigating a single character down an ever-changing tunnel as long as you could. I took that idea, revamped it a bit, added a couple cheat codes, some color, and it was my first 1000 line program. The memory still excites me!

Josh
+1  A: 

My Grade 11 programming final, made a DDR like game in Java to only Kelly Clarkson songs.

Edit: actually my first Counter-Strike AMX plugin was my proudest, I miss those times.

Petey B
A: 

In ~1996, my roommate and I had networked our computers together (10 Mbps coax!) but still each individually dialed out to get to the Internet. This meant we were occasionally knocking each other off by trying to dial on an already-connected phone line.

I wrote a simple little network app that sat in the tray of Windows 95 and displayed a red or green light based on whether or not the other person was connected. We knew not to establish a dial-up connection if the light was red, and we stopped interrupting each others' downloads.

Yes, gateway / NAT software was available, but it was like $100!

Aric TenEyck
A: 

I was just a little boy (maybe 10-11 years old) when I wrote a full fledged utility for disk operations on the C64, in BASIC. It displayed a graphical startup screen (pixel graphics, lot of video memory tinkering) and then a lot of options for disk operations (format, dir, load something, delete) and more obscure stuff. I still consider that child a little genius, because the C64 internals were not really a walk in the park, and you know, at that time there was no internet, and the few available stuff was written in an obscure idiom called english.

Another my (later, circa 16 yo) creation: I wrote a BASIC program to plot the mandelbrot set. Again, lot of pixel based graphics (I wish to point out that the video ram to pixel mapping was awful, I still remember it, so I had to study it very well). I went halfway through the fractal when, after 36 hours, a power loss put a halt to my experiment. It looked cool though.

Stefano Borini
A: 

I wrote http://deweymusic.org/ over my summer break last year. I think it's really the first program I've written that I've been proud of for longer than a week.

Last night I found out that it was listed as one of the top five best legal MP3 download sites by a website in Germany. Right up there with Last.fm and Jamendo!

Dean Putney
+3  A: 

Nothing yet.

Anzurio
Sad, but true...
RCIX
+2  A: 

I wrote the following formula in Excel. This was when I didn't have any formal experience/training in any programming

=IF(NOT(ISBLANK(E4)),CONCATENATE(PROPER(VLOOKUP(E4,$basic.$A$1:$Z$101,1)),"  ",PROPER(HLOOKUP(F4,$basic.$A$1:$Z$101,1)),"  ",PROPER(HLOOKUP(F4,$basic.$A$1:$Z$101,2))),IF(ISBLANK(B4)," ",CONCATENATE(PROPER(VLOOKUP(LEFT(B4,SEARCH(".",B4,1)-1),$code.$A$1:$Z$101,2,$C$3)),"  ",PROPER(HLOOKUP(RIGHT(B4,SEARCH(".",B4,1)-1),$code.$A$1:$Z$101,2,$D$3)),"  ",PROPER(HLOOKUP(RIGHT(B4,SEARCH(".",B4,1)-1),$code.$A$1:$Z$101,3,$D$3)))))

=IF(NOT(ISBLANK(E4)),ADDRESS((MATCH(E4,$rt.$A$1:$A$101,0)),MATCH(F4,$rt.$A$1:$Z$1,1),1,1,$B$3),IF(B4<>0,(ADDRESS((MATCH(LEFT(B4,SEARCH(".",B4,1)-1),$code.$A$1:$A$101,0))-1,MATCH(RIGHT(B4,SEARCH(".",B4,1)-1),$code.$A$1:$Z$1,0)-1,1,1,$B$3)),0))

Oh, yea, I wrote a series of such loooong excel formulae for various purposes. Some of those can be found in this application: Bizentass

Adding a few more from my long time ago excel adventures:

=IF(ISNUMBER($latest1.G14),IF($latest1.G14=0,IF($latest2.G14=0,IF(OR($latest1.F14=0,$latest1.G12=0),"","    --"),G714),IF($latest2.G14=0,G514,MIN(G514,G714))),$latest1.G14)

=IF(AND(($latest1.$A25=0),($latest1.E25=0),($latest1.E$1=0)),"",IF(AND(ISNUMBER($latest1.E25),$latest1.E25<>0),IF($rtprofit.F26="ns","      __",IF(ISNUMBER($rtprofit.F26),ROUNDUP($cost.E25*(1+$rtprofit.F26),$story.$H$20),"profit ?")),IF(NOT(OR(($latest1.$A25=0),($latest1.E$1=0))),"--",$latest1.E25)))

=(((B9-B10-B11)*B4*(1+B5))+B12+B14+((E3-D3)*B7)+((E4-D4)*B8))/B6
Lakshman Prasad
PS: I copied these formula opening them from OOO, so there may be formatting variation. Original Excel formulas are still available in linked Excel file.
Lakshman Prasad
A: 

A DOS graphing application made in QBASIC that would also give you roots of square functions, as well as some other characteristics.

Lost the sourcecode (I guess thankfuly), but I remember it was about 5000 lines and overabused GOTO:.

voyager
A: 

The earliest program I can remember being proud of was a GW-BASIC "game" of sorts. Move an ASCII smiley around with WASD and manouvre it onto the non-filled ASCII smiley. This was like, aaaaages ago, heh.

No wonder I liked things like ZZT and Megazeux so much.

Kawa
A: 

I wrote a PHP web app with a MySQL back end for managing a bunch of Anita Blake: Vampire Hunter fan fiction. I had gone to my dad (a Linux guy who does all his programming in the form of bash scripts) with the problem that I had all these stories and I wanted people to be able to sort them based on title, genre, rating, etc., but I didn't want to have to maintain such orders myself in hard-coded HTML pages. The only programming-related thing I had done before was a lot of HTML and CSS, and my dad suggested I try PHP with MySQL. This was middle or high school for me. I was so tickled with being able to store all the story content in a database (I think with only 1 table), then use nifty SELECT queries to get it out and stick it in a page, based on some GET parameter a user passed.

Sarah Vessels
+1  A: 

I wrote a random 3D maze generator on a Ti-83's built in programming editor while on a 24-hour bus ride across the country.

The program was capable of generating 2D and 3D mazes, however in actuality it was capable of doing any number of "dimensions" however anything past 4D was pretty much meaningless to most people (i understand it as different sets of sets of "worlds" (no not a typo), but it gets messy after that).

Unfortunately the largest 3D maze the calculator could generate was a 8 x 8 x 8 cube due to memory constraints on the calculator, it also takes a whole 45 mins to generate. Needless to say, i was lucky that i had brought along a few extra batteries for the trip!

Looking back at the code i wrote, i have absolutely no idea how it works. It's a tangled mess of goto's and loops and if statements. To make matters worse, in order to speed up the Ti-83's processing, i removed all the white space in between everything...now its just a giant one line piece of code.

On a side note, none of my friends have ever solved a full 8 x 8 x 8 3D maze yet...

Faken
+17  A: 

Tetris, because at that time I wanted to become a game programmer.

After that I couldn't stop my Tetris obsession, so I added a simple autoplay feature. I still wasn't satisfied so I implemented an autoplay AI that thinks up to 4 blocks ahead. At that point it became sort of a hobby start a Tetris game, mess it up beyond repair, and then let my AI take over, and watch it break down the 'wall' using the craziest combinations I've ever seen. Man I witnessed the most awesome Tetris games ever, played by my own program :D

Nowadays, when I want to learn a new programming language, I tend to use Tetris as a first project, feeling slightly guilty for not having overcome the obsession with this game..

Update
For those interested: sources and binaries.

StackedCrooked
Is it possible to have a looksie at that autoplay algorithm? I might spend the weekend playing with PyGames (or whatever the python drawing module is) and recreate your tetris game :D
Dominic Bou-Samra
It was written in Java in early 2000's and backed up on a CD-R in some dusty place somewhere in in my house :)However, I wrote an similar (and better) algorithm in C++ for an online puzzle contest. Check it out here: http://code.google.com/p/tetris-challenge/
StackedCrooked
Thanks mate! Much appreciated
Dominic Bou-Samra
+2  A: 

It was a little before its time. :)

using System;
using System.Learning;

namespace Skynet
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Shall we play a game?");
            Console.ReadLine();
        }
    }
}
BigBlondeViking
A: 

An AOL "proggie" with a boatload of features - custom graphics, fonts. You could kick users, flood chats, fade text, mail bomb, and all sorts of cool things. I was 13 at the time, I think.

...or were you looking for software with less malevolent uses?

firebird84
A: 

I wrote a defragger for my TI-83+ during high school math class. Looks like I never uploaded it anywhere so I can't post a link.

Scott
A: 

My Casio calculator came with two games you could copy the code of in BASIC: Golf and Gunmen. After copying them I invented a third game, Target, in which a target kept moving and upon stopping it you had to say in which position it was. Rather stupid, but it worked and I was proud, especially because it was as addictive as the other two, as I found out when I showed it to my brother and sister. It was great to create something that other people actually used :)

Daniel Daranas
+1  A: 

I've only been coding for about 5 years. I was originally hired to do content updates inside of a XML-based CMS. I was thrown into the coding position because our content management system took a fatal dump. I used ColdFusion simply because our host at the time could support it (we were on Windows), and it didn't seem like there was too steep of a learning curve.

I was able to code a functional CMS within two weeks that was extensible and has been working, with hundreds of modifications, since then. The code for the CMS isn't the best, but I'm proud of it for being reliable over the years.

Unfortunately, this is the last year for it. We are redesigning the CMS with a different language and all of the current functionality will be considered in the redesign. Needless to say, it's done it's job.

JasonBartholme
+3  A: 

Back in 1981 I wrote a version of Defender for the Commodore PET (it was called Paladin). At the time, since I just got my PET, I didn't have a disk drive yet only a cassette tape recorder/player.

There was an 6502 assembler for the PET but it required a disk drive so couldn't use it. :-(

So I programmed my game in 6502 using the build-in hex editor, it was about 13k of programming goodness and was pretty cool for it's time. That was my first video game and I've been doing games ever since.

Back then, if you crashed the computer you lost all your changes so I had to make sure I saved my changes often.

You kids don't know how easy you've got it with all these fancy compilers / debuggers and IDEs.

Now get off my lawn!

KPexEA
+1 for hex hacking
Earlz
A: 

Most proudest piece of software ever written was back in the day on an old Basic Amstrad at the dawn of the X86. I thought it was the coolest looking thing ever and so i wrote a DOS emulator on the amstrad that would load applications and run programs and even axcept every DOS command i knew at the time (which was nice because back then software came with manuals and was easy to learn).

Call me young and silly but being 10 and having to play games by coding them yourself out of a book it seemed like the next logical step.

A: 

A 180 bytes full working CMS with theming system. In PHP.

Time Machine
A: 

Like about a million other people; I wrote a scheme implementation in college. I was very proud of the fact that programs that other people wrote (a set of reference code from the professor) all worked. I had never written a program that could be programmed before.

I still have that code, but its in K&R and probably embarrassingly bad.

sal
A: 

A program for finding duplicate files in Python.

mauro.dec
A: 

My first operating system. I'd never taken on something so big, and watching it run programs and handle networking was an awesome experience. Things have only gotten better from there.

Matthew Iselin
+1  A: 

About 30 years ago, I wrote a lot of programs on my ZX-81 and then ZX Spectrum 48K all which I proudly tried to show any and everyone who would give me the time of day. I do not remember any of them.

The earliest "program" I wrote and was proud of and remember was a two market simulation written using the Lotus Symphony (I cannot believe this: It still exists!!!) macro language which was a huge step up from the Lotus 1-2-3 macro language. It asked for demand and supply parameters for the two markets and estimated new equilibrium price and output levels in both markets after a demand or supply shock.

I wish I had a 51/4 drive some place that could read those old floppies.

Sinan Ünür
A: 

I managed to create a basic target-shooting game on an old Casio Scientific Calculator when I was about 15. You have three points, and you could use any of the three to either move your 'ship' on the graphival screen, fire at the other 'ship', or focus your aim better. Then the enemy ship had the same options (all using the random number function). It worked perfectly unless a game went on for too long, in which case it would produce a Nesting Error due to the calculator's limits on programs calling other programs and a maximum of 10 Gotos in a program. And 4k of memory, of course. Got more enjoyment out of writing the thing than playing it, needless to say.

CodeByMoonlight
+1  A: 

I'm completely addicted to the feeling of writing something I'm really proud of. It's why I got into programming. Some examples:

  1. My very first program, written in HyperCard on System 6. I was trying to program a video game, but never got past the opening sequence, which was an animation of rain falling. I was still very proud of this.
  2. My first non-trivial C program. It was a bookkeeping program and I had an awful time with keeping monetary amounts typed correctly as doubles.
  3. My first LR parser. Parsers are hard!
Imagist
The sense of accomplishment is what I live for in programming.
Earlz
A: 

The program am I most proud of making is FastFlick. I've worked on it for about 5 days but to me it felt like weeks!

When it finally was finished I was kind of bummed out it didn't recieve much attention but looking back on it I can sort of see why.

Anyways, if you want to check it out here's the link: Link

Sergio Tapia
A: 

Mine was the first Asp.Net website I created for myself. Looking back it was horrible: server-side includes instead of Master Pages, all embedded SQL with no stored procedures, most of the code in the code-behind instead of creating user controls.

Wow ... maybe I'm not so proud of it after all.

Martin
A: 

Back in 1992, I was learning to program on a MUD. I came up with a random way for monsters to roam from room to room, so of course I made all my monsters roam. Silly, but what I'm most proud of, is that my code is still running to this day as the mud still exists, and still gets played by crazy Finns (www.bat.org).

ZacharyP
+2  A: 

For our final project in Assembly class my friends and I wrote Frogger. Two of us worked on creating a bitmap loader and two of us worked on the movement/collision detection. Once we were both finished, both halves integrated together quite smoothly (much better than any of us was expecting.)

Since it was a 1st semester class and due in December, we even threw together a reskinned winter version that featured snow instead of grass and Santa Clause in his sleigh + reindeer instead of cars. :)

Kwen
+1  A: 

A football pools prediction program in Basic on a BBC Micro Model B. I was about thirteen. I got 7 score draws in the first week. Shame I was too poor to actually enter a coupon.

Of course, only Brits of a certain age will understand a word of the above.

Wayne
I must be a Brit of a certain age (albeit expatriate) because this makes perfect sense.
pavium
IS IT STILL WORKING. CAN IT PREDICT 0-0 DRAWS BECAUSE I HAVE A FANTASY FOOTBALL TEAM THAT COULD USE THE HELP
Paul D. Waite
A: 

Actually, in my case it's not so much a specific program but discovering I had come up with something much like MCV without ever reading about it.

Of course it wasn't like sitting down, developing a concept and thinking of dividing my application into models, controllers and views. But rather a trial and error process that ultimately lead me to a very similar concept: I had so-called classes, which served much like models, my controllers were called modules and my views were in a folder called templates. I even had naming conventions much like RoR has, as I later discovered.

When I first found that I had pretty much come up with the idea behind MVC I felt (I guess like we all do every once in a while) like the best programmer in the whole world. Or at least second-best. Second to the guy coming up with MVC first ;)

Jörg
A: 

I guess it will be a AStar Game Solver (n-Puzzle).

Although now, i look at it and think, "What was i thinking?" :)

st0le
A: 

I was quite proud of the first program I wrote and designed from scratch: it was a program for graphing my astronomy homework. It was in FORTRAN, and took me several hours - a lot longer than simply drawing the points would have been! - but I felt so excited when it ran.

The parsers I wrote later pleased me, and I was especially pleased with an application that remained in use for well over 10 years. More recently, I was very proud of a test driven application. Here the pride was less at the wonderfulness of the code, and more because the test first design has meant that it's been very easy to implement features, which - so far - have been defect free.

In general, each program I've written that either used everything I knew, or simplified processes, or provided services that no one else did has made me very happy.

Liz Albin
A: 

Whenever I started programming, I was about 12 or 13. I was using a language called DakBasic.

I made a very basic media player(calling it mplayer as I had no idea of the existing mplayer out there already) and I was very proud of that day.

Well, one day me and my friend had to wake up really early but neither of us had a "good" alarm(a loud one) so I made a slight modification to my program to where it could be called batch style and made a scheduled task to run my program with a music file at 5am.

It was amazing cause it was like the first truly practical use of my programming skills..

Also, I was impressed when I made an 8086 emulator and then over a year later someone visited my project and ran some existing code in it and it just worked for them(after they built some devices to go along with the 8086)

Edit:

Oh yea I also wrote a very funny program for windows. It was a breeze to write(I think amounted to like 30 or 40 lines of significant code) Basically it would open your CD drive and popup a message box. When you clicked "Ok" it would pop up another one. It would tell a story with this message box. Also, I created a separate thread for opening the CD drive, so everytime you tried to close the CD drive it would just reopen.

I created 2 versions. One was called ending.exe and the other nonending.exe. One, whenever it got to the end of the story, it didn't recurse into itself(saying something like "And then he told me a story: ") and one did.

I had to take the never ending one down off of my website whenever I heard a lot of people complaining about how every CD drive in the library was open(at high school) and wouldn't close. I thought it was hilarious but I didn't want to be accused of writing a virus

Earlz
+1  A: 

Hacking Lemonade Stand on the Apple IIc... nothing like being a young geek with a list of keywords. MSDN is so much nicer then having to figure out the command syntax by tearing apart programs.

Matthew Whited
A: 

My first program in the workplace. I was straight out of college and had little experience. It was an intranet program that used ActiveX to connect to a check scanner to gather check data at 36 separate locations for a grocery chain. All that data had to be sent to a central location, and from there the data, including the check images, would be written to a file and sent to a bank for electronic deposit. It was a large undertaking that I had to design myself, and, while there were a few things that I'd do differently now because I have more experience, I'm very proud of the work I did.

Aaron
A: 

I made a Sokoban game with Turbo Pascal 7.0. It even had an editor so you could make your own levels. And for every level a highscore was saved (number of moves and time).

The graphics like boxes and walls I made in a self written image editor. Those were good times... :)

The_Fox
A: 

I wrote and Apple II game and gave it to friends. Couple of months later I saw a "similar" game being sold commercially for $20. It still had the back door cheats in it so I could win.

Mark Schultheiss
What was the name of the name?
Matthew Whited
A: 

I once made a picture of bowser in QBasic, but I'm sure I'll make something way better soon, since I'm using C++/SDL now :)

Cra2y
A: 

I am still to this day proud of an email parsing function I wrote in PHP. I was parsing emails in order to extract text and image attachments and realized that if the email had been forwarded the attachments could be nested within an additional multipart declaration. Not only that, but the MIME RFCs don't seem to specific any limit on the amount of nesting allowed.

A light bulb went off: this is what recursion is for! A few lines of code later and my code was parsing any email I threw at it. To this day I haven't seen any other recursive PHP code but my code worked well and I'm hardly a PHP know-it-all...

pr1001
A: 

The first program i was proud of was for a game programming competition. The theme was eggs. So i wrote a 3D game with the main character as an egg and you had to guide him around a maze to reach his egg girlfriend under a certain amount of time.

I was most proud of the game level creator which took a bitmap image of a 2D maze (for ease of designing and drawing) and converted it into 3D world maze! very cool!

I won the competition and was allowed by the developers to add any command to the language which was hosting the competition.

I choose to add 'switch/case', the language was DarkBasic and that was about 10 years ago.

Gary Willoughby
A: 

I'm a pretty young programmer that means I never wrote anything in assembler (although I learned how to write the very basics of assembler programs AND I really hated it) or something similar.

My first application I'm proud was a PHP website with "similar" functionality like FaceBook. You could register a account, login to your account, ask other people for friendship, send messages, create groups and edit your profile. It was my very first PHP website and at that time I loved it. I was so proud of it that I forgot all the goals we had to accomplish and so I didn't got a A for it.

I also have written some parts as PL/SQL functions for my Oracle Database.

But I still proud of my little "community" :)

OemerA
A: 

I thought "Hello World" was pretty cool the first time I wrote anything :)

Besides that, first one I was proud of was probably a program I wrote that used the random number generator in Java to randomly pick tea or coffee for me to make when I couldn't make up my mind. It was such a basic program, but I still use it from time to time and add little things to it. Wrote it just after starting my first programming class, when I really got into programming.

sp0rus
A: 

I wrote a tiny little AppleScript that let me tag tracks in iTunes.

It’s not clever, it’s horrifically written, but it still works today (4 or 5 years, and probably as many versions of iTunes, later), and I use it all the time.

Plus the buttons have swear words on them.

Paul D. Waite