It was frustrating, but I kept on trying.
“The turning point for me was realizing that, with a bit of research, I could learn how to do just about anything.
”Later in my senior year, I found a part-time gig managing client accounts, as well as helping to build websites.
I learned how to use things like a code editor and version control.
I still didn’t do much actual programming at the time, but the basics behind web development were becoming more familiar to me.
My colleague I worked with was very hands-off, and because it was a small company, I wore many hats.
I was single-handedly responsible for some pretty large deliverables, and one-on-ones with clients.
I was given problems, but never the way to go about solving or implementing solutions.
This approach was challenging, yet triggered a huge amount of growth for me.
The turning point for me was realizing that, with a bit of research, I could learn how to do just about anything.
I graduated with a music degree that year.
A Minor Set-backAfter graduating, I looked around for a what I thought was a “real” job.
After countless rejections, I found a job description that mentioned working with HTML, so I applied and got the job.
This job was at a large communications company, making pre-determined edits to healthcare documents, while sitting in a small, padded cubicle with florescent lighting.
It was soul-crushing.
I quickly became way more interested in what the programmers there were doing than what I was tasked with.
But, I was met with some backlash for my curiosity, from both the programmers and my manager.
After three months, I decided to quit and go back home to live with my parents.
It was probably the scariest yet best decision I’d ever made.
Basic Programming ConceptsWhile home, I was determined to get out in the real world ASAP.
I don’t know how I decided on learning R (the statistical programming language), but I’m pretty sure I thought it might be useful as a way to support my data analytics expertise.
“It wasn’t the particular programming language that mattered; it was the fact that I had begun to think about basic programming concepts.
”Thus, I spent each day in bed, with my laptop, studying R and writing blog posts about what I learned.
I got thinking about data formats and data structures.
When I went out of the house, I would bring reading materials detailing ways to transform data using R.
That was my life for 2 months.
I suppose you could call it a bootcamp.
Looking back to this moment, I realize it wasn’t the particular programming language that mattered; it was the fact that I had begun to think about basic programming concepts.
I eventually applied to a data analyst position at a marketing agency.
I got the job!Building out my portfolioAs a data analyst, writing code wasn’t part of my job responsibilities, but I found ways to keep at it.
Our data visualization tool provided an all-inclusive way to extract and visualize data, but because of this, it had no version control and little flexibility.
I ended up using Python or R to extract, transform, and — when I wanted an extra challenge — even visualize the data, since I found the programmatic approach to be more debuggable, replicable, and transferrable to other industries and jobs.
At the same time, I tried taking online courses in Applied Stats and Data Management.
I had my head set on later applying to a masters program in data science or analytics.
Well, the course was awful.
We had to program in SAS, a compiled language that is used for statistical analysis.
The lectures were slow-paced and the content wasn’t interesting.
I dropped out after a couple weeks.
But, I continued working at the marketing company, and ended up building a couple tools that made other people’s lives easier at the company.
During that time, I also started dating — and am still dating — an experienced software engineer, who was inspiring and able to offer a helping hand when I got stuck.
Having a mentor on the sidelines was invaluable during this stage of learning.
Three key things I learned from this time:Effective debugging: how to use dev tools to verify expectations, at various points in the code.
Scope: how variables are accessible globally and within functions.
Refactoring: how to write the exact same functionality in a cleaner and more reusable way.
I made my first web app and developed a couple reusable Python scripts.
I was able to put these tools in my personal GitHub account as part of my portfolio.
It was at this time that I really felt the direct connection between something I built and how that affected other people.
I was addicted.
I discovered that I could make real people’s lives better with writing code.
“I could make real people’s lives better with writing code.
”As I built these tools, the dev team began to take notice.
I was shifted into a hybrid analyst/dev role, which meant that I helped out with writing jQuery to set up rules in our tag manager.
In the end, I found that I enjoyed creating tools and writing code more than I enjoyed analyzing data retrospectively.
Thus began my hunt for a programming job.
Filling in the gapsAs I applied to jobs, I did self-guided learning on how computers and the web infrastructure actually worked.
I felt that I was missing a lot of this foundation, since I didn’t go to school for CS.
I ended up reading CODE, which takes a bottom-up approach to how computers work, navigating from binary and logic gates, to assemblers, compilers, and higher-level programming languages.
Alongside this, I did independent research on topics of interest, like ‘how to get a web page without using a browser at all?’, or ‘how does a DNS work?’, or using tools like ping and traceroute and what it all means.
Basically, as I stumbled across terms or tools that sounded interesting, I dug in and learned about it.
Familiarity with these topics helped me become more comfortable talking about computer concepts with others (looking at you, interviews), as well as gave me a foundation to better understand higher-level web development concepts.
It all began to make more sense.
After a couple months — and lots of rejections — I found a company that was willing to take a chance on me, as someone with little to no professional programming experience, but with a small portfolio and blog that showed I had potential and interest.
That was 2 years ago, and I haven’t stopped learning.