Jon Chan is the epitome of a self-taught developer. Over many years, he taught himself how to program. And today, Jon is a software developer at Stack Overflow. Yes, he has “made it”.
Jon landed his first “real” job as a professional developer through his personal projects. For instance, his site Bento. Bento helps people learn to code the way self-taught programmers have by curating the best free coding tutorials from around the web.
Throughout the rest of the article, I ask Jon about why he started programming and how he made it to where he is today. (Plus, Jon shares insights on what he wish he did differently.)
Truly, Jon offers some amazing bits of inspiration. Reading what he says makes me feel so much better about everything.
1) What sparked your initial interest in teaching yourself how to code?
I started to code when I was about 10 years old – I wanted to make my Xanga and Myspace (remember those?) look great. That meant picking up HTML and CSS. It never started with “I want to code” it started with first with something I wanted to do on the screen, then picking up what I needed to do it.
2) What were you doing before you started teaching yourself how to program?
I never made a very conscious decision to learn to code, but I dabbled a lot in a number of different things, particularly when it came to design and thinking about startups. I learned to draw and paint when I was very young, long before I started coding – I think it ultimately helped me become a better designer. In college, I was always interested in startups and how businesses were run.
All of those things culminated well into what I do now.
3) I know you've been in the programming world for some time, but how long would you say it took till it started to “click”?
A few years. Coding is a lot like riding a bike, until you put down the books, the tutorials, and actually start doing it, it's very hard for things to “click.” Even after you get on the bike and start pedaling, it takes a long time before it feels natural.
The same thing goes with learning to programming: start building stuff, start early, keep doing it.
4) How did you put into practice the skills you were learning?
I built things. It didn't matter if I didn't know how – the whole point was to build something that I wanted to, and then figure out how to do it along the way. It was the best way to practice and grow my skills, and I think it's the same for others.
5) When did you get your first real developer/programmer job?
My job at Stack is my first “job” in the sense that I'm at my own office, getting paid, and working with a team, but I've treated my other projects like jobs for a long time. I continue to do so.
6) What are the pros and cons to being a self-taught coder?
I'll start with the cons: when you first start out, you don't know what you don't know. It's hard to know when you know “enough” to do something, and even when you get a job, there's sometimes a sense of impostor syndrome because you don't have a degree.
It's also a shame that so many interviews for developer jobs are focused on things that are somewhat arcane subjects in an academic computer science setting.
The pros are counter to almost all of the things I mentioned are cons once you get over it. Many if not most of the best developers I know are self-taught: it's because they learned to code themselves, that's indicative that they love doing it and they love improving.
That means a lot of times, they do very well in the workplace, and some of them realize that if the company is looking for people who just know how to regurgitate data structures or algorithms, it isn't a place they want to work at.
7) If you could go back and do it again, what would you do differently?
I wish I would have known how much learning to code would enable me later in life – I started when I was very young. I think I'm a good developer, but I think I would have been better if I had the realization of the impact I could make if I learned to do it faster.
It's what I'm trying to instill in younger people with Bento. I always say that it's the kind of site I wish I had access to when I was teaching myself to code – even if I didn't realize what I would be using it for.
8) What advice would you give someone looking to get to a similar level you have achieved, who is also teaching themselves how to code?
Build something, and remember that it's about loving to build things with code. You need to build things, love what you build, and the skills will come your way.
It's not enough to know the languages, the technologies, and going through tutorials – you actually have to try and create something from nothing. I try and instill this with the curriculum I've created on Bento, and I urge you to take a look.
Even if you don't, remember that coding is about creating. Convince yourself of that, and everything can fall into place.
Thanks Jon for sharing such uplifting insights!
*Note: I have slightly modified a few of Jon's responses. Moreover, I have added italicized and bolded text in certain parts.