Career: When did you know your Career Goals?
We've all heard the idea of trying to decide what we all want to be when we grow up into adults, but as adults, do we still reflect on that, or are we now all certain about what we want to be now that we're older? We all can't be astronauts, musicians, or even actors. However, we all still do need reasonable career aspirations.
My Career Goals as a Child
Growing up, believe it or not, but I wasn't always into computers. It wasn't until the age of 10 when I met a computer programmer by the name of Al Rayside. He was an ex-programmer turn social worker, and he took care of me, and raised me for several months of my life. This is when he introduced me to a programming language that shipped with MS-DOS 5.00, and that programming language was none other than QBASIC. This is where my real interest and passion for computers and programming began. At this point in my life, I wanted to grow up to become a computer programmer(now called software developers). I eventually got an Apple ][+ for my home, and shortly realized that a lot of the programs for it were all in the BASIC language. I then started going to the public library almost every week to tend one of their Apple // books. I learned a lot, and copied over a lot of example programs from these books. This is probably when my passion for technical reading started, as I read these books over and over. I had nobody there to teach me anything, Al Rayside moved on and I was living with a new proctor whom did not have a background in programmer, so I had to learn on my own. This is where my ambition for self-learning and my constant need for knowledge and learning came from in my life. I can still sit down for hours on end at my computer just reading historical documents on Wikipedia about past computers, or modern software documentation where I then later test my skills.
Eventually I was given a donated IBM PC 80286 with only 1MB of RAM, and a small 40MB hard disc! Everyone else's first introduction to the word PS2 most likely came from the Sony Playstation 2, or perhaps if you are a bit older, the PS/2 keyboard and mouse standard that came just before USB was introduced. My first encounter with the term PS2 came from this IBM PC, as it was an IBM PS/2 Model 60 I believe, it was nicked named Tallgrass because it was a very tall tower PC. This is when my computer programmed changed from just AppleSoft BASIC, back to QBASIC, but also to other interesting programming languages I'm sure nobody ever heard about, but I'll list them here for completion, let me know if you have heard or used any of these before.
- ASIC 5.00
- By far my favourite and most used on this list.
- Can general COM and EXE files, unlike QBASIC.
- Can call DOS Interrupts, so mouse support!
- Can link to OBJ files, so assembly routines and call them.
- Moonrock
- Oddly now on GitHub!
- Was quite powerful and compiled into x86 assembly code
- Very extendible
- Euphoria
- I downloaded, but don't think I used it very much
- This is the only one I barely remember actually using
I unfortunately do not have any of the programs I wrote back then, as those PCs are no longer with me. However, each of these languages taught me something different each, well except for Euphoria as I don't think I really ended up using it. With ASIC, doing DOS interrupts were now possible, and so I recall creating several mouse-enabled programs using it. With Moonrock, I was able to explore a bit of x86 assembly, as it compiled to assembly langauge. This is also where I learned about the DEBUG.EXE program, of which I was able to use to create very short .COM programs, such as a simple REBOOT.COM which I think a lot of nerds like myself made back then by reading some basic documentation in an MS-DOS book.
At the library, I didn't just check out books on the Apple // or QBASIC, but also checked out books on MS-DOS, Windows, and occasionally UNIX, as I was a bit curious about it on the bookshelf, but cannot recall much of what I actually understood back then.
A bit later in life, I met an I.T. guy named Digby, last name I think. I worked alongside with him at the foster agency where he was their local I.T. Guy. This is where I got some aspiration for also becoming an I.T. Guy myself, as his job looked like something I would enjoy in my life. Looking back, as I don't believe I was the best programmer, and since I no longer have those PCs, would it be safe to say that the foster care agency actually looked at what I was programming, and then decided that this direction in life might not work for me? Just speculation, but looking back, it does seem that perhaps later on they were introducing me to I.T., and trying to move me away from programming. It's an interesting thought, which could be true, as it does sound like something a foster agency might do. Anyways...
First post-secondary schooling
I do have some college, I attended South Winnipeg Technical Institute for a Windows 2000 Server course to actually become a I.T. Guy, and this seemed like the direction my life was going in. One of my peers in the course at one point during a break the bash shell, and talking about how much better this UNIX thing is compared to what he was learning there. I believe this was an older guy, so looking back, my assumptions here was that he used to be a UNIX Systems Admin and absolutely loved UNIX, and despised Windows, which is why he had such comments. However, these comments were very very suggestive to me, and shortly after doing some research at my local library again on UNIX, it captivated me! So, I'm 18 here, and I still didn't know how the world worked. This was 2001, and the world was moving to Windows, and leaving UNIX behind. Linux was barely there, and it wasn't a mainstream job at the time, so I had no idea that there wouldn't be any meaningful jobs in UNIX, or now Linux in several decades. I did the stupid thing and I dropped out of this course to learn UNIX, which to me was much more interesting than this fancy MMC user interface I was being taught in class. Most of my life by this point, I was using mostly command-line based systems, and absolutely loved typing. Using Windows was the opposite of how I was using a computer, and this is why I am guessing that UNIX captivated me so much, was because of it's fun advanced shell program that I haven't experienced before that.
A couple years later, I'd get back into programming through an evaluation copy of Visual Basic 6.0 that another foster parent was able to provide me. This lead me into going to college a second time, but I drop out the following day. I was going to take a Visual Basic course at the Red River College, however, after working an entire evening on my homework, and going a step beyond and polishing it so much and doing more than the homework asked. And yeah, before you ask, I am what a lot of people would call a teacher's pet, since High School, I always tried to impress my teachers, well, mostly my computer science teachers. Anyways, something happens on my PC, I still cannot exactly recall what, and I lose all of my homework, and as a result, instead of redoing it all, I gave up, the next day I dropped out of the course. In retrospect it does sound rather petty to drop out of a course for losing an amazing piece of work that I was going to hand in, but that's just how I was back then. I was willing to just drop out, rather than try to redo the homework a second time. Actually, this sort of applies to me now, for example, if I writing a long forum post for example, and my session expires and I lose my entire post, I just give up and no longer have the motivation to make the post anymore. It's sad, but unfortunately true. I absolutely late losing work I tried so hard to create, it's the most annoying feeling ever. Perhaps why I still can't get over losing everything I had just a few years ago, I literally don't want to rebuild my life from the ground up again, so I guess this aspect of me hasn't changed. Anyways...
All Grown Up: Career Goals
Now that I've been an adult for more than two decades, where am I, and where have I been in my career?
Well, my first job was working at a local call center, which was an okay entry level job. While working there, I was teaching myself Linux at home, and programming in PHP and JavaScript. I briefly checked out Python too via an early Zope server on Debian Woody, but never really dived that far into Python.
My next job was going up the career ladder with a Help Desk position taking calls for the Government of Manitoba and later TransAlta. I was later laid off from this position during the 2008 recession. This is when I actually began diving into Python, first with mod_python, and basic command-line programs.
At this point, my motivations and ambitions were with Python, it was around this time that I really began to focus on Python a lot, and shortly after I had a year contract working at Microsoft performing internal exchange server migrations. During these nights is when I began to learn Django, and still actually have all my very first Django framework sites as memories to me first learning it. I soon after started a new blog called Python Diary, which is now defunct.
This was the point in my life where becoming a computer programmer came back, as I was really interested in becoming a dedicated Python developer, this was before Python got popular, so I was early by a few years, but I knew a lot, and wrote a lot of really amazing Python programs. The upcoming release of Python 3 was very nerve racking to me, as it meant a lot of my current programs would all need to be upgraded to this newer version, and I had a lot of Python websites at the time, and didn't have the motivation to upgrade and test all of this, it was a lot. I eventually wrote a custom home automation system which was written in Python 2.7, and ran on a Pi. This code was going to be a huge pain to upgrade to Python 3, and so I kind of felt abandoned by the language I was once incredibly dedicated to. This lead me to search for other programming languages that don't suffer from backwards compatibility issues. Naturally this drew me back to the Pascal programming language, as I was very impressed that I could literally take pure Turbo Pascal source code, and it will just compile on modern FreePascal, to me that was incredible! I don't think many programming languages can tout such backwards compatibility, and so that is how Pascal won me over. I don't want to be stuck upgrading my source code every odd few years, I want a language that is resilient, and Pascal fits that bill perfectly, it has yet to let me down.
So, career-wise, where am I at? Well, I don't know if programming will work for me, but if I had a job in Delphi, I'm certain that it would actually be a life-time job, one which I'll always be needed, as the talent pool for Delphi developers I'm sure is very small. While I do not know Delphi exactly, I am using it's free variant FreePascal with Lazarus. There is a community edition of Delphi now available, but I do believe that the IDE is Windows only, despite it being able to actually compile binaries for almost every operating system, yes, even Android and iOS, it's really that incredible. However, I have heard that FreePascal/Lazarus syntax is very similar, so if I did land myself a Delphi development position, I'm sure I'd be able to see the differences and I'd be just fine. I am tempted to try the community edition in a Windows virtual machine perhaps, as it would be nice to see it.
One Career Goal I have is to seek long-term employment, I want a job I can rely will be there the next year. I want to feel like my skills are needed at whatever company I might be working at. At the moment it seems that DevOps is now a very common sought after position, and so the talent pool is now overflowing with applicants.
Positions that I do think would fit me, that aren't DevOps:
- Delphi/ObjectPascal developer
- Much smaller talent pool, but also much less companies
- Long-term job stability, due to the smaller talent pool
- Unfortunately, probably on Windows, but for programming in ObjectPascal, this is the only time when I'd actually be willing to do Windows. ObjectPascal just feels that special to me, that I can overlook this one thing.
- Linux Systems Administrator
- Either for future Desktop Linux, as setting up desktop Linux is amazing for me.
- Or through management of Linux servers.
- The talent pool is so-so with this one, at least for talent with a lot of experience.
- I have Linux talent from back in the mid-2000s, and still know how to manage SysV INIT style systems.
Those two there are I guess my career ambitions, where I'm at a fork in the road. I love Delphi and ObjectPascal, but could I handle an actual full-time development position in it? I don't have any professional experience in software development, so although this is a huge passion of mine, the likeihood of me having such a position do feel slim, unless a company is willing to give me a try, and teach me the parts of the process which I do not know. I can use git and svn perfectly fine, and use them myself for my own projects. I've worked as a DevOps, and as a result, worked with various software developers, and understand some of their workflow. I feel like I could adjust if I were given a chance to have such a position.
With a Linux Systems Administrator or similar position in Linux, my DevOps skillset compliment the server aspects of this position. However, with the direction in parts of the world, and how much Linux is getting more and more polished on the desktop each day. Soon, Linux will be in higher demand on the desktop, and so I'd really love a position where I'd be installing and configuring Linux desktops for an organization, or even better yet, working with them on a migration plan from Windows to Linux.
Of course if a DevOps position comes up, then I have little issue with staying on this career track either. At the moment, I am sort of unemployed, so beggars can't be choosers here.
One other interesting position that I think could be a lot of fun, would be to work in marketing and/or sales for Embarcadero, as I have a high passion for ObjectPascal and in effect, Delphi to be successful, that I'd work incredibly hard to push it in marketing and sales. I already do talk about it a lot, and tell a lot of people of how amazing this programming language is. This isn't the same Delphi our parents grew up with. Modern Delphi is so much more. I still recall watching a Delphi announcement trailer while working at PaySafe and feeling blown away by how powerful it was. This is what I think really sold me on ObjectPascal as a language, the backwards compatibility was cool, but what modern Delphi can do will just blow your mind.
Conclusion
I'll leave you with one final note. If you have passion for your job, you will do a much better job and excel.