Douglas worked in the restaurant business for 15 years before changing his career in his 30s. He overcame Attention Deficit Disorder and learned coding with the motto “work towards the goal little by little I just accomplish it”. Read on to learn more how he shifted his career into the tech industry.
Please introduce yourself
My name is Douglas King. I am a Senior Research Programmer at the Wharton School of the University of Pennsylvania. Wharton has 10 academic departments and our team, Research and Analytics, supports professors and PhD students with access to computing resources and programming help.
These researchers are experts in their fields, but with growing use of programming tools for analysis, data gathering and data transformation they need help finding the best solution.
Our work can be something as simple as fixing a broken line of code or implementing a particular survey flow for behavioral studies. We also consult with our researchers on longer term projects to collect data in novel study designs, big data Extract, Transform and Load jobs (ETL) for analysis, auditing data quality and management of our behavioral studies lab portal.
What was your background before learning to code?
I left college midway through an English degree to get a job in the restaurant business. I worked my way up from working at banquet facilities, to bartending at a jazz club then to being a waiter, sommelier and manager in a high end steakhouse. After 15 years of hospitality work I felt like I was not learning anything new, so I wanted a change.
What got you interested in coding and how did you learn to code?
I had learned to code on the Commodore 64 and early PCs as a kid. I was really into games and learned BASIC, x86 assembly language and C to make and modify games. I moved away from computers and programming until later in life.
While working in restaurants into my 30s, I thought I wanted something new and thought I would try programming again. I bought a few books from the store and started studying to make a phone app. Even though I quickly pivoted away from making a phone app, I realized how much I loved programming and thought about making a permanent change.
I scheduled two months off from the restaurant and outlined some clear goals for getting some basic experience with Python, Ruby, Java and Scala.
When I learn a new programming language, I like to use physical books so I can read when I am not at my computer. In addition to those, I paid for an online coding platform to learn Ruby. I started attending a variety of in person meetups for a few different languages in my home town of Philadelphia.
The meetups were a great opportunity to interact with professionals, learn about new technologies, eat free pizza and to find out about conferences and workshops. I really think they are a really important part of my success, though I never got a job directly from one, I learned great sources of information just by asking questions.
From one of the meetups I was able to get into a test driven development workshop that also taught pair programming. It was a great experience. From that workshop I learned about Scala and ended up taking a two day intensive workshop in that. Though it was a great experience, I haven’t used those skills since.
I also started watching conference talks on YouTube while eating dinner. These were an introduction to fascinating concepts in current technology as well as an example of how to present ideas balancing technical aspects and keeping it relevant to an audience that isn’t familiar with the details.
How did you get your first job in tech?
I went to a coffee shop with a friend and struck up a conversation with a pair of people nearby. The one person owned a small startup and after a long talk we agreed that I should send over my resume. I had interviewed for a few jobs already but this was my first paid work. We agreed to work on an hourly basis for a small project they needed help with. This would be a trial period (paid) and eventually led to a full time position after a few months.
How did you prepare for an interview?
I didn’t do anything particularly interesting at first aside from programming and reading a lot. But after my first few interviews I took notes about what technologies and concepts they were asking for. Then I studied those things. I bought a book on doing coding interviews. It was mildly helpful.
How does coding change your life?
Going from a job working in food service to software is very different. The hours are more reasonable, it’s less physical labor, less dealing with the public and better work life balance. Being paid a salary rather than hourly work, or work for tips is better for planning my bills and expenses. It’s given me more peace of mind.
Working on code has ignited my love of learning again. I am always excited to find out about new things. Not just with coding. It’s also taught me that I can break down bigger problems in life to smaller challenges. And as long as I am making progress I will be successful in the end.
Any obstacles that you have to overcome in learning coding?
I have Attention Deficit Disorder and it can be hard to focus on what I am doing if it’s outside of a work context. I end up trying to solve annoyances with my IDE settings or the way an inconsequential thing works rather than learning the important part of what I am learning.
I also get overwhelmed and can’t pick a place to start. There are so many aspects to programming, databases, design, networking etc etc that it can be hard to know what’s the next more important thing.
Tips for newbies?
I tend to believe that programming languages are more the same than they are different. It can be really helpful to learn more than one at a time. It also teaches you the general concepts by seeing how two different languages or frameworks approach the same idea. Ex. Class constructors in Java and class Constructors in Python.
You are going to spend a lot of time searching for information online. Whether it’s an error message, the syntax for a language feature you only use once in a while, framework version differences. Really pay attention to the characteristics of bad search results (lots of ads, generated text, fake download buttons, forum conversations with bad threading) and good information (explains Why something is the way it is, up to date, explains things clearly, references documentation).
Spend time learning the features of your text editor, integrated development environment (IDE), web browser and command line (Bash, Zsh, PowerShell).
Just search “{technology name} cheatsheet”. Ex. “chrome cheatsheet” These are old technologies that have tons of features for making your life so much easier. Learn a new shortcut every week. Pretty soon you’ll wonder how you ever did without them.
What are your plans for the future?
I really love making software tools for other people. It is so rewarding to have a PhD candidate entrust the most critical work of their career to you. You deliver something which frees up their time for the analysis rather than struggling with five lines of javascript.
My childhood dream was to be an astronaut. I would love to be able to help researchers at NASA or other astronomical fields. I will probably work toward more scientific tooling and jobs related to that type of work.
I now know that if I work towards that goal little by little I might just accomplish it.
Note from the Editor: If you like what you’re reading, please share this with your friends and subscribe to the newsletter below.