How a Sales Guy Learned to Code

I graduated college in 2016 as a business major. I had a couple e-commerce projects under my belt, a failed bitcoin startup, and an entry-level sales job lined up at a Palo Alto unicorn.

I knew that I wanted to own my own business. I got into sales thinking that I’d learn how to sell while figuring out how these high-growth businesses got built.

This is my journey on learning to code after starting very far away (sales and farms aren’t often correlated with tech know-how).

I realize that these stories often lack context on what drives certain milestones, so I’ll do my best to tell the story behind the story. If you have questions, reach me on Twitter, and I’ll update this.


tl;dr the coding resources I consumed over the years

coding timeline those horizontal bars are supposed to be smiley faces...


The actual timeline, from the very beginning

2012: Turn 18, get on my first flight. Leave the family farm for college 3,000 miles away.

2014: Start Rochester Box, a squarespace ecommerce store. No code involved.

2015: Start and sell RickRollbyMail.com for way too cheap. Join and leave Malibu Bitcoin.

2016: Apply to 60+ tech startups in sales roles. My thinking was “sales is the ultimate get-out-what-you-put-in role.” My income will be commensurate with my work ethic. Get a job at Medallia in Palo Alto, and move to San Jose, CA. My life is my job. Start becoming interested in code. With some googling, I discover FreeCodeCamp and start doing a few lessons a week.

2017: Burn out on that job. Follow an old boss to a small startup called Appboy in NYC. It’s so small that my first day is in an apartment. Still in sales, but it’s such a small company that I interact with engineers and start to hear their special jargon.

2018: Get promoted. Now I’m selling to engineers. I have to learn their lingo. Appboy comps me a $200 Codecademy React program. It’s too much - I feel like I don’t know anything. But I begin to see how complex this all can really be. By the end of the year, I discover Wes Bos. His 30 days of Javascript is the perfect middle ground between free code camp and codecademy, and I ship code every day for 30 days. I’m just regurgitating what I see on the screen, but the pathways are being greased.

2019: I decide I want to make a website for tech sales. I ask a friendly engineer at my company. He thinks it’s cool I want to learn this. He comes over one Saturday and takes me through a MERN stack. I again am out of my depth. I go back to the last most comfortable thing, Wes Bos, and discover he has a course on this. I build a shitty version of the website very slowly, and then build it twice more, from scratch, before the year is out. I tweet at Ryan Kulp who then livestreams himself building a SaaS idea I had in 8 hours. I see what is possible.

2020: The pandemic hits. I’m locked away for a few months. I take Ryan Kulp’s Founder/Hacker. It solidifies lessons that I’d half learned in my website project. I finally feel like I can build things. Mid-year, I quit my job. I’ve wanted to build something for 4 years now, and I’ll never get any better than I am unless I really commit to this. I launch 3 shitty projects, and they all fail.

2021: I get access to GPT-3. I’m still sucky at dealing with APIs and dynamic content on websites, but I ask questions to Twitter, or can end up on the right Stack Overflow topic by googling. I get funding from Calm when I launch Magic Sales Bot. By the end of the year, I meet David Hurley, who introduces me to Lee Robinson’s React2025. I rebuild Magic Sales Bot in Next.js, then build it again when I pivot.

2022: I start exploring coding topics that are more fun. I try some python automations. I take Jakob Greenfeld’s scraping course. I hit $1k MRR with Magic Sales Bot. I write this post.


The Early Days of Learning to Code

I'm grinding it out, dialing for dollars, as a 22yr old sales rep in Palo Alto, California. I get in about 6am (I'm calling into the East Coast) but am not leaving early.

Sometimes I come in on the weekend. A couple engineers do too. I tell them that since college, I thought it'd be cool to learn to code. One of them tells me about FreeCodeCamp.

When I can, I tackle a few exercises on it. It doesn't feel like I'm doing anything, though. Coloring link elements? Adding numbers up on my screen? Apparently this is coding but I know that it isn't.

My job is hard. I think of things that I want to make - an account prioritization engine would be awesome (a nascent Magic Sales Bot), so I rough out the idea in a Google Sheet.

I hire someone on Upwork to make it for me. $1,500 of hourly dev work later, it's nowhere near complete. I look at the code I paid for but I can't decipher it. I fall into the trap:

bad coding cycle

I try to get into coding. It's hard and I don't understand things. I misinterpret that as a personal deficiency. I abandon code for a while. When I pick it back up, I forgot where I left off.

Sometimes I talk to my new engineering friends about it. They confirm what I know: that this shit is hard. Then they go back to talking about kubernetes clusters and docker images, while I'm still here on Earth.


2018 to 2019, Where Things Start to Click

I change jobs. I'm still dialing for dollars, but with a better team. A smaller team. I want to get promoted to a closing role. The first deal I have to close is selling myself to my future bosses.

I grab a random course off Codecademy, expense the $200 price tag, and dive into React. I want to show that I can speak the language of the engineers that I'm going to be selling to.

It's tough, but I complete it, get my certificate, and eventually get promoted. The air gets a bit more rarefied, and I have more time to start playing around.

I'm also a known entity at a quickly growing company. New engineers want to know about what my sales team is doing, and I want to know engineers. Beers by our Port Authority office turn into deeper conversations. One guy starts telling me about MERN stacks. He offers to hang out one Saturday and we can take a stab at a website for sales jobs that I want to make.

We spend all Saturday on this project at my apartment in Brooklyn. After my Codecademy course, I can handle the R in MERN. Kinda. We give up and head to the bars.

But I didn't feel the self loathing of the old cycle. I paired this experience with the kubernetes guys from my old job and realize something:

Learning to code is a different animal than learning how to bring ideas to life through code.

If this engineering guy struggled with it, why was I beating myself up? I came to realize that developers, like many people, are specialized. They might know their part of the tech stack, but they're challenged to actually be able to build an entire product on their own.

Rather than be discouraging, this is heartening to me. Maybe I was trying to go too deep when I should have been going wide: dabble in this, dabble in that, before I know it, I'll know "how to code."

For some reason, I get back onto Twitter and encounter this guy, Wes Bos, selling a new course. It's the first time I've encountered an individual rather than a faceless website that teaches code.

I'm intrigued, and I rock through his "30 Days of Javascript course."

good coding cycle

A new cycle begins to pop up. His 20-ish minute videos are helping me build something every single day. By the end of the month, I've got 30 GitHub repos with code online. I bought a domain name for some and pushed them live.

Coding started to feel doable. Here I was going through the entire process of writing code to putting it on the internet, and then interacting with it on the internet. No MongoDB databases, Express Servers, React frontends, or Node backends. That would come later. These were just simple, straightforward, confidence building projects.


2019 to 2020, What's Working for Me

I continue to pound through Wes Bos videos. I'm building a couple websites that are hooked up to databases. I suck at it, but I'm doing it.

I'm hitting quota at work - I'm the sales guy who doesn't need the Technical Solutions person to join their meetings. I can talk to the engineers (mostly) on my own. I start tinkering with spreadsheets and APIs to speed up my workflow.

Back on Twitter, I see a tweet from Ryan Kulp.

Kulp Tweet I've never met this guy, but I pitch him on an idea, and he records himself building it for 8 hours!

Kulp Stream The video is still up!

He hands me the code to this project. I know nothing about Ruby on Rails, the language he codes in. I speak toddler-level Javascript.

Still, I watched that video about 10 times. All my free time is spent fiddling around with that code base. I had no idea it was possible to do what he did, as quick as he did. The way I saw it, this guy was so good at development that he could do this, give away the code for free, and think nothing of it. I wanted to be that good.

I churn out a few more iterations of my sales jobs website. I get more active on Twitter and see people posting cool projects. My day job grows to 800 people, and I speak to the Product and Engineering teams a lot as the sales guy who can at least fake the knowledge of what they do.


Pandemic to Present

I get caught in my Brooklyn apartment for a few months. Between turning a junk yard into my own garden and my work, I'm still coding.

Ryan Kulp comes out with Founder/Hacker. I take it, and like my love for Wes Bos' personality in his videos, puts a human element behind technical concepts. I've been able to build some small things up until now, and I finally feel like I'm "getting it".

By July of 2020, I realize I'm not going to get any better at this unless I make a real change in my life to prioritize it. I have a few dollars in the bank, I'm sick of my job, and I'm in pandemic "fuck it" mode.

I quit my job to start building software full time.

Starting in September, I'm living at my family farm, pumping out ideas. TryChatty, a messaging overlay for sales content, launches and fails. SalesAdvice launches but is undersubscribed.

Early 2021, MagicSalesBot is the result of what happens when I get GPT-3 after tweeting a Haiku at their CTO every day. It ended up only taking 1 day. ![https://imgur.com/a/lLkyBbD]

At the time, it wrote sales emails with GPT-3's text-gen AI. It was a new challenge for me and I was writing code I didn't yet understand. But I had enough breadth to be able to ask Google specific questions and work through most anything.

By the end of the year, I had met David Hurley, founder of Conversify.ai, who introduced me to Lee Robinson’s React2025.

In addition to knowing that my current business model was not sustainable, I knew my tech stack was inadequate to keep me working as efficiently as possible. I was an ok developer now, but React2025 set me up with a framework I felt very comfortable going fast with.

So when I pivoted MSB to be a prospect monitoring tool, I built it in Next.js

6 months later, it's growing, albeit slowly for my taste. I hit $1k MRR at the end of May 2022.

Even still, there's more coding techniques to learn.

I just took Jakob Greenfeld’s scraping course and have been building my own data crawlers to give myself an edge and deliver some really interesting datapoints for my users. hacking


Recapping it all

Two threads that show themselves here are on the benefits of dabbling and the compound nature of learning.

Go Wide, Not Deep

I did not see progress when attempting to go elbow-deep in React for my initial foray to coding.

Instead, I had success in trying a few different courses and topics, and finding an entry path that suited me.

Wes Bos was that initial entry path, and his broad-strokes style of coding in 30 Days of Javascript truly helped me get started.

I also am a Javascript guy, but I built most of my confidence in programming fundamentals through Ryan Kulp's course, which is in Ruby. Still, programming follows similar rules, and I was able to apply it to my work.

And if the kubernetes nerds helped illuminate anything, the learning to code is a poor definition of the goal for many people like myself. We're trying to learn to build products things with code by ourselves, which is a much wider operation.

text Case in point, a text from one of the best engineers at my old job. Specialized in one part of programming. Just because they code, doesn't mean they can build.

Progress Begets Progress

codings cycle My first project took a comically long time to get out. Like, a year. And it sucked.

But the next year, I put out 3 projects.

The following year, about 10 more projects.

Here's more of a time-friendly graph: time graph

Ok, shitty graph. But the point stands: I was getting 3x faster every year. Especially after I found a way to stick with it (Reminder: it was after I broadened my horizons and did Wes Bos 30 Days of JS).


Building your own path

I wanted to share this broad account for a few reasons:

  1. I started out very far away from code, and inched closer
  2. I tried multiple different ways of learning
  3. I would deem myself as successful in learning to code

There's an opportunity for a cliche "If I can do it, so can you" at this point. Please let me spare you the patronizing rah rah bullshit.

Instead, my encouragement for the reader who wants to code. What aspect of coding is most interesting to you? Is it scraping something? Automating something? Building something people will interact with on the web?

I want you to get as specific as possible. Then, summarize it as briefly as possible. 2 words, if you can. Scraping Crunchbase? Automating email? Website for jobs?

Good. With that level of specificity, can you go find a scraping course or an automation course? Better yet, can you find 3 or 4 of them?

If you're able to, buy them. Start one. If you're getting sick of it, try one of the others you bought. When you're sick of that, hop again.

If you're like me, the path to learning to code will hook you in. Some teacher or some lesson will resonate with you and get you interested further. Follow that interest.

path

Let your own entry point into the world of coding fit what you need. I forced myself to start at a what I believed was the right starting point. If I skimmed more and stayed wide, I might have found the resources that worked best for me at an earlier phase.

Once you have found that resource that fits you, keep following that curiosity! What can you do with that little grain of knowledge you've acquired? Explore 3-4 more avenues and resources, and repeat the process. Who gives a shit if you have a bunch of unwatched coding courses, if you've learned to code along the way?