To those of you working as devs: how did you end up in the specialty you're currently working in? Did you figure out what exactly you liked to do in your college years and have been doing it since? Or did you bounce around from job to job, different types of work, until you found something you liked? What did you dislike about your past work, and what do you like about your current work?
I finished high school in 1996 and I knew I wanted to work with computers. Back then (with barely any internet in Argentina) you had to walk every faculty to learn about the different careers (public education is free, you don't have to apply), so I ended choosing System Engineering and the first two years were fine until the last course of the second year where I met a professor who blew my mind with
formal grammar and
automata theory. One thing was reading about that in a leaflet and another was being taught
I realized there I should have studied computer science (at the School of Exact and Natural Science) but I decided to stick with engineering because most computer science graduates didn't have that many job opportunities (and I didn't want to throw away those two years). As the career advanced and it moved further away from computers and nearer to humans, though, I lost interest and eventually dropped out of it.
With some friends we had been making small systems (mostly stock control and lots of automation) in Visual Basic and C/C++, plus some custom data parsers/importers in
yacc and
bison. However when the dotcom bubble crashed and we had our
decennial riot job dropped sharply so I took a job as a tester in a healthcare-related company. Three months later they asked me if I could automatize drug database import given my background. I did, and they started giving me user interface jobs. Six months later they fired a back-end developer and I was asked to replace him as well as I knew C++. In 10 days I'll be 18 years there, now working with netcore and C# while still maintaining legacy stuff.
When you start a career in programming you can choose whether to jump from job to job yearly, which undoubtedly will give you
wide but shallow knowledge in technology (I'd call them advisors, nowadays they call themselves
architects ), or stick in a single place for a good number of years, which will give you
narrow but deep knowledge (I'd call them specialists). I also learned that companies in expansion prefer hiring advisors thinking they will cover many positions with a single person whereas companies in trouble resort to specialists. I consider myself a specialist in VB.NET/C#, net framework and unit testing,
design patterns and legacy system maintenance/migration (which I had been doing/using for over 10 years) but I'd certainly need help and a lot of googling for setting up
docker or configuring Azure or AWS, things that any architect or
devops can probably do in a blink. Without a degree I run the risk of obsolescence
which is why I read quite a lot (at least one programming/design book per month) which has opened my mind quite a lot. I also like learning languages (I'm rather proficient in Java, both desktop and Android, plus I use Python whenever I need to write utilities). I hope to eventually learn Haskell or some other
functional language.
By the way, I realized I hated dealing with end users (their excuses and mood swings) which is why I'm comfortable as a full-time employee (I can work from home all week long if I want regardless of pandemic, I can take any number of days off anytime for any reason, I can arrive and leave the office whenever I want as long as I finish my projects, plus salary is above industry level). However, if I were to leave my job now I'd probably become an independent consultant. In the meantime (and until the pandemic struck) I was trying to setup a free programming course sponsored by the local government.