How I Learned to Code
tl;dr
I was broke and needed to pay off my student loans. I learned web development with the freeCodeCamp community, ass power, and dozens of projects. Later coursework for Code Fellows earned me a Certificate in Full-Stack JavaScript.
Lifestyle Design on a Budget
I adored my English and Philosophy courses as an undergraduate in New York, and I treasured my time in London reading a Master's in Philosophy and Public Policy. Aided by my schooling, my first career in politics involved several slightly prestigious roles: on Obama's first presidential campaign, on Capitol Hill, and fundraising with some very big names in American politics and culture.
Somehow, however, I had neglected to translate my experience into fame and fortune. This became apparent when I was rejected for a $1000 loan to cover expenses in Washington, D.C. Even if I went cold turkey on nice shoes, take-out, and international travel, my student loans were eating me alive.
Impending penury aside, the dysfunction in our nation's capital had soured my enthusiasm for public service. Inspired by Moby Dick's Ishmael, who took up whaling with similar motivations, I decided to see if I could get paid to travel and live abroad. I took a few online courses and got a job as an English as a Foreign Language (EFL) teacher in Changwon, South Korea.
I began an intensive bout of lifestyle design in a notebook on the plane to South Korea in July 2014. Teaching was temporary; my next career needed to give me more financial security. It needed to accommodate my wanderlust, if possible, and it definitely could not have a high financial barrier to entry. Law school was desirable but didn't fit the bill. Writing or teaching was unlikely to placate Sallie Mae any time soon. My longsuffering YouTube channel wasn't taking off. It felt like kicking the can down the road to start applying to culinary school or Ph.D. programs. I looked into e-commerce, drop shipping, and affiliate marketing schemes, but for various reasons they didn't click.
I'm extremely detail-oriented and enjoy tinkering. In previous jobs, I'd nerded out on Excel formulas, precise word choices, and automating processes. As a gamer, I seemed to spend at least as much time modifying game assets as playing. Software development seemed to offer everything I was looking for: good compensation, skill-based rather than formal qualifications, and the possibility of working remotely.
I resolved on that flight to learn to code.
Discovering My Technical Community Overseas
Where to start? I followed promising accounts on Twitter, searched for tutorials, and read about software development online after long days in the classroom. I didn't fully understand the differences among scripting languages, development tools, or other resources I needed to embark on a career.
I don't think I knew a single software developer.
Online privacy and security had become hot topics following global surveillance disclosures, and I began to improve my security posture. I installed Tor, switched to GNU/Linux and open source tools, encrypted my hard drive, and became more deliberate on social media. I even badgered my family into using Signal for encrypted group chats. These efforts were valuable but didn't add up to a career track.
Game development was a strong interest, but I lacked a clear entry point for that as well. Fellow YouTubers and modders that I interacted with did not have salaried roles in games.
I had started my second teaching position and moved to beautiful Busan, South Korea when I found a social media post mentioning freeCodeCamp. A few people, mostly ex-pats, would be meeting up on alternate Sundays at a local civic building to work through the web development website's free curriculum, itself being developed by a former EFL teacher.
freeCodeCamp Busan's leader—another teacher—was engaging, motivated, and made me feel welcome. (He's written about this period and went on to become a successful software developer.)
After a few meetups, I knew this group was where I belonged. I started completing coding exercises not only at meetings but in between. I appreciated being able to make static pages with HTML, CSS, and tools like Bootstrap, but I fell in love once I progressed to JavaScript. Scripting was powerful. It was versatile. It was intellectually interesting. All the little bits of syntax I was learning not only offered me new ways to solve problems but opened up the possibilities of the digital age.
Though web development wasn't what I had in mind when I embarked on a career in software, it would allow me to learn the ropes and gather a crew to help me navigate more challenging waters.
Ass Power ~ 화이팅!
Joining a club wasn't by itself enough to train my new skills to a professional level. When people ask me if I learned Korean while teaching abroad, I sometimes joke, "Nope, I learned JavaScript."
Everybody wants to go to heaven and nobody wants to die. It's ass power, man. You have to be emotionally ready to put as much energy into it as it takes to make it right.
Along with 화이팅, or Fighting!, a Korean term of encouragement, I took producer Quincy Jones's reflection on Michael Jackson's success as my rallying cry. I developed ass power, the determination to sit in my chair and work, putting sometimes 60 hours into training and coding projects a week between 2016 and 2018. Although I enjoyed much of what Busan had to offer, most days I woke up early and spent all day on code challenges or my latest web application before walking along the beach to teach evening English classes. Increasingly brutal student loan payments sometimes motivated me to code after class, too.
With each project, I aimed to not only complete the acceptance criteria provided by freeCodeCamp or other resources I found but to learn one additional thing. Why not style with this stock market app with SASS? Lemme try to optimize my Simon Game's build process with Gulp! Why don't I set up a Linux box and host my own Mastodon instance? How can I keep bad actors from using my URL shortener microservice for their phishing links? Will creator Dan Abramov respond to my questions about Redux on Twitter? (Yes.)
At freeCodeCamp meetups, I'd share my work with other members and check in on their progress. As time went on, I was able to help fellow students with their projects.
I found broader communities as well. I completed three rounds of #100DaysOfCode on Twitter, demonstrating my (overly) consistent development practice and cheering others along with theirs. I contributed code to a few open source projects. I started supporting organizations like the EFF and Free Software Foundation. Some friends and I submitted the winning project—a crowd-sourced, geo-mapping application—for the hackathon at Google-sponsored Startup Weekend Busan.
I continued writing code for full-stack freeCodeCamp projects until I got my first full-time developer job in 2019. I earned multiple certificates, and many of the projects I built have made their way into their own GitHub organization for safekeeping.
A Leap of Faith (in Myself)
I'm incredibly grateful for the opportunities and communities I've gained by learning to code.
Although I've never gotten over my imposter syndrome as someone who transitioned to a technical industry mid-career, in 2018 I took the plunge, quit my teaching job, and started looking full-time for a software role. I had had some success picking up freelancing projects for small businesses and academic clients, but I needed a full-time gig.
After re-acquainting myself with family in Mississippi after years overseas, and a discouraging number of unanswered job applications, I decided that I should move somewhere well-known for its software industry if I wanted to give myself the best possible prospects.
I also began looking at code bootcamps. I was confident that I had learned what I could on my own, but I didn't know what I didn't know. Why weren't employers responding to me? Where there gaps in my training plan? I'd spent time with resources besides freeCodeCamp, and it seemed like there was no end to what I could learn. Did I need to earn a particular certification? Was my resume or portfolio website not showcasing my abilities well? Was I too old to change careers, as members of my family helpfully suggested, and destined to spend my days at the front of a classroom?
I'd never been to Seattle, but it seemed like a good place for developers—home to many prominent companies, near the ocean and mountains, and with a cheaper cost of living than Silicon Valley. When I applied to Code Fellows, a bootcamp in the shadow of the Space Needle, the admissions team allowed me to undertake a skills assessment. I tested directly into the school's most advanced course for my stack, Code 401: Advanced Software Development in Full-Stack JavaScript. Instead of a series of courses spanning a year or more, I could get a certificate, career advice, and networking opportunities by capping off my education with a single class.
Reminiscent of my long voyage from Mississippi to New Hampshire to work for Obama's 2007 campaign, or to South Korea in 2014 to become a teacher, I drove to Seattle sight-unseen in January 2019 with the intention of starting a new life as a software developer. The bootcamp turned out to intense and introduced me to developers and developer communities in my new city. I determined that my software skills were solid, but I did pick up some things I hadn't learned on my own: Swagger docs, Agile methodologies, and other tools that shone for teams rather than solo developers.
When I got my first software developer job in August 2019, I was able to be immediately productive. My ass power enabled me to rise from Associate Software Developer to Senior Software Developer and Engineering Manager within four short years.
I paid off my student loans.