Quincy larson

Quincy Larson

Founder and Teacher freeCodeCamp

Quincy Larson is a JavaScript developer and the teacher who founded Free Code Camp.

Description

In this episode, we talk about the evolution of freeCodeCamp with the teacher who founded freeCodeCamp, Quincy Larson. Quincy talks about creating the online learning resource he wished he had when he transitioned mid-career into tech, how freeCodeCamp has grown over time in community and content, and what the future of freeCodeCamp holds.

Show Notes

Transcript

Printer Friendly Version

[00:00:05] SY: Welcome to the CodeNewbie Podcast where we talk to people on their coding journey in hopes of helping you on yours. I’m your host, Saron. And today, we’re talking about the evolution of freeCodeCamp with the teacher who founded freeCodeCamp, Quincy Larson.

[00:00:18] QL: There was a lot of ambiguity and there’s a lot of fear that maybe I just wasn’t smart enough I couldn’t do it. Maybe that lack of math knowledge was really holding me back.

[00:00:28] SY: Quincy talks about creating the online learning resource he wished he had when he transitioned mid-career into tech and how freeCodeCamp has grown over time in community and content after this.

[MUSIC BREAK]

[00:00:54] SY: Thanks for being here.

[00:00:55] QL: Thanks for having me, Saron.

[00:00:57] SY: So we’ve had you on the show in the past, but it’s been a while. We had you back in 2015, and I know that there is so much stuff that’s been happening with freeCodeCamp. You guys have grown. You’ve built so many new products and new educational tools, free tools for the community, but let’s do a little bit of a refresher. Tell us about what first got you into coding.

[00:01:18] QL: Absolutely. So I was a school director. I had a staff of teachers and students and administrators and I wanted everybody to be able to spend more time together and less time inputting information into like government web forms and dealing with spreadsheets and everything. So I didn’t have any sort of technical background, but I decided to start Googling around. And there must be some better way we can do this. Right? And sure enough, I was able to find some basic tools. I learned how to use Visual Basic in Excel and how to use this tool called AutoHotkey to like automate clicking on different forms and like keystrokes so that I could just basically set up a bunch of tasks on my computer and then just walk away and come back and they would be done. And that way I was able to take on basically all the rote administrative work for the school over time. And it had a massive impact and the students were happier, the teachers were happier. Everybody was happier because we could focus on the things that mattered, which were person-to-person interactions and teaching, field trips, things like that. And so the school prospered and it gave me this impression that like, “Hey, just one person who doesn’t even know that much about coding can use these technologies to potentially dramatically improve the efficiency of an organization.” And so I thought, “Well, what if we did this for other schools? Maybe I should create a big software tool to do that.” And before I could do that, I needed to learn how to code properly. So I went on this basically nine-month period of just going to hackathons, going to tech talks and spending as many waking hours as I could just in the command line, in the code editor, trying to build up projects and really understanding how to do software development.

[00:03:11] SY: So you are a career transitioner. So many people in our community, like most of our community, I’d probably say, and you actually broke into tech in your 30s. Can you talk about what that journey was like, especially in that age group? Ageism is such a big problem in the tech industry. And I see people who are like 28 freaking out that it’s too late for them. So I’d love to hear kind of your journey and that transition breaking into tech.

[00:03:38] QL: I mean, even as a 30-year-old, I had it pretty easy because I’m a white male who is college educated and native English speaker, and I just brought so much privilege already. I mean it seems silly and kind of absurd to say this, but people almost projected upon me more confidence than I had because I was the guy with the beard and the glasses who looked like their dad. Right? So they just presumed that I was like some experienced developer. And then when I sat down with the keyboard and tried to get basic things done, they’d be like, “What’s going on here?” But the reality was I was basically like a 15-year-old developer in a 30-year-old developer’s body or something like that. Right? That might be one way to look at it. So really, I didn’t have it hard and I’m not going to pretend I had it hard. It was kind of the lonely process learning to code and just using these free online resources and trying to get through them all. And that process really awakened me to the fact that like, “Hey, coding communities, very powerful,” because they make people feel less isolated and linear curricula that help people figure out what they should learn and what sequence, like those are useful. So upon making those revelations, it seemed clear that, “Hey, we should have a community that is all arrayed around a single linear curriculum and that can help solve a lot of the ambiguities that I faced learning to code.”

[00:05:00] SY: What was it like for you emotionally to go through that journey? Were you confident? Were you nervous, optimistic? What was going through your head?

[00:05:09] QL: Well, there was a lot of ambiguity and there was a lot of fear that maybe I just wasn’t smart enough I couldn’t do it. Maybe that lack of math knowledge was really holding me back or maybe I just wasn’t the kind of person who could sit in front of a command line and be told, “You’re wrong. You’re wrong. You’re wrong,” repeatedly. by the interpreter. It was a struggle, but I had faith that I would eventually be able to break through because I’d seen other people do this, right? I was not the first mid-career person to transition into tech. I had a friend, she was like 55. She was a school teacher and she’d been able to like learn to code and go get a job at Apple.

[00:05:49] SY: Nice! Wow!

[00:05:50] QL: As a software engineer. So I had plenty of people that I could look up to and sit, like basically for instances that told me, like, “I’m not crazy. People can run a four-minute mile. People can eat 50 hotdogs and not just 25.” Right? That’s like Kobayashi, sorry for the segue, but basically before he proved that you could eat like 50 hotdogs in a setting, everybody was eating 25 and thinking that was the limit. But once he ate 50, everybody’s like, “Oh, it’s possible to eat 50.” And all of a sudden, all these other people could eat 50 too. It was just a psychological barrier.

[00:06:25] SY: Yeah.

[00:06:26] QL: That’s kind of a gross thing by the way. but the four-minute mile is a better example. People thought it was impossible. Doctors are like, “Your heart will explode if you try to run a four-minute mile.” And then within a few years of somebody running a four-minute mile, tons of high schoolers were running four-minute miles.

[00:06:41] SY: That’s so interesting. I feel like in my coding journey, especially in the early days when I was trying to make my way to a first job, it was a similar thinking that got me through as well where when I encountered something that I thought was really hard, that I couldn’t figure it out, I would remind myself, “Someone has figured this out.” Right? Like, “What I’m doing,” especially in the early days when it’s mostly CRUD apps, right? It’s mostly forms. It’s mostly just submitting and reading forms. Nothing too complicated. I kept saying to myself, “This is something that millions of developers out there have figured out. They know how to do this. It is a known thing. I just haven’t figured out how to do it yet. It’s not impossible. It’s very much in the realm of possibility. It is a solve problem. I just have to get to the solution.” And just knowing that it is doable and having so many examples of millions of developers who figured out that piece of code, that feature, that bug was a huge source of optimism for me. So I completely relate to that way of thinking, of helping you get through. So that’s awesome. So one thing I’m very curious about is freeCodeCamp is a huge resource that’s helped millions and millions of people learn how to code. But of course, when you were learning how to code, you didn’t have freeCodeCamp. So what did you use? What were the resources that helped you learn how to code when you transitioned over?

[00:08:03] QL: I used a lot of free online university courses. Stanford has like an algorithms course. They have a database course, which is excellent. I think that might still be available. I still think that’s probably the best way to learn about database design. I use just textbooks I’ve found at the library, which I wouldn’t necessarily recommend. But just coding along and doing programming sounds a lot of those O'Reilly like Head First series. Those were really good.

[00:08:27] SY: Oh, those were really good. I love the Head First series. Yeah.

[00:08:30] QL: Yeah. So just coding along with textbooks, which nowadays I would never encourage somebody to use a book when they could use a video and see the code and hear the person and reproduce exactly what they’re doing if they wanted to or better yet like clone a GitHub repo, code along at home. I think that’s just a way better way of learning, but the gold standard of learning is like interactive learning. And I think there were like Ruby Koans, Python Koans, these things where you basically be in a command line. I use Project Euler a whole lot.

[00:09:00] SY: Yep.

[00:09:01] QL: Project Euler is just awesome and we have implemented it both in JavaScript and in Rust where you can basically go through with tests and solve them instead of just inputting a number into their web app.

[00:09:12] SY: Nice.

[00:09:12] QL: So solving Project Euler problems, and then just building tons of projects. Every weekend I would go to a different hackathon. I was privileged enough to be in California during a huge renaissance in tech, when there were tons of money flowing into like companies and they could have lots of hackathons and then we’d still be able to do that. So I would just take Amtrak up and down the coast and just go to different hackathons in different cities each weekend and stay in a hostel. And that process of doing a hackathon, it’s essentially like product development condensed into a weekend where you have kind of conceptual work. You have the design of the application. You implement it and then you pitch it. And so it’s like doing startups every weekend, basically. So that was just a great way to jam a whole lot of learning and a whole lot of firsthand kind of like emotional experience, like, “Oh, I completely bombed this code base and now we’re just going to have to give like a slide deck and kind of like show this mock-up essentially of what we would’ve built if I hadn’t sucked so bad of coding.” Right? Like that sort of stuff. “I let my team down.” Like you get all those kinds of experiences condensed to a very short period of time. So across these nine months of my life, I was able to work on tons of different teams and I was able to get exposure to a lot of different concepts and resources. So I think hackathons, going to in-person events, that is absolutely like kind of a force multiplier, if you will, as far as like, just giving you a ton of context within which you can take all the things you’re learning from folks and videos and kind of like contextualize it.

[00:10:46] SY: Yeah, that is such a great tip. Did you deal with the anxiety of a hackathon? I’ve always found hackathons to be very stressful. There are so many people. Everyone’s kind of in a rush. You don’t really know what skill level people are at. So naturally, I just assume everyone’s an expert and I’m the only one that doesn’t know what’s going on. And it feels like a very kind of just an intense environment to put your coding skills into action. Did you have any of those feelings? And if so, how did you deal with them?

[00:11:15] QL: Oh, yeah, I was humbled repeatedly. That’s a good thing, frankly, because the only thing worse than not being good at something is thinking you’re good at something that you’re not good at. And so just having that humility, it’s this humility that I try to carry with me even today, not just in trying to implement things, but like always assume the person you’re talking to is smarter than you. And that like all their decisions they have perfectly thought through. And if you don’t understand what they’re doing, there’s a good chance that you are missing something, right? Always assume that the code you’re running was thoughtfully designed and was sufficiently tested and that maybe you are the person introducing the noise into the system that’s causing things not to work and then start from there. If you start from that kind of humble perspective, I think you can learn a lot more and often that will save you tons of time where you’re just making presumptions about things that you shouldn’t.

[00:12:08] SY: Absolutely. At what point in your coding journey did you go from, “I want to be a better developer, I want to develop these skills too, I need to start a freeCodeCamp”?

[00:12:20] QL: So the original idea was, “I’ll build some tools that will help people run schools like I do, that automate a lot of the grunt work of running a school.” And after working as a software engineer for about a year, I realized, “Well, instead of doing that, if I just taught people all the things that I’ve learned over the nine months that I spent learning and the year that I spent working as a software engineer on a team.” By the way, the real learning starts once you get the job and you’ve got like a team you're accountable to, get a large legacy code base. But if I could figure out a way to a lot of that experience and knowledge that I acquired over that period, then people could use that and learn how to do it and then they would go build that school system and I wouldn’t have to build it and they’d probably build it for hospitals and food banks and all kinds of other types of organizations. And so it very quickly became clear that the way I learned to code was super suboptimal, but I couldn’t see how I was doing things wrong necessarily. I mean, there were things that I was definitely doing wrong. But even if I had done everything perfect in hindsight, it still would’ve been harder than it needed to be. And so that was kind of the insight that caused like, “Oh, I need to create technology education tools, essentially like self-learning tools.” And so I iterated through a lot of them. Most people never cared. I’d be able to like hand somebody an iPad and say, “Hey, go through this workflow. What do you think of this?” And they’d be like, “Oh, it’s great.” And then they would never return to the website. And so that was like a very clear indication that I wasn’t going quite where people needed me to go with the tools and then freeCodeCamp was basically a result of stripping away a whole lot of the excess features and just getting to the core of what people already knew they wanted to learn, which was JavaScript. I mean, that’s the skill that everybody needed to be able to get a job in 2014. So why not just focus on that instead of all the additional stuff that more senior engineers might need? I’m not going to teach people how to do DevOps and stuff like that. I’m going to just focus on writing curricula to teach people basic web development because that’s the low-hanging fruit.

[00:14:38] SY: And at the time, what did you envision that freeCodeCamp would look like? What did it look like in your head?

[00:14:45] QL: So we wanted to have a linear curriculum that didn’t have any electives because I think electives are bad.

[00:14:54] SY: Okay.

[00:14:55] QL: If you go to medical school, everybody learns basically the same thing and then they specialize the residency program.

[00:14:59] SY: Right. Right.

[00:15:01] QL: AND historically, if you went to a university, if you were one of the lucky 1% of people in the most prosperous place in the world in 1900, London, if you were wealthy enough to go to a university, everybody learned the same kind of canon of knowledge like Greek and Latin and history and rhetoric and logic and mathematics and stuff like that. Right? So it was only like more recently that these electives creeped in and we started giving our 18-year-olds and 19-year-olds the task of trying to decide what they should learn without just saying like, “Hey, actually we know that you probably should learn this and this is useful.” Right. And part of it, like maybe someone skeptically just thinks that it just contributed to kind of end state where you can actually go to a university and you can get a degree and still have trouble getting the job because maybe you didn’t learn the right things, “right things” for what the job market is looking for. That was a very concerted decision, like, “I want a linear progression of skills. That way people don’t get caught in some sort of weird prerequisite, circular dependency, or they don’t go all the way through all this stuff without learning some of the essentials.” So that was a big part of it. The other part was I wanted the community to be involved and I wanted to not be alone in the process. So we got the forum. We have a few chat servers. I was like live coding on Twitch pretty regularly for about two years and just trying to be like, “Hey, I could do it and I think you can do it, but we were all working through that same curriculum.” So I would just say community and curriculum. That’s what I wanted it to look like.

[MUSIC BREAK]

[00:16:52] SY: So freeCodeCamp launched in 2014. Can you talk about some of the biggest ways that it has evolved of in the last eight years?

[00:17:01] QL: It originally was just a list of resources mostly, like Stanford courses and MIT courses. And we started building software that would allow us to teach these interactively in the browser client side. And so then we created thousands of coding challenges. So the curriculum became this interactive thing, which I think is good. I think interactive is better than passive and the more interactive and the tighter feedback loop, that is something good that you should strive toward. So that was like the first version of the curriculum. The second version of the curriculum, it was kind of even more granular and now we can do everything inside of VS Code. For example, like you can actually learn SQL in the command line, right inside VS Code, and you can start up Postgres database and write to it and it’ll run the tests against the state of your SQL database or it’ll run the tests against the state of your Git working tree. So we’re just increasingly trying to make the curriculum more interactive. And I think that that’s where we ultimately want is for like every single moment that you’re on freeCodeCamp going through the core curriculum, maybe we’re drip feeding you like one or two sentences worth of concepts and then you’re immediately turning and applying those with your fingers on the keyboard. The other big developments, we have a publication that has about 8,000 articles. I’ve wrote about 400, 500 of those myself. Not all of them are attributed to me. Some of them are just attributed to freeCodeCamp. At this point, we’ve had like 600 or 700 people, developers from the field, who have basically common written tutorials we published there. So that’s like a pretty good corpus of knowledge and everything is run by our editorial team and it’s maintained. And then one of the things we did pretty early on was we created a YouTube channel. And for the first four or five years, we’d be like thrilled if a hundred people or a thousand people would like watch a given video that we created. But recently, that started to take off. And now I believe freeCodeCamp has the biggest programming focus channel on YouTube.

[00:19:02] SY: How big is it now?

[00:19:02] QL: 5.2 million subscribers.

[00:19:05] SY: Wow! That’s amazing. How big is freeCodeCamp, the organization? In the videos, I know that it’s not just you teaching, right? It’s other people who are teaching as well. You have the blog contributors. You have code contributors. I believe you also have community managers. How big is the organization of freeCodeCamp today?

[00:19:27] QL: Yeah. So I believe we have like 32 people.

[00:19:31] SY: That’s not that big.

[00:19:32] QL: Yeah. We do have like 90 servers. So a lot of it is people managing and teaching through instructional design and through software. So as you and I talk, there might be like 3,000 or 4,000 people like using freeCodeCamp.org, but I’m able to talk to you here and I’m not in a classroom somewhere talking directly with students. So we’re kind of teaching through instructional design, and that works pretty well. And then yeah, the team is mostly teachers, classroom teachers. Some of them would be like creators on YouTube or authors, but they kind of have this background in basically synthesizing knowledge and sharing it. And then of course we have a few people that are just totally focused on software engineering, but even them, I try to get them involved in teaching.

[00:20:22] SY: I remember when I first came across freeCodeCamp many, many years ago. Well, basically around the time when it started. It’s called freeCodeCamp because it’s going to be free forever and this is going to be free and accessible. And I remember reading that and going, “Once this thing takes off, we’ll see if it’s still free.” I was very skeptical. And it really has taken off. It’s grown so much in the last, under a decade, in just the last eight years and you’ve reached so many people. Why is it still free? Have you ever been tempted to turn it into something that can generate profit, generate real revenue? Has that ever something that’s crossed your mind as you’ve seen it grow and kind of blow up in the community?

[00:21:06] QL: Well, I’m kind of idealistic in the sense that I do believe that education can be free, given the resources, and it’s not that many resources. I mean, we spend so much money on just building like a single aircraft carrier. Education could absolutely be free in the United States. It could be subsidized by the state. It could be subsidized by employers. So my ideal is like every facet of freeCodeCamp will be free. There are lots of ways we could build stuff that would have a higher marginal cost per learner. We just don’t build it because it’s just like, “Okay, if it can’t be free, we’re not going to bother with it.”

[00:21:40] SY: Interesting.

[00:21:41] QL: And so first of all, we’re a donor-supported 501(c)(3) nonprofit. We can’t be owned. I don’t own any equity in freeCodeCamp. I relinquished my equity when we converted to nonprofit. Like very early on, that was always the plan. And as a result, there are a lot of restrictions of what we can and cannot do. But if you give a donation to freeCodeCamp, you can deduct that from your taxes and corporations can deduct grants that they give to freeCodeCamp from their taxes. So we are very blessed and we have about 8,000 people around the world who give five bucks or so to freeCodeCamp each month. And that is a decent starting point for operational budget. We work with organizations. We work with Google, MongoDB, New Relic. Snyk is a security-like DevSecOps tool. We’re kind of stringing together a lot of grants combined with donor support, combined with like alumni giving large gifts and things like that. And my hope is that we can get to a point where we can just continue to function and grow as more and more people go through freeCodeCamp. Michael Bloomberg donated a billion dollars to John Hopkins University, a billion dollars, right? With that, they could put that in the market, just in a stock index or whatever, like the S&P 500 index and they could basically generate maybe like 8% a year, historically, and it can basically serve as part of an endowment. And that’s how universities operate. They have these endowments. And that generates enough interest on the principle that they can just operate off of that. John Hopkins never has to charge a student tuition again. They can basically operate at their current level without ever charging tuition again based off of that Michael Bloomberg gift. And that’s just one alumni, right? So I have to think like freeCodeCamp, like we’re kind of farming Michael Bloomberg in the sense that if even a few people go through freeCodeCamp and are profoundly successful, maybe they start a big startup or something like that. Right? Then their gifts can basically subsidize freeCodeCamp for potentially millions of people.

[00:23:51] SY: So I want to talk about the curriculum and the content over the years. You said that when you first started FreeCodeCamp, you were kind of trying different things and you landed on JavaScript and JavaScript being the thing you needed to know in 2014. What do you need to know today? What kinds of things does freeCodeCamp teach? What kinds of tutorials are the most popular? What’s changed since then?

[00:24:16] QL: So this is a great question, because a lot of people think that tech is like constantly in flux and that the tools that are used are, like things are changing so fast. I don’t even know what to learn. That’s a common lament that I hear from people. And what I tell them is generally you just want to focus on mature technologies because lots of companies are using WordPress, lots of companies are using Python, Django or they’re using Node.js or they’re using some other web development framework, even if it’s like 10 years old. I mean, there’re still systems using COBOL, right? We published this course with IBM on COBOL development. Don’t sweat. The new technologies don’t spend all day on Hacker News or programming, like, “Oh my gosh! There are so many new tools coming online. How am I ever going to learn these? Please don’t thrash like that.” The big technologies that you should really learn, the fundamentals are mostly stuff that’s been around for 20 years. And I’ll just go ahead and rattle off what I personally encourage people to learn.

[00:25:14] SY: Sure. Absolutely.

[00:25:15] QL: The big cores are JavaScript, Python, HTML, CSS, Git, Linux, and SQL. If you learn those technologies, you are equipped to do probably like 80% of the entry-level software developer jobs in the United States and probably abroad too. And if you know Python programming, if you know Django or if you know Node.js, JavaScript, you can easily learn other development frameworks, whichever development framework they want you to learn, right? If you have time to learn C or like some lower level language, that can be really useful too. Rust is pretty powerful. We’re creating a ton of resources around Rust. But again, at the end of the day, just learn any scripting language well, learn a database well, learn a full stack web development framework work well and you’re golden, at least for your first job. Have a very strong general background and then specialize on the job. A lot of people come to me and they’re like, “Quincy, I want to be a DevOps or I want to do machine learning, specifically this type of machine learning.” Like they’ll come to me with this extremely specific thing that they want to do. And I’m like, “That’s awesome.” That sounds like a good third or fourth job. Let’s start with some full stack. Web development is probably the broadest category of developer jobs. And then maybe from there, you can move into the mobile team or you can move into the machine learning team, but like all this stuff rests on knowing how databases work, knowing how web servers work.

[00:26:45] SY: So I’m curious about the different types of tutorials and educational content that has worked or maybe not worked over the years. As you said, you have YouTube videos. You’ve got the interactive coding curriculum. You’ve got tons of exercises. You also launched a video game recently. Tell me a little bit about the different formats, structures, the way you think about educational content, and if some perform better than others.

[00:27:14] QL: So the first thing I want to tell you is anytime you spend learning, regardless of how you’re learning, that is a positive, however marginal it may seem. I listen to, I don’t know, thousands of hours of podcasts on double speed. Certainly up to 2015, I think I listened to every single episode of CodeNewbie. I listened to pretty much every episode of like The Changelog, for example, and there are tons of other great podcasts on software engineering, on programming. Just hearing people talk about technology. It steeps you and it kind of gives you this mental framework to understand why things are important and what things are important and how things get used in the real world. So don’t ever feel like you’re wasting your time if you’re learning, right? There are always little things you can do to optimize further, but never beat yourself up. Like, “Oh, I didn’t have time to sit down at the keyboard today, but I would listen to a podcast while I was going for a walk or while I was washing the dishes,” or something like that. Like that is still learning and that should still be committed. I do think that interactive learning is the most bang for buck in terms of like learning you’re going to get for time. If you’re spending time building a project, especially if you have like a test suite and you’re not just like, “Hey, I want to build a tooling list.” Like if you actually have the test suite already there and it’s telling you whether you’re making progress towards your goal or not, that kind of guided learning can be extremely useful. And if you look at the freeCodeCamp curriculum, especially like the newest two certifications, which are the updated responsible design and the relational databases certification, those are both designed, like every single thing is learned within the context of a project. And there’s always tests for every single step. There’s never a point where you’re like, “Did I do this right?” No. I'm like, “You will know if you did it right because the tests are saying you did it right and you can move to the next step.” So that kind of learning that keeps you on kind of a golden path and keeps you plowing forward where a teacher has concertedly designed the progression of like, “Okay, you’re going to build this and then you’re going to build this and then you’re going to go back and you’re going to reuse this thing you used 20 minutes ago to further reinforce your understanding of that so you don’t forget it.” Like that kind of learning, I think, is the gold standard. And that’s what we really emphasize with freeCodeCamp. A vast majority of those 30 people that are working on stuff, like most of that time goes into that interactive curriculum.

[00:29:44] SY: So tell me about this video game. You have a learn to code RPG that launched December of 2021, I believe, and it’s a visual novel video game learning computer science concepts, tons of games and quizzes, and all kinds of fun things in it. Where do that idea come from and why did you decide to build a video game?

[00:30:07] QL: So I am a long time believer in video games, GWAPS games with a purpose. I mean, my kids learn so much through games. I’ve got two young kids. I’ve got a four-year-old and a six-year-old. I love just dropping them into an environment. Even if it’s something kind of silly like, I think it’s called like, “Where’s My Water?” or something like that or Cut the Rope, like these old iOS games. Those are really fun because they do get you problem solving and they do get you thinking about physics systems and things like that. And even if it seems like silly and unuseful outside of the game, it’s still really fun, but what if you injected it into a relatively fun game format, like a role playing game or a visual novel? What if you projected on that the actual kind of like meta experience of being somebody who’s living with their parents and who had a friend who got a job in tech and like, “I want to work in tech, maybe I can be like her”? And so the game puts you in the shoes of that person or the default character name. You can change. It is Lydia. And she’s basically just hanging out with her cat and working as a barista during the day and going to hackerspaces and hanging out and trying to make friends, trying to build her network, trying to rock. There are many, many different concepts that you need to understand how tech works, like DevOps concepts, security concepts. And so the initial storyline, which is only about two hours of gameplay, is basically her trying to get her first job. And we have a whole lot of additional characters that we’re working on and additional storylines where she’s going to go into security. She’s going to go into DevOps. She’s going to go into QA. Basically she works in all these different tech roles and we’ve got all these characters pulled out of like Silicon Valley history and just popular culture that she’s going to interact with as she ultimately builds confidence in her skills and creates like a freelance agency or potentially like a product based startup. So it'll eventually hopefully be like a 20, 30-hour game. The goal is for people to be able to visualize, “Okay, I’m in this village in India or in Nigeria and I’m so far removed from tech, but how do I understand this? How do I approach this?” And eventually, we do hope to have like a Nigerian edition of the game and an Indian edition of the game, just to be able to imagine themselves going through this process, because one of the problems is a lot of people, they can’t even visualize themselves going through this process. It just seems completely alien, learning to code and going and getting a job as a software developer.

[00:32:44] SY: I want to touch on that a little bit more, because I remember having this conversation with you many years ago, and I remember you saying basically conveying how important it was to you that there are more international resources for learning to code. And when you think about the developer community and learning to code community, I remember you saying that a lot of it feels very US-centric, feels very native English speaker centric. And I feel like freeCodeCamp over the years has put in a lot of effort in building real communities and real networks in many different parts of the world, not just the US. Tell me a little bit more about that journey. How did freeCodeCamp become an international organization?

[00:33:30] QL: Just by virtue of being on the internet, like everybody’s kind of international in the sense that like packets reach Mexico City just as fast as they reach Palo Alto. Right? We very early decided like, “Hey, we want to localize into French. We want to localize into Spanish. We want to localize into Arabic.” And it was just a question of like the resources. How could we do that? Because it’s a lot of work to translate tons of articles, to translate a pretty large curriculum into these different languages. I mean, of course we could just them through Google translate, and we did that initially. And we’re like, “Hey, this translation kind of sucked.” Like they need a lot of work. No shame on Google translate. I mean, it enables like everyday people that don’t speak a lot of these different languages to be able to understand. Like, “Hey, what is this thing that this person just tweeted at me? Or what if somebody just email me? I can throw it in Google translate and figure it out.” Right? But the process of like localizing, it goes beyond just language. There’s culture. Right? So that’s one of the things as we have more resources, we’re spending an outsized amount of resources just trying to make freeCodeCamp more accessible, like not just accessible in traditional ways, like this is in your language, but actually appealing to people in other cultures.

[00:34:42] SY: So there is a phenomenon that people love to call a “tutorial hell”, which is just when people get stuck doing tutorial after tutorial and not actually moving forward in their careers, not really making any progress. How do you advise people to avoid this phenomenon? How do we escape or avoid entirely tutorial hell?

[00:35:05] QL: As long as you’re building projects and not just doing the nth beginner’s tutorial on X, Y, Z, I do feel that there’s a risk of like overdoing the fundamental stuff and there’s this gap between there’s just a ton of beginner resources available and then there’s really advanced resources like academic articles and conference tech talks and stuff like that. Right? So how do you bridge from beginner to upper intermediate advance? Right? And I don’t think tutorials are necessarily how you get there. I think building projects, getting your first job. A lot of people I think spend too much time building their skills and not enough time building out their networks, not enough time building out their reputations, which I think are equally important to get a job. So I would encourage people to contribute to open source. That’s one way you can build your reputation and your network at the same time. I would encourage people to build in public and by creating that Twitter account, by creating that blog, you have the potential to help other people and like you’re producing. You’re not just consuming, consuming. You’re also producing. Just know that tutorials are not going to get you a job. They’re not going to walk you down and have you shake hands with hiring manager and get your desk and all that stuff. Right? You are going to need to be out there scrambling, even if somebody who’s good at coding, like to really have the willpower to push through ambivalence in the job market and push through rejections and just keep applying because I would say anybody who’s kind of spending their wheels and not actively applying for jobs. It’s totally cool for the first year or so, if you’re just trying to get your bearings, but if you wait until you feel ready to start applying for jobs, you’ve waited too long. You should absolutely go ahead and start applying. And a lot of people would say, “I don’t want to blow all my chances.”

[00:36:55] SY: Interesting.

[00:36:55] QL: There are lots of potential employers out there and it’s not like there’s like some underground network of employers who all gossip and say, “Oh, don’t hire so and so. They bombed this interview.” Like if people are busy, they don’t really care. You might be surprised that you applied to the same company six months from your first application. They have no idea who you are and don’t even realize you’ve applied before. People are just busy. So I think that tutorial hell, I think that’s more of a symptom of people just waiting too long to get into the job search.

[00:37:33] SY: Coming up next, Quincy talks about what the future of freeCodeCamp holds after this.

[MUSIC BREAK]

[00:37:50] SY: How has the job search and the job market in general changed over the last eight years when you hear stories about people in your community trying to interview, break into the career today and go through that job application process compared to what it was like back in 2014? What are some big changes you’ve seen?

[00:38:10] QL: So the pandemic has changed so much. I think it’s changed a lot of the balance and power in the labor market. People have had time to reflect and realize that, “Hey, I’m not just some cog in a machine, I’m a human being, and I think that it’s reasonable for me to be able to not be on call all the time or not to have to work like ridiculous death march hours.” Right? If you go to a company and everybody’s grinding and crunching, it’s probably because the management doesn’t know what the heck they’re doing and they’re probably not sufficiently like planning things or they just don’t care about the employees and their mental health, which should be a big red flag. So I think people are starting to wise up to their potential value and what they’re bringing to the table and they’re starting to advocate for themselves more. And I think that’s profoundly positive. And I think the changes that are taking place right now are similarly important to when we got 40-hour work weeks and weekends and stuff like that. And I think the big thing is like, “Hey, there are legitimate reasons for me that I need to be in an office with a whole bunch of other people and there are also plenty of situations where I can just use modern telecommunications and other technology to be able to get my job done while I stay home with my kids.” So I think that’s been a big change. I still think you’re going to be applying to dozens, hundreds of jobs potentially before you can get an offer. That hasn’t changed employers, at least in the US, still are risk averse. And I think their risk aversion is largely warranted in the sense that if you do make a bad hire, it’s like not only do you have to start the entire process over again, but you also have probably spent a lot of time training somebody who’s not going to be doing work. So you’ve lost time in terms of product development or in terms of other things. You’ve potentially demoralized the team that you’re having to like part ways with somebody.

[00:40:01] SY: Right. Right.

[00:40:01] QL: I’m not trying to excuse the very opaque frustrating nature of trying to apply for a job. I do think the rise in remote work and asynchronous work where you don’t have to work certain hours, you can just get the work done, and it doesn’t really matter like what time of day you’re doing it. So you’re able to go to the gym in the morning and you’re able to have lunch with your family and stuff like that. I think that those are all very positive developments.

[00:40:28] SY: What have been some of the outcomes of freeCodeCamp over the last eight years? Share some kind of numbers. Feel free to brag about the number of resources you all have created, people you’ve helped, people who’ve come through that sort of thing.

[00:40:43] QL: The number of people who are now working as software developers who did not necessarily need to go back and get a second bachelor’s degree, interrupt their lives and their work like the dream scenario is somebody can keep working their job and keep providing for their family and then nights and weekends learn some additional skills and apply for jobs or potentially transition within their own company. We’ve had lots of success stories of people going from, for example, the sales department or the service department, IT department to the developer bullpen, or being able to work as a software engineer in an organization without having to risk a lot of debt or risk a lot of time. So that has been one thing we’re very proud of. And our LinkedIn alumni network is about 800,000 followers. Several hundred thousand of whom have like listed certifications they’ve earned from freeCodeCamp. I’m also very proud of the fact that we’ve localized into many world languages. It’s available in Spanish. It’s available in Portuguese. Both simplified and traditional Chinese, Japanese, Ukrainian. We’ve got a lot of world languages that we’ve successfully localized freeCodeCamp into, and soon it’s going to be available in Arabic. We also have just a ton of tutorials. Every year, we give up the top contributor award and it’s just such a joy to be able to go and look at all the work that’s been done over the course of the year and recognize those volunteer contributors. I think if I had to crunch it down to like one numeric fact that I’m most proud of is we did two billion minutes of learning in 2021.

[00:42:26] SY: Wow!

[00:42:26] QL: Two billion minutes. That’s equal to about 4,000 years.

[00:42:29] SY: Oh my goodness!

[00:42:30] QL: So that means that at any given point there are about 4,000 people using freeCodeCamp during that year.

[00:42:35] SY: Wow! Yeah. Yeah.

[00:42:36] QL: And our budget, I think it’s like $700,000, $800,000. It was not a lot of money. So we have very outsized impact. And so if you give money to freeCodeCamp, every dollar you give to freeCodeCamp essentially translates into about 50 hours’ worth of learning by people around the world. So we’re just incredibly capital efficient as an NGO. And that’s something I’m very proud of because we’re very careful about how we use technology. And because we’re really focused on what people actually are trying to learn, we’re trying to go where people are. We’re trying to go into the languages they’re already speaking. We’re trying to teach the skills that the job market is already demanding. People are going straight from like indeed.com or LinkedIn to freeCodeCamp to learn the skills that they see job postings requiring.

[00:43:26] SY: What do you attribute that growth to? Because over the last eight years, there are tons of resources. A lot of them are paid, but a lot more are free. And there’s a lot of tutorials, so many YouTube channels, so many different types of curricula that have popped up teaching people how to code, so many Twitch streamers, it’s a market that’s really blossomed over the last couple years. What do you think made freeCodeCamp so successful?

[00:43:53] QL: I think a lot of it has to do with just we’re all learners. So there’s that empathy, right? We’re not purporting to be this expert descendant from on high, like from the ivory tower who’s going to show you the best definitive way to do something, right? It is just a course of people that are like, “Hey, a few years ago, I was where you are, and here’s what I’ve learned for getting past this specific thing or like using this specific tool.” Right? I think a lot of it is just that we are a free resource. We are a nonprofit, like a scrappy little nonprofit. Right? And I think people relate to that and we’re not trying to like browbeat them or we’re not trying to build up our own credibility. We’re just trying to help them.

[00:44:40] SY: What does the next eight years of freeCodeCamp look like?

[00:44:45] QL: That’s a great question. If I could say the next 12 years.

[00:44:48] SY: Sure.

[00:44:49] QL: That’s about how long we think it’ll take, but we’re transitioning into an accredited four-year university program.

[00:44:55] SY: Wow!

[00:44:56] QL: So that is a very long, expensive process, dealing with accreditors and making sure that we meet their stringent requirements. That’s a massive undertaking. And the first step of course is just to work with existing universities and try to get them to accept more of freeCodeCamp as university credit. We’re working with some potential partners on that, but the notion of being able to go to a relatively inexpensive state university that’s already regionally accredited and transfer in a year or two years, three years’ worth of coursework from freeCodeCamp and only have to do a year at that university, that dramatically increases the access. It dramatically reduces the cost, both time and money wise for an adult learner who’s just trying to finish their degree. In this country, we’ve got a lot of people who have debt from university, but they didn’t actually finish university. They don’t have the degree. And so they’re not actually getting the benefit from that degree. We’d love to make it so it’s relatively easy for people to go back and finish that degree or people who just never even went to college. By the way, there are tons of people on the freeCodeCamp team who never went to university. If they want to get a CS degree, they can get it. They’ll be able to get it for freeCodeCamp and they’ll be able to get it for free from freeCodeCamp.

[00:46:18] SY: What does that mean in terms of your opinion of the role, the importance of a university degree, specifically a computer science degree in the future? I feel like there’s been this never ending conversation about how useful is it. Do you really need it? I feel like over the years, a lot of companies have been a little bit more open-minded, a little bit more flexible of looking for people who have the degree and accepting people who come from bootcamps, non-traditional backgrounds. Where do you see kind of the role of secondary education, university education in the future of learning to code?

[00:46:57] QL: I think we’re going to continue to have credential inflation, which, yeah, there’s a lot of talk in tech that increasingly large companies say they don’t care about degrees. I mean, I’d be astounded if two equal candidates, one who had a degree and one didn’t, like if they would ever side with the one who didn’t.

[00:47:20] SY: That’s true. Yes. Good point.

[00:47:21] QL: That could perform in other areas to compensate for not having that. I’m not saying that like, “Oh, you’re doomed. If you don’t have a degree, you should go back to college.” I don’t generally tell people to go back to school if it’s going to involve incurring significant debt. If you can go to community college and get a degree, get on the path to articulating to a state school and getting a proper four-year degree from that, I think that’s good. But I’m not suggesting somebody who’s already mid-career as a software developer needs to go back to college. And I’m not suggesting that anybody should feel inferior because they didn’t go to university. The reality is it’s not your fault that universities are so freaking expensive all of a sudden. I was very privileged and fortunate. When I went to university, you could actually go, just working like a full-time job and paying tuition. And my tuition at my very inexpensive state school in Oklahoma was about a thousand dollars a semester or about $3,000 a year.

[00:48:15] SY: Oh my goodness! Wow!

[00:48:17] QL: And I’m 41 years old. So I went in like 2000, 2000, 2003 I think were the years that I was attending undergrad. But the inflation in education is out of control and there’s no reason for it. I don’t believe that universities are justified in charging the absurd amounts. And I believe that a whole bunch of ultra-low-cost degree providers or free degree providers will have the positive effect of bringing down the cost of all, but the most prestigious degree programs. If you’re Harvard, if you’re Columbia, maybe you can justify charging what you do, but not if you’re just some like local liberal arts university or liberal arts college, or if you’re just some state school, that’s not like super-duper prestigious, like UMichigan maybe could charge a lot, UT Austin, UC Berkeley. But I think most of these schools can’t justify the amounts of money they’re spending and they just need to figure out how to make education less expensive.

[00:49:20] SY: Okay. So in the future, we’re going to create the freeCodeCamp University, make it an official degree. I’m curious, where do you see the content going in terms of what you’re actually teaching? We talked about JavaScript, Python, Linux, some of these constants, been popular for many years, still being popular today. When you think about the future of the content and the curriculum roadmap, I’m curious how you see that changing over time. I remember seeing that one of your alumni donated a million dollars, which is pretty exciting for you all to develop a Web3 curriculum. Where do you see kind of the future of content going, especially with getting so much support from alumni and wanting to of course be cutting edge and kind of stay on top of technology?

[00:50:10] QL: Yeah. We’re very excited to be building like this totally blockchain agnostic Web3 curriculum. As far as other topics that we’re really excited about, like continuing to focus on scientific computing and machine learning. We’re working on a massive expansion to our curriculum, our core curriculum that will focus a lot more on Python development. We’re going to cover all of undergraduate engineering mathematics actively, right inside the Jupyter Notebook with Python. That includes statistics. It includes calculus, linear algebra, and then also lots of different types of machine learning, data analysis. So you’re going to learn neural networks. You’re going to transfer learning, supervised and unsupervised learning, basically a whole lot of really advanced stuff that maybe only a few tens of thousands of people in the world right now actually use day to day. But the beauty of the freeCodeCamp curriculum is it starts with front-end development and you learn HTML, CSS, JavaScript really well. Then it goes to full-stack development. So you can get a job in theory after you just finish two or three certifications, and in practice, a lot of people just do that and then they come back and they learn more as they go.

[00:51:23] SY: How do you decide what direction to go in? For example, I can see with coding going kind of the more machine learning mathematical route, which it sounds like you guys are doing, but I can also see kind of going a very different direction where it’s more maybe user interface, design, kind of that side of things, maybe going into product development. There are so many different branches you could have picked. What made you pick the direction you're going in?

[00:51:50] QL: We want to focus on things that can be taught interactively, product design and things like that, like a lot more subjective. And it’s a lot harder to have a deterministic test suite to tell you whether you’re doing right when you're doing something. There’s that.

[00:52:01] SY: Fair. Fair. Yeah. Yeah.

[00:52:03] QL: To some extent, like what we can teach interactively is always going to be bounded by what we can test.

[00:52:09] SY: So after running your own online bootcamp for eight years, I’m curious, what is your take on other coding bootcamps, particularly paid ones? I feel like the coding bootcamp landscape has changed so much in the last eight years where when I did my coding bootcamp back in 2013, it was relatively hot. It was the way to go. And then over time, a lot of them shut down. A lot of them consolidated. A lot of them switched to kind of a more enterprise focus. Then a lot of online stuff kind of popped up and I feel like people have always kind of mixed reviews and then there’s also like the whole ISA payment model, which is very controversial. What’s your take on kind of the state of paid coding bootcamps today?

[00:52:56] QL: I wrote a guide maybe two years ago about how to identify a good coding bootcamp. And I do believe there are lots of programs out there that are good. But there are also a lot of programs that I would describe as predatory who are basically overpromising and underdelivering sometimes in very spectacular ways. If you don’t have 25 minutes to read my giant… it’s called like The Coding Bootcamp Handbook or something like that. If you don’t have time to read that, the crux of the advice is see if you can talk to some of the alumni. Find them on LinkedIn, ask what they thought of the program.

[00:53:32] SY: Yeah.

[00:53:32] QL: Just ask, “Would you do this again?” Like, “Would you spend all this money to use this program again if you had the choice knowing what you know now?” And if they’re like, “Yeah.” Then like, “Hey, that sounds like a pretty good program.” I would talk to several people by the way to get kind of like a consensus. But yeah, I think if you do that, coding bootcamps are an accelerant. They can accelerate your ability to get a job. They are not a substitute for spending a huge amount of time coding. And most of them, kind of like the good ones, will probably expect you to have already made some progress with your own learning. Very few of them, I think if they’re going to take you in as a total newcomer to programming, then they should probably be telling you like, “Hey, this is just the first part and it’s going to take you several months to get a job after this and you’re going to have to continue learning beyond this program.” If they’re candid about those sorts of things, like that’s kind of going against their own sales pitch. So that would be definitely like a point toward them being candid because the ideal strategy if you’re a bootcamp and you just want to make money is to basically tell everybody like, “Hey, we’ll do it all. You’re going to be great. You’re going to get an amazing salary. Everything’s going to be gravy.” Right? And not actually tell you how much work it is. One red flag I would say is not just for bootcamps for anybody, but if anybody says like programming is easy. Programming is not easy. It is not easy to learn to code. And if anybody tells you that, they are almost certainly trying to sell you something. So I would just be skeptical of people who make it out to be not a big deal or getting a job. Getting a job is not easy. There are very talented software engineers that still struggle to get good jobs. Right? They still get offers that they think are commensurate with what their time is worth.

[00:55:19] SY: What is your biggest piece of advice for people who are trying to learn how to code today? Someone who maybe listened to this episode and said, “Okay, today is the day I’m going to change my career. I’m going to take that leap of faith. I'm going to really focus on learning to code.” What advice do you have for them?

[00:55:36] QL: My advice has not really changed in seven years. Because I just genuinely believe this is probably the most actionable advice. Try to code at least a little bit every day, even if it’s just like, “Oh, it’s already like 11:00 PM and I’ve got to go to work in the morning.” Just see if you can crack open the code editor and solve some Project Euler problems. I mean, not some. They’re all of monumental undertakings. Just do a few challenges on freeCodeCamp or CodeWars. There are a lot of coding challenges sites. Just try to get something done every day. And I would try to avoid taking any time off. 100 Days of Code is great for this actually because it’ll kind of establish like a routine. A hundred days is long enough to establish a routine. So there’s the 100DaysofCode, hashtag. I would check that out. My second piece of advice is try not to work completely in isolation. Try to meet other people who are working as software developers. Even though there’s a global pandemic that continues to rage, at least join some Discord servers or talk to some people on Twitter, just knowing other people that are kind of in the proverbial trenches with you, like also trying to accomplish the mission of getting good jobs in tech or promotions like building things. That is just so inspiring. And if you get a chance to go to like hackathons, I think hackathons are really informative and those are great way to like have fun and get kind of used to the rigors. So again, just to recapitulate, try to code little every day. Try to code with other people. Hang out with people that code.

[00:57:05] SY: Well, thank you again so much Quincy for joining us.

[00:57:07] QL: Thank you for the thoughtful questions, Saron.

[00:57:15] SY: This show is produced and mixed by Levi Sharpe. You can reach out to us on Twitter at CodeNewbies or send me an email, hello@codenewbie.org. Join us for our weekly Twitter chats. We’ve got our Wednesday chats at 9 P.M. Eastern Time and our weekly coding check-in every Sunday at 2 P.M. Eastern Time. For more info on the podcast, check out www.codenewbie.org/podcast. Thanks for listening. See you next week.

Thank you to these sponsors for supporting the show!

Thank you to these sponsors for supporting the show!