Lessons From a Veteran: From Economics to Software Engineering With Andrew Bryant
This post is part of a series interviewing veteran developers, asking them questions about their journey to tech mastery and sharing the advice they have for those getting started.
Today we’re talking to Andrew Bryant. Andrew is a developer and data analyst living in Chile. He studied economics in school before pursuing a tech career. Andrew has worked for startups doing everything from natural language processing (NLP) to UI fixes. He also writes code that generates artwork.
Let’s hear what he has to say about the benefits of working at a startup and how having a non-software engineering background helped him when he started his career.
Basic logistics: Stack? How long have you been doing it?
I’ve been programming since 2015. I’m a full-stack developer. However, I do prefer the back-end side of things over the front end. I also really like analyzing and visualizing data.
Another unique aspect of my programming career is that I started it in Santiago, Chile. My first exposure to the tech industry was through the Santiago startup ecosystem.
What made you want to go into programming?
My first exposure to programming was using STATA in my college economics courses. At the time, I didn’t think much of it, other than something I needed to learn in order to complete assignments. Sadly, I don’t remember any STATA!
After I graduated, I got interested in finding ways to analyze data using tools other than spreadsheets. I found out about R and started learning how to use it. I had a lot of fun doing that, and at the end of 2016, I decided I wanted to give working as a programmer a shot. For the next six to seven months, I used books to learn Python and an online programming course. After that, I found a job at a startup and started my programming career.
What were you most worried about when you made the decision to pursue a programming career?
One thing I worried about was whether the online course I pursued would be worth its cost. When I investigated it, it had good reviews online, so I decided to try it. I was happy with my experience with it and what I learned. I wasn’t very concerned about finding a job—I was working teaching English as a foreign language at the time, so I was able to support myself.
Coming from a nontraditional background, what challenges did you face coming into programming? How did your background benefit you unexpectedly?
I was a bit oblivious to the challenges people from nontraditional backgrounds face when I started out. Maybe that was a good thing, though! I think a benefit of my background was I had more of a beginner’s mindset and was willing to learn new things. I also just wanted to work as a programmer, but I didn’t much care where. This allowed me to be more open to opportunities as they came up.
What surprised you most at your first programming job?
I don’t think there were any surprises. Just as I had expected, I got to learn more about programming while getting paid to do it!
What turned out exactly as you expected it to when you got your first job?
I learned a lot about how software works and got the chance to work on interesting problems. I could use the skills I had acquired in my studies.
What advice would you offer to people considering a career change to programming?
As a programmer, you’re helping solve business problems, which are ultimately about people. Don’t neglect soft skills, and get exposure to other areas—besides engineering, I mean—of the business you’re in. You’ll be a better programmer because you’ll understand the “why” behind the software you’re making. In addition, you’ll make yourself more valuable to others.
What are the benefits of working at a startup as opposed to corporate or Big Tech?
I’ve never worked in a corporate or Big Tech job. From what I’ve gathered, though, the benefits of startups as opposed to the others is that startups tend to have less structure in place, and you work on problems more central to the business.
Did you ever think that you’d made a huge mistake getting into this field?
No! On the contrary, I’m always glad that I did. Software is a central part of many of our lives. I enjoy learning about how it works and its principles by making it. Also, writing software improves your thinking and problem-solving abilities.
What mistakes did you make that you think others following in your footsteps could learn from?
Keep learning about languages, frameworks, etc., outside of your core tech stack. This will make you a better programmer and keep your skills up-to-date.
Keep records of what you’ve done and the results you’ve delivered. It’ll help you stand out in the job market.
Network with other programmers. It’s important to take time to get to know other people in the industry, instead of staying inside the bubble of your team, or even your company. You’ll learn how other people do things, which will help you do better at your job. You’ll also form relationships that will benefit you if/when you want to pursue other professional opportunities. And finally, it’s fun!
Who has influenced you the most so far in your programming journey?
The people I work or have worked with have been the biggest influence. I learn a lot from them, and they’ve made me a better programmer, professional, and person.
What programming reference materials can you not live without?
What’s something that no training/bootcamp/degree could have prepared you for?
Real-world coding is different
There’s a difference between coding an app for a personal or educational project and coding something that’s actually being used in the real world. In real-world software, there are more tools used to build, deploy, and monitor the software that you have to be familiar with. The code is more complex, and there’s more of it to understand.
There’s also a more formal process of submitting code to be included in the production app. When an app has people using it around the clock, bugs are more costly, so you have to do more to prevent them.
Furthermore, you have to pay more attention to the quality of your code, both in terms of what it does, and how it looks. Other people besides you will be reading it, so it’s more important to follow best practices so that you code is easily readable. Teamwork and communication become more important. Speaking of teamwork, you’ll also have to learn how to use a version-control system more deeply than you would coding on your own, as you’ll be integrating your work with that of others with it.
Coding is a small part of making software
I learned that actually coding the software is a tiny part of what goes into making it, and a lot has to go right for that to even happen. The thing with real-world software is that you or someone in the company needs to interact with the people who are using that software. It isn’t like the personal projects where you just think something up and make it. Selling the software and getting requirements from the people who use it is a huge part of executing a software project. There are many stakeholders who have different and, at times, conflicting requirements in a real-world software project. But you have to integrate all those requirements harmoniously.
I didn’t learn about the financial side of making software in bootcamps. In the real world, you also have to make sure enough money is coming into the company so that you can keep building the software! I don’t think you would learn this in bootcamps unless you went out of your way to do it, or in school unless you also study business.