I wanted to write for a long time about my past as a software developer. As mentioned in some other posts on this blog, I seriously started coding when I discovered and learned AutoHotkey, a very powerful scripting language. At the time, I did not know about Linux yet, I always had some modified version of Windows Professional Edition, most of the time I coded for myself. I still have a small archive of software tools from the time, even though I lost most of it over the years (thanks to failing hard drives).
Before I present you my software, I want to give a shout out to SittingDuck (wow, I still remember the nickname), a German developer, and his incredible software, “Der Launcher“.
This software was amazing at the time. It offered a flexible window that could have shortcuts of your favourite programs in it. You could move this window around, dock it to the screen borders and make it slide in and out. This was my favourite software at the time, as I like to have easy access to my programs and an icon-free desktop. I even contributed localization in Italian for it and got a software license as a gift from the developer. How cool was that?!
Also, this software was the starting point of my developer passion. At the time, I already had started playing around with programming, BlitzBasic was my first “language” to create small console games. But I wanted more, I wanted to create tools I could share with people, with friends.
The first software I released to the public was Dbof’s TMenu. TMenu, as in Tray Menu, was a small Windows application I programmed that transfered all my favourite programs to the tray bar. Here are some screenshots that can still be found online. Note my fancy watermark, created with PhotoFiltre, my second-favourite software of the past.
As you can see, I put a lot of work into this and had multiple version updates with increasing feature set. In the end, I had the shareware version which could be registered for a small price. I actually do not remember what the limitations were, but the most significant event was that, a week after it was released on several software websites, you could find CRACKED VERSIONs of it on some dubious websites. They did not really crack my super-secure XOR-based licensing system, they just found an older version of it that did not have the licensing stuff, so this was it.
I wish I could tell you here that I sold some copies, that it was a huge success and so on. Nope. I gifted a lot of copies to members of my favourite AutoHotkey forum, as they helped me a lot in learning to do it right. But my proudest moment was when it started getting downloads on Softpedia.
I am not sure how relevant Softpedia is today, but at the time it was a big repository of the most popular software out there. You could not miss it in the search results when you looked up software, and Dbof’s TMenu was accepted there. I visit the page every once in a while and rate it 5 stars. I even had a real reviewer from Softpedia review my software. I felt immensively cool about it and this brag post is proof of that. A short trip down the archive.org lane made me remember how silly my first website was. Also, I had an army of spammers in my comment sections.
Remember when I said that the cool software above was my starting point? Well, that was an understatement. The software was written in Delphi, my first “real” programming language. You may have heard of Pascal or TurboPascal, and Delphi was based on it. It compiled to native code, so fast execution and no interpreters like AutoHotkey. With Delphi 7 and a cracked version of their IDE, I started serious programming, with variable declarations before the “procedure” code, different variable types and so on. I remember it being a hard, but satisfying experience. I coded several small applications, like a copy-and-paste manager, a file encryption tool (with state-of-the-art XOR encryption), and… another clone of Der Launcher.
Years later, as I mastered AutoHotkey and was pretty decent in Delphi, I wanted to move on to more “serious” programming. At the time, asking “what is the best language to learn next” was a controversial topic in forums. Who am I kidding, it still is! I wondered if I could improve Autohotkey’s Interpreter (written in C++) by learning C++. That’s when I bought my first 900+ pages book, the C++ Primer 4th edition book, completely in English, which costed about 60 euros back then. This was an insane purchase, but I was so motivated to learn C++, so I saved my pocket money for about 6 months just for buying it.
I remember not having really access to a compiler, or an IDE. It was a few years before Visual Studio Express would be accessible to me, and if you have ventured yourself into this topics at the time, there were only a few “Borland” compilers out there that barely implemented modern C++ features. But I studied the book like my life depended on it. I took it with me on public transport, on my way to school, and just read every chapter multiple times until I understood all the words. I was pretty good in English, but I did not expect this level of proficiency and a whole new dictionary of words like “pointers”, “stack” and “arguments”.
Long story short, it took me several years with on and off learning and small programs to finally start my first big C++ project. The year is 2010 and the DbofX Engine was born. I bought some new computer parts and a strong graphics card and started developing 3D worlds with my own engine.
What I wanted to tell in this rather long post is that everyone starts small. I started with basic console programs, and progressively improved:
- “Enter the secret password to get a cool message”
- “Enter the secret password with up to 3 tries to get a cool message”
- “Enter the secret password and access your banking balance”
- “Modify this existing Space Invader game to include the faces of your friends”
- “Press <shortcut> to start Internet Explorer”
- “Show a dialog before you can unlock your pc”
- “Manage your shortcuts with a nice user interface”
- “Make any windows transparent!”
- “Create your own tray icon launcher!”
- “Create games with your own 3D game engine”
It takes some time and a lot of passion. It helps having no social life, at least until you get to the stage where you can impress people with what you do. If you start today, you have a big advantage that I did not have: You have online communities, strong support and documentation, crazy frameworks that do a lot of stuff for you, and more resources than you could ever read in a lifetime. You can start making money with it, especially if you have no morals. Most things are easier now than ever to start your hobby developer career.
Except for the C++ Primer book, it is still expensive.