From Sales to Software Developer
Justin Zimmerman is a self-taught programmer who switched from sales to become a Software Developer. He chose to learn coding after 10 years in sales and this interview tells you how he did that. Justin goes over why he loves the coding framework Ruby on Rails, how he got his first work as a developer and his tips on learning to program without a CS degree.
Hey, so can you introduce yourself?
I’m Justin. I live in the United States, not too far from the Washington. D.C. area. I have been working in my current role as a Junior Rails Developer since July 2022.
Why did you learn to code?
I worked as a hearing aid specialist for 10 years and the industry was changing a lot with things like direct to consumer options and over the counter options. Soon I would have a product that everybody needed and no one wanted, except Apple, Sony, Samsung, could sell it cheaper and quicker. I had regretted not pursuing coding when I graduated high school and with the pandemic, a little extra free time, the timing seemed as good as any.
In addition, I certainly do like helping people and solving their problems. With coding though I am able to help others at a larger scale and solve more problems. Plus, I have always considered myself a creative person and with coding I get to create something cool everyday. Like an inventor but with 0s and 1s.
How did you learn coding?
I started with qbasic, html, and visual c++ in high school. One each year and by my senior year I was able to assist as a teachers assistant. This gave me general knowledge and a good foundation. My life took a detour out of school for well over a decade in sales before making my way back into learning to code.
I actually remembered you mentioning first the phrase “just in time” learning. I have since seen it in other places. The idea is you learn just what you need at the time to solve the current problem in front of you. This makes it easier to remember for the future, you have the most current best practice at solving that problem (sometimes), and you are able to build things faster.
That is where most of your learning will take place, building projects. Not reading another book or article, or watching a YouTube video but by putting those things into action. Coding along with the tutorial and then making your own changes beyond that.
I knew I would need to be extra motivated because I had a comfortable job and a very busy schedule. So I used my current skill set in sales and found clients who needed something created. I said yes, then I figured out how to do it with a tutorial or course.
Eg: If the client wanted the ability to upload a video and I couldn’t find that anywhere then I would take the tutorial on uploading a picture and then hack around with it till I got it to work. I would get stuck regularly and usually I could find my way out of it from Google, a good community, or a mentor.
Here are the steps I took for learning to code
1. Find a good community.
Ruby and Ruby on Rails is known for its great community. That has been my experience. Everyone has been super helpful. I’ve joined discords, chat groups, forums, etc…
2. Use a fun language - Ruby:
Ruby is easy to read for me and I feel easy to read for others. Meaning I could take any tech adverse family member, show them some ruby and they could probably discern what was going on.
3. Find a powerful framework - Ruby on Rails
Each framework and language looks to solve a problem or to be the language that does “X” better than others. Rails wants to be the One Person Framework. That appealed to me for several reasons.
I could go the business route with starting my own application or freelancing by creating full stack applications. I also liked that I could create full stack applications because then I could figure out which I liked more. Also even though rails has matured and there are less entry level positions there are a lot of mid and senior positions which pay well. I felt I had the most options combined with ease to learn by starting with Ruby and Rails.
4. Get a mentor.
You can find some help from a site like codementor.io. I would use some of the profits I was going to make and pay someone from that website. Since the cost can add up quickly I was sure to only use it when I had to, have everything I already tried typed up ahead of time so I can save some funds.
Eventually through Twitter I was able to come across Kaleb Lape @railsquest . He helps Rails developers fill in their gaps of knowledge. Great guy, super knowledgeable and helpful. He helped me work on the non-technical skills as well such as interviewing.
For general computer science I like the YouTube channel @fireship. Of course the ultimate answer is to build things. If you get stuck, ask good questions. Keep those answers handy so you don’t have to ask them again.
How did you get your first web development job?
My first project came from my circle of influence. My first paid job from a stranger came from networking, applying regularly and saying “I can do that!” My current role came from crafting my story, my tech journey and how I learned to code, and then reaching out to as many as possible and telling them that story. I knew eventually I would meet someone that story resonated with. I just needed to make sure my tech skills were ready for when that happened.
How has your life changed since learning to code?
I no longer have to commute an hour in traffic each way! That was the most stressful part of my life some weeks. I really enjoy being able to work from home. My lunch breaks are with my family. When I am finished work I am already ready to go into the next activity.
As for income, I made above average full time pay for a hearing aid specialist but only working part time. It was a unique situation and it allowed me to do a lot of volunteer work. I am able to continue down that path but with a raise :)
What does a typical day as a software developer look like for you?
I check in via Slack so everyone knows what I am working on. I also will mention when I am pausing, completing, or changing a task. I choose my tasks from a list that have been assigned from our project tracker/kanban board. I will continue to work on it till I bring it to completion. This often includes making changes to my code from pull request reviews.
I also get a chance to regular review others code which is super helpful to learning. To summarize: pick a task, ask questions, work on the task, ask more questions, finish the task, repeat. Don’t let the simplicity fool you. It’s a lot of fun! Each task is a new puzzle and its enjoyable seeing it come together
What are your career goals for the future?
I want to continue to make things I like. I have created board games, physical goods like watches, and now software. You can follow my journey at createeveryday.dev
I hope to either continue to take on freelance projects to help others to create something, or level up my skills and secure a role as a Senior Developer who gets to mentor others. Likely it will be a combination.