A lot of people asked me recently when and how did i learn coding. To satisfy their appetite i decided to utilise my brand new Hashnode Devblog and write a story about it. So where should i begin? It was a dark and stormy night…
I was about 10 (in the mid-90s) when i first saw computers: an IBM 286 (or maybe it was just an XT) PC in school and a Commodore 64 at home. We had the C64 borrowed from a friend for a few weeks and besides playing on it i also messed around with little programs like
10 PRINT "Szia Gergo!"
20 GOTO 10
This was so much fun that i asked my mother to sign me up on the computers study group in school. It was presented by an awesome woman who worked at a local factory as a computer technician. We learned how DOS works, what is programming, and even wrote some small programs in QBasic. We also played a lot with Nibbles (AKA Snakes) and Gorillas , both written in and distributed together with Microsoft’s QBasic . BASIC was my primary language for a long time, even though i soon switched to QuickBasic, also by Microsoft, mostly because it wasn’t just a BASIC interpreter but also had a compiler so i could write a program, compile it, and give it to my friends on floppy disks. I wrote small games mostly using a terminal (ie. no graphical elements), and a really basic file manager.
As time flew by i went to high school. My choice was an electronics-focused school, one of the most well-known in the country back then. Since it was far from our home so at the age of 14 i moved into a specialised dorm where we had extra classes; i even had to go through an enrolment process where i had to showcase something i made. It could be nothing less than my great file manager! Or so i thought, as the teacher going through the code was a bit disappointed. He said the code is great, but it’s a shame i still write programs in BASIC; i should switch to the all-powerful Pascal! I didn’t heed his advice until i switched schools a few months later but then i learned it pretty quick using Borland’s Turbo Pascal. I wrote a lot of games, utilities, and silly programs in it, up to a point when my programs started to look like this:
program ThisIsSoGreat;
begin
asm
mov ax, 12
end;
end.
OK, it wasn’t this badass, but i used a lot of Assembly just for fun. It taught me how the processor itself works, how instructions are carried out, and so on. With Pascal, i even mastered binary file handling so much that i wrote some save game editors, for example for X-Com: Terror from the Deep. I switched to Delphi for a brief period of time, but what came up next was more interesting.
About this time (we’re still in the late 90s yet) i started working for my school. I helped in planning and building the computer network of our school. In the process i learned a lot about Linux, shell scripting, the awesome IRC (Internet Relay Chat) network, the Tcl language, and my all-time favourite language, C.
I found a lot of great minds on IRC. They helped me learn about computers and networks a lot. I will never forget how i learned about C pointers with the help of a fellow sysadmin. His introducing words were like “imagine a character somewhere out in the barrens”. With all this support it took me only a few months to get up to running speed with C when i found the GTK+ (renamed to just GTK recently) library. Unfortunately, i cannot find a link to GTK+ 1.2 documentation anymore, but you can download the whole library from here and access the documentation of the current one (version 3, but 4 is coming soon) here. It’s a toolkit for developing desktop applications, primarily for the GNOME Desktop (which barely existed back then). Meanwhile i also got lost in IRC related things like the eggdrop IRC bot which could be extended both using modules written in C or with Tcl scripts. I did both and finally combined my desktop app knowledge with all this eggrdop thing to create BotCommander, my very first open source software released publicly in 2003. I hardly think it was used by anyone but me and a friend, but i was even invited to a small TV channel to introduce it.
All this people and introductory events taught me to love computers and programming, and eventually led me to become a full-time programmer in 2005 (in my first job i worked as a Linux sysadmin, between 2001 and 2005). I often read how people look up to star coders, but my heroes are all my teachers and pretty much unknown mentors. Thanks, guys!