I was born in Latvia in former USSR. The first time I saw a computer I was maybe 12 years old. The computer loaded programs from a usual cassette recorder, and it was funny to turn the volume up and listen to the digital noises while the program was being loaded. We had a class with a bunch of Elektronika BK computers at school.
There was also a central computer with a diskette drive, but pupil were not allowed to access it. In first lessons the teacher loaded some games into the central computer and we had to execute some commands to "log in" from our consoles and then we could launch the game from the central computer.
http://en.wikipedia.org/wiki/Elektronika_BK
and this was the central "server" with "consoles":
http://savok.name/uploads/komp/5.jpg
But I soon got tired from playing games (actually I was not a very good player, my reaction sucks) and wanted more, I wanted to make computers to do something for me. Some months later the teacher finally showed us what the BASIC is (yes, USSR engineers had developed a clone of MS BASIC interpreter). So we did some basic stuff on BASIC (pun intended
). After lessons I kept trying out what BASIC can do for me. When I was at home, I put on a sheet of paper my very first algorithm which draw some kind of an eagle. I have no idea, why it was eagle, I just thought it would look cool on the screen. And I guess, it did, even if it was just black and white
After that my interest for programming vanished, especially because there were no books and tutorials about how to program something cool. Also the computer classes for us in elementary school were just for one year and thats it.
Then came the high school. And finally my country, Latvia, got free from USSR and we got our first IBM PCs in school, yay
. Those were Intel 386s and a couple of 486 machines with Windows 3.11. I had a glimpse of Windows 95 in the year when I graduated. I got a russian book on programming Turbo Pascal. As we had little time to access the computers and programming was not planned in the educational course, I had to do most of programming at home on a sheet of paper and enter the code at school, hopefully to launch it in the same evening. Not much time for debugging.
My very first program was some kind of a GUI, just some clickable buttons with configurable colors and labels. I had no idea about OOP yet, so the code was pretty messy, but the buttons worked, and the teacher and other classmates were curious how did I do that stuff. One year I represented my school in a programming contest for my region and I got the 2nd place in the region. But that was a total failure for me because I felt so miserable with those contest exercises - mostly something abstractly mathematical, almost no creativity at all. That kind of tasks made me think that programming is not for me because most of the world will demand from me only solutions to some mathematical problems.
The other problem was that I had a severe vision problems since birth, so one more factor against programming: "Hey, do you want to become completely blind?" Although the computer was really great way for me because I could enlarge the fonts as I need .... anyways, I went to study economics in the university. Oh, man, that was boring, that was not for me ... I needed programming badly, so I finally got a cheap Pentium I and started looking into Pascal for Windows. But it seemed too awkward, so I turned away from Pascal completely and started to look into C++. I got Sams "Teach yourself Visual C++ in 21 days" and after more than 21 days I finally made my first MFC application which drew biorhythms and calculated the moonphase and day of birth. At the same year I finally got access to the Internet in a university library. I found an article on the Internet which told that there were a team of blind Japanese programmers who localized the Japanese version of JAWS. And I thought: What the hell, I have nothing to lose, it's obvious that I will never be a good economist.
So I made a switch and officially became a programmer. As a surprise I made it till the end, despite the fact that I saw almost nothing on the whitebard and power-point presentations, so I had to study much harder to keep along with the others. And I guess I did. My bachelor's work was a keyboard training program for visually impaired and blind people. It had an enlarged and vividly colored GUI, it supported keyboard layout for almost any Eurpoean language (oh, man, how I hate the messy Microsoft keyboard API with all those dead chars...), it supported integration with Microsoft SAPI compatible speech engines and it was the first that kind of product in my country. I did not got payed for my work, but I received a high mark and I know that this program is being used in rehab center for blind and visually impaired, so that is the best payment for me - to feel that I have done something useful.
Latvia is a small country and game dev industry is almost non-exitstent. We have no commercial 3D games at all, only Flash and browser games. So during the university and after that I could work only for a business programming company. I got a pretty good experience in C# and various Microsoft business-oriented technologies.
Then came the recent economical crisis, and that company went bankrupt. I and my former collegues made our own small company and now we earn for living with some web sites and browser games. Some of us spend more time searching new clients than doing actual programming. But that's the way it is these days. I do not want to leave friends and family for a bigger salary in some other country (although I had some proposals already).
So, the final question: what am I doing in game dev forums? I guess, because it stops my brain from becoming stupid of those web sites and simple business apps I am doing for living. Game developing is the very bleeding edge of everything: technologies, algorithms, project management. I know, the chance that I'll get into a real 3D game dev team which makes money for living, is close to none, but it is so exciting to read game dev books, watch videos, and follow cool stuff on forums. And I have promised, when/if I have some free time, I'll try to do something with Ogre3D/enet/OpenAL/physx. I still have a dream to create an experimental collaborative virtual 3D world were other people could help me to create some minigames and do some "cool stuff".
So enough from me, this post seems to get out of control, I better should spend my time writing some code