Moving to Software Development
A (real) story about how I became a software developer
This is a (real) story
This might be a hard text to write because it is about me and my experience as a software developer/engineer/programmer and, contains details on how I approach my life.
These findings are my own but this piece might be interesting for people that actually want to switch jobs or careers. This is a hard and daunting decision to make, but I see a lot of people asking me how I did it, what do I feel about it, and especially if they should do it.
This text is not here to make a decision for you or push you in any direction, it's just my experience in making the change from a Bachelor in Science in Geography to Software Development, where I can say I'm a moderately successful software developer.
So - take it all with a grain of salt.
It is the year 2000.
I had access to a computer and the internet. At the time, the internet was only starting to blossom and a lot of cool things were happening online. IRC, multiplayer games over a modem, internet forums, MP3, and dial-up connections!
What a time to be alive 🚀!
Here in Brazil, dial-up connections were crazy expensive and they were a lot cheaper from midnight to 6 AM and on weekends - from 2 PM Saturday to Monday 6 AM.
At the time, I bought a crazy big and expensive Delphi book, in hopes of learning how to program and I did a few programs, but nothing fancy. Teenagers (at least me) are not very focused and I kept the book for years (maybe it worked by osmosis).
Those were my first interactions with programming.
College and GIS
As I grew older, it started that awkward time to select a major for college. In Brazil, this happens before you join college - so it's a complicated decision for someone who is in their late teens or early adulthood.
I still used a lot of internet and at the end of high school, I had two options. Two very different options: Law or Geography.
I chose Law because I imagined I would be rich lawyering things up and chose Geography because I liked it. I did not get into Law School - which was very good. But it did get into Geography.
While I was doing my Bachelor's Degree I had high hopes of learning all about maps. I really really like maps, atlases, and the visual representation of space they provide. Some friends helped me getting into GIS (Geographic Information Systems) and I did.
During this time, I was the map guy in the Geography Institute, helping out friends, peers and teachers make their own maps using specialized software. If you are interested - we used ArcView 3.1, which I did not have a license, and then ArcGIS 9.1.
This was a particularly interesting time, because GIS is basically a collection of tables, with different data, data types and, maps are basically database views represented as maps, styles, queries, etc.
I learned a lot about data, data modeling, and databases. PostGIS 1.5 was just around the corner and the first version of popular open-source GIS software was being released (QGIS, gvSIG, OpenLayers, etc). SQL was a friend 🤗.
Almost at the end of my Bachelor's degree - I was able to get an internship with a very cool teacher of mine, working with traffic and transportation in a private company. At that place, I discovered that there was no easy way to see where traffic accidents had occurred.
So - armed with small knowledge of databases I decided that in my bachelor thesis I would create a small system to geocode traffic accidents, as they were hitting the database. So I chose something "easy":
C# and started to learn it, so I could create the ultimate system to collect traffic accidents. And I did create it (I'll make the source public someday).
College was over. And I got a job working for a mining company as a GIS analyst, using the software, instead of programming it.
The year was 2008.
My first software development job
After my first job as a GIS analyst, I worked in few other jobs as a GIS analyst. Especially in the mining industry. I had to travel to remote places and help geologists collect, organize and store data and create maps for them to go out on the field.
I hated it. Not because of the remote settings or because of the geologists, but because it was something that offered no challenges. Whenever we had ideas on improving data storage, changing to something more connected, we were vetoed out because people wanted to see their maps in print. In very large prints.
My excitement with the field waned. During those times I was still studying programming, databases, etc, dreaming of a day where I could change an entire industry with my simple knowledge of databases and rudimentary OOP. But I kept learning, studying, and actually reading books.
At my last GIS analyst position - I was living in São Paulo at the time, I was pretty bummed out and out of curiosity applied to a job at a very big company to create software for keeping track of environmental licenses.
It was the perfect fit - if you remember I'm a geographer - I know about environment stuff. I got an interview and I was super transparent with the hiring manager.
I'm new at this. You guys are professionals. I might not be able to program from day one. I'm a geographer, I only created scripts and small automation.
I have huge respect for that manager because he believed in me and said that they could teach me whatever I needed. They wanted me because of my knowledge of Geography. He made some Geography related questions and hired me.
So I got the job and stayed at the company for almost two years. I never was a GIS analyst again. When I switched jobs, I followed another manager I became friends with and had a blast developing software for city halls in remote locations (again).
The first position was very important. I understood that all my studying paid off and I knew stuff. Some people even listened to me. I had a lot of fun, learning to be a professional and discovering a bit of the world.
The year was 2010.
From that first job and all the others that followed, one thing remained constant in my life: studying was second nature to me. Being an outsider in the field made me have a weird fear of judgment, so I would study and research best practices after hours, I would refactor my code to adhere to standards, implement unit testing when no one was using it, etc. I was committed.
This difference is what made me push through my studies and keep learning. After I got more experienced, it was not fear that made me keep going, but rather tips and knowledge sharing from peers and bosses. I was able to collaborate in these technical discussions!
After a while, I was sharing their tips with others and learning to teach my peers.
If there is a single reason for me to be a reasonably successful developer today is that I was interested in software development and I studied and practiced my ass off. I read tutorials, I wrote tutorials (I had a few blogs before this one - all gone forever), I asked questions in Stack Overflow, I bought magazines about software development (🤦♂️ we had magazines back then), books, etc.
Not only I was dedicated, but a lot of people helped me in my career over the years. The teacher that gave me the first internship, my first managers, a lot of friends who I've helped and helped me hack ArcGIS, other hiring managers, peers, and colleagues that challenged my way of thinking and shaped up the professional I am today.
So, should I change careers?
The question that some people have been asking me lately. Well, the first thing you should ask yourself is: do you like to learn?
If the answer is no - software development is not for you. If you like to tinker with things, understanding the why's, and learn, software development might be a career for you.
With the rise of boot camps, a tremendous amount of free and quality content online and the software development market exploding, your journey might be a bit easier than mine, but keep in mind that only you can challenge yourself outside of your comfort zone and expose yourself to something new. Don't fall for magic formulas and if you are just considering it for the money, you will fail (or you will not be happy).
Be honest with you and bear in mind that software development is hard and will require dedication. If you put in the time and the effort, you will succeed. It's hard at first, but it does get a lot easier with time.
So, is software development for you? I don't know. Only you can answer that question.
If you need help deciding, talk to friends in the area. Shoot me a message. Ask on Twitter. I'm sure that there is plenty of cool people on the internet willing to mentor new professionals - myself included.