As programmers, what was your first personal (not professional), serious, programming project? In which language was it written? Did it came to an end?
Made it community wiki after advice.
As programmers, what was your first personal (not professional), serious, programming project? In which language was it written? Did it came to an end?
Made it community wiki after advice.
Simple database system for my father's survey firm. Man I wish I could have used a SQL db engine at that time. I hand wrote the database engine in Turbo Pascal.
My first real project was serious, not really professional, but I did get paid (a little.) I was a member of a single's event club in Dallas. They were franchised, and the franchiser picked up and disappeared. All the clubs around the country were running a Lotus Notes database and the IT shop that set it up through the franchiser threatened them all with shutdown unless they paid big maintenance fees. I was working as a support rep for a software company at the time. Grabbed a big tome on MS Access, cracked open the database and imported the data. The new database tracked events, members, member signups to events, and charged the members for events by posting the charges out to PCAuthorize.
Wrote the tasking software for the university radio telescope (you know, controlling the azimuth etc.. and doing the maths between coordinate systems)
Written (terribly) in VC6, and I've felt guilty about it ever since.
Several years back, I decided that I wanted to write a chess game that could play against me. (I hesitate to use the term "AI", as what I ended up crafting was pretty darn dumb--nowhere near intelligent :)) At that point, I had been writing everything in Visual Basic, so this project wasn't an exception.
I worked on this game for the better part of a summer, and ended up finishing... well, something. The game played without crashing and would play against me, but would generally never beat me. (And no, I'm not a very good chess player.)
I'm probably proudest that I independently came up with something like minimax before I properly learned about it, and mainly just that the darned thing worked. It wasn't really ever good enough to make me feel comfortable sharing it with anyone else, but I had a lot of fun. It also forced me to realize the pain that comes with poor coding style and spaghetti code. (I hadn't gotten the hang of writing "good code" by then.)
My first "real" project was a program I put together to track my comic books and their values. It had all the pertinent fields (title, publisher, purchase price) in addition to things like comic book cover image and current price (so I could track the prices). I first wrote it in QuickBASIC, then rewrote it in Access 1.0, and finally I completely re-wrote it again in VB 3.0. It was a pretty large app by the time I was done with charts and graphs and kinds of stuff. I believe I started that when I was about 16. Concurrent with that program was a version of Monopoly in QuickBASIC so that my friends and I had something to do during our double period of programming in high school.
Before that, I had a little project I worked on half-assed for my Dad. It was in QuickBASIC. I stored the data in binary random access files and discovered the concept of indexes (meaning, before I had read about it in some book somewhere, I created indexes into the data and sorted the indexes instead of the actual data saving LOADS of I/O; I HAD been resorting the entire data file beforehand and the associated slowness was unbearable so I "invented" indexes to solve the problem). For this project I think I was like 15. This project never got beyond a simple data-entry screen and some display screens, so I don't call it a complete project like the comic book thing, above.
I don't know that I've done any serious programming projects for my own benefit. I've written a lot of utilities for other people and usually it'll be in whatever language they would have a chance of maintaining themselves. I'm not really one for maintaining my projects and to if I'm completely honest with myself, I don't like people calling me to ask me "can I add this bit" or "I need a change, how do I do it" or worse "can you make this change".
So consequently I tend to write code for these applications in a manner that I can see a minimal amount of support calls... i.e. if the person that'll be using the utility doesn't understand much more than how to run dos commands, then I'll write a console app that accepts switches, if the most complex code they've ever written is VBScript, then I'll code it either in VBScript or very simple VB.NET. If they're quite a competent programmer that understands C# but just didn't have time to do it themelves, then I'll code in C#.
Most of my own stuff is minor and mostly prototypes of things I will use in larger projects either currently or at some later point - I write most of these in VB.NET as my background was mostly in VBA/VB before I jumped to .NET.
I wish I had time for more serious projects on my own time because I've got some cool ideas I'd like to develop for, but between being self employed and spending time with my wife and new baby daughter, there just isn't that kind of time any more.
Serious? Probably the user setup and billing system for the little ISP I was running in the nineties.
(edit didn't see personal) Easily that would be the only "serious" personal project I've ever really worked on - PHYSLE. It is a 2d game/physics engine exposed as Lua. There are currently working versions written in obj-c (for the iPhone), Blitzmax, for mac and windows and a half-built version written entirely in ansi-c (except for windowing/UI). I've written three games using variations of it but it is still actively being developed (mainly to increase portability for embedded systems).
a multiuser Monopoly game, on a DG Nova-2 minicomputer, written in DGBASIC
it crashed the system on the first test run because I forgot to sleep in between poll attempts on the shared movement file, and the sysop banned it
The first serious app I wrote (outside of university) was a system for displaying 3D isometric sprites using voxels... It was written in a combination of Borland Pascal and assembly, and used the 320x240 "ModeX" trick discovered by Michael Abrash...
It was actually pretty cutting edge for the time, and would have made for a great game. Unfortunately, I also wasn't very good at the 'grand view' of architecture back then, so nothing really came of it (although it did get me through my first job interview).
(Note: This was before the days of hardware 3D... and I had to walk to work uphill in the snow, both ways.)
In University, I wrote two fairly complex systems (the first in QB was to analyse X-Ray diffraction patterns of muscle tissue in an effort to reconstruct an image the tissue's molecular structure and the second in VB3 was to analyse satellite imagery in an attempt to vectorize road routes automatically).
Serious? I dont think I've ever done a serious personal project in my life ;)
My first bigg'un was a perl script to analyze my aim logs and create a statistics page of who i talked to most, said certain words to, and create ranking pages.
It was fun and my friends began to compete for top spots.
Maybe my only semiserious application was a small bug tracker in a small PHP framework made by myself. The bug tracker was named BugStard and actually did arrive to an end, but hadn't any special feature. It could handle multiple project, multiple project releases, user roles could be added by the admin as well as access rights. Every project could have a sort of blog and so on. I've presented it as a project for a server-side web development course and databases course, and I've been awarded with a good mark because they tried to SQL-inject it and they failed :)
My first large "professional" job that was distributed to several hundred clients was PPC Pro around 2001. Doesn't exist anymore, but it was a fun ride while it lasted, until the search engines changed their models. First written in VB5, then updated to VB6, then went to C#. Seems like such a long time ago now ...
In 1983 I started writing a BBS program for the Commodore 64. I was still in highschool. Why? Because there wasn't one for the C64 that didn't require those very expensive IEEE double floppy drives for the Pet computer. It was the first to run on a single floppy. It was a big deal back then since they cost about $600 a pop. Also, I really, really wanted to run a BBS.
It was written in Basic, until it ran our of memory, at which time I had to learn 6502 assembler (Thank you Jim Butterfield and David Williams) and re-write chunks of it to both free up memory and to make if capable of keeping up with anything faster than a 300 baud modem.
Before you knew it, every kid was running a BBS on their parents' phone line, "only call between 9pm and 7am please". There were hundreds and hundreds of BBSes running the software a few years later.
I learned a lot about programming techniques in order to make the program small, fast and good enough to compete with others in the marketplace. It was a learning experience that has lasted a lifetime.
When I was 12 years old the school where my mother was a teacher in had their systems upgraded and from here on all grades were submitted using these forms which are scanned by a specialized scanner. To fill out the grades she had to black out circles with the right numbers much like this form. I was a huge hassle.
I wrote a system that allowed her to input the grades in a nice GUI and then to print out as black circles on the form. It was all written in QBasic, including the GUI which was drawn on a 50x80 textual screen.
Those were good times.
It was in basic (qbasic on DOS) and it was a Cellular Automate and displayed the results onscreen similar to the following: Later I have rewritten this program in various languages including Maple (symbolic mathematical language) and LabVIEW.
Ton
I was hired as the co-op student for the newly created Waterloo Maple software. Initially I was just porting Maple 4.2 to various UNIX platforms. I can't remember the total, but between my boss and I, the 4.2 code was running on more than 50 different OS variants (including VMS, UNIX and a few others).
I did a few little graphic drivers, but my first big work came when I was assigned to port Maple V onto Macintosh OS 6. It was barely an "operating system", and I found myself buried deep in the debugger many times trying to diagnose weird and tricky porting issues. Although I built a basic interface for testing, the real one was being handled by an outside Mac expert. In those days, it was C that called Pascal system calls; pretty ugly stuff.
As a side project I quickly wrote some 3D display code for the Silicon Graphics machines, using my very recent graphics programming course background (we were making software robots in C). It just fed Maple structures into OpenGL, and performed rotations and translations based on mouse movement. Simple, but effective.
The best part of the job was getting complete access to most of the other software development labs in Waterloo, including the graphics lab. I was always getting changes to learn all sorts of mathematics, physics and software ideas from a huge range of students, and professors. I overdosed on as much as my little brain could handle, you don't often get chances like that ...
Paul.
Back in the mid '80s, I wanted one of those hardware "MIDI controllers" - a box with 8 sliders that could be programmed to supply slider data to MIDI control channels - volume, patch, etc. Unfortunately, I could not afford one.
So I decided to build one in software. By then I was programming happily in C, so that was the obvious language for me. Bought Petzold's "Programming Windows" book, and proceeded to create a GUI program called MIDIBars. It used the Windows API (Win 3.1 at the time), and did everything I had wanted - would control any MIDI control channel, had a little graphical keyboard to test the conrollers, etc.
You could run it on a laptop with a MIDI card and use it to contol synthesizers in real time (like while playing). It was great (for me).
Later I decided to make the program shareware ($25 US) and added a programmable configuration component (you got that when you payed the fee). Got paid for a few, from all over the world.
The cool thing is the program STILL WORKS on any flavor of windows. Last tested by friends on Vista, and tested by me on XP. The beauty of following the API and not "undocumented stuff". ;-)
Cheers,
-Richard
Writing Role Playing games for the Apple ][ and Atari ST in the 80s. The Apple ][ was plain jane BASIC, but started me on this life long journey.
When the Atari ST came around, I could code C/C++! In high school, went to the community college and took C/C++ lessons, and knew this is what I would do.
Working on tangible projects with goals, even if relatively simple to start, is a great way to go.
If by 'serious' you mean 'soaked up a lot of time and energy', my first serious project was a program written in PL/I to predict the outcomes of NFL football games. As raw data it used a lot of information published in the newspaper in 1973, such as total yards gained rushing and passing, and so on and so forth. I came up with all the heuristics myself.
Today of course we would use machine learning and probably get much better results, assuming you could squeeze data out of the NFL.
I had a lot of fun with it for about 6 years before trundling off to college. The card decks went into the attic and eventually my mother threw them out. Very sad.
My first "serious" project was a web based application that allowed employees to enter their time. Unfortunately, I had to integrate with an existing system, which was "upgraded" to sql. There were some definite quirks with that database
However, I haven't heard any complaints yet and they are still using it.
I start tons of "serious" projects, but never finish any of them. The first project I finished would probably be my iPhone webapp gulp! (http://www.isaacwaller.com/gulp!/). I wrote that only 1 year ago, and every program (almost every) since I've finished! So maybe, I can now actually finish projects!
My first serious project was during my college days. I had created a file search engine with indexing and stuff using VB.NET >> was never completed successfully.
But anywayz i still feel i need to finish it.:)
My first serious project was a traffic tracker for Mexico city.
It had real time information about the main avenues in the city ( around 60 ) and provided configurable "paging" information to the users so they could know while driving which streets where closed and so.
It was built on WebObjects from apple. About 10 yrs. ago
I guess it was too advanced for its time.
The information was provided by the city government but when the next gov took possession didn't want to re-sign the agreement and the project died.
I was working as a phone tech support person for Gateway. While I was on the phone, I'd install Personal Web Server on windows 98 and work on some forum software. It was written in ASP/VBScript and used Access as the database. I would email the code to myself every day, so that served as my source control (since we didn't have FTP access to anything).
By the time I left there, I had fully functional forums that you could register a new account, Have multiple subforums, and run multiple threaded conversations. It got me my first job professionally :-)
Well, when I was a kid I actually went to a programming camp where we cloned Pac-Man for the TI-994A. But that was pretty guided, so I don't think it counts.
I wrote a Infocom-style game also for the TI-994A, and while I thought it was totally awesome when I actually ran out of memory, it also meant that the game went unfinished, so I don't think that counts either.
I pretty much wrote the word-processor that I composed my high school senior paper on. It was terribly lame, but effective.
I left programming for a long tim in college, but when I came back, it started my career. I took a class on Macromedia Director. Programming it, not just making cartoons.
So my first real "project" - planned, budgeted, using actual graphic assets produced by a professional was a CD demo for a Dallas rock band (written in Lingo, using mp3 audio compression before anyone had ever heard of mp3... delivered on a 3.5 inch floppy disk). It was great, and distributed in record stores throughout the city. That quickly led to another, and another, and before long at all, an end to my career as a stock broker.
My current job is still a direct descendant to those CD-ROM demos.