Non-profit organization
POPULARITY
At the tail end of 2019, we got together with Quincy Larson to celebrate ten years of Changelog & five years of freeCodeCamp by recording back-to-back episodes on each other's pods. Can you believe it's now five years later and we're all still here doing our thing?! Let's learn what Quincy and the amazing community at freeCodeCamp have been up to!
At the tail end of 2019, we got together with Quincy Larson to celebrate ten years of Changelog & five years of freeCodeCamp by recording back-to-back episodes on each other's pods. Can you believe it's now five years later and we're all still here doing our thing?! Let's learn what Quincy and the amazing community at freeCodeCamp have been up to!
Meet Alex Kallaway
Quincy Larson, the teacher who founded freeCodeCamp.org, shares his inspiring journey of creating one of the most beloved learn-to-code resources. In this episode, he discusses why he launched freeCodeCamp, the importance of making coding accessible to all, and how it will forever remain free. Quincy also dives into the exciting new C# Certification program in partnership with Microsoft and freeCodeCamp, empowering learners to master this powerful language and build their tech careers.https://www.freecodecamp.org/learn/foundational-c-sharp-with-microsoft/
We are thrilled to announce the third session of our new Incubator Program. If you have a business idea that involves a web or mobile app, we encourage you to apply to our eight-week program. We'll help you validate your market opportunity, experiment with messaging and product ideas, and move forward with confidence toward an MVP. Learn more and apply at tbot.io/incubator. We look forward to seeing your application in our inbox! Quincy Larson is the founder of freeCodeCamp.org, which helps people learn to code for free by creating thousands of videos, articles, and interactive coding lessons–all freely available to the public. Quincy shares his journey from transitioning from teaching into software development, how freeCodeCamp was born out of his desire to make educational systems more efficient through coding, and discusses the early challenges of bootstrapping the platform, and how it has now grown into a 501(c)(3) nonprofit organization. Quincy and hosts Victoria and Will, discuss the platform's technical architecture, especially their global server distribution and decision to rely on volunteer-led translation efforts rather than machines to ensure both the quality and human touch of their educational content. He also talks about the state of free and low-cost degree programs, the student loan crisis, and the ongoing debate between traditional computer science degrees and coding bootcamps. Free Code Campi (https://www.freecodecamp.org/) Follow Free Code Camp on LinkedIn (https://www.linkedin.com/school/free-code-camp/) or X (https://twitter.com/freeCodeCamp). Follow Quincy Larson on LinkedIn (https://www.linkedin.com/in/quincylarson/) or X (https://twitter.com/ossia). Follow thoughtbot on X (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Become a Sponsor (https://thoughtbot.com/sponsorship) of Giant Robots! Transcript: WILL: This is the Giant Robot Smashing Into Other Giant Robots Podcast, where we explore the design, development, and business of great products. I'm your host, Will Larry. VICTORIA: And I'm your other host, Victoria Guido. And with me today is Quincy Larson, Host of the freeCodeCamp Podcast, Teacher, and Founder of freecodecamp.org, a community of people around the world who are learning to code together. Quincy, thank you for joining us. QUINCY: Yeah, thanks for having me, Will and Victoria. VICTORIA: Yeah, thank you for being here. So, I understand that you made a big shift personally for yourself from California to Texas. How has that been for your family and for, you know, as a founder who is running a nonprofit? QUINCY: Yeah, things are going great. It was a big move. We had some kids, and it was difficult to find, like, a good place to live in California that didn't cost, like, millions of dollars [laughter]. And so, at least in the San Francisco Bay Area, we were living in East Bay. I grew up here in Texas and Oklahoma. And I was like, well, maybe we could go back to the southwest, and so we did that. And we were able to come back and comfortably purchase a home here in Plano, Texas. We were able to find one that was, like, really close to a really good public school system. And so, every morning, I'm able to walk my kids to school. And I'd say that Texas has been a great change from California, where I lived for seven or eight years over there. And I love California. Texas has a lot of great things about it, too. It is a little bit hotter than California. It doesn't quite have California's Mediterranean climate, but it's been great here. I like it. And I would say if people are thinking about moving to Texas from California, there are definitely some really good spots of Texas that I think they'll feel really comfortable in. WILL: That's awesome, yeah. I'm originally from Louisiana. So, you're bringing back, like, memories of me growing up, always going to Texas and stuff. And I know exactly where Plano is, so that's amazing. How has it been with your kids? Because we were talking, and you said your kid recently started school. How's that been? QUINCY: Yeah, so my daughter started school a couple of years ago, and she just turned eight. And my son he's turning six this weekend. He just started kindergarten. We were having him take classes at the YMCA some pre-school. And he went from doing that for the first few hours of the day, and then we'd pick him up and bring him home and eat lunch with him and everything. And now he's got to go to school from, like, 7:00 a.m. to, like, 3:00 p.m. And he's been freaking out, like, "Why is school so long? Oh my goodness, I'm so tired all the time," [laughs]. So, he didn't realize that school would be as involved a process. He was all excited. But now he's complaining about, like, just the sheer length of school. But meanwhile, my wife and I we're just, like, celebrating because we actually have some time around the house where we can get work done without having kids running around causing chaos [laughs]. So yeah, I think he's adapting. He's making friends. We're doing playdates and stuff, and he's having fun. It's just a transition, you know. But it is nice because before, I would walk my daughter to school, and that was a very quick, 10-minute round trip, and then I'd walk my son to school. And that was, like, an hour round trip because we walked all the way to the YMCA. And I would do that to kind of toughen him up and get him walking a lot. It was a huge chunk of time. And now I can just grab both, one [inaudible 4:04] hand in each hand, and walk them to school, and drop them off, and be done with it and get back to work. So, it's definitely nice having both at the same school. VICTORIA: I love the work-life balance and that you were able to find and live somewhere that's affordable and has enough space for your family. And I wonder if we can draw a connection there between achieving that kind of lifestyle and learning to code, and what the mission of freeCodeCamp is for you, and what that means to people and changing careers. QUINCY: Absolutely. So, my background is in teaching. And I was a teacher and a school director at schools here in the U.S. and over in China. And that involved me being on campus, like working directly with my admin staff, with my instructional staff, and working directly with students. So, working remotely was kind of, like, a foreign concept way back in, like, 2010 or so 2011 when I started my transition into working as a software developer. But being able to work remotely has been a real game changer for me. And also, you can imagine, like, being a developer, you can command much larger compensation, and you have a lot more career options than being a teacher or a school director. So, it's given me a lot of agency in what I wanted to do. Even before, you know, starting freeCodeCamp, when I was working as a software developer and doing freelance work and stuff, I was able to do everything remotely. And that just gave me a ton of flexibility. So, the way that I learned to code personally was I wanted to help our school be more efficient. A lot of our teachers, a lot of our admin they were spending all day kind of chained to their desk entering information into computers for compliance reasons, to be able to produce great reports, to be able to produce attendance reports, immigration documents, all those things. And I just thought, like, is there a way that maybe I could automate some of this? And I didn't know anything about programming. I was about 31 years old. I was just sitting at my desk, and I just started kind of, like, Googling around and learning some very basic programming. And with that, over the course of a few months, I was really able to transform how the school ran. And we, like, won an award. And, like, a whole bunch of the students were, like, having a great time because they were spending so much more time with their teachers. And they were like, "Hey..." like, telling all their friends and family to transfer into the school. So, it was a massive success. And I thought, wow, if one person who doesn't even really know that much about programming can effect such a change with just a little bit of programming skills, imagine what I could do if I actually learned to code properly, so [chuckles] I did that. I spent about nine months going to hackathons every weekend, and reading a lot of books, and using a lot of open courses online, like from MIT, from Stanford, and I kind of taught myself to code for free. And then, I was able to get a job as a developer at a mid-size tech startup in California. And from there, I just learned more and more, and it was amazing. And it was an amazing transformation for me personally. And I thought, well, I want to help other people be able to do this because I know so many people out there would like to be working in a field where they have more conversation, a higher degree of control. They get to do creative work instead of, you know, tedious work. As a developer, you're constantly doing new stuff because code is infinitely reproducible. So, you could always just go back to code you've previously written if you needed to solve the same problem again. So, you're always in this kind of learning mindset. You're always in this problem-solving mindset. And it's really thrilling. It's just great, impactful work. So, I wanted to help more people be able to do that, hence starting a bunch of different projects that people didn't care about and then eventually starting a project that people did care about, which is freeCodeCamp. And since then, just kind of leading this project in trying to help as many people as possible learn to code. WILL: So, I was looking at your website. And I didn't even realize this until I was doing more research for the podcast, but you have over 10,000 tutorials, and they're in different categories. I saw you just recently released one on finance, which I actually bookmarked it because I'm going to go through it and look at it. You help more than a million people every day. So, how was it when you first started out? Like, how was, I guess, you could say, the grind? How was it in those early days? QUINCY: I'm a big advocate of, you know, for work-life balance, but, like, I kind of, like, exclude founders from that. I really do think that if you're trying to get something started, you're going to have to work really hard and probably way beyond what would be reasonable for a person who's getting a salary or working at an existing company if you're trying to get things started. So, I mean, it was, like, 100-hour weeks, maybe 120 some weeks [laughs]. I would sleep and just wake up and get to my desk and try to, like, put out fires, fix the server, improve the codebase, respond to learners in the community who had feedback, deal with support issues. Like, I was basically doing everything myself. And gradually, we were able to, like, build out the team over a long period of time. But really, the first few years was me self-financing everything with just my teacher savings. I spent, like, $150,000 of my own money just trying to keep freeCodeCamp going. For the first couple of years, we got tax-exempt status from the IRS. When that finally happened, I was like, great, like, let's go out and see if we can get some people to donate. So, we started asking people who were using freeCodeCamp if they'd be willing to donate $3 a month and eventually $5 a month, and we were able to support the organization through that. Really, it's just like a grassroots donor-supported effort. And then, we've been able to get some grants from Linux Foundation, and From Google, from Microsoft, from a whole lot of other big tech companies, and from some other nonprofits in the space. But mostly, it's just been, like, individual donors donating $5. And if you get enough people doing that, you get, like, a budget where you can actually pay for, you know, we have more than 100 servers around the world serving freeCodeCamp in, like, six different languages. We have, you know, all these other, like, initiatives. Like, we've got Code Radio, where you can go listen to Lo-fi while you're coding. And there are servers all over the world. And you can change the bit rate to suit whatever data you have and everything. Like, we wanted to just offer a whole lot of different services. We have mobile apps now. We've got an iOS and an Android app for freeCodeCamp. And then, of course, we've got the podcasts. We've got four podcasts: one in English, which I host, and then we've got one in Spanish, one in Portuguese, and one in Chinese. VICTORIA: Yeah, I absolutely want to ask you more about your podcasts. But first, I wanted to hear–can you tell me a little more about the decision to be 501(c)(3) or a nonprofit status? And were you always firm in that decision? Do people question it? And what was the real reasoning and commitment to that formation? QUINCY: I guess I would consider myself an idealist. Like, I genuinely believe that most educational endeavors should be, you know, nonprofit. They should be driven by either governments or by charities. I'm always kind of skeptical when there's, like, some late-night TV commercial, like, "Viewer, we'll help you get our degree," and it's from, like, a private for-profit university, something like that. So, I was like, in education...and I don't think everything in society needs to be that way, but I do think, like, education and, to an extent, healthcare these should be led by charities. Like, you know, the Red Cross, or, like, Doctors Without Borders, or churches, you know, own many of the universities, many of the hospital systems in the United States. I think that's a good thing. I think it's a very good thing that it's not just, you know, private profit-maximizing, market incentive-bound organizations that are doing all the stuff in education and in healthcare. I wanted to try to create something that, like, a lot of other people would see and say, "Oh wow, this charity can actually survive. It can sustain itself without raising a bunch of VC, without going public," or any of those things that a for-profit entity would do. And, again, I just want to emphasize, like, I don't think that iPhones should be made [chuckles] by nonprofits or anything like that. I'm just saying, like, for the purpose of actually educating people, the incentives are not necessarily aligned when you're trying to get money from...especially when you're talking about people that 60% of people on earth live off less than $10 a day. Those people should be spending their money on food. They should be spending their money on shelter. They should be spending their money on family. They should not be spending money on online courses, in my humble opinion. Like, online courses should be freely available to those people. So, to some extent, freeCodeCamp, we want to make sure that everybody everywhere in the world has access to first-rate learning resources on math, programming, computer science, regardless of their ability to pay. So, that's kind of, like, the ideal logical [inaudible 12:19], I guess, of freeCodeCamp. We kind of live that. Like, we're really serious. We will never pay, well, anything on freeCodeCamp. We won't account email gate anything. We are, I guess, absolutist in the sense that we want all of freeCodeCamp's learning resources to be free for everyone. Because of that, it made sense to like, incorporate as a 501 (c)(3) public charity. And so, we're tax-exempt. And people who donate to freeCodeCamp they can, you know, deduct it from their U.S. taxes. If a large company or even a small startup...we've had lots of startups like New Relic, like Retool, we've had Postman, Hostinger, a whole lot of different startups and mid-sized tech companies, Pulumi, Appsmith, they've all given us these grants that we can use to develop courses. So, we can often develop courses incorporating those resources. But that's tax-exempt, right? They can deduct that from their U.S. taxes. So, it's a big incentive for other people to partner with us and for people to donate funds to us. And it allows us to have the interests aligned in the sense that only people who have, you know, free cash flow or who have disposable income those are the people that are supporting freeCodeCamp. For the people that are, you know, single parents or that are taking care of their aging relatives, or are already working two jobs, or are completely unemployed and don't have any funds to speak of that are using the public library computer to access freeCodeCamp, right? Or using freeCodeCamp on a $50 prepaid phone from Walmart or something like that, right? Like those people can still use freeCodeCamp, and we can have the people who do have resources subsidize everyone else. WILL: Wow. I absolutely love that because...and I wish freeCodeCamp was around whenever I was in, like, high school and, you know, the early 2000s because we just didn't have the resources because I grew up in a small town in Louisiana. And this could have been so beneficial to that community because, like you said, we didn't have the resources–someone to teach coding there. There was no developers around that town that I was in. So, I really appreciate that you're doing this for everyone. And I know for me even...so, when I reached out to you, I did it because I was excited because I've used freeCodeCamp so many times, so many times to learn just in my journey to become a senior developer. Like, freeCodeCamp was one of the resources that I used because, one, it was free. But it wasn't...I think sometimes you can get free resources, and it's not great quality almost. Like, it's almost like you're more confused than before. But with freeCodeCamp, it was very, very amazing quality. And it was very clear on what I was learning. Honestly, thank you for helping me grow as a developer, just, honestly, thank you for that. QUINCY: Absolutely, Will. I feel honored to have helped you. And, yes, we want to help all the kids who are growing up in rural Louisiana or...I'm from, you know, Oklahoma City, not, like, the biggest, most prosperous city in the United States. Like, I want to help all of my friends who growing up who were eating meals provided by the state school system or my older friends who are on disability. Like, I want to make sure that they have resources, too. And in the process of doing that, it's a privilege to also serve all the working software engineers like you out there who just need, like, a reference resource or, like, oh, I've heard about Bun JS or Tailwind CSS. Or something like, I'm going to watch this three-hour course where I'm going to learn how to do Flutter. Like, freeCodeCamp has a 37-hour Flutter course. So, we've got, like, all these courses on using OpenAI APIs and things like that, too, right? So, it's not just for beginners, but we definitely want to, like, first and foremost, we want to serve people who we're kind of, like, the resource of last resort for, if you want to think of it that way. Like, only freeCodeCamp can help these people. Sure, they can probably use some other free courses on YouTube. And there are lots of other blogs that publish good tutorials and stuff. But freeCodeCamp is like an organized effort, specifically to help those people in need. And just kind of a side benefit of it is that you know, more established, experienced devs like you also get kind of, like, some benefit out of it as well. WILL: Whenever you were a developer, and you decided to start freeCodeCamp, how many years of experience did you have? And how did you overcome impostor syndrome, not only as a developer but as a founder? Because I feel like just overcoming it as a developer is hard, but you were also, you know, like you said, you know, handling everything for freeCodeCamp. So, how did you do that? And kind of tell us about that experience. QUINCY: Yeah. So, I didn't really know what I was doing. I think most founders probably don't know what they're doing. And I think that's totally fine because you can learn while you're doing. And we live in the United States, which is a country that kind of rewards experimentation and does not punish failure as much as a lot of other cultures does. Even if you try really hard, you're going to learn a tremendous amount, and you're going to try your next project. And that's what I did. I tried...I launched several educational, like, open learning resource-type projects, and none of them made any dent at all [laughs] in the proverbial universe. Like, nobody cared. Like, I would go and, like, I'd be talking to people. And I'd be explaining, like, "Oh, this solves this problem that you have." And you could kind of tell, like, people would sign in one time just to be polite, but then they'd never sign in again. So, it was very tricky to get traction. And I read a bunch of books. And I went to a lot of founder-focused meetups in San Francisco Bay Area. I had, like, moved out to San Francisco, specifically to try to, like, kind of make up for my deficit, the fact that I didn't know anybody because I was from Oklahoma City. I didn't know anybody in tech. And I didn't have, like, a fancy, you know, pedigree from, like, Harvard, or Wharton, or something like that, right? Like, I went to, like, a state university, and I studied English, right? And [chuckles] so, I didn't even have, like, a CS degree or anything like that. So, I definitely felt like an impostor. I just had to kind of, like, power through that and be okay with that. And it's something a little bit easier for me to do because, you know, I'm a White guy with glasses and a beard. And, like, nobody's walking up saying, "Are you sure you're a developer?" Or like, "Are you in marketing?" You know, like, the typical kind of, like, slight that they may say to somebody who doesn't necessarily look like me. And so I didn't have to deal with any of that nonsense, but there was still a lot of just self-doubt that I had to power through. And I think that was a big advantage for me. It was just, like, I was kind of, like, at war with myself and my own confidence. In fact, I found the software development community, and especially the open-source community, to be incredibly uplifting and empowering. And, like, they want to see you win. They want you to sit down and build a really cool project over the weekend and in the hackathon and present it. And, you know, they want you to learn. They know that you know, everybody is going to learn at a different rate and that a lot of people are going to get discouraged and leave tech and just go back to working in whatever field they were working in before. And that's totally cool. But I do feel that they're there to support you and to encourage you. And there are lots of different events. There are lots of different communities. I recently listened to the founder of Women Who Code, who was on this very podcast [laughs], Giant Robots Smashing Into Giant Robots, the greatest podcast name of all time. And, you know, there are people out there that are working very hard to make it easier for folks to get into tech. I think that that has been a huge part. Even before freeCodeCamp, you know, there were Harvard professors–Stanford professors putting their entire coursework for free online. You could go to, like, different tech events around California, for example, where I was when I was learning to code. And there'd just be tons of people that were eager to, like, learn more about you and to welcome you. And there would be, you know, recruiters that would talk to you and say, "Well, you may not be ready yet, but, like, let's talk in six months," right? And so, there was kind of, like, that spirit of you're going to get there. It's just going to take a lot of time. Nobody was telling me, "Oh, learning to code is easy," [chuckles] because it's not easy. There were lots of people that were, like, "Learning to code is hard. But you've got this. Just stick with it. If I could be of help, let me know," people who would pair program with me to help me, like, improve my chops, people who would volunteer to, like, look at my projects and give design feedback, all those kinds of things. And I think you're going to find all those things on the web. You're going to find those things in the open-source community. freeCodeCamp has a forum where people volunteer their time and energy to help build one another up and help one another get unstuck on whatever projects they're working on, give feedback on projects. And so, I think, to a large extent, the very giving nature, I almost want to say, like, selfless nature, of the global software developer community that is what saved me. And that's what enabled me to transition into this field, even as a teacher in his 30s. VICTORIA: It's interesting you say that. Because I feel as someone who hires engineers and developers, I love people who have teaching backgrounds because it means they're five-star communicators [laughs]. And I think that you know, in your job, when you're pairing with other developers, or you're talking to clients, in our case, that communicating what you're working on and how you're thinking about something is, like, 50% of the job [laughs]. For freeCodeCamp, I saw you have 40,000 people have found jobs after completing courses on there. I hope you feel like you've really, like, established some success here already. But what's on the horizon? What are you looking forward to in the next six months or six years with freeCodeCamp? QUINCY: Yeah, I'll be happy to answer that. But I want to emphasize what you just said: communication is, like, half the job. That's something that thoughtbot has gotten really early on. And I'll tell you that thoughtbot Playbook was incredibly helpful for me as a software developer and also early on for freeCodeCamp's team. And I think a lot of teams make use of that open resource. So, thank you for continuing to maintain that and kind of drive home that communication really is...like, meetings are essential [chuckles]. And it's not always just, like, leave me alone and let me go back to my cubicle and code. You know, I like to quote the old joke that, you know, weeks of coding can save you hours of meetings because I really do believe that communication is core. So, to answer your question about where freeCodeCamp is headed in terms of what kind of impact we'd like to have, I feel like we're just getting started. I feel like pretty much every Fortune 500 company wants to become a tech company in some way or another. Everybody is pushing things to the software layer because software is infinitely reproducible. It's so much easier to maintain software or fix things in production. Like, you realize, oh, there's a big problem. Like, we don't have to recall all the cars back to the dealerships to go and open up the hood and fix this, you know, mechanical defect. If we're controlling all these things at the software layer, right? We can potentially just deploy a fix and tell people like, "Hey, version update [chuckles], you know, download this security patch," or whatever, right? So, there are so many different things that you can do with software. I feel like the potential growth of the field of software and the number of software developers that the world will ultimately need...currently, we've got maybe 30 or 40 million developers on earth that are professional paid-to-code people. But I think that number is going to increase dramatically over the next 50 years or so. And I'll go ahead and address the elephant in the room [laughs] because pretty much everybody asks me this question like, "Don't you think that, like, tools like large language models like GPT-4 and things are going to obviate the need for so many developers?" And I think they're going to make individual developers more productive. But if you think about what code is, it's really extremely explicit directions for how to do something, whether you're using, you know, machine code, or you're using a scripting language like Python, or you're using English, and you're talking directly to the computer like you would on Star Trek. Essentially, you have to have a really deep understanding of the problem. And you need to know exactly what needs to be done in exactly what sequence. You may not need to manipulate bytecode like you would back in the '70s. But you are going to need to understand the fundamental problems, and you're going to need to be able to address it. So, I'm optimistic that the number of developers is going to continue to grow. The developers are going to continue to command more and more, I guess, respect in society. And they're going to continue to have more and more agency in what they want to do with their careers and have more and more options and, ultimately, be able to command higher compensation, be able to work remotely if they'd like. Developers will continue to be able to ascend through corporate hierarchies and become, you know, vice presidents or even executives like the CEO, right? If you look at a lot of the big tech companies, the CEO is a developer. And I think that that will continue. And the computer science degrees will continue to be extremely valuable. So, what is freeCodeCamp working on now that we think will further help people? Well, we're working on a free four-year computer science degree, a Bachelor in computer science, and there's also an associate in mathematics that we're developing. And those are going to be a progression of 40 university-level courses that have labs and have a substantial block of lectures that you'll watch. And then, we'll also have final examinations and everything. And we're developing that curriculum. We've got one of the courses live, and we're developing the second one, and eventually, we'll have all 40. It'll take till the 2030s. But we're going to have those. And then, once we have some longitudinal data about graduates and their success rates and everything, we are going to apply for the accreditation process, and we're going to get accredited as a university, right? Like, you can go through that process. Not a lot of organizations do that; not a lot of new universities are coming about in the 2020s. But it is something that can be done. And we've done a great deal of research, talked to a bunch of accreditors, talked to a bunch of university admins who go through the accreditation process. We think we can do it. So, again, very long-term goal. But when you're a 501(c)(3) public charity, you don't have to worry about freeCodeCamp getting acquired or all the things that would traditionally happen with, like, a for-profit company. You have a lot more leeway to plan really far. And you've got, like, this really broad mandate in terms of what you want to accomplish. And even if, you know, creating a university degree program in the 2030s would not be a profitable endeavor that, like, a rational shareholder value-maximizing corporation would embark upon, it is the sort of project that, you know, a charity like freeCodeCamp could do. So, we're going to do it. MID-ROLL AD: When starting a new project, we understand that you want to make the right choices in technology, features, and investment but that you don't have all year to do extended research. In just a few weeks, thoughtbot's Discovery Sprints deliver a user-centered product journey, a clickable prototype or Proof of Concept, and key market insights from focused user research. We'll help you to identify the primary user flow, decide which framework should be used to bring it to life, and set a firm estimate on future development efforts. Maximize impact and minimize risk with a validated roadmap for your new product. Get started at: tbot.io/sprint. VICTORIA: I think that's great. And, actually, you know, I got my master's in information technology and project management online way back when. So, I really like the availability of modern computer science bachelor's and master's being available at that low price point. And you're able to pursue that with the business structure you put in place. I'm curious to kind of go back to something you said earlier on how widely available it is and how you spread out across all these multiple countries. Were there any technical architecture decisions that you had to make along the way? And how did those decisions end up turning out? QUINCY: Absolutely. So, one of the things we did was we located servers all around the world. We're multi-cloud, and we've got servers in different data centers in, like, Singapore, Europe, Latin America, and we're trying to reduce latency for everybody. Another thing that we've done is, you know, we don't use, like, Google Translate to just translate all our different pages into however many languages are currently available on Google Translate; I think it's, like, more than 100. We actually have a big localization effort that's led primarily by volunteers. We have some staff that oversee some of the translation. And essentially, we have a whole bunch of people working at translate.freecodecamp.org and translating the curriculum, translating the tutorials into major world languages. Most prominently would be Spanish, Chinese, Japanese, Korean, Portuguese, Ukrainian. Like, all these different world languages, there's, like, a freeCodeCamp version for those, and you can go into the menu, and you can choose it. And it's actually, like, hand-translated by native speakers of that language who are developers. So, that's been another extremely, you know, time-intensive effort by the community. But we believe that, you know, the quality of the translations is really important. And we want that kind of human touch. We don't want kind of weird artifacts and typos that would be associated with machine translation. And we want to make sure that each of the challenges...because they're extremely tersely worded, again, communication is so important. If you go through the freeCodeCamp curriculum, we try to use as few words as absolutely necessary to effectively communicate what the task the learner needs to accomplish is, and we try to, just in time, teach them concepts. We don't want to present them with a big wall of text. Read this 20-page PDF to understand how, you know, CSS, you know, borders work or something like that. No, we're teaching, like, kind of, like, just in time, like, okay, let's write this line of code. Okay, great, the test passed. Let's go to this next one. This test isn't passing. Here is some contextual-specific hints as to why your code is not passing, why you're not able to advance, right? And we do projects [inaudible 30:30] to learn where we break everything down into steps. So, that's a lot of instructions that need to be very carefully translated into these different world languages to truly make freeCodeCamp accessible to everyone, regardless of whether they happen to be fortunate enough to grow up speaking English at a native level, right? I would say that's our main consideration is, like, the localization effort but also just having servers everywhere and doing everything we can to comply with, like, all the different data rules and privacy rules and everything of all these different countries. It's a lot of work, but in my humble opinion, it's worth it. WILL: I had, like, a two-part question because I wanted to loop back around. When you're talking about the free bachelor's program, one, does anything like that exist where you can get a bachelor-level program, and it's free? And then the second part is, how many countries are you in? QUINCY: Yeah, so currently, lots of governments in Europe, for example, will offer free degrees that are kind of subsidized by the state. There may be some other kind of degree equivalent programs that are offered that are subsidized by corporations. For example, if you work at Starbucks, I think you can get a degree from Arizona State University. And that's a great benefit that Starbucks offers to people. Arizona State University, of course, being one of the biggest public universities in the United States in terms of enrollment. As far as free degrees, though, in the United States, there's nothing like that where, like, literally anyone can just go and get a degree for free without needing to enroll, without needing to pay any sort of fees. There are tuition-free programs, but they still charge you fees for, like, taking exams and things like that. What I like to call ultra-low-cost degree providers–there's Western Governors University, and there's University of the People. And both of these are accredited institutions that you can go, and you can get a degree for, you know, $5,000, $10,000, $15,000. And it's a full-blown four-year degree. Now, that is amazing. I applaud those efforts. I've enjoyed talking to the folks at those different schools. I think the next step is to go truly free. There's nothing blocking you at all. You don't have to be banked. You don't have to have a credit card. You don't have to have any money. You can still get this degree. That's what we're chasing. And I think we'll get there, but it's just a lot of work. WILL: So, it's blowing my mind. It's just blowing me away because, like, you know, we talk about the student loan crisis, I would say. The impact if...when—I'm not going to say if—when you do this, the impact that can have on there, have you thought about that? And kind of, if you have, what has been your thoughts around that? QUINCY: Yeah, so there are $1.7 trillion in outstanding student loans in the United States. That's money that individual people, most of whom don't make a ton of money, right? Like, many of those people didn't actually finish the degree that they incurred the debt to pursue. Many of them had to drop out for a variety of different reasons or defer. Maybe they'll eventually finish those degrees. But as you can see from, like, the macroeconomic, educational, like, labor market data, like, having a partial degree doesn't make a big difference in terms of your earning power. You really need to finish the degree to be able to realize the benefits of having spent all that time studying, and a lot of people haven't. So, yes, there are, like, a lot of people out there that went to medical school, for example, and they're working as physicians. And they are going to eventually be able to pay that off because they're doctors, and they're commanding a great compensation, right? And they've got tons of career options. But if you studied English like I did and you incurred a whole lot of student debt, it could take a very long time for you to make enough money as a teacher, or as, like, a grant writer, or working at a newspaper, or something like that. Like, it can take you years to pay it off. And, in the meantime, it's just continuing to accumulate interest in your, you know, you might be a very diligent person who pays their student loan bill every single month, and yet, you could see that amount, the total amount that you owe continuing to grow despite this. That's just the nature of the time value of money and the nature of debt. And I thank my lucky stars that I went to school back in, like, 2000. Like, my tuition was $1,000 a semester, right? I mean, it's incredible. But that was, like, at a state school, like, a public university in the middle of Oklahoma. And it's not, like, a university you've heard of. It's basically, like, the cheapest possible option. I think community colleges can make a huge dent. I always implore people to think more about community colleges. I've talked with so many people on the freeCodeCamp podcast who were able to leverage community colleges and then transition into a, you know, research university, like a state school, and finish up their degree there. But they saved, like, basically half their money because they were paying almost nothing to attend the community college. And in California especially, the community colleges are just ridiculously worth it. Like, you're paying a few hundred dollars a course. I mean, it's just incredible value. So, I think the community college system is going to play a big role. But my hope is that, you know, freeCodeCamp can thrive. And it'll take us years for people to realize because if you go on, like, Google Ads and you try to run a Google Ad for, like, any sort of educational-related topic, anything related to higher education, it's, like, hundreds of dollars per click because there are all these for-profit universities that make a tremendous amount of money from getting people who just came back from serving in the military and getting, like, huge chunks of their GI Bill, or getting, like, all these federal subsidies, any number of things. Or basically just tricking families into paying huge amounts of money when they could have attended a much more sensible public university, you know, a private nonprofit university that doesn't charge an arm and a leg. So, I think that we are going to have an impact. I just want to say that I don't think that this is a panacea. It's going to take many years for freeCodeCamp to be adopted by a whole lot of people. It will take a long time for employers to look at the freeCodeCamp degree and say, "Oh, this is comparable to a computer science degree from..." say, Ohio State, or UT Austin, or something like that, right? Like, it's going to be a long time before we can get that level of buy-in. I don't want anybody listening to say, "Oh, I'd love to get a computer science degree. I'm just going to hold out and get the degree from freeCodeCamp." Like, my humble advice would be: go to a community college, then go to a state school. Get that four-year computer science degree. It is worth its weight in gold. But you don't want to accumulate a lot of debt. Just try to like, minimize your debt in the meantime. And, hopefully, over time, you know, the free model will prove out, and it'll just be a whole bunch of alumni supporting freeCodeCamp. And that's the dream is that, like, you know, Michael Bloomberg gave a billion dollars to Johns Hopkins University, a billion dollars. Like, Johns Hopkins never needs to charge tuition again with a billion dollars. They can just basically operate their institution off the interest from that, right? And lots of institutions...like, Harvard has, I don't know, like, 60-plus billion dollars in their endowment, right? So, the idea would be freeCodeCamp continues to get this, you know, huge alumni network of people who are doing great and who went to freeCodeCamp and who basically donate back in. And then, we can essentially have the deep pockets subsidizing everybody else who's just at the beginning of their careers who don't have a lot of earning power. You know, when I was a teenager, when I was in my 20s, I worked at convenience stores. I worked at Taco Bell. I did all kinds of, like, literally showing up at 6:00 a.m. to mop the grocery store-type jobs, right? And that is not a path to being able to afford an education in 2023. University tuition is out of control. It's, like, ridiculously high. It's grown way faster than inflation for decades. So, what can we do to alleviate that pressure? In my humble opinion, we just need to come up with free options and support ultra-low-cost options that are already out there. VICTORIA: I was going to ask, but you might have already answered this question somewhat. But I get this question a lot for people who are interested in getting into tech, whether they should get a computer science degree or go to a bootcamp. And I think you've mentioned all the positive things about getting a degree. I'm curious if, in your degree program, you would also tailor it more to what people might expect in a modern tech market and industry in their first job. QUINCY: Yeah. So, the way that we're developing our degree program is we essentially did, like, an analysis of the top 20 computer science programs in the United States: Carnegie Mellon, Berkeley, Stanford, MIT, all those schools that you would think of as being, like, really good computer science programs. And we basically drew a best-fit line through all their course offerings and looked at all their textbooks and everything that they cover. And, essentially, we're teaching a composite of those top 20 programs. Now, there are some things that, surprisingly, those programs don't offer, such as a course on ethics. It's something like 13% of those degree programs require an ethics course. And I think every developer should take a developer ethics course, or at least some sort of philosophy course to, like, understand what does it mean to be a good person? [laughs] Like, what is, you know, an anti-pattern? What is Blackhat user experiences? [laughs] I'm like, when should I, like, raise my hand during a meeting to say like, "Hey, should we really be doing this?" You know. So, ethics–security courses–I was surprised that not very many of those degree programs offer a course in information security, which I believe should be required. So, I'm kind of editorializing a little bit on top of what the composite says. But I feel very strongly that, you know, our degree program needs to have those courses. But in general, it's just everything that everybody else is teaching. And yes, like, a coding bootcamp...I've written a lot about coding bootcamps. I wrote, like, a Coding Bootcamp Handbook, which you can just Google, like, "Coding bootcamp book" or something like that, probably then you can find it. But, essentially like, those programs are usually private. Even if it's at a big, public university, it's often run by a big, private for-profit bootcamp chain. I don't want to say, like, all bootcamps are a bad deal, but buyer beware [laughs]. Frankly, I don't think that you can learn everything you need to know to be a software engineer within the compressed timelines that a lot of those bootcamps are operating under. There's a reason it takes four years to get a computer science degree because: there's a tremendous amount of math, programming, computer science, engineering knowledge that you need to cultivate. And you can absolutely get a developer job without a computer science degree. I don't have a computer science degree [chuckles], and I worked as a software engineer, right? And I know plenty of people who are doing that that didn't even go to college, right? People who were truckers or people who were doing construction work who just sat down and hit the books really hard and came out the other side being able to work as a software developer. But it is going to be vastly easier for you if you do have a computer science degree. Now, if you're in your 30s, if you've got kids, if you've got a whole lot of other obligations, should you go back to school? Maybe not. And so, it's not cut and dry, like, oh, just drop whatever you're doing and go back to...The situation is going to be nuanced. If you've already got a job working as a developer, should you go back and get a CS degree? Probably not. Maybe you can get your employer to pay for you to go to, like, a CS master's program, for example. There are a lot of really good online master's degree programs. Like, Georgia Tech has a master's in computer science that is very affordable, and it's very good. Georgia Tech is one of the best computer science programs in the United States. So, definitely, like, everybody's situation is going to be different. And there's no blanket advice. I would just be very wary of, like, anybody who's talking to you who wants your money [laughs]. freeCodeCamp will never want your money for anything. Like, we would love to have your donation long after you're a successful developer. You turn around and, like, send the elevator back down by donating to freeCodeCamp. But just be skeptical and, like, do your research and don't buy into, like, the marketing speak about, like, being able to get a job immediately. "Oh, it's easy. Anybody can learn to code." Like, I do believe any sufficiently motivated person can learn to code. But I also believe that it's a process that can take years, especially if you're doing the safe thing and continuing to work your day job while you learn these skills over a much longer period of time. I don't believe learning in a compressed kind of bootcamp...like, if you think about, you know, bootcamp in the military, like, this is, like, you're getting shipped away, and you're doing nothing but, like, learning these skills and everything like that. And I don't think that that's right for programming, personally [laughs]. I think there's a reason why many of these programs have gone from 9 weeks to 12 weeks to 6 months. Some of them might be, like, an entire year now. It's because it's them kind of admitting that, like, oh, there's quite a bit to learn here, and it's going to take some time. And there's diminishing returns to learning a whole bunch of hours in a day. I think you'll make much better gains studying programming 1 hour a day for 365 days than you'll make studying, you know, 8 hours a day for, like, two months or something like that if that makes sense. I'm not sure if the math works out there. But my point is, it's totally fine, and it's actually quite optimal to just work your day job, take care of your kids, spend time with your parents, you know, do all those things, hang out with friends and have a social life, all those things in addition to just having programming be one of those things you're working on in the background with your mornings or your evenings. WILL: Tell us a little bit about your podcast. Yeah, tell us kind of what's the purpose of it and just the history of it. QUINCY: Yeah. Well, I learned from the best. So, I'm a longtime listener of this podcast, of course. My friend, Saron Yitbarek, hosts CodeNewbie, which is an excellent podcast, the Changelog, which is an open-source podcast. I've had a great time interviewing the Changelog hosts and being on their show several times. So, I basically just learned as much as I could, and then I just went out and started interviewing people. And so, I've interviewed a lot of devs. I've interviewed people that are, like, learning to code driving Uber. I've interviewed the founder of Stack Overflow [chuckles], Jeff Atwood. I'm going to interview the founder of Trello in a few weeks when I'm back out in New York City. And I do my interviews in person. I just have my mobile studio. When I'm in San Francisco–when I'm in New York, I just go around and do a bunch of interviews and kind of bank them, and then I edit them myself and publish them. And the goal is just to give people exposure to developers. What are developers thinking? What are developers talking about? What do developers care about? And I try to hit, like, a very broad range of developers, try to talk to as many women as possible and, you know, striving for, like, 50% representation or better on the podcast. And I talk to a lot of people from different countries, although that's a little harder to do when you're recording in person. I may break down and do some over Zencastr, which is a tool we used in the past. I just like the spontaneity and the fun of meeting with people in person. But yeah, it's just like, if you are looking for, like, long-form, some of these are, like, two-and-a-half-hour long discussions, where we really delve into people's backstory and, like, what inspired them to become a developer, what they're learning along the way, how they feel about different aspects of software development. Like, for example, earlier, Will, you mentioned impostor syndrome, which is something I think virtually everybody struggles with in some capacity, you know, the freeCodeCamp podcast, tune in [chuckles] and subscribe. And if you have any feedback for me, I'd love to hear it. I'm still learning. I'm doing my best as a podcast host. And I'm constantly learning about tech as it evolves, as new tools come out, as new practices are pioneered. There's entire new technologies, like large language models, that actually work. And, I mean, we've had those since, like, the '60s, like, language models and stuff, but, like, only recently have they become incredibly impressive, exploring these tools and exploring a lot of the people behind them. VICTORIA: Okay, great. Do you have any questions for me or Will? QUINCY: Yeah. What inspired you all to get involved in tech, in...I don't know if somebody...did somebody at thoughtbot actually approach you and say, "Hey, we want you to run this"? Or was it something where like, "I'd love to run this"? Like, because podcasting is not easy. You're putting yourself out there. You're saying things that are recorded forever [laughs]. And so, if you say something really naive or silly or something like that, that's kind of always there, right? It takes a certain amount of bravery to do this. What got you into hosting this podcast? VICTORIA: For me, I mean, if I go way back before getting into tech, my mom she got her undergraduate degree in horticulture to become a florist, and then realized she couldn't make any money off that and went back to school for computer science. And so, she taught me how to use a computer really early on. And when I was in school, I had started in architecture, and then I wanted to change into business intelligence. But I didn't want to apply to the business school, so I got a degree in economics and a job at the IT help desk. And then from there, I was able to kind of transition into tech as a teacher, which was oddly enough...my first job in tech was training a 400-person program how to do, like, version management, and peer reviews [laughs], and timekeeping. And the reason I got the job is a friend from rock climbing introduced me, and he's like, they're like, "Oh, well, you train people how to rock climb. You can train people how to, like, do this stuff." [laughs] I'm like, oh, okay, that sounds great. But anyways, I worked my way up into project management and ended up getting my masters in IT. And when I came to thoughtbot, I had just moved to California, and I wanted to rebuild my network. I had a big network in D.C., organizing meetups and DevOps D.C., Women Who Code, teaching people, and communicating. And I ran a very small podcast there with a friend. So, when I joined thoughtbot, a podcast was a great way to just meet different people, expand my network, give people something to talk to me about when I go to events [laughs] that's not just, like, let me sell you some DevOps work. For me, it's been really fun to just reach out to people that we admire in the community and hear their story, and a little bit about them, and what advice they have for themselves or for other people. And, usually, that ends up benefiting me as well. So, it's been very fun for me. QUINCY: So, your less conventional path into tech combined with your own experience doing podcasting, it sounds like you were a natural choice for hosting a podcast. VICTORIA: Right. And I think I said before we started the show I didn't realize that it was such a well-loved and long-running podcast [laughs] [inaudible 49:01]. But I think we've really come into our own a little bit with hosting, and it's been super fun to work with Will and Chad on it as well. QUINCY: Awesome. And, Will, what's your story, man? How did you get onto the coveted Giant Robots Smashing into Giant Robots podcast? WILL: I actually went to college for sports medicine, and I was on track to go to med school, but my senior year...which I wish I would have had this conversation with myself a lot earlier, didn't have to do the hard work that I did at undergraduate. But my senior year, I was like, why am I really going to med school? And, honestly, it was more for the money, for the...yeah, more for the money. I just wanted to get paid a lot of money. I was like, yeah, that's not going to sustain me. I need to just pivot. So, I pivoted–started working at some nonprofits. And I ended up losing my job and got another job at Buckle, the clothing store, which was not a great fit for me. It helped me provide, but that's just not who I am. I'm not a fashion icon [laughs]. And then I changed to a travel agency insurance company, which it paid the bills. I wasn't passionate about it at all, and it paid the bills. And I was still struggling from losing my job. It was the first time that I lost my job. And my spouse came to me one day and is like, "All right, we're going to have the serious talk." And we almost flipped roles because that's usually who I am. I'm like, "All right, let's have a real talk. Let's get down to it." But I was just in a bad place. And she was like, "All right, we have to change because we can't keep going down this path." So, she was like, "If you had a choice to do anything, what would you want to do?" And I was like, "Well, probably something with computers and coding because I never had that opportunity when I was growing up because of the small town." And she looked at me, and she's like, "Go sign up right now." And I was like, okay, I'm going to sign up. When you mentioned that you made a transition in your 30s, I was around my 30s when I made the transition into coding. And so, it was a big transition. It was a big pivot for me because I'm having to learn, almost like I'm in college again, which was eight years ago. And so, it was just tough, and it wasn't new. So, that's how I got into coding. How I got on the podcast: I think I was talking to Chad and my direct report. I was just talking to them about challenging myself, and so it was multiple things. But, like, writing blog posts that was actually very challenging to me. I still don't like to write. It's not my favorite thing. Give me math or something like that or science; that's where I feel at home. But whenever, you know, you talk about writing and stuff, I can do it, and I'm decent at it. But it's not something that I feel comfortable in. The same thing with the podcast. The reason why I got on here is because I wanted to get out of my comfort zone and I wanted to grow. And I also wanted to get a chance to talk to people who's making a difference–who's impacting the world. So, like, this conversation today is like, yes, this is why I wanted to be a part of this podcast. So yeah, that's how I got started in tech and on the podcast. QUINCY: Awesome, Will. I'm thrilled that you went ahead and persevered and got into tech. It doesn't sound like it was a straight line, and it rarely is for people. But I'm always excited to meet somebody who learned to code in their 30s who stuck with it and is prospering as a result. So, congratulations to you. WILL: Thank you. VICTORIA: I'm still learning. I haven't quite got [inaudible 52:42] "Hello, worlds," multiple times [laughs]. But I don't really code every day for my job. I just kind of need to know what stuff is to be able to talk to people and in that way as a managing director. So, I appreciate Will bringing that backstory to this episode in particular. What else? Any other final takeaway that you'd like to leave our listeners with? QUINCY: I just want to thank you all for continuing to host this podcast, thoughtbot for operating the excellent Playbook, which, for anybody listening who is unfamiliar with, you should check it out. Again, it's just chock full of institutional wisdom accumulated over the years. And I hope everybody out there who's thinking about taking the plunge and learning coding or software development, or even, like, a semi-technical area of being in the software development process of learning visual design, learning how to do user experience research, any number of the different roles in tech, I hope you'll go for it. And I hope you will be as undaunted as you can. And just know that freeCodeCamp and the freeCodeCamp community we are in your corner. If you need to learn something, there's a very good chance that we have some tutorials written by thoughtful teachers who want people like you to come forward and like, read these resources and use it. There's a saying: like, the thing that programmers want the most is to have their code running in production somewhere. And, as a teacher, the thing you want the most is for you to have students, for you to have learning resources out there that are making a positive difference. So, again, I just count my blessings every day that I'm able to be involved in this community. I hope anyone listening who wants to transition into tech or to become even more technical gets involved in the freeCodeCamp community as well. We welcome you. WILL: Are there any opportunities? I know we talked about donations. So, for one, where can they go if they want to donate? And then also, like, you know, if developers want to get to be a part of the open-source network you have, is that possible? And how can they do that? QUINCY: Absolutely. So, if you want to donate to freeCodeCamp, just go to donate.freecodecamp.org. And you can become, like, a $5 a month donor, if you'd like. If you want to give a larger amount, I've got this article; just Google "How to Donate to freeCodeCamp." And I've written this detailed guide to, like, all the different ways like mailing checks. We had a gentleman who passed away and left a whole lot of money for freeCodeCamp in his will. So, those kinds of legacy gifts are definitely something. We've had people donate stock, like, any number of different things. I will bend over backwards to make sure that we can receive your donation, and we can give you a tax receipt so you can deduct it from your taxes as well if you'd like. And then, for contributing to freeCodeCamp, of course, we're an open-source project, and we welcome your code contributions. We have spent a great deal of time trying to make freeCodeCamp as hospitable as possible for both new developers who want to get involved and more senior developers who just want to do some, like, 20%-time type contributing to open-source projects: contribute.freecodecamp.org. So, again, donate.freecodecamp.org and contribute.freecodecamp.org. Those will take you where you need to go. VICTORIA: Wonderful. Thank you so much again, Quincy, for joining us. And you can subscribe to the show and find notes along with a complete transcript for this episode at giantrobots.fm. If you have questions or comments, email us at hosts@giantrobots.fm. And you can find me on Twitter @victori_ousg. WILL: And you could find me on Twitter @will23larry. This podcast is brought to you by thoughtbot and produced and edited by Mandy Moore. Thanks for listening. See you next time. ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com. Special Guest: Quincy Larson.
Quincy Larson, founder of freeCodeCamp, was in his 30's after he quit his job as a school director. After learning how to automate some of the tedious tasks that staff had to deal with, he realized how many people's lives could be improved if they learned how to solve problems with technology.He spent the next nine months learning to code before landing his first software engineering position. He gained a ton of practical experience on the job and started to think about how to create a path to get people to this point as quickly as possible.freeCodeCamp was the result.freeCodeCamp, using game design as its guiding instructional design philosophy, has learners coding with rapid feedback and frequent challenges or "mini bosses". The idea being that a learner can't iterate and improve to their max potential unless the feedback that corrects and guides them is immediate. The idea of the mini boss is to strengthen a learner's problem solving and stop them from getting too overconfident in their abilities.Coding is hard.And don't let anyone tell you different. Unless the learner understands just how frustrating and ambiguous programming is, they're going to hit a wall once they are confronted with a blank canvas. Now what?Iteration is critical to the platform as well. Since freeCodeCamp is well, free, they are able to make changes freely without having to worry about wasting anyone's money. This gives them the freedom to get feedback, iterate and build something truly niceQuincy goes over all of the above and more in this episode of the Badass Courses podcast. Tune in to learn more about the business model, course design, and history of freeCodeCamp.Show Notes and SocialsBadass: Making Users AwesomeTwitter - Quincy LarsonfreeCodeCamp
Quincy Larson is the founder of freeCodeCamp. A Non-Profit with a mission to make learning to code free to everyone. Currently over 40,000 freeCodeCamp graduates have gotten jobs in tech. Quincy worked as a teacher and a school director for a decade before learning to code at hackathons and makerspaces around California. He enjoys reading history books, taking his kids to the park, and trying to teach anyone who will listen to him. In this episode, we learn how Quincy went from being an English teacher to now running arguably the largest free coding non-profit in the world. We also learn the benefits and drawbacks of running a non-profit vs a private enterprise, and Quincy's secret technique for his incredible output. I loved this conversation with Quincy, he is down to earth and clearly cares about his mission. I'm so happy I could share this one with you.
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 Links DevDiscuss (sponsor) DevNews (sponsor) Appwrite (sponsor) VeroSkills (sponsor) New Relic (sponsor) Compiler (sponsor) freeCodeCamp Visual Basic Head First Programming Project Euler JavaScript Rust Visual Studio Code SQL PostgreSQL WordPress Python Django Node.js COBOL HTML CSS Git Linux C Learn to Code RPG – A Visual Novel Video Game Where you Learn Computer Science Concepts Web3 Jupyter Notebook The Coding Bootcamp Handbook: Immersive Engineering Programs Explained
FreeCodeCamp: Code for Free - Quincy Larson Too often we only see the end product. freeCodeCamp, is a household name for both new and experienced engineers. But what if I told you that Quincy had to go through multiple failures to eventually find a product that clicked. Join me in my conversation with Quincy where he shares his non-traditional software developer journey, why he started Free Code Camp, and what the future holds! Sponsors: 1 - TechRally - Practical Portfolio: Build a Portfolio Easily with HTML, CSS, and Themes 2 - Frontendeval - Land your next frontend gig with free modern software development exercises
Quincy Larson is founder and CEO of the non-profit software school freeCodeCamp, where anyone can go and lear to program for free. Quincy is making real change in the world. This episode was recorded for my podcast Lunch with LyleQuincy mentioned two corses on freeCodeCamp Learn Responsive Web Design by Building 20 Projects Relational Database Course
Listen to the Changelog: https://changelog.com/podcast/467Essays: https://www.swyx.io/LIP https://www.swyx.io/api-economy https://www.swyx.io/cloudflare-go TranscriptJerod Santo: So swyx, we have been tracking your work for years; well, you've been Learning in Public for years, so I've been (I guess) watching you learn, but we've never had you on the show, so welcome to The Changelog.Shawn Wang: Thank you. Long-time listener, first-time guest, I guess... [laughs]Adam Stacoviak: Yeah.Jerod Santo: Happy to have you here.Adam Stacoviak: Very excited to have you here.Jerod Santo: So tell us a little bit of your story, because I think it informs the rest of our conversation. We're gonna go somewhat deep into some of your ideas, some of the dots you've been connecting as you participate and watch the tech industry... But I think for this conversation it's probably useful to get to know you, and how you got to be where you are. Not the long, detailed story, but maybe the elevator pitch of your recent history. Do you wanna hook us up?Shawn Wang: For sure. For those who want the long history, I did a 2,5-hour podcast with Quincy Larson from FreeCodeCamp, so you can go check that out if you want. The short version is I'm born and raised in Singapore, came to the States for college, and was totally focused on finance. I thought people who were in the finance industry rules the world, they were masters of the universe... And I graduated just in time for the financial crisis, so not a great place to be in. But I worked my way up and did about 6-7 years of investment banking and hedge funds, primarily trading derivatives and tech stocks. And the more I covered tech stocks, the more I realized "Oh, actually a) the technology is taking over the world, b) all the value is being created pre-IPO, so I was investing in public stocks, after they were basically done growing... And you're kind of just like picking over the public remains. That's not exactly true, but...Jerod Santo: Yeah, tell that to Shopify...Shawn Wang: I know, exactly, right?Adam Stacoviak: And GitLab.Shawn Wang: People do IPO and have significant growth after, but that's much more of a risk than at the early stage, where there's a playbook... And I realized that I'd much rather be value-creating than investing. So I changed careers at age 30, I did six months of FreeCodeCamp, and after six months of FreeCodeCamp - you know, I finished it, and that's record time for FreeCodeCamp... But I finished it and felt not ready, so I enrolled myself in a paid code camp, Full Stack Academy in New York, and came out of it working for Two Sigma as a frontend developer. I did that for a year, until Netlify came along and offered me a dev rel job. I took that, and that's kind of been my claim to fame; it's what most people know me for, which is essentially being a speaker and a writer from my Netlify days, from speaking about React quite a bit.[04:13] I joined AWS in early 2020, lasted a year... I actually was very keen on just learning the entire AWS ecosystem. You know, a frontend developer approaching AWS is a very intimidating task... But Temporal came along, and now I'm head of developer experience at Temporal.Adam Stacoviak: It's an interesting path. I love the -- we're obviously huge fans of FreeCodeCamp, and Quincy, and all the work he's done, and the rest of the team has done to make FreeCodeCamp literally free, globally... So I love to see -- it makes you super-happy inside just to know how that work impacts real people.Like, you see things happen out there, and you think "Oh, that's impacting", but then you really meet somebody, and 1) you said you're a long-time listener, and now you're on the show, so it just really -- like, having been in the trenches so long, and just see all this over-time pay off just makes me really believe in that whole "Slow and steady, keep showing up, do what needs done", and eventually things happen. I just love that.Shawn Wang: Yeah. There's an infinite game mentality to this. But I don't want to diminish the concept of free, so... It bothers me a little, because Quincy actually struggles a lot with the financial side of things. He supports millions of people on like a 300k budget. 300k. If every single one of us who graduated at FreeCodeCamp and went on to a successful tech career actually paid for our FreeCodeCamp education - which is what I did; we started the hashtag. It hasn't really taken off, but I started a hashtag called #payitbackwards. Like, just go back, once you're done -- once you can afford it, just go back and pay what you thought it was worth. For me, I've paid 20k, and I hope that everyone who graduates FreeCodeCamp does that, to keep it going.Adam Stacoviak: Well, I mean, why not...?Shawn Wang: I'd also say one thing... The important part of being free is that I can do it on nights and weekends and take my time to decide if I want to change careers. So it's not just a free replacement to bootcamps, it actually is an async, self-guided, dip-your-toe-in-the-water, try-before-you-buy type of thing for people who might potentially change their lives... And that's exactly what happened for me. I kept my day job until the point I was like "Okay, I like enough of this... I'm still not good, but I like enough of this that I think I could do this full-time."Adam Stacoviak: I like the #payitbackwards hashtag. I wish it had more steam, I suppose.Jerod Santo: We should throw some weight behind that, Adam, and see if we can...Adam Stacoviak: Yeah. Well, you know, you think about Lambda School, for example - and I don't wanna throw any shade by any means, because I think what Austin has done with Lambda... He's been on Founders Talk before, and we talked deeply about this idea of making a CS degree cost nothing, and there's been a lot of movement on that front there... But you essentially go through a TL;DR of Lambda as you go through it, and you pay it after you get a job if you hit certain criteria, and you pay it based upon your earnings. So why not, right? Why not have a program like that for FreeCodeCamp, now that you actually have to commit to it... But it's a way. I love that you paid that back and you made that an avenue, an idea of how you could pay back FreeCodeCamp, despite the commitment not being there.Jerod Santo: Right.Shawn Wang: Yeah. And Quincy is very dedicated to it being voluntary. He thinks that people have different financial situations. I don't have kids, so I can afford a bit more. People should have that sort of moral obligation rather than legal obligation.I should mention that Lambda School is currently being accused of some fairly substantial fraud against its students...Jerod Santo: Oh, really?Shawn Wang: Yeah, it actually just came out like two days ago.Adam Stacoviak: I saw that news too, on Monday.Shawn Wang: Yeah. It's not evidenced in the court of law, it's one guy digging up dirt; let's kind of put this in perspective. But still, it's very serious allegations, and it should be investigated. That said, the business of changing careers and the business of teaching people to code, and this innovation of Income Share Agreements (ISA), where it actually makes financial sense for people to grow bootcamps and fund bootcamps - this is something I strongly support... Whether or not it should be a venture-funded thing, where you try to go for 10x growth every year - probably not... [laughs]Adam Stacoviak: Yeah...Jerod Santo: So after FreeCodeCamp you didn't feel quite ready, so you did do a bootcamp... Did you feel ready after that?Shawn Wang: [08:03] Yeah. [laughs] I did a reflection, by the way, of my first year of learning to code, so people can look it up... It's called "No zero days. My path to learning to code", and I think I posted it on Hacker News. And doing everything twice actually helped me a lot. Because before I came into my paid bootcamp, I had already spun up some React apps. I had already started to mess with WebPack, and I knew enough that I wasn't understanding it very much, I was just following the instructions. But the second time you do things, you have to space, to really try to experiment, to actually read the docs, which most people don't do, and actually try to understand what the hell it is you're doing. And I felt that I had an edge over the other people in my bootcamp because I did six months of FreeCodeCamp prior.Jerod Santo: So this other thing that you do, which not everybody does, is this Learning in Public idea... And you have this post, Learn in Public. You call it "The fastest way to learn", or the fastest way to build your expertise - networking, and second brain. I'm not sure what the second brain is, so help us out with that one... But also, why is learning in public faster than learning in private.Shawn Wang: Yeah. This is a reflection that came from me understanding the difference, qualitatively, between why I'm doing so well in my tech career versus my finance career. In finance, everything is private, meaning the investment memos that I wrote, the trade ideas that I had - they're just from a company; they're intellectual property of my company. In fact, I no longer own them. Some of my best work has been in that phase, and it's locked up in an email inbox somewhere, and I'll never see it again. And that's because tech is a fundamentally open and positive-sum industry, where if you share things, you don't lose anything; you actually gain from sharing things... Whereas in finance it's a zero-sum battle against who's got the secret first and who can act on it first.And I think when you're in tech, you should exploit that. I think that we have been trained our entire lives to be zero-sum, from just like the earliest days of our school, where we learn, we keep it to ourselves to try to pass the test, try to get the best scores, try to get the best jobs, the best colleges, and all that, because everything's positional. For you to win, others have to lose. But I don't see tech in that way, primarily because tech is still growing so fast. There's multiple ways for people to succeed, and that's just the fundamental baseline. You layer on top of that a bunch of other psychological phenomenon.I've been really fascinated by this, by what it is so effective. First of all, you have your skin in the game, meaning that a lot of times when your name is on the blog posts out there, or your name is on the talk that you gave, your face is there, and people can criticize you, you're just incentivized to learn better, instead of just "Oh, I'll read this and then I'll try to remember it." No, it doesn't really stick as much. So having skin in the game really helps.When you get something wrong in public, there are two effects that happen. First is people will climb over broken glass to correct you, because that's how the internet does. There's a famous XKCD comic where like "I can't go to bed yet." "Why?" "Someone's wrong on the internet. I have to correct them."Jerod Santo: Right.Shawn Wang: So people are incentivized to fix your flaws for you - and that's fantastic - if you have a small ego.Jerod Santo: I was gonna say, that requires thick skin.Shawn Wang: Yeah, exactly. So honestly -- and that's a barrier for a lot of people. They cannot get over this embarrassment. What I always say is you can learn so much on the internet, for the low, low price of your ego. If we can get over that, we can learn so much, just because you don't care. And the way to get over it is to just realize that the version that you put out today is the version you should be embarrassed about a year from now, because that shows that you've grown. So you divorce your identity from your work, and just let people criticize your work; it's fine, because it was done by you, before you knew what you know today. And that's totally fine.And then the second part, which is that once you've gotten something wrong in public, it's just so embarrassing that you just remember it in a much clearer fashion. [laughter] This built a feedback loop, because once you started doing this, and you show people that you respond to feedback, then it builds a feedback and an expectation that you'll do the next thing, and people respond to the next thing... It becomes a conversation, rather than a solitary endeavor of you just learning the source material.So I really like that viral feedback loop. It helps you grow your reputation... Because this is not just useful for people who are behind you; a lot of people, when they blog, when they write, when they speak, they're talking down. They're like "I have five years experience in this. Here's the intro to whatever. Here's the approach to beginners." They don't actually get much out of that.[12:17] That's really good, by the way, for beginners; that's really important, that experts in the field share their knowledge. They don't see this blogging or this speaking as a way to level up in terms of speaking to their experts in their fields. But I think it's actually very helpful. You can be helpful to people behind you, you can be helpful to people around you, but you can actually be helpful to people ahead of you, because you're helping to basically broadcast or personalize their message. They can check their messaging and see - if you're getting this wrong, then they're getting something wrong on their end, docs-wise, or messaging-wise. That becomes a really good conversation. I've interacted with mentors that way. That's much more how I prefer to interact with my mentors than DM-ing and saying "Hey, can you be my mentor?", which is an unspecified, unpaid, indefinitely long job, which nobody really enjoys. I like project-based mentorship, I like occasional mentorship... I really think that that develops when you learn in public.Adam Stacoviak: I've heard it say that "Today is the tomorrow you hope for."Shawn Wang: Wow.Adam Stacoviak: Because today is always tomorrow at some point, right? Like, today is the day, and today you were hoping for tomorrow to be better...Jerod Santo: I think by definition today is not tomorrow...Adam Stacoviak: No, today is the tomorrow that you hoped for... Meaning like "Seize your moment. It's here."Jerod Santo: Carpe diem. Gotcha.Adam Stacoviak: Yeah, kind of a thing like that.Shawn Wang: I feel a little shady -- obviously, I agree, but also, I feel a little shady whenever I venture into this territory, because then it becomes very motivational speaking-wise, and I'm not about that. [laughs]Adam Stacoviak: Kind of... But I think you're in the right place; keep showing up where you need to be - that kind of thing. But I think your perspective though comes from the fact that you had this finance career, and a different perspective on the way work and the way a career progressed. And so you have a dichotomy essentially between two different worlds; one where it's private, and one where it's open. That to me is pretty interesting, how you were able to tie those two together and see things differently. Because I think too often sometimes in tech, especially staying around late at night, correcting someone on the internet, you're just so deeply in one industry, and you have almost a bubble around you. You have one lens for which you see the world. And you've been able to have multi-faceted perspectives of this world, as well as others, because of a more informed career path.Jerod Santo: Yeah. When you talk about finance as a zero-sum game, I feel like there's actually been moves now to actually open up about finance as well; I'm not sure if either of you have tracked the celebrity rise of Cathie Wood and Ark Invest, and a lot of the moves that she's doing in public. They're an investment fund, and they will actually publish their moves at the end of every day. Like, "We sold these stocks. We bought these stocks." And people laughed at that for a while, but because she's been successful with early on Bitcoin, early with Tesla, she's very much into growth stocks - because of that, people started to follow her very closely and just emulate. And when she makes moves now, it makes news on a lot of the C-SPANs and the... Is C-SPAN the Congress one? What's the one that's the finance one...?Shawn Wang: CNBC?Jerod Santo: CNBC, not C-SPAN. And so she's very much learning in public. She's making her moves public, she's learning as she goes, and to a certain degree it's paid off, it's paid dividends in her career. Now, I'm not sure if everyone's doing that... When you look at crypto investors, like - okay, pseudonymous, but a lot of that stuff, public ledgers. So there's moves that are being made in public there as well. So I wonder if eventually some of that mentality will change. What do you think about that?Shawn Wang: [15:45] It's definitely changed for -- there's always been celebrity investors, and people have been copying the Buffett portfolio for 30 years. So none of that is new. What is new is that Cathie Wood is running an ETF, and just by way of regulation and by way of innovation, she does have to report those changes. [laughs] So mutual funds, hedge fund holdings - these have all been public, and people do follow them. And you're always incentivized to talk your book after you've established your position in your book...Jerod Santo: Right, but you establish it first.Shawn Wang: ...so none of that has changed. But yeah, Cathie has been leading an open approach...Jerod Santo: Is it the rate of disclosure perhaps that's new? Because it seems like it's more real-time than it has historically...Shawn Wang: Yeah. I mean, she's running an ETF, which is new, actually... Because most people just run mutual funds or hedge funds, and those are much more private. The other two I'll probably shout out is Patrick O'Shaughnessy who's been running I guess a fund of funds, and he's been fairly open. He actually adopted the "learn in public" slogan in the finance field, independently of me. And then finally, the other one is probably Ted Seides, who is on the institutional investor side of things. So he invests for universities, and teachers pensions, and stuff like that. So all these people - yeah, they've been leading that... I'm not sure if it's spreading, or they've just been extraordinarily successful in celebrity because of it.Adam Stacoviak: This idea of "in public" is happening. You see people too, like -- CopyAI is building in public... This idea of learning in public, or building in public, or exiting in public... Whatever the public might be, it's happening more and more... And I think it's definitely similar to the way that open source moves around. It's open, so it's visible to everyone. There's no barrier to see what's happening, whether it's positive or negative, with whatever it is in public. They're leveraging this to their advantage, because it's basically free marketing. And that's how the world has evolved to use social media. Social media has inherently been public, because it's social...Jerod Santo: Sure.Adam Stacoviak: Aside from Facebook being gated, with friends and stuff like that... Twitter is probably the most primary example of that, maybe even TikTok, where if I'm a creator on TikTok, I almost can't control who sees my contact. I assume it's for the world, and theoretically, controlled by the algorithm... Because if I live in Europe, I may not see content in the U.S, and the algorithm says no, or whatever. But it's almost like everybody is just in public in those spaces, and they're leveraging it to their advantage... Which is an interesting place to be at in the world. There was never an opportunity before; you couldn't do it at that level, at that scale, ten years ago, twenty years ago. It's a now moment.Jerod Santo: Yeah. Swyx, can you give us an example of something learned in public? Do you basically mean like blog when you've learned something, or ask questions? What does learning in public actually mean when it comes to -- say, take a technology. Maybe you don't understand Redux. I could raise my hand on that one... [laughter] How could I learn that in public?Shawn Wang: There are a bunch of things that you can try. You can record a livestream of you going through the docs, and that's useful to maintainers, understanding "Hey, is this useful or not?" And that's immediately useful. It's so tangible.I actually have a list -- I have a talk about this on the blog post as well... Just a suggestion of things you can do. It's not just blogging. You can speak, you can draw comics, cheatsheets are really helpful... I think Amy Hoy did a Ruby on Rails cheatsheet that basically everyone has printed out and stapled to their wall, or something... And if you can do a nice cheatsheet, I think that's also a way for you to internalize those things that you're trying to learn anyway, and it just so happens to benefit others.So I really like this idea that whatever content you're doing, it's learning exhaust, it's a side effect of you learning, and you just happen to put it out there; you understand what formats work for you, because you have abnormal talents. Especially if you can draw, do that. People love developers who can draw. And then you just put it out there, and you win anyway just by doing it. You don't need an audience. You get one if you do this long enough, but you don't need an audience right away. And you win whether or not people participate with you. It's a single-player game that can become a multiplayer game.Specifically for Redux - you know, go through source code, or go through the docs, build a sample app, do like a simple little YouTube video on it... Depending on the maturity, you may want to try to speak at a meetup, or whatever... You don't have to make everything a big deal. I'm trying to remove the perception from people that everything has to be this big step, like it has to be top of Hacker News, or something. No. It could just be helpful for one person. I often write blog posts with one persona in mind. I mean, I don't name that person, but if you focus on that target persona, actually often it does better than when you try to make some giant thesis that shakes the world...Adam Stacoviak: [20:22] Yeah. Too often we don't move because we feel like the weight of the move is just too much. It's like "How many people have to read this for me to make this a success for me?" You mentioned it's a learning exhaust... And this exhaust that you've put out before - has it been helpful really to you? Is that exhaust process very helpful to you? Is that ingrained in the learnings that you've just gone through, just sort of like synthesize "Okay, I learned. Here's actually what I learned"?Shawn Wang: Yeah. This is actually an opportunity to tie into that second brain concept which maybe you wanted to talk a little bit about. Everything that you write down becomes your second brain. At this point I can search Google for anything I've ever written on something, and actually come up on my own notes, on whatever I had. So I'm not relying on my memory for that. Your human brain, your first brain is not very good at storage, and it's not very good at search; so why not outsource that to computers? And the only way to do that is you have to serialize your knowledge down into some machine-readable format that's part of research. I do it in a number of places; right now I do it across GitHub, and my blog, and a little bit of my Discord. Any place where you find you can store knowledge, I think that's a really good second brain.And for Jerod, I'll give you an example I actually was gonna bring up, which is when I was trying to learn React and TypeScript - like, this goes all the way back to my first developer job. I was asked to do TypeScript, even though I'd never done it before. And honestly, my team lead was just like "You know TypeScript, right? You're a professional React dev, you have to know TypeScript." And I actually said no, and I started learning on day one.And what I did was I created the React to TypeScript cheatsheet, which literally was just copy-pasteable code of everything that I found useful and I wish I knew when I was starting out. And I've just built that over time. That thing's been live for three years now, it's got like 20,000 stars. I've taught thousands of developers from Uber, from Microsoft, React and TypeScript. And they've taught me - every time they send in a question or a PR... I think it's a very fundamental way of interacting, which is learning in public, but specifically this one - it's open source knowledge; bringing up our open source not just to code, but to everything else. I think that's a fundamental feedback loop that I've really enjoyed as well.Break: [22:31]Jerod Santo: One of the things I appreciate about you, swyx, is how you are always thinking, always writing down your thoughts... You've been watching and participating in this industry now for a while, and you've had some pretty (I think) insightful writings lately. The first one I wanna talk about is this API Economy post. The Light and Dark Side of the API Economy. You say "Developers severely underestimate the importance of this to their own career." So I figure if that's the case, we should hear more about it, right?Shawn Wang: [laughs] Happy to talk about it. So what is the API economy? The API economy is developers reshaping the world in their image. Very bold statement, but kind of true, in the sense that there is now an API for everything - API for cards, API for bank accounts, API for text, API for authentication, API for shipping physical goods... There's all sorts of APIs. And what that enables you to do as a developer is you can call an API - as long as you know REST or GraphQL these days, you know how to invoke these things and make these things function according to the rest of your program. You can just fit those things right in. They're a very powerful thing to have, because now the cost of developing one of these services just goes down dramatically, because there's another company doing that as a service for you.I wrote about it mainly because at Netlify we were pitching serverless, we were pitching static hosting, and we were pitching APIs. That's the A in JAMstack. But when I google "API economy", all the search results were terrible. Just horrible SEO, bland, meaningless stuff that did not speak to developers; it was just speaking to people who like tech buzzwords. So I wrote my own version. The people who coined it at Andreessen Horowitz, by the way, still to this day do not have a blog post on the API economy. They just have one podcast recording which nobody's gonna listen. So I just wrote my version.Jerod Santo: You're saying people don't listen to podcasts, or what?Shawn Wang: [laughs] When people are looking up a term, they are like "What is this thing?", and you give them a podcast, they're not gonna sit down and listen for 46 minutes on a topic. They just want like "Give me it, in one paragraph. Give me a visual, and I'm gonna move on with my day." So yeah, whenever I see an opportunity like that, I try to write it up. And that's the light side; a lot of people talk about the light side. But because it's a personal blog, I'm empowered to also talk about the dark side, which is that as much as it enables developers, it actually is a little bit diminishing the status of human expertise and labor and talent. So we can talk a little bit about that, but I'm just gonna give you time to respond.Jerod Santo: [28:05] Hm. I'm over here thinking now that you're not at Netlify, I'm curious - this is tangential, but what's your take on JAMstack now? I know you were a professional salesman there for a while, but... It seems like JAMstack - we've covered it for years, it's a marketing term, it's something we've already been doing, but maybe taking it to the next level... There's lots of players now - Netlify, Vercel etc. And yet, I don't see much out there in the real world beyond the people doing demos, "Here's how to build a blog, here's how to do this, here's my personal website", and I'm just curious... I'm not like down on JAMstack, but I just don't see it manifesting in the ways that people have been claiming it's going to... And maybe we're just waiting for the technology to catch up. I'd just love to hear what you think about it now.Shawn Wang: Yeah. I think that you're maybe not involved in that world, so you don't see this, but real companies are moving on to JAMstack. The phrasing that I like is that -- JAMstack has gone mainstream, and it's not even worth talking about these days, because it's just granted that that's an option for you... So PayPal.me is on the JAMstack, there's large e-commerce sites... Basically, anything that decouples your backend from your frontend, and your frontend is statically-hosted - that is JAMstack.I actually am blanking on the name, but if you go check out the recent JAMstack Conf, they have a bunch of examples of people who've not only moved to JAMstack, but obviously moved to Netlify, where they're trying to promote themselves.Jerod Santo: Sure, yeah.Shawn Wang: So yes, it's true that I'm no longer a professional spokesperson, but it's not true that JAMstack is no longer being applied in the enterprise, because it is getting adoption; it's moved on that boring phase where people don't talk about it.One thing I'll say - a thesis that I've been pursuing is that JAMstack is in its endgame. And what do I mean by that? There's a spectrum between the previous paradigm that JAMstack was pushing back on, which is the all-WordPress/server-render-everything paradigm, and then JAMstack is prerender-everything. And now people are filling in--Jerod Santo: In the middle.Shawn Wang: ...I'm gonna put my hands in the Zoom screen right now. People are filling that gap between fully dynamic and fully static. So that's what you see with Next.js and Gatsby moving into serverless rendering, partial rendering or incremental rendering... And there's a full spectrum of ways in which you can optimize your rendering for the trade-offs of updating your content, versus getting your data/content delivered as quickly as possible. There's always some amount of precompilation that you need to do, and there's always some amount of dynamicism that you have to do, that cannot be precompiled. So now there is a full spectrum between those.Why I say it's the end game is because that's it, there's nothing else to explore. It's full-dynamic, full-static, choose some mix in the middle, that's it. It's boring.Jerod Santo: Hasn't that always been the case though? Hasn't there always been sites that server-side render some stuff, and pre-render other things? You know, we cache, we pre-render, some people crawl their own websites once, and... I don't know it seems like maybe just a lot of excitement around a lot of things that we've been doing for many years.Shawn Wang: [laughs] So first of all, those are being remade in the React ecosystem of things, which a lot of us lost when a lot of the web development industry moved to React... So that's an important thing to get back.I mean, I agree, that's something that we've always had, pre-rendering, and services like that, caching at the CDN layer - we've always had that. There's some differences... So if you understand Netlify and why they're trying to push distributed persistent rendering (DVR), it's because caching is a hard problem, and people always end up turning off the cache. Because the first time you run into a bug, you're gonna turn off the cache. And the cache is gonna stay off.So the way that Netlify is trying to fix it is that we put the cache in Git, essentially. Git is the source of truth, instead of some other source of truth distributed somewhere between your CDN and your database and somewhere else. No, everything's in Git. I'm not sure if I've represented that well, to be honest... [laughter]Adam Stacoviak: Well, good thing you don't work for Netlify anymore. We're not holding you to the Netlify standard.Shawn Wang: [31:58] Exactly. All I can say is that to me now it's a good thing in the sense that it's boring. It's the good kind of boring, in the sense of like "Okay, there's a spectrum. There's all these techniques. Yes, there were previous techniques, but now these are the new hotness. Pick your choice." I can get into a technical discussion of why this technique, the first one, the others... But also, is it that interesting unless you're evaluating for your site? Probably not...Jerod Santo: Well, it does play into this API economy though, right? Because when you're full JAMstack, then the A is your most important thing, and when the A is owned by a bunch of companies that aren't yours - like, there's a little bit of dark side there, right? All of a sudden, now I'm not necessarily the proprietor of my own website, to a certain degree, because I have these contracts. I may or may not get cut off... There's a lot of concerns when everybody else is a dependency to your website.Shawn Wang: Yeah. So I don't consider that a dark side at all.Jerod Santo: No, I'm saying to me that seems like a dark side.Shawn Wang: Yeah, sure. This is the risk of lock-in; you're handing over your faith and your uptime to other people. So you have to trade that off, versus "Can you build this yourself? And are you capable of doing something like this, and are you capable of maintaining it?" And that is a very high upfront cost, versus the variable cost of just hiring one of these people to do it for you as a service.So what I would say is that the API economy is a net addition, because you as a startup - the startup cost is very little, and if you get big enough where it makes sense for you to build in-house - go ahead. But this is a net new addition for you to turn fixed costs into variable costs, and start with a small amount of investment. But I can hire -- like, Algolia was started by three Ph.D's in search, and I can hire them for cents to do search on my crummy little website. I will absolutely do that every single day, until I get to a big enough point where I cannot depend on them anymore, and I have to build my own search. Fine, I'll do that. But until then, I can just rely on them. That's a new addition there.Jerod Santo: One hundred percent. So what then do you think is the darker side? You mentioned it, but put a finer point on it.Shawn Wang: Yeah. The dark side is that there are people -- like, when I call an Uber ride, Uber is an API for teleportation, essentially. I'm here, I wanna go there. I press a button, the car shows up. I get in the car, get off, I'm there. What this papers over is that the API is calling real actual humans, who are being commoditized. I don't care who drives the car, I really don't. I mean, they may have some ratings, but I kind of don't care.Jerod Santo: That was the case with taxis though, wasn't it?Shawn Wang: That was the case with taxis, for sure. But there's a lot of people living below the API, who are economically constrained, and people who live above the API, developers, who have all the upside, essentially... Because the developers are unique, the labor is commoditized. My DoorDash pickers, my Instacart deliverers - all these are subsumed under the API economy. They're commodities forever, they know it, and there's no way out for them, unless they become developers themselves. There's a class system developing below and above the API. And the moment we can replace these people under the API with robots, you better believe we'll do that, because robots are way cheaper, and they complain less, they can work 24 hours, all this stuff.Jerod Santo: Yeah.Shawn Wang: So that's the dark side, which is, yeah, as a developer now - fantastic. I can control most parts of the economy with just a single API call. As a startup founder, I can develop an API for literally anything, and people will buy it. The downside is human talent is being commoditized, and I don't know how to feel about that. I think people are not talking enough about it, and I just wanna flag it to people.Jerod Santo: Yeah.Adam Stacoviak: So dark side could mean a couple things. One, it could mean literally bad; dark as synonymous with bad. Or dark as in shady. And we're not sure, it's obscured in terms of what's happening. And so let's use an Instacarter or a Dasher - to use their terminology. I happen to be a DoorDash user, so I know they're called Dashers; that's the only reason I know that. It's not a downplay, it's just simply what the terminology is...[35:59] You could say it's below the API, but I wonder, if you've spoken with these people, or people that live in what you call below the API, because I would imagine they're not doing that because they're being forced. Like, it's an opportunity for them.Shawn Wang: Oh, yeah.Adam Stacoviak: And I remember when I was younger and I had less opportunity because I had less "above the API" (so to speak) talent... And I do agree there's a class here, but I wonder if it's truly bad; that dark is truly bad, or if it's just simply obscure in terms of how it's gonna play out.Shawn Wang: This is about upside. They will never get to that six figures income with this thing.Adam Stacoviak: Not that job.Jerod Santo: No.Shawn Wang: It's really about the class system, which is the dark side. You don't want to have society splinter into like a serving class and whatever the non-serving class is. It's also about the upside - like, I don't see a way for these people to break out unless, they really just take a hard stop and just go to a completely different career track.Jerod Santo: Right.Adam Stacoviak: Here's where I have a hard time with that... I'm not pushing back on that you're wrong, I'm just wondering more deeply...Shawn Wang: Sure.Adam Stacoviak: I imagine at one point in my life I was a DoorDasher.Shawn Wang: Yeah.Adam Stacoviak: I washed dishes, I did definitely unique jobs at a young age before I had skill. And so the path is skill, and as long as we have a path to skill, which you've show-cased through FreeCodeCamp in your path, then I think that dark side is just simply shady, and not bad.Shawn Wang: Okay.Adam Stacoviak: And I'm just trying to understand it, because I was truly a DoorDasher before DoorDash was available. I washed dishes, delivered papers, I had servant-level things; I was literally a server at a restaurant before... And I loved doing that kind of work, but my talents have allowed me to go above that specific job, and maybe even the pay that came with that job. I've served in the military before, got paid terrible dollars, but I loved the United States military; it's great. And I love everybody who's served in our military. But the point is, I think the path is skill, and as long as we have a pathway to skill, and jobs that can house that skill and leverage that skill to create new value for the world, I just wonder if it's just necessary for society to have, I suppose, above and below API things.Jerod Santo: Until we have all the robots. Then there is nobody underneath. At that point it's all robots under the API.Shawn Wang: Yes, and that is true in a lot of senses, actually. Like, farming is mostly robots these days. You do have individual farmers, but they're much less than they used to be. I don't know what to say about that, shady or dark... I think it's just -- there's no career track. You have to go break out of that system yourself. Thank God there's a way to do it. But back in the day, you used to be able to go from the mailroom to the boardroom.Adam Stacoviak: I see.Shawn Wang: I see these stories of people who used to be janitors at schools become the principal. Companies used to invest in all their people and bring them up. But now we're just hiring your time, and then if you wanna break out of that system - good luck, you're on your own. I think that that lack of upward mobility is a problem, and you're not gonna see it today. It's a slow-moving train wreck. But it's gonna happen where you have society split in two, and bad things happen because of it.Adam Stacoviak: I mean, I could agree with that part there, that there definitely is no lateral movement from Dasher to CEO of DoorDash.Shawn Wang: It's just not gonna happen.Adam Stacoviak: Or VP of engineering at DoorDash. I think because there is no path, the path would be step outside of that system, because that system doesn't have a path. I could agree with that, for sure.Jerod Santo: Yeah. I mean, the good news is that we are creating -- there are paths. This is not like a path from X to Y through that system, but there are other alternate paths that we are creating and investing in, and as well as the API gets pushed further and further down in terms of reachability - we now have more and more access to those things. It's easier now, today, than it ever has been, because of what we were talking about, to be the startup founder, right? To be the person who starts at CEO because the company has one person in it, and they're the CEO. And to succeed in that case, and become the next DoorDash.Adam Stacoviak: True.Jerod Santo: So there are opportunities to get out, it's just not a clear line... And yeah, it takes perhaps some mentorship, perhaps ingenuity... A lot of the things that it takes to succeed anyway, so...Shawn Wang: [40:05] I'll give a closing note for developers who are listening, because you're already a developer... So the analogy is if you're above the API, you tell machines what to do; if you're below the API, machines tell you what to do. So here's the developer analogy, which is there's another division in society, which is the kanban board. If you're below the kanban board, the kanban board tells you what to do. If you're above it, you tell developers what to do. [laughs]Jerod Santo: There you go.Shawn Wang: So how do you break out of that class division? I'll leave it out to you, but just keep in mind, there's always layers.Jerod Santo: I love that.Adam Stacoviak: I love the discussion around it, but I'm also thankful you approached the subject by a way of a blog post, because I do believe that this is interesting to talk about, and people should talk about it, for sure. Because it provides introspection into, I guess, potentially something you don't really think about, like "Do I live below or above the APi?" I've never thought about that in that way until this very moment, talking to you, so... I love that.Break: [40:58]Jerod Santo: So another awesome post you have written lately is about Cloudflare and AWS. Go - not the language, the game Go... I know very little about the language, and I know even less about the game... And Chess... How Cloudflare is approaching things, versus how AWS and Google and others are... Given us the TL;DR of that post, and then we'll discuss.Shawn Wang: Okay. The TL;DR of that post is that Cloudflare is trying to become the fourth major cloud after AWS, Azure and GCP. The way they're doing it is fundamentally different than the other three, and the more I've studied them - I basically observed Cloudflare for the entire time since I joined Netlify. Netlify kind of is a competitor to Cloudflare, and it's always this uncomfortable debate between "Should you put Cloudflare in front of Netlify? Netlify itself is a CDN. Why would you put a CDN in front of another CDN?" Oh, because Netlify charges for bandwidth, and Cloudflare does not. [laughter]Jerod Santo: It's as simple as that.Shawn Wang: And then there's DDOS protection, all that stuff; very complicated. Go look up the Netlify blog post on why you should not put Cloudflare in front of Netlify, and decide for yourself. But Netlify now taking on AWS S3 - S3 is like a crown jewel of AWS. This is the eighth wonder of the world. It provides eleven nines of durability. Nothing less than the sun exploding will take this thing down... [laughs]Jerod Santo: Right? You know what's funny - I don't even consider us at Changelog AWS customers; I don't even think of us that way. But of course, we use S3, because that's what you do. So yeah, we're very much AWS customers, even though I barely even think about it, because S3 is just like this thing that of course you're gonna use.Shawn Wang: There's been a recent history of people putting out S3-compatible APIs, just because it's so dominant that it becomes the de-facto standard. Backblaze did it recently. But Cloudflare putting out R2 and explicitly saying "You can slurp up the S3 data, and by the way, here's all the cost-benefit of AWS egress charges that's what Matthew Prince wrote about in his blog post is all totally true, attacks a part of AWS that it cannot compromise on and just comes at the top three clouds from a different way, that they cannot respond to.[44:17] So I always like these analogies of how people play destruction games. I'm a student of destruction, and I study Ben Thompson and Clay Christensen, and that entire world, very quickly... So I thought this was a different model of destruction, where you're essentially embracing rather than trying to compete head-on. And wrapping around it is essentially what Go does versus chess, and I like -- you know, there's all these comparisons, like "You're playing 2D chess, I'm playing 3D chess. You're playing chess, I'm playing Go." So Cloudflare is playing Go by surrounding the S3 service and saying "Here is a strict superset. You're already a consumer of S3. Put us on, and magically your costs get lower. Nothing else about it changes, including your data still lives in AWS if you ever decide to leave us." Or if you want to move to Cloudflare, you've just gotta do the final step of cutting off S3.That is a genius, brilliant move that I think people don't really appreciate, and it's something that I study a lot, because I work at companies that try to become the next big cloud. I worked at Netlify, and a lot of people are asking, "Can you build a large public company on top of another cloud? Our second-layer cloud is viable." I think Vercel and Netlify are proving that partially it is. They're both highly valued. I almost leaked some info there... When does this go out? [laughs]Jerod Santo: Next week, probably...Shawn Wang: Okay, alright... So they're both highly valued, and - like, can they be hundred-billion-dollar companies? I don't know. We don't know the end state of cloud, but I think people are trying to compete there, and every startup -- I nearly joined Render.com as well. Every startup that's trying to pitch a second-layer cloud thesis is always working under the shadows of AWS. And this is the first real thesis that I've seen, that like "Oh, okay, you not only can credibly wrap around and benefit, you can actually come into your own as a fourth major cloud." So I'm gonna stop there... There's so many thoughts I have about Cloudflare.Jerod Santo: Yeah. So do you see that R2 then -- I think it's a brilliant move, as you described it... As I read your post, I started to appreciate, I think, the move, more than I did when I first read about it and I was like "Oh, they're just undercutting." But it seems they are doing more than just that. But do you think that this R2 then is a bit of a loss leader in order to just take a whole bunch of AWS customers, or do you think there's actually an economic -- is it economically viable as a standalone service, or do you think Cloudflare is using it to gain customers? What are your thoughts in their strategy of Why?Shawn Wang: This is the top question on Twitter and on Hacker News when they launch. They are going to make money on this thing, and the reason is because of all the peering agreements that they've established over the past five years. As part of the normal business strategy of Cloudflare, they have peering agreements with all of the ISPs; bandwidth is free for them. So... For them in a lot of cases. Again, I have to caveat all this constantly, because I should note to people that I am not a cloud or networking expert. I'm just learning in public, just like the rest of you, and here's what I have so far. So please, correct me if I'm wrong, and I'll learn from it.But yeah, I mean - straight on, it's not a loss leader. They plan to make money on it. And the reason they can is because they have worked so hard to make their cost structure completely different in AWS, and they've been a friend to all the other ISPs, rather than AWS consuming everything in its own world. Now you're starting to see the benefits of that strategy play out. And by the way, this is just storage, but also they have data store, also they have service compute, all following the same model.Jerod Santo: So what do you think is a more likely path over the next two years? Cloudflare --Adam Stacoviak: Prediction time!Jerod Santo: ...Cloudflare steals just massive swathes of AWS customers, or AWS slashes prices to compete?Shawn Wang: So I try not to do the prediction business, because I got out of that from the finance days... All I'm doing is nowcasting. I observe what I'm seeing now and I try to put out the clearest vision of it, so the others can follow.I think that it makes sense for them to be replicating the primitives of every other cloud service. So in 2017 they did service compute with Cloudflare Workers. In 2018 they did eventually consistent data store. In 2019 - website hosting; that's the Netlify competitor. In 2020 they did strongly-consistent data store, with Durable Objects. In 2021 object storage. What's next on that list? Go on to your AWS console and go shopping. And instead of seven different ways to do async messaging in AWS, probably they're gonna do one way in Cloudflare. [laughs]Adam Stacoviak: [48:34] A unified API, or something like that...Jerod Santo: Yeah, they'll just look at AWS' offerings, the ones they like the best, and do it that way, right?Shawn Wang: Yeah, just pick it up.Adam Stacoviak: Maybe the way to get a prediction out of you, swyx, might be rather than directly predict, maybe describe how you win Go.Shawn Wang: How you win Go...Adam Stacoviak: Yeah, what's the point of Go? How do you win Go? Because that might predict the hidden prediction, so to speak.Shawn Wang: Okay. For listeners who don't know Go, let me draw out the analogy as well. So most people are familiar with chess; individual chess pieces have different values and different points, and they must all support each other. Whenever you play chess, you need the Knight to support the pawns, something like that... Whereas in Go, you place your pieces everywhere, and they're all indistinguishable from each other. And it's more about claiming territory; at the end of the day, that's how you win Go, you claim the most territory compared to the others... And it's never a winner-take-all situation. Most likely, it's like a 60/40. You won 60% of the territory and your competitor has 40% of the territory. That's more likely a mapping of how cloud is gonna play out than chess, where winner-takes-all when you take the King. There's no King in the cloud, but--Jerod Santo: Are you sure...?Shawn Wang: ...there's a lot likely of territory claiming, and Cloudflare is really positioned very well for that. It's just part of the final realization that I had at the end of the blog post. And partially, how you take individual pieces of territory is that you surround all the pieces of the enemy and you place the final piece and you fill up all the gaps, such that the enemy is completely cut off from everything else and is surrounded. And that's what R2 does to S3 - it surrounds S3, and it's up to you to place that final piece. They call it, Atari, by the way, which is the name of the old gaming company, Atari. They have placed AWS S3 in Atari, and it's up to the customers to say "I'm gonna place that final piece. I'm gonna pay the cost of transferring all my data out of S3 and cut S3 off", and they cut off all the remaining liberties. So how do you win in Go? You claim the most amount of territory, and you surround the pieces of the enemy.Adam Stacoviak: Which, if you thought maybe that was oxygen, the territory, you might suck the oxygen away from them, so they can't live anymore, so to speak... And maybe you don't take it by killing it. Maybe you sort of suffocate it almost, if their space becomes small enough; if you take enough territory and it begins to shrink enough, it's kind of like checkmate, but not.Shawn Wang: Yeah. There's also a concept of sente in Go, which is that you make a move that the opponent has to respond to, which is kind of like a check, or checkmate -- actually, not; just the check, in chess. And right now, AWS doesn't feel the need to respond. Cloudflare is not big enough. Like, these are names to us, but let's just put things in numbers. Cloudflare's market cap is 36 billion, AWS' market cap is 1.6 trillion; this is Amazon's total market cap. Obviously, AWS is a subset of that.Jerod Santo: Sure.Shawn Wang: So your competitor is 40 times larger than you. Obviously, Cloudflare is incentivized to make a lot of noise and make themselves seem bigger than it is. But until AWS has to respond, this is not real.Adam Stacoviak: Nice.Jerod Santo: So as a developer, as a customer of potentially one or both of these... Let's say you have a whole bunch of stuff on S3 - I'm asking you personally now, swyx - and R2 becomes available... Is that a no-brainer for you, or is there any reason not to use that?Shawn Wang: You're just adding another vendor in your dependency tree. I think for anyone running silicon bandwidth, it is a no-brainer.Jerod Santo: Yeah. So over the course of n months, where n equals when they launch plus a certain number - I mean, I think this is gonna end up eventually on Amazon's radar, to where it's gonna start affecting some bottom lines that important people are gonna notice. So I just wonder - I mean, how much territory can Cloudflare grab before there's a counter-move? It's gonna be interesting to watch.Shawn Wang: [52:12] So Ben from Vantage actually did a cost analysis... Vantage is a startup that is made up former AWS Console people; they're trying to build a better developer experience on top of AWS. They actually did a cost analysis on the R2 move, and they said that there's probably a hundred billion dollars' worth of revenue at stake for Amazon. So if they start to have a significant dent in that, let's say like 40%, AWS will probably have to respond. But until then, there's nothing to worry about. That's literally how it is in Amazon; you have to see the numbers hit before you respond.Jerod Santo: Yeah. It hasn't even been a blip on the radar at this point, the key metrics to the people who are important enough to care are watching. You said you started watching all of these CDNs. Of course, you worked at Netlify... You take an interest in backends. There's something you mentioned in the break about frontenders versus backend, and where you've kind of been directing your career, why you're watching Cloudflare so closely, what you're up to now with your work... Do you wanna go there?Shawn Wang: Let's go there. So if you track my career, I started out as a frontend developer. I was developing design systems, I was working with Storybook, and React, and all that... Then at Netlify I was doing more serverless and CLI stuff. At AWS more storage and database and AppSync and GraphQL stuff... And now at Temporal I'm working on a workflow engine, pure backend. I just went to KubeCon two weeks ago...Jerod Santo: Nice!Shawn Wang: What is a frontend developer doing at KubeCon...?Adam Stacoviak: New territory.Shawn Wang: It's a frontend developer who realizes that there's a career ceiling for frontend developers. And it's not a polite conversation, and obviously there are exceptions to frontend developers who are VPs of engineering, frontend developers who are startup founders... And actually, by the way, there's a lot of VC funding coming from frontend developers, which is fantastic for all my friends. They're all getting funded, left, right and center. I feel left out. But there is a Career ceiling, in a sense that survey a hundred VPs of engineering, how many of them have backend backgrounds, and how many of them have frontend backgrounds? And given that choice, what's more likely for you and your long-term career progression? Do you want to specialize in frontend or do you want to specialize in backend? Different people have different interests, and I think that you can be successful in whatever discipline you pick. But for me, I've been moving towards the backend for that reason.Adam Stacoviak: Describe ceiling. What exactly do you mean when you say "ceiling"?Shawn Wang: Career ceiling. What's your terminal title.Jerod Santo: Like your highest role, or whatever. Highest salary, highest role, highest title...Adam Stacoviak: Gotcha.Shawn Wang: Like, straight up, how many VPs of engineering and CTOs have backend backgrounds versus frontend.Jerod Santo: Yeah. I mean, just anecdotally, I would agree with you that it's probably 8 or 9 out of 10 CTOs have -- is that what you said, 8 or 9?Shawn Wang: Yeah, yeah. So there's obviously an economic reasoning for this; it's because there's a bias in the industry that frontend is not real development, and backend is. And that has to be combated. But also, there's an economic reasoning, and I always go back to the economics part, because of my finance background... Which is that your value to the company, your value to the industry really depends on how many machines run through you. You as an individual unit of labor, how much money do you control, and how much machine process, or compute, or storage, or whatever runs through you. And just straight-up frontend doesn't take as much. [laughs] Yes, frontend is hard, yes, design is hard, yes, UX is crucially important, especially for consumer-facing products... But at the end of the day, your compute is being run on other people's machines, and people don't value that as much as the compute that I pay for, that I need to scale, and therefore I need an experienced leader to run that, and therefore that is the leader of my entire eng.Jerod Santo: I wonder if that changes at all for very product-focused orgs, where I think a lot of frontenders, the moves are into product design and architecture, and away from - not software architecture, but product design. And it seems like maybe if you compare - not VP of engineering, but VP of product, you'd see a lot of former frontenders.Shawn Wang: [56:03] Yeah.Jerod Santo: Maybe that's their path. Do you think that's --Shawn Wang: Totally. But you're no longer a frontend dev. You suddenly have to do mocks...Jerod Santo: Yeah, but when you're VP of engineering you're not a backend dev either.Shawn Wang: Yeah.Jerod Santo: So you're kind of both ascending to that degreeShawn Wang: Backends devs will never report to you, let's put it that way.Jerod Santo: Okay. Fair.Shawn Wang: [laughter] But somehow, frontend devs have to report to backend devs, for some reason; just because they're superior, or something. I don't know, it's just like an unspoken thing... It's a very impolite conversation, but hey, it's a reality, man.Jerod Santo: So do you see this personally, or do you see this by looking around?Shawn Wang: Yeah.Jerod Santo: Yeah. You felt like you had reached a ceiling.Shawn Wang: Well, again, this is very impolite; there's a ton of ways to succeed, and there are definitely exceptions. Emily Nakashima at Honeycomb - former frontend person, now VP of engineering. I don't know, I could have done that. I have interest in backend and I'm pursuing that. So I will say that - this is a soft ceiling, it's a permeable ceiling. It's not a hard ceiling.Jerod Santo: Sure.Shawn Wang: But there's a ceiling though, because you can see the numbers.Adam Stacoviak: What is it in particular the VP of engineering does that would make a frontender less likely to have that role? What specifically? I mean, engineering is one of the things, right? Commanding the software... Which is not necessarily frontend.Jerod Santo: Well, frontend is also an engineering discipline.Adam Stacoviak: I guess it kind of depends on the company, too. Honeycomb is probably a different example.Shawn Wang: I haven't been a VP of engineering, so I only have some theories. I suggest you just ask the next VP of engineering that you talk to, or CTO.Adam Stacoviak: Yeah.Jerod Santo: Yeah. That'd be a good one to start asking people.Adam Stacoviak: What do you do here? What is it you do here?Shawn Wang: What is it you do here?Jerod Santo: Exactly.Shawn Wang: [laughs]Adam Stacoviak: Well, I just wondered if there was a specific skillset that happens at that VP of engineering level that leads more towards a backender being more likely than a frontender to get hired into the role.Shawn Wang: I think there's some traditional baggage. Power structures persist for very long times... And for a long time UX and frontend was just not valued. And we're like maybe five years into the shift into that. It's just gonna take a long time.Jerod Santo: I agree with that. So tell us what you're up to now. You said you're doing workflows... I saw a quick lightning talk; you were talking about "React for the backend." So you're very much taking your frontend stuff into the backend here, with React for the backend. Tell us about that.Shawn Wang: Let's go for it. So at Netlify and at AWS I was essentially a developer advocate for serverless. So this is very cool - it does pay-as-you-go compute, and you can do a lot of cool stuff with it. But something that was always at the back of my mind bothering me, that serverless does not do well, is long-running jobs. It just does not do well. You have to chain together a bunch of stuff, and it's very brittle; you cannot test it... It's way more expensive than you would do in a normal environment.Jerod Santo: Yeah.Shawn Wang: And it made me realize that in this move to take apart everything and make everything as a service, we have gained scalability, but we've lost basically everything else. And what I was trying to do was "How do we reconstruct the experience of the monolith? What are the jobs to be done?" When you break it down, what does a computer do for you, and what is not adequately addressed by the ecosystem?I went through the exercise... I wrote a blog post called "Reconstructing the monolith, and I actually listed it out." So what are the jobs of cloud for a computer? You want static file serving, you want functions, you want gateway, you want socket management, job runners, queue, scheduler, cold storage, hot storage. There's meta jobs like error logging, usage logging, dashboarding, and then edge computing is like a unique to cloud thing. But everything else, you can kind of break it up and you can locate it on one machine, or you can locate it on multiple machines, some of them owned by you, some of them not owned by you.The thing that serverless -- that had a whole in the ecosystem was job running. Not good. Basically, as an AWS developer right now, the answer is you set a CloudWatch schedule function, and you pull an endpoint, and that should read some states from a database, and check through where you are, and compute until the 15-minute timeout for Lambda, and then save it back in, and then wait for the next pull, and start back up again. Super-brittle, and just a terrible experience; you would never want to go this way.[01:00:08.13] The AWS current response to that is AWS Step Functions, which is a JSON graph of what happens after the other, and this central orchestrator controls all of that. I think we could do better, and that's eventually what got me to temporal. So essentially, this blog post that I wrote - people found me through that, and hired both our head of product and myself from this single blog post. So it's probably the highest ROI blog post I've ever written.Jerod Santo: Wow. That's spectacular.Shawn Wang: It's just the VC that invested in Temporal. So what Temporal does is it helps you write long-running workflows in a doable fashion; every single state transition is persisted to a database, in idiomatic code. So idiomatic Java, idiomatic Go, idiomatic JavaScript, and PHP. This is different from other systems, because other systems force you to learn their language. For Amazon, you have to learn Amazon States Language. For Google Workflows - Google Workflows has a very long, very verbose JSON and YAML language as well.And these are all weird perversions of -- like, you wanna start simple; JSON is very simple, for doing boxes and arrows, and stuff like that... But you start ending up having to handwrite the AST of a general-purpose programming language, because you want variables, you want loops, you want branching, you want all that god stuff. And the best way to model asynchronous and dynamic business logic is with a general-purpose programming language, and that's our strong opinion there.So Temporal was created at Uber; it runs over 300 use cases at Uber, including driver onboarding, and marketing, and some of the trips stuff as well. It was open source, and adopted at Airbnb, and Stripe, and Netflix, and we have all those case studies on -- DoorDash as well, by the way, runs on the Uber version of Temporal.Jerod Santo: There you go, Adam.Shawn Wang: And yeah, they spun out to a company two years ago, and we're now trying to make it as an independent cloud company. And again, the
We interview Quincy Larson, the founder and a teacher at freeCodeCamp.org. freeCodeCamp is a nonprofit community that helps millions of people learn to code 100% for free helping thousands of people find their first coding job. Quincy shares how the organization got started, built a strong volunteer base and grew its amazing educational library course by course. Learn more and support at: https://www.freecodecamp.org/
One of the best ways to build a successful business as an indie hacker is to teach people a valuable skill. So in this episode, I sat down to talk to you two of the best educators that I know. Darrell Silver (@darrellsilver) is the founder of Thinkful (an online learning service that's helped thousands of students get high paying jobs in tech) and Quincy Larson (@ossia), the founder of freeCodeCamp. We’ll get into some of the best ways for indie hackers to get started as educators and the economics behind an education business.
This week we’re talking about the future of freeCodeCamp with Quincy Larson and what it’s taken to build it into the non-profit unicorn that it is. They’re expanding their Python section into a full-blown data science curriculum and they’ve launched a $150,000 fundraiser to make it happen with 100% dollar-for-dollar matching up to the first $150,000 thanks to Darrell Silver. As you may know, we’re big fans of Quincy and the work being done at freeCodeCamp, so if you want to back their efforts as well, learn more and donate.
This week we’re talking about the future of freeCodeCamp with Quincy Larson and what it’s taken to build it into the non-profit unicorn that it is. They’re expanding their Python section into a full-blown data science curriculum and they’ve launched a $150,000 fundraiser to make it happen with 100% dollar-for-dollar matching up to the first $150,000 thanks to Darrell Silver. As you may know, we’re big fans of Quincy and the work being done at freeCodeCamp, so if you want to back their efforts as well, learn more and donate.
Recientemente freeCodeCamp, una de las comunidades de aprendizaje tecnológico más importantes en internet, anunció las versiones en español y en chino de sus contenidos. Este anuncio fue recibido con entusiasmo entre el público hispanohablante, ya que freeCodeCamp es un recurso imprescindible para aprender desarrollo web. Gracias a sus contenidos cada día miles de personas en todo el mundo pueden aprender de manera abierta y sin coste, habilidades relacionadas con las tecnologías de internet y conocimientos técnicos. Para hablar sobre esta iniciativa de freeCodeCamp, por indicación del propio fundador Quincy Larson, invitamos al podcast a Rafael Hernández, coordinador desde Los Ángeles, del equipo encargado de la comunidad hispanohablante. Con Rafael discutimos entre otras cosas: El origen de freeCodeCamp y sus principales objetivos. Las perspectivas con respecto al idioma español y a otros idiomas en la comunidad de freeCodeCamp. Requisitos y solicitudes para participar como voluntario. El trabajo de los voluntarios y su coordinación. Financiación de freeCodeCamp y formas de donación. Certificaciones de freeCodeCamp y valoraciones a nivel profesional. Colaboraciones con empresas tecnológicas y acuerdos de colaboración. Edición y gestión de contenidos. Futuro y acciones próximas de freeCodeCamp. En esta charla Rafael Hernández nos cuenta cosas muy relevantes sobre la organización de esta comunidad. Desde su propia historia y la de Quincy Larson, además también de todo lo relacionado con los contenidos y la dirección estratégica de freeCodeCamp en la parte de idiomas. Agradecer la atención y la disponibilidad de Rafael y Quincy para realizar esta entrevista. Os animamos a visitar los enlaces que nos deja Rafael y a participar en la comunidad de aprendizaje en línea de freeCodeCamp. Por último, animar a todo el mundo a crear contenidos en español o a colaborar con el proyecto con alguna aportación económica.
Recientemente freeCodeCamp, una de las comunidades de aprendizaje tecnológico más importantes en internet, anunció las versiones en español y en chino de sus contenidos. Este anuncio fue recibido con entusiasmo entre el público hispanohablante, ya que freeCodeCamp es un recurso imprescindible para aprender desarrollo web. Gracias a sus contenidos cada día miles de personas en todo el mundo pueden aprender de manera abierta y sin coste, habilidades relacionadas con las tecnologías de internet y conocimientos técnicos. Para hablar sobre esta iniciativa de freeCodeCamp, por indicación del propio fundador Quincy Larson, invitamos al podcast a Rafael Hernández, coordinador desde Los Ángeles, del equipo encargado de la comunidad hispanohablante. Con Rafael discutimos entre otras cosas: - El origen de freeCodeCamp y sus principales objetivos. - Las perspectivas con respecto al idioma español y a otros idiomas en la comunidad de freeCodeCamp. - Requisitos y solicitudes para participar como voluntario. - El trabajo de los voluntarios y su coordinación. - Financiación de freeCodeCamp y formas de donación. - Certificaciones de freeCodeCamp y valoraciones a nivel profesional. - Colaboraciones con empresas tecnológicas y acuerdos de colaboración. - Edición y gestión de contenidos. - Futuro y acciones próximas de freeCodeCamp. En esta charla Rafael Hernández nos cuenta cosas muy relevantes sobre la organización de esta comunidad. Desde su propia historia y la de Quincy Larson, además también de todo lo relacionado con los contenidos y la dirección estratégica de freeCodeCamp en la parte de idiomas. Agradecer la atención y la disponibilidad de Rafael y Quincy para realizar esta entrevista. Os animamos a visitar los enlaces que nos deja Rafael y a participar en la comunidad de aprendizaje en línea de freeCodeCamp. Por último, animar a todo el mundo a crear contenidos en español o a colaborar con el proyecto con alguna aportación económica. Enlaces recomendados en nuestra página web https://republicaweb.es/podcast/freecodecamp-ya-habla-espanol-con-rafael-hernandez/
Quincy Larson was a school director for six years before he started to learn to code so that he could create tools for making schools more efficient. His own journey into learning to code was long and winding and he recognized the need for a single-track curriculum for newbie developers and that led to the creation of freeCodeCamp. Links Quincy Larson - Twitter freeCodeCamp.org freeCodeCamp Forum chat.freecodecamp.org Contributing to freeCodeCamp freeCodeCamp News devdocs crowdin loopback Google Cloud Platform Python Books theWARofART Movies/TV Shows Halt and Catch Fire Music coderadio.freecodecamp.org OsProgramadores Site do OsProgramadores Grupo do OsProgramadores no Telegram Canal do Youtube do OsProgramadores Twitter do Marcelo Pinheiro
Quincy Larson might be responsible for at least one very important part of your career: the beginning. That's because Quincy is the founder of freeCodeCamp, a non-profit teaching millions of people to code.In this and the last episode we talk all about what it means to be a beginner.✨ Sponsor: SquareSquare's Terminal API makes payments easy, whether in person, in-app, or both. Process payments on every platform imaginable. Get started today at https://developertea.com/square
Quincy Larson might be responsible for at least one very important part of your career: the beginning. That's because Quincy is the founder of freeCodeCamp, a non-profit teaching millions of people to code.In this and the next episode we talk all about what it means to be a beginner.✨ Sponsor: SquareSquare's Terminal API makes payments easy, whether in person, in-app, or both. Process payments on every platform imaginable. Get started today at https://developertea.com/square
Half a million people per day use his website, working toward a computer programming certification. Find out why he’s offering it for free.
Originally published December 20, 2019. We are taking a few weeks off. We'll be back soon with new episodes.freeCodeCamp was started five years ago with the goal of providing free coding education to anyone on the Internet.freeCodeCamp has become the best place to begin learning how to write software. There are many other places that a software engineer should visit on their educational journey, but freeCodeCamp is the best place to start, because it is free, and there are no advertisements. For most people learning to code, the price of that education is important, because they are learning to code to build a new career. It's also important that a new programmer learns from an unbiased source of information, because an ad-supported environment will educate the new programmer towards products that they might not need.freeCodeCamp has not been easy to build. Building freeCodeCamp has required expertise in software engineering, business, media, and community development. The donation-based business model of freeCodeCamp doesn't collect very much money. Why would somebody build a non-profit when they could spend their time building a highly profitable software company?Quincy Larson is the founder of freeCodeCamp, and he joins the show for a special episode about his backstory and the journey to building the best place on the Internet for a new programmer to begin.
Originally published December 20, 2019. We are taking a few weeks off. We’ll be back soon with new episodes. freeCodeCamp was started five years ago with the goal of providing free coding education to anyone on the Internet. freeCodeCamp has become the best place to begin learning how to write software. There are many other The post freeCodeCamp with Quincy Larson (Summer Break Repeat) appeared first on Software Engineering Daily.
Originally published December 20, 2019. We are taking a few weeks off. We’ll be back soon with new episodes. freeCodeCamp was started five years ago with the goal of providing free coding education to anyone on the Internet. freeCodeCamp has become the best place to begin learning how to write software. There are many other The post freeCodeCamp with Quincy Larson (Summer Break Repeat) appeared first on Software Engineering Daily.
Originally published December 20, 2019. We are taking a few weeks off. We’ll be back soon with new episodes. freeCodeCamp was started five years ago with the goal of providing free coding education to anyone on the Internet. freeCodeCamp has become the best place to begin learning how to write software. There are many other The post freeCodeCamp with Quincy Larson (Summer Break Repeat) appeared first on Software Engineering Daily.
The post AMA 1: freeCodeCamp’s Quincy Larson answers founder and developer questions appeared first on This Week In Startups.
The post AMA 1: freeCodeCamp’s Quincy Larson answers founder and developer questions appeared first on This Week In Startups.
Emma, Divya, and Suz are joined by Quincy Larson from freeCodeCamp where they chat about virtual conferences. Are they better than in-person conferences? What are the differences? Let’s find out!
Emma, Divya, and Suz are joined by Quincy Larson from freeCodeCamp where they chat about virtual conferences. Are they better than in-person conferences? What are the differences? Let’s find out!
The post E1049: freeCodeCamp Founder Quincy Larson shares insights on democratizing developer skills, which programs to learn to land a coding job, if anyone can learn to code, maximizing earning potential & more! appeared first on This Week In Startups.
The post E1049: freeCodeCamp Founder Quincy Larson shares insights on democratizing developer skills, which programs to learn to land a coding job, if anyone can learn to code, maximizing earning potential & more! appeared first on This Week In Startups.
freeCodeCamp was started five years ago with the goal of providing free coding education to anyone on the Internet. freeCodeCamp has become the best place to begin learning how to write software. There are many other places that a software engineer should visit on their educational journey, but freeCodeCamp is the best place to start, The post freeCodeCamp with Quincy Larson appeared first on Software Engineering Daily.
In this special crossover episode, we celebrate 10 years of The Changelog. It's the home of the biggest podcast focused on open source, and a favorite of freeCodeCamp founder Quincy Larson. This 4-hour episode is actually 2 interviews: 1. For the first 2.5 hours, Quincy interviews Changelog co-hosts Adam Stacoviak and Jerod Santo about how they got into software development and podcasting, and the history of their legendary podcast. 2. Then we end with Adam and Jerod turning the tables and interviewing Quincy about the past and future of freeCodeCamp.org. If you haven't heard of The Changelog before, it is website that hosts a podcast about open source software. Each week they interview new developers from around the software galaxy and explore what makes those projects tick. Adam Stacoviak founded The Changelog exactly 10 years ago. And Jerod Santo joined as co-host 7 years ago. Together - across 370 episodes - they've interviewed everyone from programmer legends, to the maintainers of open source projects you may have never even heard of. Quincy has listened to hundreds of The Changelog episodes over the years, and credits The Changelog with giving him such a broad view of open source, and the philosophies of the developers who started these projects. These interviews were conducted in-person in Adam's Houston-based studio. If you haven't yet, you should subscribe to The Changelog podcast. They have a variety of shows. We recommend starting with their Master Feed, which lets you explore all of their shows: https://changelog.com/master And check out the special website they built to celebrate their 10 year anniversary: changelog.com/ten Follow Adam on Twitter: https://twitter.com/adamstac Follow Jerod on Twitter: https://twitter.com/jerodsanto And Quincy is: https://twitter.com/ossia
Today we have a very special show for you – we’re talking with Quincy Larson the founder of freeCodeCamp as part of a two-part companion podcast series where we each celebrate our 5 and 10 year anniversaries. This year marks 5 years for freeCodeCamp and 10 years for us here at Changelog. So make sure you check out the freeCodeCamp podcast next week when Quincy ships our episode to their feed. But, on today’s episode we catch up with Quincy on all things freeCodeCamp.
Today we have a very special show for you – we’re talking with Quincy Larson the founder of freeCodeCamp as part of a two-part companion podcast series where we each celebrate our 5 and 10 year anniversaries. This year marks 5 years for freeCodeCamp and 10 years for us here at Changelog. So make sure you check out the freeCodeCamp podcast next week when Quincy ships our episode to their feed. But, on today’s episode we catch up with Quincy on all things freeCodeCamp.
We are republishing a podcast from the freeCodeCamp Podcast as a weekend episode. Jeff Meyerson is the creator and host of the Software Engineering Daily podcast. Jeff grew up in Texas. He spent most of his childhood playing competitive strategy games like Magic: the Gathering. This lead him to making a lot of money – The post freeCodeCamp’s Quincy Larson interviews Jeff Meyerson appeared first on Software Engineering Daily.
After Quincy Larson taught himself to code, he wanted to make that same learning journey more accessible for others worldwide. So he founded freeCodeCamp! Here Quincy shares a glimpse of exciting changes coming soon to freeCodeCamp's curriculum, explains why fCC doesn't do deadlines, and dispels rumors about his background in... publishing? Sponsors:
Software engineer and “I’ll show it to you at hackday… chap”, Guy Cirino joins Lyle for a chat about hacking at Netflix, driving across Asia, high energy particle physics at CERN, and improving streaming video better for everyone.Netflix Stream Possible VideoNetflix Hack Day — Winter 2015 – Netflix TechBlog – MediumGeekSpeak About AR Tech: Martian Telescope Senses Wrecked TeslasGeekSpeak Episode: Engineering FlatBuffers Programing sans JSONTeleFlix - Full Blog PostThe real Hawkins National Labs from Stranger Things - BNL, the g-2 experimentScintillator - WikipediaCMS | CERNSuperconducting Super Collider - WikipediaMongol Rally - WikipediaThe Magic Modem: A Global Network Emulator – @ScaleBlog of Some Guy14quick.org - Final Fantasy 14 Done Quick for CharityWhat Is Extra Life? | Extra LifeFINAL FANTASY XIVExtra Life 2018 Live from Netflix HQ! - YouTubeGeekSpeak Episode: Ready Player OneFree Code Camp with Quincy LarsonRaspberry Pi Zero W - Raspberry PiTexas Instruments TI-99/4A - WikipediaNES Processor -> CPU - Nesdev wikiApplesoft BASIC Programming Reference Manual - Apple Computer : Free Download, Borrow, and Streaming : Internet Archive
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Panel: Dave Kimura Charles Max Wood Nate Hopkins Special Guest: Josh Justice In this episode of Ruby Rogues, the panelists talk with Josh Justice who is a developer, writer, and speaker. Josh streams JavaScript and web development on Friday’s at 2:00 PM (ET) here! The panelists and the guest talk about Josh’s background and frontend testing in Ruby. Check it out! Show Topics: 0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Dave, Nate, and myself are on the panel and our special guest is Josh Justice! I am developing a show about developer freedom and it’s called The DevRev. It will be streamed through YouTube, and I will record Friday afternoons. Check out Facebook, too! 2:11 – Josh: Thanks! I am happy to be here! 2:18 – Chuck: Introduce yourself, please! 2:24 – Josh: I have been a developer for about 14 years. I have used PHP and then got into Ruby and then frontend development. 2:46 – Chuck: You work for Big Nerd Ranch in Atlanta? 2:56 – Josh: Yep for the last 3-4 years! 3:15 – Chuck: Can you introduce the topic? 3:25 – The guest talks about Big Nerd Ranch and frontend development. Learn TDD is mentioned, too! Check it out here! 5:06 – Panel: How much bouncing do you do between React and Vue? 5:11 – Guest. 5:47 – Chuck: We need to get you on our podcast shows for React and Vue! It’s an approach that I am familiar with in Ruby – and Selenium what a pain! 6:16 – Guest: I’ve had a good experience with Cypress, actually! 7:47 – Guest: Panelist, can you share your experiences? 7:57 – Panel: Not bad experiences with testing, but now I am trying to minimize my use with JavaScript. 8:30 – Guest: I think there is a big push towards considering more server site rendering. 9:35 – Panel: What’s your recommendation to setup Cypress? 9:40 – Guest: Their docs are really great! They had some conference talks on how to set it up! 10:15 – Guest: Check out my talks about this topic. (Connect Tech 2018). 10:29 – Panel: I think Cypress is a pretty cool solution but one thing that left me confused is that you have to have an environment that is already stood-up and running. Is that accurate or has that changed? 11:00 – Guest: Can you clarify what you mean by a “running environment”? 11:04 – Panelist clarifies. 11:44 – Guest: Luckily for me I have something to say b/c I tried a week ago! 12:01 – Guest mentions Vue CLI 3. 14:38 – Panel: How can you test your code coverage? I want to know how much of my code coverage am I hitting? The applications are up and running, it’s not going through the files (per se), and is there anything that would indicate how good your coverage is with the Cypress test? 15:10 – Guest: Let me as a follow-up question: How do you approach it on the frontend? 15:24 – Panelist answers the guest’s question. 16:06 – The guest mentions Vue CLI 2 & 3. 18:31 – Chuck: Are you using the tool Istanbul? 18:36 – Guest: Yep Istanbul is the one! 18:54 – Chuck: I’ve heard some similar rumors, but can’t say. 19:02 – Panelist talks. 20:13 – Chuck: I have been working on a project and what doesn’t get test-coverage gets a candidate to get pulled-out. 20:40 – Guest: Talking about test-driven development... Guest: Have you read the original book? 21:02 – Guest: The book: “Effective Testing with RSpec 3” is updated information – check it out! The guest mentions his live stream on Friday’s. Check out the links found below! 23:57 – Panel: How is the stability with tests like Cypress with end-to-end tests? If you are testing with a login then the user has to be already created. Or what about a Twitter app – the user has to be created and not followed? How do you handle that? 24:22 – Guest: I think we are spoiled in the Rails world b/c of those... 24:53 – The guest answers the panelist’s question! 26:59 – Fresh Books! 28:07 – Guest: Does that help? 28:10 – Panel. 28:21 – Guest: I have been thinking about this, though, recently. Thinking about the contracts through the business. I have dabbled with native development and I see the cost that runs a native app. 30:21 – Panel: It’s refreshing to hear the new market’s demands. I truly haven’t seen an application that requires that. I have built some extensive applications and also very simple ones, too; the need for productivity. 31:17 – Guest mentions a talk at a conference. See here for that information! 31:43 – Guest: I have a friend who was a new developer and he really knows his stuff. He said that he didn’t know if he could be a full stack developer in the next 5-10 years. Wait a minute?! Guest: The freedom to create something that stands alone. Guest: Tom Dale is mentioned by the Guest. 33:35 – Panel: To choose Rails as a new developer (today) it’s not as easy as it was back in the day. Today you have Active Job, Action Cable and so many other components. It’s more complicated today then it was in the past. It could be overwhelming to a new developer. 35:00 – Chuck: I think a lot of that is the community’s fault and not Rails’ fault. 35:57 – Panel. 36:04 – Panel: The counter-argument could say that’s where server-less come in. 36:27 – Chuck: To some degree you can get away with it. You don’t have to worry about the infrastructure or anything else. 36:44 – Panel: Have you tried messing around with server-less functions with AWS? I have and...it’s not easy. There is not a good flow or good work flow in a server-less environment. 38:01 – Chuck: You can go to this website. It makes the setup easier b/c you are adding your Azure or AWS features. 38:30 – Panel: This topic, though, does tie back to the testing topic we were talking about earlier! 39:14 – Panel: Yeah that is why I haven’t gotten into server-less things. The Rails holistic approach is so appealing. 40:14 – Panel continues: I want to take smaller steps when it comes to technology! I want to move into things that we are laying down the tracks to make it easier travelable. That way we can consider the things we’ve learned in the past and help those in the future. 41:07 – Chuck: What are lacking then? What is the friction that is left? Seems like Cypress helped removed that but maybe not? 42:02 – Panelist mentions Cypress, Jest, Mocha, and others! 43:10 – Panel (continues): I am all about experimenting but I want to know all the reasons. What has changed and what hasn’t’ changed? 43:29 – Panel: There is an article written that talks about this topic. 43:59 – Guest mentions the video “Is TDD Dead?” (See links below.) 44:29 – Guest: I like brining thoughts together and taking his or her input and come up with my own thoughts. 46:32 – Guest (continues): The testing trophy is heavier on the top (picture of a trophy). Guest: I think the thing that draws me to unit testing is that... 47:37 – Guest: I am obsessed with testing. The guest gives a summary here! 48:15 – Chuck: We talked with Quincy Larson last week and it’s a really good take on what we are doing and what we are trying to accomplish with our tests. Check it out – it’s coming out soon! 49:05 – Panel: When you are younger into your career – the way you think about structuring your code – when you are comfortable you really don’t need that guidance. 50:00 – Guest: I would encourage folks who were new to coding to do the following... 51:36 – Guest: Think about WHY you are doing (what you are doing) and being able to articulate well what you are doing and why. 52:03 – Panel: There is no question – every time I test I am surprised how much it shapes my thinking about the code and how many bugs that I catch even in code that I thought was operating well. When you go too far though there is a fallacy there. 52:54 – Panel: Yes, testing is very important. I am a test-after-the-fact programmer. That is my self-key term. Don’t write 500-line methods b/c you won’t be able to test that. Don’t make it too abstract so have a common pattern that you will use. Have a lot of private methods that aren’t exposed to the API. 54:03 – Guest: Yes thinking about how to structure your code can be challenging at first but it gets easier. 55:58 – Chuck: I have had talks with Corey Haines about topics like this! 56:47 – Guest: Yes it can be helpful in consultancy now. 59:23 – Guest: Think about this: choosing what level to test at. 1:00:14 – Panel: It’s hard b/c it changes all the time per function or something else. There are tradeoffs with everything we do. 1:00:41 – Chuck: You are the consultant it depends doesn’t it? 1:00:51 – Picks! 1:00:55 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular Cypress Vue React VUE CLI 3 Jest.io Mocha.js GitHub: Istanbul The RSpec Book RR 068 Episode Ember CLI GitHub: Factory_Bot GitHub: VCR Big Nerd Ranch Big Nerd Ranch: Josh Justice / Team Manager The Bike Shed Keynote: Tom Dale @ EmberFest 2018 JSJ 291 Episode Serverless Article: Test-Induced Design Damage Video: Is TDD Dead? Music: Sub Conscious – Electronic / 2004 Music: Interloper / 2015 Disney Heroes: Battle Mode Google Play: Disney Heroes / Battle Mode Book Authoring Playlist Tom Dale’s Twitter Corey Haines’ Twitter Coding It Wrong Josh’s Twitter Josh’s GitHub Josh’s LinkedIn Josh’s Vimeo Video Sponsors: Sentry CacheFly Fresh Books Picks: Nate Phutureprimitive - Sub Conscious Carbon Based Lifeforms - Interloper Dave Dust collections system in Wood Shop Doctor Who - Theme Music Charles Authoring music Disney Hero Battles Josh Effecting Testing with RSpec 3 Growing Object-Oriented Software, Guided by Test XUnit Test Patterns Spectacle App Alfred App
Quincy Larson interviews Sacha Greif, who's a designer, developer, and prolific open source project creator. Sacha created the Vulcan.js framework, the Sidebar.io daily design newsletter, and so many other important projects in the developer community. Most recently, Sacha started the State of JavaScript survey, where he asks developers a ton of questions about which web development tools they use. He just finished the third annual survey, and soon he'll release the results from the more than 20,000 developers who took the survey. Sacha grew up in Paris. His grandparents were Jewish refugees who fled to France from Poland during World War II. Sacha's father was an author who wrote books about computers, and shared this passion with his son. Sacha has spent much of his adult life living abroad in China, Switzerland, and Japan. He and his wife currently live in Kyoto and they just had their first child. During this interview, Sacha talks about how he got his start as a professional developer in Beijing, then got deeper and deeper into user interface design. He shares how his passion for both of these disciplines resulted in him creating so many important open source projects. Sacha also talks about how he followed in his father's footsteps and wrote the "Discover Meteor" book - the most popular resource for Meteor.js - and how the book's financial success helped bankroll his other projects. Sacha Greif is one of the most prolific developers I know. And it was a blast getting to learn more about his coding journey. So without further ado, here's Sacha. Interview by Quincy Larson: https://twitter.com/ossia Sacha Greif on Twitter: https://twitter.com/SachaGreif Sacha's personal website with links to many of his projects: http://sachagreif.com/ Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02
Quincy Larson interviews Lyle Troxell, who's a senior software engineer at Netflix. Lyle has hosted his own technology radio show for the past 18 years, and now he hosts the official Netflix podcast, too. Lyle's parents were artists and a part of the 1960s hippy movement. Lyle didn't enjoy school, and in middle school he dropped out so he could focus on learning math and electronics. He eventually went to community college, got a 2-year degree, and did some basic web design work at a few companies during the dot com boom of the late 1990s. Lyle spent the next 11 years as a teacher and administrator at University of California in Santa Cruz. Eventually he decided he wanted get into software development. He was able to dust off his skills and through a remarkable series of events get a software engineer job at Netflix. Lyle and Quincy have known one another for years and had a lot to talk about, including the story behind how he built Apple co-founder Steve Wozniak's personal website. Interview by Quincy Larson: https://twitter.com/ossia Lyle Troxell on Twitter: https://twitter.com/lyle Lyle's 18-year running tech podcast: https://geekspeak.org The "Wat?" talk Lyle mentions: https://www.destroyallsoftware.com/talks/wat Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02
On today's episode, Quincy Larson interviews Ali Spittel. She's a Washington DC-based developer and artist. Ali runs the popular Zen of Programming blog, where she writes about design, data visualization, and other programming topics. She talks about how her interests in political journalism lead to a passion for data and data journalism. Ali also talks about her love of Python. She reads the poem "The Zen of Python" and talks about how it has influenced her programming style and her way of thinking about software development. Interview by Quincy Larson: https://twitter.com/ossia Ali Spittel on Twitter: https://twitter.com/aspittel Zen of Programming website: https://zen-of-programming.com/ Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02
On today's episode, Quincy Larson interviews Laurence Bradford. She's the creator the LearnToCodeWith.me blog and podcast, and the Newbie Coder Warehouse Facebook group. As a college student, Laurence was so technologically illiterate that her school made her take a remedial computer class. This made her doubt that she had a future in technology. And she ended up studying Economics instead, and moving to Asia to work in economic development. Years later, Laurence decided to learn some basic web development skills. She found a help-wanted ad on Craigslist and landed her first gig as a freelance developer. Since then, Laurence has worked as a developer and a product manager. She's written extensively about technology and programming in Forbes and on her blog. And she's interviewed nearly 100 developers on her LearnToCodeWith.me podcast. Interview by Quincy Larson: https://twitter.com/ossia Laurence Bradford on Twitter: https://twitter.com/learncodewithme LearnToCodeWith.me Website: https://learntocodewith.me Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02
On today's episode, Quincy Larson interviews Alexander Kallaway, the creator of the #100DaysOfCode challenge. In addition to talking about the 100DaysOfCode challenge itself - a challenge which, at this point, thousands of people have taken - Alex and I also talk about how he and his wife moved from Russia to Canada to advance their careers, and how he used freeCodeCamp to gain the skills he needed to get his first developer job. Alex is an incredibly motivated person, and in this interview we'll delve into how he keeps himself so fired-up day after day. Interview by Quincy Larson: https://twitter.com/ossia Alexander Kallaway on Twitter: https://twitter.com/ka11away 100DaysOfCode Website: https://www.100daysofcode.com/ Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02
Dylan is a software engineer, YouTuber, and creator of several programming courses. Quincy talks to him about how he dropped out of college, drove from California to Florida, and hustled to get his first developer job. On top of that, you'll learn how he was able to leverage a few job offers to get a massive raise at his current company. Quincy Larson: https://twitter.com/ossia Dylan's YouTube channel: https://fcc.im/2NypFgS Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Description: On today's episode of the freeCodeCamp podcast, Quincy Larson interviews Dylan Israel. Dylan is a software engineer, a YouTuber, and the creator of several programming courses. We talk about how he dropped out of college, drove from California to Florida, and hustled to get his first developer job. We also talk about how important his YouTube channel has been in helping him land job offers. And Dylan shares some details of his latest job search, which resulted in 4 job offers. Dylan was ultimately able to use those job offers a bargaining chip so he could get a massive raise at his current company without having to change jobs.
One day, Sean was working as a route setter at a rock climbing gym in Tennessee. The next, he was driving to San Francisco, without a plan, to start his career in tech. This is the story of his challenging, winding, but ultimately successful path to his first job as a software engineer. Written by Sean Smith: https://twitter.com/bonham_000 Read by Abbey Rennemeyer: https://twitter.com/abbeyrenn Original article: https://fcc.im/2JQwSXI Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Transcript: One year ago, I was working part-time as a route setter at a rock climbing gym in Tennessee. Today I’m working as a software engineer at a cyber-security startup in San Francisco. My journey to this point has been unforgettable and life-changing. And yet as challenging as everything was, I think that any sufficiently-motivated person could do the same. Knowledge has become democratized. All you need to reach a competitive level in your field is time and dedication. This is especially true for the field of software engineering. In 2016, my life was falling apart When I started learning to code in 2016, I guess you could say my life was falling apart. I’d gone to college as a pre-med student, with degrees in biochemistry and anthropology. But I quickly became disenchanted with science and medicine, and left college with no clear path. I started working as a routesetter at rock climbing gyms for almost 2 years, but things were not going so well. I knew I was in need of a big change. I had been putting off learning to code for a long time, but I knew this was what I wanted to do. Finally, on my birthday in 2016, I committed to learning to code. I didn’t look back. At this point in time, I was vaguely familiar with the coding bootcamps that have become quite ubiquitous over the last few years. Luckily, I quickly discovered freeCodeCamp. When I realized that finishing their curriculum entailed writing software for non-profit organizations, I promptly joined and resolved that I would finish freeCodeCamp’s open-source curriculum before even considering a bootcamp. freeCodeCamp rapidly became the core of my education. I supplemented it with many other resources, such as podcasts, tutorials, open-courseware, and healthy doses of documentation and Stack Overflow when needed. Typical days involved me working through freeCodeCamp challenges and projects, which allowed me to progressively improve my skills. When sitting and writing code became unproductive, I would absorb material through other channels: audio, video, and so on. I moved back and forth between different learning methods, which was very useful in maintaining a strong level of engagement and focus. This was basically my process, and it allowed me to dedicate many hours to learning. Here it is by the numbers (roughly estimated): Total duration learning: less than 12 months Total hours: ~2,500 Total projects completed: 70+ Total CS courses watched: ~10 Total GitHub commits: 1,500+ Total lines of JavaScript written: 20,000+ Most of this learning took place in Knoxville, Tennessee, where I was living at the time. I had a strong desire to move to one of the major tech cities, so one day I woke up and naturally decided it was time to drive to San Francisco. That’s about exactly how it happened. That night I left, and about 3 weeks later arrived in the Bay Area. Plenty of time to listen to podcasts on the road. Arriving in San Francisco for my first real job search After arriving in San Francisco and completing the core freeCodeCamp curriculum (front-end, data visualization, and back-end certifications) I had a brief go at job applications. Around 65 or so. Literally no response. Remember, I had just driven into the Bay Area from across the country. I had no idea how competitive it would be, nor how much my skills were even worth to employers at their current level. Did freeCodeCamp actually measure up to the education of an in-person coding bootcamp? These feeler applications gave me a clear reading: I had to do more. The market is pretty competitive. So I rapidly revised my plans, extended my time horizon, and reached out to freeCodeCamp to begin a non-profit project, since I was now eligible to start one. Meanwhile, I began networking in the city as much as possible. The networking came easily enough, as freeCodeCamp has many self-organized campsites throughout the world’s cities. I got a quick response from freeCodeCamp’s team about the nonprofit projects. Some of my React projects had caught the eye of Michael D. Johnson and Quincy Larson, and they asked me whether I’d be interested in helping write their React curriculum. (freeCodeCamp itself is a nonprofit.) I also helped build a conference management tool for the Conference on Crimes Against Women. I was very excited about the opportunity to give back to this awesome community, so I quickly accepted the challenge. My React and Redux challenges are being incorporated into their newly expanded curriculum, which is now live in beta form live here. In addition, I chose to advance my timeline to 2017. I would continue studying on my own for the remainder of 2016 before applying for jobs again. I left San Francisco, droving north through Portland and Seattle to Bellingham, Washington. It was during these weeks in the Pacific Northwest that I worked non-stop to complete the React and Redux challenges. I collaborated with another freeCodeCamp contributor from New York, Peter Weinberg, and built around 80 coding challenges in total. This was probably one of the key moves that helped set my resume apart, because it represented a significant project that served a real-world organization’s needs. In late December, we finished the initial draft of the challenges and moved them into an official alpha release which is still generating feedback from the community. My triumphant return to San Francisco Back in San Francisco, I was almost ready to dive into job applications again. I had decided to join Outco, a crash course in interview preparation for software engineers. I had always been pretty opposed to spending money at a coding bootcamp (partly because I didn’t have the money), but I chose to join Outco because in my view they are trying to serve a different purpose. Outco is specifically targeting the interview process for software engineers, a process which causes friction for many, even experienced and skilled engineers. Although I could write JavaScript pretty well at this point, I definitely was not prepared to solve arbitrary algorithm questions on a whiteboard. That’s one of the key areas Outco tries to prepare students for, because, for better or worse, whiteboarding remains a favorite interview tactic of tech companies. In addition, I could defer payment to Outco until after I got a job. And, a reality check: I had been going many months now at a strong pace of probably 50+ hours a week of coding and learning, and I was now literally risking it all on my ability to get a job in one of the most expensive and competitive cities in the US. I had already made a sincere effort to apply to companies and failed miserably! The pressure and stress were definitely bearing down on me at this point. I knew success was going to depend heavily on my performance of the next few months. I joined Outco because I expected that their structured program and support would prove indispensable in this last miles of my journey, and it did. 2017 arrived and I started Outco. I began to work even harder than before. Tons of algorithms and data structures practice, whiteboarding questions, technical questions, pair programming, mock phone screens, systems-design questions—you name it, and lots of it. Not to mention applying to jobs again, and a lot more than I did the first time. And, of course, once you begin to get responses from companies it becomes very time-consuming (not to mention very stressful) to begin juggling all of these interviews at once. Practicing for interviews everyday is hard enough. Standing in front of a whiteboard in a real interview as they ask you about binary trees is much harder (and yes, interviewers asked me about binary trees). Again, the numbers tell the story more eloquently: Total applications: 192 (including the 65 from 2016) Total phone interviews: 17 Total take-home code challenges: 6 Total technical screens: 5 Total onsites: 3 Total offers: 1 Total time to offer: 6 weeks Success Rate: 0.52% That one offer was from TruSTAR Technology, and I have been so happy to join their team! TruSTAR is building a platform that allows companies to share cyberintelligence data in order to prevent and mitigate cyberattacks. I’m working on the frontend side of their application and putting to use the JavaScript skills I gained through freeCodeCamp. The experience has been incredible so far, and I have been honestly surprised by how well prepared I have been to begin making meaningful contributions to their codebase. Lessons I learned over the past 12 months Now, finally, here is some advice I would have for anyone looking to do something like this: You need real-world skills and you have to learn a lot. That means a lot of hours of work, there’s no way around it. Passion helps. Building projects is an excellent way to learn, and once you know enough it is not very hard to find open-source projects or other high impact projects to work on. JavaScript and React are great to learn and in high demand! But learn what interests you. It’s critical that you cultivate a community of others who are learning to code or working as engineers. Network in your city. Network online. Find collaborative projects to work on. Ask for help. If you can afford it, try to have some patience. This is what I struggled with the most. There you have it — the journey that led me across the US to begin a career as a software engineer! I’m sure everyone’s path will look different, that’s part of the fun. Find your own path and don’t be afraid to disregard other people’s views if you believe strongly enough in your own. That includes my views. The opportunities in the tech industry are real, and if you want them badly enough, you can find a way there. As an engineer, your job will be to solve problems, and if you are self-taught, the first problem you must solve is how do you teach yourself? Cheers everyone, and happy coding! P.S. A huge shoutout and thank you to the entire freeCodeCamp community and everyone I mentioned in this article (and a few others: Archie, Christian, Susan, Beemer Girl and all my friends from home). You have all proven invaluable in helping me accomplish this goal.
Quincy Larson (@ossia) explains how he's built freeCodeCamp into a community that helps millions of people learn to code every month by engaging in storytelling, encouraging open-source contributions, and focusing on accessibility to people across every income bracket worldwide.Transcript, speaker information, and more: https://www.indiehackers.com/podcast/056-quincy-larson-of-freecodecamp
You’ve heard it before: “There’s no such thing as a free lunch.” We're taught so from an early age. But history has shown: you often can get something for basically nothing. In this episode, Quincy discusses how we can all enjoy the abundance economy and - for all intents and purposes - get a free lunch. Written and read by Quincy Larson: http://twitter.com/ossia Original article: https://fcc.im/2wxPlpS Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Check out the book Abundance: The Future Is Better Than You Think by Steven Kotler and Peter H. Diamandis Transcript: You’ve heard it before. Maybe you’ve even said it. “There’s no such thing as a free lunch.” “You can’t get something for nothing.” “Somebody has to pay.” People recite these sayings with confidence, as though they were quoting Newton’s Laws of Motion. But history has shown: you often can get something for basically nothing. And even when somebody has to pay, that somebody doesn’t have to be you, and the amount doesn’t have to be very much at all. In some cases, the benefits so vastly outweigh the costs that it is — for all practical intents and purposes — a free lunch. How we eradicated Polio from the face of the Earth In the early 1950s, the US was recovering from its worst Polio epidemic ever. Thousands of children died from this virus, and many more suffered life-long paralysis. No one was safe from this horrible disease. Even US president Franklin D. Roosevelt contracted it at age 39. He spent the rest of his life in a wheelchair. Enter Jonas Salk, a medical researcher who had mainly studied flu viruses before turning his efforts toward Polio. Dr. Salk spent 7 years assembling a team of researchers and working to develop a Polio vaccine. He conducted the most extensive field test ever, involving what historian Bill O’Neal says were “20,000 physicians and public health officers, 64,000 school personnel, and 220,000 volunteers.” The vaccine was a success. So Dr. Salk set to work immunizing everyone on Earth. He pushed the marginal costs of the Polio vaccine as low as possible — to just the raw materials necessary — by forgoing any financial benefits his intellectual property would have brought him. When asked about his patent, he said, “There is no patent. Could you patent the sun?” Dr. Salk stared down a massive problem and threw himself into it with everything he could, without any aspiration for personal gain. And in the process, he and his colleagues basically wiped out one of the worst diseases ever. Today, everyone’s life is better off as a direct result of this one massive free lunch. “The reward for work well done is the opportunity to do more.” —Dr. Jonas Salk Free lunches are important Before I run through some modern-day examples of free lunches, let me give you some background on myself, and why the notion of a free lunch is so important to me. I run a nonprofit, open source community where you can learn to code, practice by building software for nonprofits, then get a job as a developer. Thousands of people have gotten developer jobs so far. And it’s free. I was so committed to the idea of it being free that I put the word “free” in the name. Free can mean both libre — free as in free speech, and gratis — free as in free beer. Just like the “free” in “Free Open Source Software” (FOSS), the “free” in “freeCodeCamp” means both of these. But still, every day I encounter people who are skeptical. They tell me they don’t use freeCodeCamp because “it sounds too good to be true.” “There’s no way all this can be free,” they say. “I’ll sign up and give you my email address, and only then will I find out that I need to pay $20 a month, right?” Or: “You’re free for now, but soon you’ll throw up ads and paywalls, like everybody else does.” Well, I’ve said this publicly a hundred times, and I’ll say it publicly again: freeCodeCamp will always be free. We operate on the fringe of capitalism. The frontier where marginal costs asymptotically approach zero, and the very laws of classical economics begin to unravel. A place called the abundance economy. And we’re not alone. Low overhead engineering with lichess.org Meet Thibault Duplessis, the founder of lichess.org — the second most popular chess website on the planet. As of a year ago, lichess had 78,000 unique daily visitors, who play a total of 260,000 games of chess each day. Thibault has no employees. He doesn’t even work on lichess full-time. He still has a job at a development consultancy. Lichess’s main competitor, Chess.com, is a privately-held behemoth that makes millions of dollars each year off of banner ads and premium membership up-sells, then spends that money acquiring their competition. Contrast this with Thibault, who has open-sourced lichess’s server code. He has promised that lichess will be free forever, and that it will never show ads. But wait — how can he do this? Because of the nature of modern web applications, and the economics of their near-zero marginal costs. Despite lichess’s complexity — and the scale at which it operates — Thibault’s server costs are a mere $416 a month. This cost is covered by merchandise and donations from his grateful users, who increasingly include some of the best chess players in the world. How Craigslist covers costs by charging only 0.1% of its users Remember classifieds? People used to pay a dollar per word for tiny ads that appeared in the backs of newspapers, sandwiched between other ads. Then, 20 years ago, Craigslist utterly disrupted classifieds. They provided a directory of ads online, for free. It was searchable. You could use as many words as you wanted, and include pictures. You could repost your ads as many times as you wanted, in as many nearby cities as you wanted. But if placing ads on Craigslist was free, how did Craigslist make money? Well, if you asked a random Craigslist user, they probably wouldn’t be able to tell you. Most people just assume that Craigslist is a nonprofit, supported by donations or something. But Craigslist made $400 million last year. They did it by charging to post in a few key categories within a few key cities. If you want to list an apartment in New York City, or a job in San Francisco, you have to pay Craigslist a small fee. This means that less than one in a thousand people who use Craigslist actually pay any money to do so. Those real estate agents in New York City and those recruiters in San Francisco are paying for everyone else’s free lunch. Craigslist doesn’t have investors. It keeps things simple. It has a small team of about 40 people. Craig still works at Craigslist. He handed over the role of CEO to his long-time friend so he could focus on doing what he loves: providing support for Craigslist users around the world. Like the other people mentioned in this article, he doesn’t seem to care about money. From what I can tell, he donates most of his money through his charity CraigConnects. And he spends his downtime advocating for causes he cares about, like supporting veterans and helping more women start their careers in tech. Crowd-sourcing contributions with Wikipedia Before Wikipedia, the most popular encyclopedia was written by paid experts, and printed in massive books. The Encyclopaedia Britannica was so expensive that they wouldn’t even tell you its price in their TV spots. (It cost $1,400.) Jimmy Wales — Wikipedia’s visionary leader — had a better idea. He leveraged the power of the internet and the wisdom of volunteer contributors. And he made it free. The number of volunteer-contributed articles on Wikipedia exploded. It quickly surpassed traditional encyclopedias in the scope of its content. Instead of waiting for a new physical edition to hit the press, Wikipedia editors could instantly publish updates to articles. Wikipedia was so up-to-date that many people started using it for news on current events. Traditional encyclopedias were quickly backed into a corner. They were paying expert writers and editors to create their content. Surely this resulted in more accurate information than Wikipedia’s volunteer-driven free-for-all. But in 2005, a major academic journal published an analysis comparing the factual accuracy of Wikipedia versus the Encyclopaedia Britannica. It found: “Jimmy Wales’ Wikipedia comes close to Britannica in terms of the accuracy of its science entries, a Nature investigation finds.” — The abstract from Nature’s analysis In a last-ditch effort, The Encyclopaedia Britannica pushed back, but Nature upheld its finding. This was the final blow to the encyclopedia industry, which had flourished for decades by selling stacks of books door-to-door to guilty parents. A decade later, Wikipedia is now the 6th most visited website on the planet. And covers its operating costs through more than $70 million in donations each year from grateful patrons. But despite all of Jimmy’s accomplishments, people seem to be much more preoccupied with his money. Or rather, his lack-there-of. Here’s what you get when you type “Jimmy Wales net worth” into Google: Below this result, Google shows you pictures of people who started other large websites. Each of them has a net worth that’s five orders of magnitude larger than Jimmy’s paltry $1 million. People have a hard time accepting that someone would set out to build something as important as Wikipedia without bothering to make money out of it. One person went so far as to ask straight up on Quora: “Is Jimmy Wales rich?” Jimmy responded: “By any sane standard of measurement, yes, of course I’m rich. Nearly half of the people on earth live on less than $2 a day. I spend more than that on my cellphone bill.” There’s so much more to life than money. Why are people so preoccupied by money, and the net worth of famous people? Because they’re operating in a scarcity mindset. They are so preoccupied by the risk of not having enough that they can’t see the real risk: missing out on the potential for so much more. The traditional scarcity mindset approach to creating value at scale goes something like this: Figure out a problem you can solve for a large number of people 2a. If people will pay for your product, sell it to them, then re-invest the profits into growing your business (bootstrapping) 2b. If your solution isn’t something people will pay for, raise a bunch of venture capital to fund development. Once it’s big enough, make money some other way — usually by selling ads. But there’s an alternative. An abundance mindset. This approach shrugs off concerns for basic needs (worst case scenario, I have to get a job in fast food) and instead focuses on upside potential. When you apply an abundance mindset, you approach problems from a different perspective. You try to identify opportunities for free lunches. Your approach to creating value at scale will look something more like this: Figure out a problem you can solve for a large number of people Keep costs low, fund development yourself, and ask for donations, sell merchandise, or find a few users with deep pockets who can subsidize everyone else. This is how all of these organizations I’ve discussed here operate. And this is how they can always be free.
Panel: Charles Max Wood Guest: Quincy Larson This week on My JavaScript Story, Charles speaks with Quincy Larson. Quincy created Free Code Camp, whose goal is to build a huge community of people who will then contribute to the project so that they can help more people learn code for free. Quincy first got into programming when he wanted to find a way to get teachers out from behind the computer and into the classrooms. This revealed to him how powerful technology was and really got him interested in learning more code. He feels very strongly about the importance of accessibility and strived to make his camp as accessible as he could so he could reach the most people with it. In particular, we dive pretty deep on: Free Code Camp How did you first get into programming? Previously a school director and teacher AutoHotkey How did you get into JavaScript? Focused on the problem of learning the code Free Code Camp was his main focus as a programmer The importance of accessibility Free Code Camp curriculum New update launching soon Build projects in order to get a certificate 6 certificates in total What is the work breakdown with Free Code Camp? Editorial staff now Free Code Camp YouTube Channel Writes on Medium Loves the fact that he gets to help others and positively affect their lives What else are you working on now? Beta.freeCodeCamp.org Expanding Free Code Camp Directory And much, much more! Links: Free Code Camp AutoHotkey JavaScript Free Code Camp YouTube Channel Quincy’s Medium Beta.freeCodeCamp.org @Ossia Free Code Camp Medium Picks Charles VRBO Mesquite, Nevada Upside.com Quincy The state of machine learning in JavaScript Tensor Fire
Panel: Charles Max Wood Guest: Quincy Larson This week on My JavaScript Story, Charles speaks with Quincy Larson. Quincy created Free Code Camp, whose goal is to build a huge community of people who will then contribute to the project so that they can help more people learn code for free. Quincy first got into programming when he wanted to find a way to get teachers out from behind the computer and into the classrooms. This revealed to him how powerful technology was and really got him interested in learning more code. He feels very strongly about the importance of accessibility and strived to make his camp as accessible as he could so he could reach the most people with it. In particular, we dive pretty deep on: Free Code Camp How did you first get into programming? Previously a school director and teacher AutoHotkey How did you get into JavaScript? Focused on the problem of learning the code Free Code Camp was his main focus as a programmer The importance of accessibility Free Code Camp curriculum New update launching soon Build projects in order to get a certificate 6 certificates in total What is the work breakdown with Free Code Camp? Editorial staff now Free Code Camp YouTube Channel Writes on Medium Loves the fact that he gets to help others and positively affect their lives What else are you working on now? Beta.freeCodeCamp.org Expanding Free Code Camp Directory And much, much more! Links: Free Code Camp AutoHotkey JavaScript Free Code Camp YouTube Channel Quincy’s Medium Beta.freeCodeCamp.org @Ossia Free Code Camp Medium Picks Charles VRBO Mesquite, Nevada Upside.com Quincy The state of machine learning in JavaScript Tensor Fire
Panel: Charles Max Wood Guest: Quincy Larson This week on My JavaScript Story, Charles speaks with Quincy Larson. Quincy created Free Code Camp, whose goal is to build a huge community of people who will then contribute to the project so that they can help more people learn code for free. Quincy first got into programming when he wanted to find a way to get teachers out from behind the computer and into the classrooms. This revealed to him how powerful technology was and really got him interested in learning more code. He feels very strongly about the importance of accessibility and strived to make his camp as accessible as he could so he could reach the most people with it. In particular, we dive pretty deep on: Free Code Camp How did you first get into programming? Previously a school director and teacher AutoHotkey How did you get into JavaScript? Focused on the problem of learning the code Free Code Camp was his main focus as a programmer The importance of accessibility Free Code Camp curriculum New update launching soon Build projects in order to get a certificate 6 certificates in total What is the work breakdown with Free Code Camp? Editorial staff now Free Code Camp YouTube Channel Writes on Medium Loves the fact that he gets to help others and positively affect their lives What else are you working on now? Beta.freeCodeCamp.org Expanding Free Code Camp Directory And much, much more! Links: Free Code Camp AutoHotkey JavaScript Free Code Camp YouTube Channel Quincy’s Medium Beta.freeCodeCamp.org @Ossia Free Code Camp Medium Picks Charles VRBO Mesquite, Nevada Upside.com Quincy The state of machine learning in JavaScript Tensor Fire
Today we had the pleasure of talking to Quincy Larson - Founder and educator at "freeCodeCamp", where you can learn to code completely for free. In this episode, Quincy shared his insights on focusing passionately on one field, building communities and free education to everyone, on a scale that impacts the world massively even 20 years from now.
It’s true. John spent thousands of hours reading books, writing code, and watching computer science lectures, all to prepare for his dream job interview at Google. When things didn't go his way, he shifted gears. Here's his story. Written by John Washam: https://twitter.com/startupnextdoor Read by Quincy Larson: https://twitter.com/ossia Original article: https://fcc.im/2ERJpuC Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Transcript: It’s true. I’ve spent thousands of hours reading books, writing code, and watching computer science lectures, all to prepare for the Google software engineer interview. How I Got Here I started programming in middle school, but when it came time for college I pursued a degree in Economics. My rationale was that there would be too many programmers looking for jobs by the time I graduated. Boy, I was wrong. Later, I joined the Army to become a programmer, but the recruiter talked me into a military intelligence position, and I spent the next two years studying the Korean language. I served in South Korea for 2 years afterward. Before I left the Army, I attempted to get back into programming and was surprised at the difficulty. I had learned BASIC in middle school and kept programming it through high school. But I restarted my programming studies with C++, and the leap was too large. I just couldn’t grasp it. I did enjoy making websites, however, but I used software with a Word-like interface that I used to publish my websites. I didn’t know how to make websites from scratch. After the Army, I decided to stay in Korea for a year and teach English. I used my nights and weekends to study web programming, using Perl, HTML, CSS (which was new at the time), JavaScript, and SQL. After a year of intense study, I landed a job in the Seattle area, and I’ve been here ever since. I’ve been a web developer now for 15 years. I’ve started 3 companies, 2 of which are still running and generating revenue. I’ve worked at large and small companies, helped startups launch and grow, and recruited and managed teams. I’ve been a product manager, a CEO, a designer, and a marketer. I’ve had a successful career and learned a lot along the way. But I’m not done yet. Seeking a Career Change Remember the part where I didn’t get a computer science degree? It has made a difference. A few years ago, I thought I could get hired anywhere. I thought I was hot stuff: the elusive full-stack web developer. But during my job search in 2013, I realized my skills were lacking. I had spent so much time chasing dollars by running startups in my spare time, that I had let my skills atrophy. I hadn’t kept up with technology. For years, I had learned just enough to get by. I had a wide skill set but wasn’t an expert in anything. Don’t get me wrong, I could still get hired, but not in the technologies or areas I wanted to work in. I could get hired for areas where the tech stack was somewhat outdated, like me. There’s big money in there, but I didn’t see exciting prospects. The realization reached its peak last year at a career fair. I was interested in perhaps working for one of the local companies that were startup labs run by venture capital firms. However, the fact that I lacked a computer science degree, and the skills and knowledge that accompany such a degree, meant I didn’t have a chance. I was working full-time on my businesses at the time, and still am today. At the beginning of 2016, I decided it was time to make a career change from web developer to software engineer. I would need to study hard and practice in order to compress a computer science degree into a few months, but once I did, I could start a new career. You may not see web development and software engineering as different positions. Both involve programming and craftsmanship, but software engineering adds to it knowledge of data structures and algorithms, compiled languages, memory considerations, and understanding the impact of coding and architecture decisions on the machines where they reside. Large companies that hire for software engineering positions expect candidates to have this knowledge. I reached out to an acquaintance who works at Google and asked him questions about his experience at the company. I had been reading How Google Works and was pretty familiar with Google already. Through another contact, I received a copy of Google’s coaching notes that are provided to interview candidates. This became the basis of my study plan. Google is a pretty awesome place to work, but before I even knew that, Google was my goal. Why Google? Google sets a very high bar for hiring. They want to hire only the best. So if I set my sights high (getting hired at Google), I’ll still be quite hireable elsewhere even if I’m not selected. The more I learn about Google, the more I want to work there. In brief, Google is a company that hires smart, creative people, and treats them well. Google rewards merit, encourages big ideas, and gives employees the freedom to make good decisions for the user. The hiring process is calibrated to bring in smart, passionate people. Google has honed the recruitment and interview process over the years. The brain teaser questions are long gone. Nowadays candidates are chosen based on coding ability, technical knowledge, and Googleyness. There’s a lot going on in that one word. Management is different. Managers don’t micro-manage. They trust engineers to make the right decisions. Trusting employees changes the role of managers at Google from what most folks envision when they think of management. In addition, managers can’t unilaterally, hire, fire, or promote. Many of the important management decisions that could be perceived as office politics are handled by a committee to remove that danger. Google’s people operations (HR) has learned what works over time, and they use data and employee feedback to improve evaluation systems, the hiring process, promotions, compensation, benefits, and more. Read Work Rules! by Laszlo Bock (SVP, People Operations) for more. Yes, the benefits are amazing. I went on a tour of the Google office in Kirkland, WA, and it surpassed my expectations. And my expectations were already high. Google Interview University Remember the coaching notes I received telling me what to study? The list of topics seemed manageable, even though I didn’t know anything on the list. I turned the topics on the notes into an outline and started filling in the topics with YouTube videos of lectures from MIT and UC Berkeley. A video on linked lists in one place, a video about queues in another. The list started to grow. I published the list on Github because my Github account was pretty empty. Since all the code I wrote for my businesses and work was private, my Github account made it look like I didn’t code at all. I needed to build up a portfolio. I originally called the project “Project 9894”. Google launched on Sept 4, 1998. Hence the name. I later renamed it to “Google Interview University”. Over time I added some optional topics that I discovered along the way. I was pretty amazed I had gotten so far in my career without even knowing how a CPU processed a program, how memory worked, or any of it. I had known “just enough” to be a success. My little Github project started getting a few stars, and I published a blog post celebrating 20 stars. One morning, I awoke to find it had grown to 120 stars. Someone famous had tweeted about it during the night, and that led to it ending up on the Github daily trending report. I was #1 trending on Github for a few days. Many kind people reached out to thank and encourage me. It turns out there are thousands of people who want to not only work at Google but want to work as a software engineer, and this list was just the to-do list they needed. It’s now at over 21,000 stars. I still can’t believe it. What If I Don’t Get the Job? It won’t be the end of the world. I’ve put the time and dedication into my studies for the goal of getting hired as a Google software engineer, but even if I fail, I’ll still be armed with the skills and knowledge required to work as a software engineer at any company. Wherever I end up, I’m going in as an entry-level software engineer. I’m not going in with 15 years of software engineering experience because I simply don’t have it. When it comes to this stuff, I’m the equivalent of a fresh CS grad. But I have the enthusiasm of a new grad, too. This is a new world for me. I’m just getting started. I’m not afraid to make mistakes. I know I will. I also want to learn everything I can and be an excellent addition to any team. Don’t Study As Much As I Did Yes, I took 8 months. But I could have abbreviated the process. Like any startup with a big goal, you make mistakes and do things that waste time. There are many things I wish I go back and do differently. I studied topics I didn’t need to, some because I thought I would need them for the interview, and some because I wanted to have the knowledge on hand for when I started working. I didn’t want to be a burden on the team I’m assigned to. It turns out I simply over-prepared. I spent 3 weeks reading a 1,000-page book on C++. I don’t remember 1,000 pages worth, but I know a good bit about C++ now. As it turns out, I’m using Python for the interview, not C++. I had assumed I needed C++, C, or Java, but I was wrong. It’s good to ask, not assume. I read way more books than I needed to. There are only 3 or 4 books I should have read. I have a code catalog of dozens of algorithms that I review, most of which I wouldn’t expect in an interview. You don’t need to do that. I watched many hours of YouTube videos but could have watched far less, and spread out topics over time. I should have stopped reading books and watching videos earlier and started on coding problems sooner. I would have been able to spend more time applying the topics I learned. Spaced repetition is the key to memorization. Once you learn something, review it again later, and again even later. At each repetition, you reinforce your learning. Spending hours and hours at one time on priority queues won’t make you an expert. You become an expert by revisiting and reviewing over time. If you do so, you’ll get to the point where can’t forget details. To help review, I made 1,792 flashcards (digital flashcards). This is way too many. I review them on my phone or tablet whenever I get a spare moment (such as during Christmas shopping). Flash cards and spaced repetition go hand-in-hand. Once I get an answer on a flashcard right, I don’t mark it as known. I keep it in the deck and once I’ve seen it and answered it correctly many times, then I mark it as known. My sense of fear (“What if they ask me a question about red-black trees?”) led me to study far more topics than I needed to. But I didn’t want to just prepare for the interview, I wanted to prepare for a career at Google, solving large-scale problems. That means knowing algorithms that will save computing resources of time, space, and I/O. I may never need to know a maximum flow algorithm (Ford-Fulkerson), but it’s nice to know I have that tool available if the situation arises (without memorizing the implementation), and can recognize its application to a problem space. Conclusion Early on, I wished I could skip all this learning, and just hurry up and get hired so I could instead spend my time learning the languages and tools for the team I join. But along the way, I realized how important this knowledge is, and even though most of it may not be applicable on a daily basis, I’m glad I put in the effort. I have a new appreciation of the history of computing, the greats in the field, data structures and algorithms (and how they complement each other), and how computer systems work at low-level. I’ll be putting in my application soon. It’s been a long journey getting to this point — almost an entire year. It began back in January, but I wasn’t able to commit to full-time study until April. I’m about as prepared as I can be. I can’t keep studying and putting off the application forever. At some point, I have to take the leap. I see a bright future ahead. First of all, thank you to everyone who cheered me on and supported me with your kind words over the last few months. I appreciate all of you so much. Your encouragement helped me get back to the whiteboard every day and practice. Why didn’t I get hired? I don’t know why. Last week I received a rejection email from the recruiter, and at first, I thought it was a mistake, and laughed it off. I checked in with my referral and he inquired into it and lobbied on my behalf, but in the end, it didn’t change the situation. The thing that bothers me is that I didn’t even get a phone screen. I didn’t even talk to a recruiter over the phone. After all this work and enthusiasm, I didn’t even get a chance to prove myself. I’ve done a lot of speculation about the reason why, but I won’t do that here. It’s all just guessing, which accomplishes nothing. But I still like Google. However, I don’t know if I’ll apply again in the future. I want to get hired and stay at a company for a long time. I don’t want to hop around. The company that ends up hiring me will get a loyal, hardworking, enthusiastic employee. There are a lot of places where I can strive for greatness and have that effort rewarded. Respect your Recruiter Recruiters look at hundreds of resumes every day, and they are highly tuned to detecting quality candidates and rejecting those who don’t match up with their model. For some reason, I just didn’t fit the profile. They probably are doing me a favor. It’s possible that I would have been in over my head and continually dragged my team down. Google is known for having false negatives in their selection process, but if you’re good enough for Google, you’ll eventually get in. Recruiters know what works, and what doesn’t. So respect their decision and be polite. I’ll bet they deal with irate rejected candidates on a daily basis, so don’t be like that. Just get more experience and knowledge and try again later. As you may know, the last 11 months have been very difficult for me. As a self-taught web developer of 15 years, my computer science study plan took me months to get through, and the main motivator was to start a new career as a software engineer, tackling large problems at a large tech company. Google was the company I had audaciously set my sights on, but in the end that turned into disappointment. If you haven’t read about my story, you’re missing out. Go ahead and read it first. Well, I reached out to my network, and made a lot of new friends. I got connected with every tech giant in the Pacific northwest. Of all of them, Amazon had always stood out — even more than Google — as the most innovative company over the last 10 years. I applied via a referral, whom I had met at a startup event in 2013, and got the process rolling. After so many months of non-stop effort, sacrifice, and worry, I’m pleased to announce that I finally made it! Today I accepted an offer to be a Software Development Engineer at Amazon.com.
In this episode, Alex, a Romanian developer, tells the tale of how he and his friends grew their small side project into a $17,000 a month business. In the beginning, they were coding in a Starbucks. Now their team has grown, they've sponsored 20 hackathons around the world, and business is booming. Here's their story. Written by Alexandru Paduraru: http://twitter.com/axelut Read by Quincy Larson: https://twitter.com/ossia Original article: https://fcc.im/2F5yfQX Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Transcript: In 2014, my friends and I set out to build the best possible web design tools. We built UI kits, Admin Dashboards, Templates, and Plugins. We’ve always tried to create products that are helpful in the development process, and that we ourselves would use for building websites for clients. From a revenue’s perspective, if we don’t take into consideration the Black Friday sales (which doubled the amount that we made in November 2016), we are grossing around $22,000 per month. Part of that goes toward paying our affiliates’ commissions, collected VAT, payment vendors’ taxes, and other expenses. We end up netting around $17,000 each month. In this case study, I’ll share exactly how we built our products and grew our business. You’ll hear all about: What motivated us to start our startup, Creative Tim, and how we built our initial product How we got our first users Marketing strategies we used to grow How our business model works The story behind our revenue sources Biggest lessons we’ve learned so far 1. What motivated us to get started with Creative Tim and how we built the initial product We started out as a two-person agency in Romania with no funding from third parties. We didn’t have enough cash to rent an office — even desks at a co-working space —so we just worked out of a Starbucks. We were barely able to pay our daily living expenses by doing work for clients. Creative Tim was a side project that we thought would come in handy to web developers like ourselves. We noticed that we were always “reinventing the wheel” when working with clients, and creating the same items over and over again for their websites. So we wanted to create a few standard components, like login and register modals, calendars, wizards, headers, and footers. Over the span of a few months, we dedicated our time to implementing the platform and a few freebies (alongside the agency work). In the beginning, we didn’t have any Twitter followers, Facebook fans, or email list subscribers. We posted a lot of stuff about our freebies on various design forums and we used the “stalk web developers on Twitter” technique to spread the word about our products. 2. How we got our first users At first, nobody really understood what we wanted to do. They didn’t understand the value we could provide by helping them improve their businesses. We decided that it would be better to create a more complex product that would help people understand what we were doing
Elvis was "just a village boy from Nigeria who had nothing but a dream and a Nokia J2ME feature phone." Today, he's a 19 year old Android developer who has worked on over 50 apps and currently works for an MIT startup. This is his story. Written by Elvis Chidera: https://twitter.com/elvisnchidera Read by Quincy Larson: https://twitter.com/ossia Original article: https://fcc.im/2Bwp50Y Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Transcript: In 2012, I was just a village boy from Nigeria who had nothing but a dream and a Nokia feature (J2ME) phone. Today, I’m a 19 year old Android developer who has worked on over 50 apps and currently works for an MIT startup. My name is Elvis Chidera and this is my story. My journey began with my curiosity about how to build a website. Growing up, I spent a lot of time online as I loved downloading games and reading Society Of Robots. I would save for weeks to buy a 10 MB internet bundle for 100 Naira ($0.28), and back in 2012, that could last for a month. When learning to code, I took the first and simple step of doing a Google search about how to build a website. I got millions of results. Not knowing where to start, I clicked on the first link I saw, which was from W3CSchools. The article explained that I need to learn some languages (HTML and CSS) to be able to build a website. I checked some other resources to confirm that I actually needed to learn these things. Then I started the W3CSchools HTML and CSS course. Each day after school I would head over to the website to study. Initially, the code examples and explanations didn’t make much sense to me. But I kept studying regardless. I referred to various tutorials when I was stuck. This helped me view the problems I encountered from many different angles. When I was younger, I struggled with my reading and writing skills in school. I was only able to get better at them through continuous practice. So I already had this model in my head: if I continue to practice — no matter how long it takes — I will ultimately be able to understand these programming languages. A few months of intensive learning got me acquainted with HTML, CSS, and JavaScript. While I was still learning, a friend showed me the movie “The Social Network.” And after watching it, I was super motivated to build the next big thing. Thank you, Hollywood. I had a eureka moment a few days later. The idea was to build a better version of Facebook. At that time, you couldn’t see your Facebook friends that were online. Also, Facebook was built to connect with people you already knew in real life. So that was my billion dollar startup idea: build a social network with all the features Facebook didn’t have. Mark Zuckerberg - I’m coming for you - or so I thought. I spent the next few months building a better social network by adding any feature I could even think of using. I was naively confident that I was going to win. After completing the project, I did what anybody without an advertising budget would do. I spammed the internet for days and days. After several days of marketing, reality slapped me hard in the face. I only got 200 users, which I had to keep begging to come back to the site. I was depressed! A few months of hard work spent in vain. This taught me two important lessons the hard way: I needed to recognize the cold start AKA chicken and egg problem that new platforms face early on. I was building something I thought people needed. But I ended up building just another feature factory. While it’s okay to be motivated by a project, you also need to know when you’re headed down a dead end. I spent a few more months trying to see if I could get more people on my site, but retention numbers kept dancing toward 0%, and I eventually gave up on the project. But I was motivated by the motto of Lewis in Meet the Robinsons, “Keep moving forward.” Seeking inspiration for my next project, I reflected on the needs of my local community. This time around, I wanted to build something that people actually needed and are willing to pay for. I came up with an idea to make text messages cheaper and easier to send to multiple people at a time. This was more like Whatsapp backed by SMS. After speaking to different people about it, I decided this was the next thing to do. I named the project Xmx Me. It was going to be a J2ME app. This meant I had to learn Java. Looking back in time, I have to admit that it was the biggest challenge I’d yet encountered. I had to read some tutorials several times to fully understand them. After completing a few Java courses, I was ready for work. Relentlessly typing one line of code after another, I carefully built the backend with PHP, the frontend with HTML and CSS, and the mobile app with J2ME. The app was coming to life. But here’s the thing — I didn’t own a laptop. I was building out all of these pieces of my app on my J2ME feature phone. Wait. What? You read that right. I wrote my code on a Nokia 2690 How I built my production apps on a feature phone At this point in my life, I had never actually programmed on a laptop. I simply couldn’t afford one. My parents wanted to help me. But it was difficult for them because they had to choose between paying my school fees (and other necessities) versus buying me a laptop. I hadn’t used a laptop before, and my only interaction with computers was at cyber cafes. I remember watching some videos about how to use a computer (left click, drag, drop, and other basic stuff) and then walking into a cyber cafe to practice them. I was lucky that a relative had gifted me a feature phone (The Nokia 2690). This phone changed my life. It’s what I used to develop Xmx Me, my failed social network, and several other projects. With nothing but a phone and the will to succeed, hour after hour I typed my code on that tiny keyboard. I was lucky again to have found an app that allowed me to compile my J2ME projects. Yes, building a J2ME app on a J2ME phone is possible. The SDK was resource hungry, so my battery often died. I would carry on, writing out all my code on paper and try to review it for any syntax errors. I don’t think I’ll fail any Java whiteboard coding tests after having done this for so long. :) Launching my group SMS app After several months, I had the product ready. I was able to convince someone I met on an internet forum to help me pay for the website hosting and the bulk SMS service for a limited number of SMS units. The app launch went well — at least better than my first project. We got some local press, and one of Kenya’s top blogs even wrote about the app. We grew organically to about 5,000 users. We were in business. And we were getting transactions a couple of times a day. With no prior experience running a business, I made some huge mistakes, some of which were: There was no easy way to charge users in Nigeria. Not everybody has a debit card. So I allowed people to pay using their mobile phone credit. The problem here was, there was no official way to convert this credit into money. I had to sell to vendors, who bought it back at a ridiculously low rates. There was little to no accounting. I was losing money and I didn’t know about it. I didn’t factor in some overhead costs. There were several missing pieces. I was considering selling the App to buy a laptop. Not knowing what to do, I went online to beg. Yes, I was that shameless and hungry. It didn’t turn out well. Somebody accused of being a scammer, which I eventually resolved. Again, I was inexperienced and I handled the situation poorly. After borrowing money multiple times to keep the business running, I decided to throw in the towel. Looking back, I think this was a bad decision. With a little more learning and experience, I would have been able to make things better. Maybe I didn’t see any future in an SMS app. Well, I released a throwback app recently, and many of the users still use it and love it. Lessons I learned along the way I realized that if I was going to be able to afford a computer anytime soon, I would need to work hard for it. So I began saving all the money I could. I cut my daily expenses and lived as simple a life as possible. I asked my relatives for help. I even sold some personal belongings to raise money for the laptop. Still, it wasn’t enough. Determined to achieve my goal, I took on a freelance job of building a website so I could earn the remaining sum. How do you use a feature phone to build a website designed for PC users? Simple: have a Facebook friend who you disturb every night to view your website on his computer and give you feedback. It was cheaper than going to a cyber cafe repeatedly. I also made heavy use of Ideone which allowed me to run my PHP scripts to see if they work before uploading them. Well, I finally was able to get that laptop. I can still remember the feeling of joy I had. That smell of plastic when you unbox a brand new cheap computer. I could now work on any project I wanted without feeling restricted because of my phone. Since J2ME devices were slowly dying out, I eventually switched to building for the Android platform. My Java skills were still relevant there. I just needed to learn some platform-specific things. The next year in 2015, after high school, I decided to start working to support my family. So I began freelancing. I was always active in local forums and groups, looking for people who wanted help with building an Android app. Because I didn’t have a good portfolio, I would build apps for some people before they even paid, without any guarantee that I’d be paid. I was stung by this approach several times, but it allowed me to build a good enough portfolio. I would like to share something I wish I knew while I was freelancing: Don’t spread yourself too thin. Taking up too many responsibilities is not good for your health, your family, or the clients. I worked with several clients from different parts of Nigeria who loved my work. I eventually got a full-time job in Lagos, Nigeria after working with a client remotely. Then, while going through my news feed, I saw a job advert for an Android developer position at Dot Learn. I looked them up and realized they are an MIT startup working in an education technology field that I was passionate about, and in a market I understood. They had a unique idea: to solve the problem of access to online education by making educational videos that are extremely data-light — as low as 1MB for every hour of video. This was almost unbelievable, and I knew it was key to making education very accessible to a lot of people. I am very passionate about revolutionizing education in Africa. In fact, I have already built a free (ad-supported) exam prep app called PrepUp that has over 30,000+ installs and was one of the finalists at the West Africa Mobile Awards in 2016. So I wanted to be part of what Dot Learn was building. So I went through the developer job requirements and I felt I had a chance. But impostor syndrome didn’t want me to be great. For days I had conflicting thoughts. Should I apply or not? Then I realized one thing: I had nothing to lose. The worst that could happen would be that I got rejected. But I wouldn’t die. So, I went ahead and applied. Fingers crossed, I started re-watching several of the videos I had downloaded from MIT OCW. I also spent some nights watching some coding interview solution videos. In the past, I had mostly been hired based on my strong portfolio and previous job experience, but I didn’t want to be caught off guard if they gave me a coding interview. Well, long story short: after lots of preparation, answering some difficult questions, a phone interview, and some coding projects, I was accepted. I couldn’t believe it. I was ecstatic. Looking back at it, this was one of my best decisions. Working at Dotlearn, I have had exponential growth in my career and have met with lots of awesome people from MIT, Harvard, and other great places. From attending big events like the Techcrunch Battlefield (I ended up missing my flight) to realizing I could rap, it’s been a fun and exciting experience so far.
For people learning programming languages for the first time moving beyond in browser tutorials can be a major hurdle to success. Quincy Larson joins us to look at his free, open source learning platform FreeCodeCamp.org and talks us through the challenges he faced founding the project. We also look at common challenges to learners and how the tech industry can better support new coders.
Quincy explores Felix Feng's journey from bootcamp grad to professional developer, and how he went from getting $60,000 job offers to $125,000 job offers through sheer practice and persistence. Article by Felix Feng: https://twitter.com/felix2feng Read by Quincy Larson: https://twitter.com/ossia Article link: https://fcc.im/2iX0LtS Learn to code for free at: https://www.freecodecamp.org Intro music by Vangough: https://fcc.im/2APOG02 Resources mentioned: https://www.interviewcake.com https://www.hiredintech.com/classrooms/system-design/lesson/60 https://www.educative.io/collection/5642554087309312/5679846214598656 https://www.reddit.com/r/cscareerquestions/comments/1jov24/heres_how_to_prepare_for_tech_interviews/ https://github.com/h5bp/Front-end-Developer-Interview-Questions https://leetcode.com The email tool Felix uses: https://rapportive.com/ Transcript: A less-talked about part of the bootcamper’s journey is what happens after you graduate — when you’re searching for that six-figure developer position. < 3% of applications became offers I completed Hack Reactor in July 2016 and took almost 3 months before accepting an offer with Radius Intelligence. I applied to 291 companies, did 32 phone screens, 16 technical screens, 13 coding challenges, 11 on-sites, and received 8 offers. The offers ranged from $60-125k in salary from companies all over the US, and for both front end and full stack roles. In total, 2.8% of applications became offers. Here are 5 things I wish I’d known before I began my job search. Insight #1: Get through to real people At first, I applied for companies using the shotgun approach. I applied through Indeed.com, AngelList, LinkedIn, StackOverflow, Hacker News, company websites, and even Craigslist. I’d submit a resume for any role that wanted React, Node, or JavaScript experience. In the first week, I applied to 15–20 companies a day. Pro-Tip: Find companies using this easy-application repo. My yield was low. Less than five percent of companies responded to me. I was throwing applications into a black hole. Everything changed when one of my cohort-mates, a former recruiter, shared a guide to the job search. He told us to send emails directly to real people with each application. It could be anybody. As long as someone read it. From then on, whenever I submitted an application, I searched for the company on LinkedIn and emailed someone on their engineering or hiring team. For most small companies or C-level executives, the email format is usually firstName@dreamCompany.com. For larger companies, it may be firstName.lastName@dreamCompany.com. To verify emails, I used Rapportive to cross-check emails with social media accounts. The results were amazing. With 150+ emails sent, my response rate was a whopping 22%. It also felt great to hear from real people. Surprisingly, CEOs and CTOs responded to me. Sometimes they even interviewed me themselves. Takeaway: If you’re applying through the front door, make sure you’re getting to human beings. Insight #2: Start small and work your way up You will face Level 1 interviews (a non-tech company that needs any dev), where interviewers ask you nothing more than JavaScript trivia. You will face Level 9 interviews (Google/Facebook level), where interviewers ask difficult data structure and algorithm questions. I strategically set up my process so that I had lower-level interviews earlier, and higher-level interviews later on. Early on, I gained experience, built confidence, and secured offers from companies that had less intensive interviews. As I got more experience, I effectively “leveled up.” I became capable of completing interviews at companies with higher hiring bars. This is illustrated below as a linear correlation between the number of weeks I was into the process and the base salary I was offered. There’s a direct correlation between time spent interviewing and offer salary. I unlocked tougher questions. I unlocked higher salaries. And eventually, I unlocked the job I took. Takeaway: Plan to tackle easier interviews early on and more difficult ones later on. Insight #3: Study like your future job depends on it (because it does) I hate to break it to you, but the most important thing you could be doing at any point is studying and preparing. Why? Because you won’t get the offer if you don’t have good answers to the questions they ask you. People won’t refer you if they don’t think you’re prepared for their interviews. Coming out of Hack Reactor, my weaknesses were data structures and algorithms. A study by Triplebyte has found that bootcamp grads are weaker in these areas than computer science grads. So I learned and practiced. Every day. I devoted entire days to learning sorting algorithms. Other days, I focused on understanding how the internet worked. If I didn’t fully understand a concept, I’d spend the day watching YouTube videos or searching StackOverflow until I did. I found the following study materials useful: InterviewCake: My favorite resource for data structures and algorithms. It breaks down solutions into step-by-step chunks — a great alternative to Cracking the Code Interview (CTCI). My only gripe is that they don’t have more problems! HiredInTech’s System Design Section: A great guide for system design interview questions. Coderust: If you’re avoiding CTCI like the plague, Coderust 2.0 may be perfect for you. For $49, you get solutions in almost any programming language, with interactive diagrams. Reddit’s How to Prepare for Tech Interviews: I constantly used this as a benchmark for how prepared I was. Front End Interview Questions: An exhaustive list of front-end questions. Leetcode: The go-to resource for algorithm and data structure questions. You can filter by company, so for example, you could get all the questions that Uber or Google typically ask. Takeaway: There’s no such thing as too much preparation. Insight #4: Put your best foot forward Breaking into the industry is hard. You have to perform well, even when you’re not fully prepared. In order to succeed, you have to be your own advocate. Sell Yourself At Hack Reactor, we’re trained to mask our inexperience. In our personal narratives, we purposely omit our bootcamp education. Why? Otherwise, companies automatically categorize us into junior developer roles or tag us as “not enough experience.” In one interview with a startup, the interview immediately went south once they realized I’d done a bootcamp. One company used it against me and made me a $60k offer, benchmarking against junior developers. Ultimately, you need to convince companies that you can do the job. At the same time, you need to convince yourself that you can do the job. You can. Focus on your love for programming. Focus on what you’ve built with React and Node. Focus on demonstrating your deep knowledge in JavaScript and any other languages you’ve learned. Only then can they justify giving you the job. It’s a Two-way Conversation Interviewing is a mutual exploration of fit between an employee and an employer. While it’s your job to convince employers to hire you, it’s also their job to win you over. Don’t be ashamed of using the interview as an opportunity to evaluate the job opportunity. I talked to any company, even if I had only the slightest interest. I did on-sites all over the country with any company that invited me out. I asked questions, and sucked up knowledge on engineering team organization, technologies and tools used, company challenges, and system architecture. Pro-Tip: During interviews, ask the following questions: What are some technical challenges you’ve recently faced? What do you enjoy about working at X company? How are teams structured and how are tasks usually divided? I treated every interaction as a learning opportunity. Each interaction helped me improve my presentation, interview, and technical skills. Each failure helped me find my blind spots. Takeaway: Don’t sell yourself short! And remember, it’s a mutual exploration. Insight #5: It’s a marathon, not a sprint The journey is by no means easy. For 3 months, I grinded 6 days a week. But I tried to take care of myself. What a typical day could look like in JavaScript Some days, I’d study with friends. Other days, I’d go find a cafe and study alone, or hang out at Hack Reactor’s alumni lounge. And every week I’d check in with our career counselor to talk about my progress. It’s easy to burn out during the process. Eat well, sleep, and exercise. It can get lonely. Spend time with friends who are going through the same experience. Takeaway: Prepare for the long game and make sure you take care of yourself. In summary, the key takeaways are: Get through to real people Start small and work your way up Study like your future job depends on it Put your best foot forward It’s a marathon, not a sprint The process may seem endless, but you’re going to make it. Keep putting in the hours. Keep sending in the applications. Keep taking caring of yourself. All of it pays off in the end.
We conclude the tale of Alvaro Videla, who learned to code, got a job as a developer, and is now facing his first week on the job in Montevideo, Uruguay. He eventually went on to get jobs at Apple and other tech companies, but this is where he got his start. Article by Alvaro Videla: https://fcc.im/2zJX3gN Read by Quincy Larson: https://twitter.com/freecodecamp Learn to code for free at: https://www.freecodecamp.org Music: "Sounds of Wonder" by Vangough: https://fcc.im/2yQOq0q Transcript: The Technical Interview The programmer who was interviewing me explained how things would go, that I was going to walk right into their offices, get my own desk, and program at one of their computers, with everybody else just doing their jobs, since “that’s how it’s going to be if you join us.” I thought that was pretty cool already. And just like he said, once I got into the office, everybody said hello and continued doing their jobs. Even though I wasn’t close to getting the job, I was already starting to feel like a part of something. The test consisted of building a website to list books for an imaginary library. It seemed simple enough: connect to a database, fetch a list of books, and display them on a webpage, with the buttons for the usual actions for adding books, deleting them, and updating their information. “I can do that,” I thought. While I was focusing on the test, behind me were programmers who were splitting their time between working on their tasks and playing with tennis balls in a very particular way: they were throwing them at each other, with a lot of force, up to the point where one shot hit the reset button of one of the computers and one guy lost what he was doing on his editor. “That’s a strange way to work, but it’s kinda cool,” I thought. I had expected a more formal working environment, but was pleasantly surprised at how relaxed the environment was. Meanwhile, halfway through my implementation, I got stuck. I couldn’t get my code to print the list of books, and nothing was showing up on the screen. “How do I get out of this one?” I wondered. I tried to debug it by adding print statements here and there, but that didn’t work, and I had no idea what was going on. The clock was ticking away, and I was starting to get really desperate. “Come on,” I told myself. “I can’t miss this opportunity because of this problem. What do I do? Should I ask for help? What if this disqualifies me instantly?” I thought about it some more. “I guess they help each other during work,” I reasoned. “OK, whatever, I’m going to ask for help.” I called the interviewer over and talked him through my problem, trying to explain everything I had tried so far, so he wouldn’t think I was cheating him into giving me an answer. Lucky for me, he also had no idea what was going on, so he told me it was fine and that I could leave it as it was. Unfortunately, I had used too much time on this debugging session so I didn’t have enough time to complete the second part of the test. Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later — time that in this particular case was critical for me. And in the future, it could be critical for the company I would end up working for. I didn’t want to ask for extra time to try to solve the next problem, since I thought that wasn’t fair. I wanted to play by the rules, because I felt it was the right thing to do. As we’ll see later, I think that decision paid off. In the meantime, I had the second problem in front of me and I had to do something about it. I skimmed through it and saw that it was about parsing URLs out of some log files, so I gathered some courage. I put my most convincing face and told the guy that while I understood my time was up, the solution was a matter of just “splitting these lines by these characters, and then going with the URL splitting by using this and that character.” The guy nodded, and told me that indeed that was the solution. Then he said that the interview was over, and he asked me if I had any questions about the company or if there was something I wanted to add. Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later “Well, now that you ask, yes,” I began. “I’ve been building this mapping application that I want to show you…” This was my opportunity to shine. I typed the website URL on the computer in front of us and started to pray to every god out there for it to load without problems. “Please, just this one time,” I thought. And as every element from the website finished loading, my anxiety decreased and my excitement increased. The creation I was most proud of was there, right in front of my eyes, and more importantly, in front of the eyes of the person who would decide if I had a job or not. I went through every feature of the app, explaining with passion the goal of the app, which features it had, and which features it lacked but that I knew I had to implement to have a clear business case. After a demo, he seemed impressed by Aleph Maps and gave me kudos for it, which made me happy I’d had the chance to run the demo for him and gone ahead with it. This showed me that all the demos I had run for various members of my family and for my friends had been worthwhile, since when it mattered, I was able to show that I could not only build things on my own, but also that I was good at explaining things. By then it was around 6 p.m. — time for them to call it a day, and for me to get back home. As we were leaving the building together, I asked the man who conducted my tests if he was attending university, because perhaps he knew my friend who had told me about this job opportunity. “Oh yeah, I know your friend, why didn’t you mention him before?” he asked. I didn’t answer, but the fact was that I didn’t want to bring it up and use it to my advantage during the interview. But in any case, it didn’t hurt afterward. He showed me how to get public transport back to the bus terminal and then we parted ways. Once on my own, I couldn’t believe I was done with the interview. Everything I had prepared for in the last two months had passed in what felt like the blink of an eye. All the stressing out about the little details — some that mattered, some that didn’t — was gone. Now it was me and Montevideo, and the streets crowded with people going back to their homes, and the cars, and the night falling over the city. I’d done it. Once I had processed all of it, the worst part came. It was time to take the bus and head home to wait for an answer, and waiting is something I’m really bad at. But that’s what it became. Waiting while staring at the ceiling of our room, wondering with my wife how our lives would change if I got the job. Waiting while looking at my books without knowing if I should have kept reading them or not. Waiting while making sure my phone had enough battery power so there would be no missed phone calls. Waiting, until at some point the wait was over, my phone rang, and again it was that number from Montevideo. “When can you start?” asked the voice on the other end. I was in. Yes, me. They wanted me: the guy who barely knew how to program, but let’s not worry about that now. “They want me,” I told myself, letting it sink in. “I’m in.” The whole gamble had paid off. Finally, after all those years of having jobs that paid nothing, working just because that’s what people do, even if having jobs meant forgetting about our dreams — finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living. I asked for one week to move to Montevideo, so they told me February 26 would be my starting date. “You will be working in PHP and JavaScript. You’re going to earn 15,000 pesos (500 USD) a month.” FIFTEEN THOUSAND PESOS! That was three times what my wife was making! “We are going to be rich!” I thought. I was going to be able to buy as much Coca-Cola as I wanted! We could probably even manage to save $100 per month and buy a house someday. We couldn’t believe what was happening to us. Finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living I spent that week prepping in JavaScript and trying to find a place to stay in Montevideo. A friend hooked me up with his apartment, since he was going to move out after Easter. The rent was good for us, so we decided that in about a month my wife would move to Montevideo and join us. The “apartment” was just one room, plus a kitchen and a small bathroom, and you could only fit two beds and a dining table in there. For a short while, it would be three of us living in that room, but honestly, that didn’t matter to us. I would be starting a new and exciting job, and we would have a place to live. Mission accomplished. First Week at Work My first day at work began with a nice twist: the person who conducted the interview was also my new manager. He brought me to office kitchen, we sat down at the table, and he started explaining what the company was doing, what the business model was, and so on. He then proceeded to lay down on a piece of paper depicting what the backend architecture was like, how things worked, what the server was doing, where the database was located, and many other details. I have to be honest: it was hard to follow. I recall hearing the term “production” a couple of times too. “This is our production setup,” “Here’s the production database,” and so on. I had no idea what this production thing he kept talking about was! Later, I learned that production referred to all the infrastructure, including code, that was facing clients and producing income for the company. We went through a couple of questions and answers here and there, and then came to what was, for me, the most significant part of that day. He looked at me and told me, honest and straight to the point: “We know that you’re not a good programmer, that you are just starting at this, and that you have no experience, so before you’re even able to commit one line of code to our codebase, we need you to study this book,” he said as he handed me a copy of PHP Objects, Patterns, and Practice by Matt Zandstra. “You have to know it by next week.” As straightforward it was, this was some of the most solid, sincere, and helpful feedback I’ve ever received as a programmer. To this day, I thank him for being forthright with me. During my career, I’ve learned how difficult it is to come by a manager who will give you this kind of feedback — feedback that’s useful for understanding your own shortcomings, but at the same time puts you on the right track in order to overcome them. Then he told me: “We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.” I was speechless. I wondered what I’d done to deserve such an opportunity. Even more, I knew I had to prove I was worth it, so I set myself a goal of mastering the design patterns book as quickly as possible. First, I couldn’t disappoint my new boss who had taken a chance on me, and second, I finally had an opportunity in the big leagues, at the job I’d worked so hard for. It was time to shine. “We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.” Fired After One Week on the Job During my first week, I studied that book like my life depended on it, because in a way, it did. I tried to learn as many of those design patterns as possible, practicing every example, and I tried to absorb as much knowledge as possible. By the end of the week, I wanted my manager to come to me and tell me, “Now you’re ready to start programming with us.” But as with every tale, this story needed a twist. That Thursday, some people from the company came and called me to another room to deliver some news: the company was conducting layoffs, and I was among the people being let go. “Nothing personal,” they said. “Business isn’t going too well, and we need to downsize, so we’re letting go of people who just joined the company. We hope you understand.” That day, I was one of around 50 employees who lost their jobs. I’m not sure I can accurately describe what I felt at that moment. “Why does life has to be like this?” I wondered, feeling somewhat discouraged and helpless. “What do I do now?” I asked to use the phone and called my wife. “Please don’t worry, but I have some bad news…” I began. I tried hard not to lose my composure, but meanwhile, the whole world was coming apart below my feet. All around me were employees coming in from other rooms and bidding farewell to all the people who were just fired, which only made me feel worse. Even so, I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else. While I was saying goodbye to my short-lived colleagues, one of them tipped me off about some companies I should apply for, so I took note. From an internet cafe, I sent out job applications to the companies my brand new former colleague gave me, and when I was done, I headed back home. I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else. “What a depressing day,” I thought. I entered the apartment and laid down on the bed, which for the record, was just a mattress on the floor. I remember the sky was gray, a perfect match for how I was feeling. I tried to nap, but my mind was lost, staring at the ceiling of that empty apartment and thinking about this new turn of events. “What if I hadn’t been fired?” “What did I do wrong?” I knew I had done nothing wrong. It was just bad luck, but it was hard to accept it. Suddenly my phone rang. “Is this Alvaro Videla? I’m calling from Intersys. We received your application and we want to have an interview with you. Is next Monday OK for you?” “OF COURSE THAT’S FINE WITH ME,” I thought, but instead I said, “Yes, that sounds great, I’ll be there.” As I hung up and placed my phone on the floor, I was in shock, unable to believe what had just happened. Montevideo was a city full of surprises. The next day I went down the street and asked the barber if he would give me a free haircut, since I had a job interview lined up but I had no money left. I still hadn’t received my salary from the week of work, so I needed a favor in exchange for being paid back the following week. Luckily, he was really happy to help me. I still remember his warm smile; he felt proud he was helping a neighbor get a job. While I was getting the haircut, he shared his story. I learned that in the early 2000s, he and his crew were the winners of some world hairdresser championship! I had no idea there were hairdresser championships. Don’t worry, I couldn’t believe him either back then. Either way, getting a haircut with a “world champion” was cool, but also meant that the service was expensive — $10 to be exact. It doesn’t seem like much, but keep in mind that in my hometown I could get a haircut for less than $2, and $10 could buy me at least five burgers and a soda. That said, it was quite an investment for my next job interview. I couldn’t complain though: a total stranger was doing me a favor when I needed it the most, and that raised my spirits. The next week came and I had my interview, which went great. The company I was just fired from was Live Interactive, after all, which happened to be well known in Montevideo due to being one of the biggest internet companies in the country. This meant that programmers coming from there were well regarded. Needless to say, I got the job. The salary wasn’t that great, but our plan of moving to the capital was still intact. Not bad for my first 10 days in Montevideo. Conclusion All in all, my plan had worked, and all my preparation and study paid off. I got my first job interview as a programmer and then passed it. I was hired and fired in the space of one week, but I didn’t give up and went on to secure a second job interview, landing a new position in my second week in Montevideo. But in order for this to happen, the first and most important step was being honest with myself. This allowed me to assess my skills to see what I was good at doing and where I had to improve. Being self aware helped me when I embarked upon the task of creating a program from scratch, because I was realistic about what I could do, but at the same time it forced me to do something about the areas where I was lacking. Additionally, dividing the project into actionable tasks helped me make progress and follow my idea through to completion. But it wasn’t just about skills; I also had to believe in myself, and that self confidence helped me whenever I faced a challenge that seemed like an insurmountable mountain. Meanwhile, humility always kept me in check, reminding me that what I had just climbed was but a little peak from among the many I had yet to climb. Finally, my family and friends offered help and support, and whenever I felt defeated, they kept me focused and reminded me why I was on my journey and what the destination was. In the end, because I persisted, I had become hirable, and now it was time to become an actual programmer.
We continue the story of Alvaro Videla, as travels to Montevideo, Uruguay for his first developer job interview. In this episode, Quincy tells the story of Alvaro Videla, who was living in poverty in Uruguay when he decided he wanted to learn to code. He had limited access to books and the internet. But he eventually got a job at Apple and other tech companies. Article by Alvaro Videla: https://fcc.im/2AMqmfM Read by Quincy Larson: https://twitter.com/ossia Learn to code for free at: https://www.freecodecamp.org Music: "Sounds of Wonder" by Vangough: https://fcc.im/2yQOq0q Transcript: Getting the Job During December 2006 and January 2007, I worked hard to get my maps application up and running. While building it, I wanted to learn as many programming notions as possible, trying to cram all the knowledge that would get me ready for the job interview into my head. Out of all the concepts I could learn, I identified the main ones that I thought would be relevant for getting the job. This narrowing of focus is a very important step toward achieving goals, since we don’t want to be all over the place, trying to grasp a bit of every subject but then failing to reach deepness on any of them. For my situation, I understood that I had to learn about object-oriented programming, since that was one of the most important programming techniques in use. On the technological side, I had identified PHP as the key programming language that would land me a job, while learning Flash programming would be the skill that would differentiate me from other candidates. How did I know that? It was a bit of hunch informed by what I was seeing mentioned on the web, along with what the computer magazines were writing about. Even back then, before I had the job, I knew it was very important to learn to understand and analyze the market I wanted to break into, and finding the right websites and publications is a very important step toward this. This is because these resources often have information that points to the ideas, trends, and technologies that we should focus on. Once my app was done and I felt I was ready for the interview, it was time to build my resume. However, I had no idea what should go on a tech resume and what should be left out. I listed things like MS Word and MS Excel as some of my skills, together with Adobe Illustrator and some InDesign. Why not, right? Wrong. Just thinking about that first resume makes me blush. If nothing else, what was clear about it was the message it was signaling: this person is a complete noob. The problem is that as someone trying to break into a new field and start a career, it was difficult to have something to write down on my resume that made me look competent. I had no idea what to include, so I listed everything. Today, if someone presented themselves for a backend developer position listing MS Word as a skill, I’m quite sure that person would be rejected straight away. Even worse, I think I would be the one rejecting a resume like that. But of course, hindsight is 20/20. Once my resume was complete and I got a cell phone number I could be reached at, I applied for the position of PHP programmer at Live Interactive. You’d better believe I read and reread every input box on that online form as I went over a mental checklist. “Did I spell my name correctly? Did I type the right phone number? Let’s double check the email. I don’t want to miss this opportunity because I wrote the wrong address.” I was all nerves, but at some point, I had to hit that send button. Click. Done. Exhalation. “I’ve done it. I’ve applied for my first job.” Once my app was done and I felt I was ready for the interview, it was time to build my resume. However, I had no idea what should go on a tech resume and what should be left out. After I submitted my application, I lingered at the internet cafe, browsing the web for random stuff. To my surprise, about half an hour later, my cellphone started to ring. “I don’t know this number,” I thought. The area code told me it was from Montevideo, but it was so quick, it couldn’t be them. Or could it? It took me a couple of seconds to understand that, yes, in fact, they were calling me! Can you imagine that? I honestly didn’t know what to do. “Should I take the call?” I wondered. “I’m probably not ready for this!” I quickly tried to get ahold of myself and walked outside to answer. “Hi, we’re calling from Live Interactive about your job application. Is this Alvaro Videla?” said the voice on the other end. Do you see what happened right there? I couldn’t believe it! I was being contacted by the company where I had just applied for a job. “Yes, it’s me,” I replied. The caller turned out to be the HR manager getting in touch, trying to set up an interview with me. She asked me when would it be a good time for me, so I told her that I needed a week, since “I have to arrange things here.” This wasn’t necessarily the case, as I could’ve just boarded the next bus and traveled there straightaway, but I wanted to prepare — to be 100 percent ready for it and not botch my only opportunity. I hung up at the end of that phone call having secured a job interview. Now it was time to get myself together and prepare for that interview. I had no doubt this was my once-in-a-lifetime opportunity and I couldn’t waste it. But first, I had to share my excitement with my mother and my wife: I needed to talk about what had happened with someone to help process my emotions. On one hand, all my hard work was starting to pay off, which felt great. But on the other hand, life had allowed me to see a tiny glimpse of a better future. Making that future a reality now rested entirely on my shoulders, but it was too much of a responsibility for me to handle alone. I spent the entire next week preparing for the interview, from reading and rereading the books I had, to trying to guess what kind of clothes I should wear for the interview. I had never worked as a programmer, and as such, I had no idea how the programmer culture worked and what kind of behavior would be expected from me. I didn’t have anyone to ask about this either, so at some point I decided to stop worrying too much about the appearance side and tried to focus on the technical aspect of the process, hoping my skills would speak for themselves. I had no doubt this was my once-in-a-lifetime opportunity and I couldn’t waste it, but first, I had to share my excitement with my mother and my wife: I needed to talk about what had happened with someone to help process my emotions. Unexpected obstacles The time passed quickly, and before I knew it, I was sitting on a two-hour-long bus trip, heading to Montevideo. I had the PHP Bible in my backpack and enough money to buy a burger and pay for the ticket from the bus terminal to the company’s offices in downtown Montevideo. I didn’t want to arrive late, so I was around the area an hour in advance, trying my best to fight off a nervous breakdown. I had to find something to kill time and occupy my worried mind, so I walked to a nearby square, found a bench, and sat down to keep studying. I couldn’t believe that all my struggles over the previous months would be decided in about an hour. “Did I prepare the best I could? That time I didn’t want to study that part of the book so I could go outside, was it worth it?” I wondered. Then I came to my senses. “Stop it,” I told myself. “It’s time to focus on the book in front of me right now, since there’s no reason for worrying about could haves.” Soon, it was time to head up for the interview. If this was a Tarantino film, my character would probably be called Mr. Blue: dark blue jeans, blue shirt, and dark blue hoodie. I got to the reception area and was welcomed by the HR manager, who I’d spoken to on the phone the week before. She asked me to sit and wait and offered me a glass of water. I took the offer and immediately started doubting myself. “Is this the right thing to do?” I wondered. “Am I being polite or impolite?” Anxiety was taking over. Meanwhile, people were walking around, going from one office to another. “Are any of them my interviewer?” I asked myself, studying each person who walked by. One man walked up to the HR manager and started talking. “Ah, it must be him,” I thought. But it wasn’t. After more of this wondering, the HR manager called my name and took me into a big conference room. She handed me a pile of paper and told me this was the first part of the interview: a psychological test with more than 100 behavioral and situational questions. What. Is. This? Nowhere in the PHP Bible did it mention that people needed to pass psychological tests to become a programmer! But I tried the best I could, second guessing the intention of every question. Of course, I had no idea if the answers I was choosing were correct, but I hoped they would bring me one step closer to getting the job I wanted. Once I was done, I returned the papers with my answers and then was asked to take a seat again and wait for the next stage. Soon the HR manager introduced me to someone who was going to conduct the programming interview. “Now or never,” I thought. “Now or never.” At that moment, I felt that all the pressure was on me, that I couldn’t let down my wife, my mom, my family. “If I don’t get this job, let it be known that it wasn’t because I got blocked mid interview, and didn’t know what to do,” I thought. “If I don’t pass the next stage, it’d better be because they didn’t want me, and not because I lacked the knowledge or preparation.”
In this episode, Quincy tells the story of Alvaro Videla, who was living in poverty in Uruguay when he decided he wanted to learn to code. He had limited access to books and the internet. But he eventually got a job at Apple and other tech companies. Article by Alvaro Videla: https://fcc.im/2fRSzwM Read by Quincy Larson: https://twitter.com/ossia Learn to code for free at: https://www.freecodecamp.org Music: "Sounds of Wonder" by Vangough: https://fcc.im/2yQOq0q Transcript: At the end of 2006, I arrived at a crossroads in my life. My hopes of becoming a secondary school linguistics teacher had vanished in an instant, as several factors had come together and made it impossible for me to continue with my studies. Back in my hometown of Durazno, Uruguay, my wife was working long hours for a meager $160 (USD) a month. Yes, that’s $1,920 a year. We had sacrificed our time together so I could become a teacher and get a better job because we were dreaming of a better future. The problem with dreams is they tend to vanish when you wake up, and life’s alarm clock had just gone off. Because my career trajectory had suddenly strayed off course, I moved back to my hometown to figure out my next steps. Needless to say, I was depressed at the way things were, and our living situation only made things worse. It was good to be back with my wife, but the reasons for it were stressful. Additionally, we were sharing a house with my wife’s aunt, so our privacy was restricted to our bedroom, and we always felt like we were overstaying our welcome. As a way to bring in extra income, we tried to sell homemade pasta on the streets. I would go door-to-door collecting orders for the weekend. “Hello, do you want to order ravioli to eat this Sunday?” I’d ask person after person. “Yes, they’re homemade. Just give us a time and we’ll deliver them.” Then, after people ordered them, we spent our entire weekends making 2,000 ravioli only to end up with 500 pesos in our pockets, which comes about $20, not counting expenses. The whole situation was disheartening, and it made us feel hopeless. My wife would work hard all week, then come home only to spend her weekends helping me prepare the ravioli. She couldn’t even have one day of the weekend for herself. She begged me to stop selling ravioli, even if that meant we would end up with less money to pay our bills. Eventually I agreed, but it meant I had to try to find a job — and finding a job wasn’t so easy in our rural hometown. Anxiety and desperation were starting to set in. One night, I was talking with a friend who was studying computer engineering at the university in Montevideo. He told me about the various job opportunities one could find in the capital city, with salaries that were the stuff of dreams for someone living in the countryside. “There’s this big company in Montevideo, Live Interactive,” he told me. “They’re always looking for programmers; maybe you could try to get a job there. They pay really well.” The salary he mentioned was around three times what we were making at the time, and I couldn’t help but imagine all the things we could do with that much money. We wouldn’t need to worry anymore about putting food on the table. We could finally pay for our own internet connection, get proper clothes and shoes, and even have our own washing machine! Not only that, but I already had experience with computers. I always liked working with them, mostly because they appealed to my knack for problem solving. Programming reminded me of having to crack a code or find the solution to a difficult puzzle — but in addition to being challenging, it was fun. What’s more is that I saw programming as a career with a lot of potential for growth. But there was one small problem: to work as a computer programmer, one usually needs to know how to program computers. Me? I could install Linux on my own, but that was probably the extent of it. How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge? How do you learn to program without internet access at home, without mentors to connect with, and without access to programming books? That was my problem back in 2006, and this is the story of how I tackled it. The Early Days I’ve been dabbling with computers since I was a teenager — most of the time when visiting a friend who had a PC. While we often used the computer to play games, I wasn’t interested in playing that much. Why? Back when I started secondary school, a friend’s father let us use his ZX Spectrum computer. He had good stack of cassettes with plenty of games for it, and of course, we could play all we wanted, but one day he showed me something that blew my mind: people could make their own games by programming the computer! He showed me some tricks in BASIC, like how you could generate random numbers using the RAND function. I was amazed. At that point, I realized computers were more than a glorified Nintendo with a keyboard: you could actually tell them to do things for you — cool things, like drawing lines using trigonometric functions and then painting them by applying random colors! You could even make music with them by passing different frequencies to BEEP. In fact, once I brought the Spectrum to my house and spent an entire afternoon playing different kinds of beep sounds on my TV — I’m sure my mom loved it. How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge? Later on, during my teenage years, I continued spending time with friends who had their own computers, and naturally we played games on them. Meanwhile, with my more tech-savvy friends, I learned a few operating system tricks — mostly MS-DOS. Every once in awhile, we would try some BASIC programming by copying, character by character, the code snippets that appeared in old computer magazines. To us, they seemed like magic spells or technological incantations. One thing we really liked was trying to edit the text messages a game would show for different situations. We thought we were such hackers! By the early 2000s, I managed to convince my grandfather to buy me a computer: a Pentium MMX with 32MB of RAM! What a machine! I installed Linux on it for the first time, using a SUSE CD that came for free with an Argentinean computer magazine. I spent quite a lot of time on that computer: trying different Linux distributions, getting familiarized with the command line, and so on, but never really doing any programming. When I look back to those days, I can’t understand why I wasn’t learning C programming — or any kind of programming for that matter. A friend even offered me the bible of C programming by Kernighan and Ritchie, so not having access to a manual wasn’t an excuse. But for some reason, after reading a few examples, it didn’t spark any interest in me, as I didn’t understand how what it covered would be useful for me. In any case, playing with Linux was the only thing I was doing with computers back then. From that point on, I had several minor jobs, played in a rock ’n’ roll band, and tried to become a linguistics teacher, all while getting married and moving all over the country together with my wife. Fast forward to November 2006 and I found myself in need of somehow becoming hirable by a software company. I had to become a credible computer programmer. Time for Some Goals If I wanted to get hired, the first thing to do was evaluate my skillset as a programmer. I had to be honest with myself so I could know where to focus my efforts. At the time, I knew a bit of ActionScript for Flash MX and the very basics of PHP programming. Earlier that year, I had started learning those technologies as a hobby. I’d also started a pet project to learn programming, thinking maybe it could become a secondary source of income. I came up with the idea of making a digital map of my hometown where you could drop pins that would point the user to the location of businesses, shops, and interesting locations. I would then charge those businesses money in exchange for appearing in my online map application. Of course I know what you’re thinking. “That’s just Google Maps,” you say. Yes, but back in 2006, the only thing Google Maps knew about my hometown was that it was crossed by a big national highway. Given that, my map seemed like a good idea. Also, I figured this project would be the perfect way to showcase my skills to a prospective employer. I had a clear goal of what I wanted to build; I just had to get down to work and make it happen. So at the end of 2006, I set myself a deadline: come February 2007, I had to have a working concept of the map application. This had to include a Flash frontend, served by a PHP backend, using MySQL for data persistence. The technologies I’ve just mentioned might not seem too relevant today, but the point here is that I had to nail down every detail of my plan so I would know which problems to tackle first, since time was ticking: every day that went by was another day where my wife was overloaded, working overtime to get food on our table. Additionally, to even have a shot at getting a programming job, I had to show potential employers that I could program in those particular technologies, because that was part of the job description. Naturally, I had nothing related to these skills on my resume, so I had to build up my knowledge from scratch, and my app would serve as the showcase of my programming expertise. The plan was to land an interview at the company my friend had mentioned before, and hopefully, with the combination of my skills and my app, I would end up getting a job there. Even then, I knew the importance of setting clear goals for yourself in order to achieve what you want. Learning project: a Map Application The map application I created was called Aleph Maps — a reference to Jorge Luis Borges’ 1949 story, “El Aleph,” about a place in the universe where everything — past, present, and future — is contained. Not ambitious at all, right? And to bring the idea into existence, I would have to learn how to program web apps. Having no internet at home is a real challenge for a future web developer. When I started, ADSL broadband adoption was almost nonexistent, limited only to businesses and maybe wealthy households. For the average family, connecting to the internet meant dialing in on a modem connection and paying high prices for a slow internet experience. I couldn’t afford that, which meant I had to go and bother friends every time I needed to access some online tutorial that explained how to program in PHP. So even though I had a computer and the will to learn, I still didn’t have easy or regular access to the information on how to do it. But I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions. Meanwhile, due to the lack of internet access around town, cyber cafes started popping up in the city, charging around half a dollar for one hour of surfing. This struck me as a better solution than constantly bothering my friends. But this also meant finding an extra 50 cents and a couple of floppy disks in order to get to a cyber cafe, find the information I wanted, copy it onto one of those diskettes, and get it home onto my computer. More often than not, data got corrupted in the process of extracting it from the floppy disks. Imagine how angry and frustrated I was: I had made a trip to a cyber cafe and wasted 50 cents for nothing. Half a dollar! This might not sound like much, but at that time where we lived, you could buy a burger or a bottle of beer for a dollar. For us, it was a lot of money: it meant our daily bottle of milk or a loaf of bread. During those days, my routine consisted of trying to solve problem A to get to point B. Sometimes the tasks were rather easy and I felt like I was making quick progress. Other days, it felt like I was going nowhere. For example, say I had to implement a feature like “insert new data into the database.” This meant writing down all the obstacles I had to solve to achieve that — from how to write an SQL INSERT statement to how to execute it using PHP — and then integrating everything into the app. Each of these tasks was an item on my daily “shopping list” for when I went to the internet cafe. I would take a couple of floppy disks with me, and then I would google for blog posts, tutorials, and guides that would help me solve the items on my list. Once that was complete, it was time to save them on my diskettes and head home, all the while hoping the data had successfully saved and would be easily accessed on my computer. Because of the uncertainty involved, the bicycle trip back would be fueled by the worst anxiety ever. “What if the data isn’t there at all?” I wondered. “What if the bike shakes too much and the data gets corrupted? I really don’t have another dollar to spare until tomorrow, so this better work when I get home.” I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions. Suffice to say, this wasn’t practical at all. Once I was back home, I’d use the information I’d brought back to help me accomplish the task in progress, but once it was complete, I lacked the knowledge to perform the next step. This means I was left sitting at home, thinking about a problem, and waiting until the next day, when I could squeeze another 50 cents out of our budget to go to the cafe and repeat this routine. Though at the time it seemed like my only option, eventually I had to admit to myself that it was time for a new strategy. I needed something that contained most of the information on how to write a web application with PHP and Flash MX, with guides explaining how to perform the most trivial of tasks, all in one single place. Not the internet, but books! It seems like such a no-brainer, but for someone in my situation, the kinds of books I needed weren’t necessarily in reach. The problem is that when you’re part of a marginalized sector of society, accessing books isn’t so easy. The closest thing to a programming book you could find at the public library would be some outdated manual on how to repair a computer — maybe some dusty MS-DOS guide, or perhaps a BASIC or Delphi book if you got lucky — but not much more. Well, at least one could buy books, right? Not really. In most towns in Uruguay’s countryside, technical books are usually absent from the bookstore shelves, and my town was no exception. Add to the problem the fact that most of the tech books — particularly those talking about cutting-edge technology — are written in English, and you can just forget about the local bookstore. In the end, this left me with only one option: Amazon. But it wasn’t that easy either. To buy books on Amazon, you need a little piece of plastic called a credit card, but to get access to a credit card, you need a good credit history — which for most people is not a problem. In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan. For us, it worked like this: if we wanted to buy something more expensive than our monthly income, we either saved month after month until we got enough money to buy what we wanted, or we asked some family member to buy the product for us and worked to pay them back later. And even if we’d had the option of buying books on Amazon, we hadn’t factored in the fact that shipping alone from the United States to Uruguay was nearly the cost of the book, not to mention it would take a month for it to arrive. In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan Sometimes the solution to these kinds of problems is closer to home than we think. Eventually, we ended up resorting to asking for help from family. My wife has an aunt who had been living in the US for quite a while, so we figured it was worth a shot to ask and see if she would buy me a couple of programming books. So on one of my internet excursions, I wrote an email to her explaining my situation, hit send, and basically crossed my fingers and prayed to every deity out there that she would help us. After a couple of days, I had a new email in my inbox. It was her answer, straight to the point: “Tell me which books you need and I’ll order them from Amazon.” After doing some research, I ended up asking for the Flash MX Bible and the PHP 5 and MySQL Bible. Those two books proved incredibly helpful in the weeks to come. They were both so thorough that I was able to make steady progress without needing to constantly visit the internet cafe in search of missing information. I could finally make headway on understanding what I needed to know to build my maps application. And finally, with access to the information I needed, it was time to sit down in front of my computer and get to work. At the end of 2006, I arrived at a crossroads in my life. My hopes of becoming a secondary school linguistics teacher had vanished in an instant, as several factors had come together and made it impossible for me to continue with my studies. Back in my hometown of Durazno, Uruguay, my wife was working long hours for a meager $160 (USD) a month. Yes, that’s $1,920 a year. We had sacrificed our time together so I could become a teacher and get a better job because we were dreaming of a better future. The problem with dreams is they tend to vanish when you wake up, and life’s alarm clock had just gone off. Because my career trajectory had suddenly strayed off course, I moved back to my hometown to figure out my next steps. Needless to say, I was depressed at the way things were, and our living situation only made things worse. It was good to be back with my wife, but the reasons for it were stressful. Additionally, we were sharing a house with my wife’s aunt, so our privacy was restricted to our bedroom, and we always felt like we were overstaying our welcome. As a way to bring in extra income, we tried to sell homemade pasta on the streets. I would go door-to-door collecting orders for the weekend. “Hello, do you want to order ravioli to eat this Sunday?” I’d ask person after person. “Yes, they’re homemade. Just give us a time and we’ll deliver them.” Then, after people ordered them, we spent our entire weekends making 2,000 ravioli only to end up with 500 pesos in our pockets, which comes about $20, not counting expenses. The whole situation was disheartening, and it made us feel hopeless. My wife would work hard all week, then come home only to spend her weekends helping me prepare the ravioli. She couldn’t even have one day of the weekend for herself. She begged me to stop selling ravioli, even if that meant we would end up with less money to pay our bills. Eventually I agreed, but it meant I had to try to find a job — and finding a job wasn’t so easy in our rural hometown. Anxiety and desperation were starting to set in. One night, I was talking with a friend who was studying computer engineering at the university in Montevideo. He told me about the various job opportunities one could find in the capital city, with salaries that were the stuff of dreams for someone living in the countryside. “There’s this big company in Montevideo, Live Interactive,” he told me. “They’re always looking for programmers; maybe you could try to get a job there. They pay really well.” The salary he mentioned was around three times what we were making at the time, and I couldn’t help but imagine all the things we could do with that much money. We wouldn’t need to worry anymore about putting food on the table. We could finally pay for our own internet connection, get proper clothes and shoes, and even have our own washing machine! Not only that, but I already had experience with computers. I always liked working with them, mostly because they appealed to my knack for problem solving. Programming reminded me of having to crack a code or find the solution to a difficult puzzle — but in addition to being challenging, it was fun. What’s more is that I saw programming as a career with a lot of potential for growth. But there was one small problem: to work as a computer programmer, one usually needs to know how to program computers. Me? I could install Linux on my own, but that was probably the extent of it. How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge? How do you learn to program without internet access at home, without mentors to connect with, and without access to programming books? That was my problem back in 2006, and this is the story of how I tackled it. The Early Days I’ve been dabbling with computers since I was a teenager — most of the time when visiting a friend who had a PC. While we often used the computer to play games, I wasn’t interested in playing that much. Why? Back when I started secondary school, a friend’s father let us use his ZX Spectrum computer. He had good stack of cassettes with plenty of games for it, and of course, we could play all we wanted, but one day he showed me something that blew my mind: people could make their own games by programming the computer! He showed me some tricks in BASIC, like how you could generate random numbers using the RAND function. I was amazed. At that point, I realized computers were more than a glorified Nintendo with a keyboard: you could actually tell them to do things for you — cool things, like drawing lines using trigonometric functions and then painting them by applying random colors! You could even make music with them by passing different frequencies to BEEP. In fact, once I brought the Spectrum to my house and spent an entire afternoon playing different kinds of beep sounds on my TV — I’m sure my mom loved it. How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge? Later on, during my teenage years, I continued spending time with friends who had their own computers, and naturally we played games on them. Meanwhile, with my more tech-savvy friends, I learned a few operating system tricks — mostly MS-DOS. Every once in awhile, we would try some BASIC programming by copying, character by character, the code snippets that appeared in old computer magazines. To us, they seemed like magic spells or technological incantations. One thing we really liked was trying to edit the text messages a game would show for different situations. We thought we were such hackers! By the early 2000s, I managed to convince my grandfather to buy me a computer: a Pentium MMX with 32MB of RAM! What a machine! I installed Linux on it for the first time, using a SUSE CD that came for free with an Argentinean computer magazine. I spent quite a lot of time on that computer: trying different Linux distributions, getting familiarized with the command line, and so on, but never really doing any programming. When I look back to those days, I can’t understand why I wasn’t learning C programming — or any kind of programming for that matter. A friend even offered me the bible of C programming by Kernighan and Ritchie, so not having access to a manual wasn’t an excuse. But for some reason, after reading a few examples, it didn’t spark any interest in me, as I didn’t understand how what it covered would be useful for me. In any case, playing with Linux was the only thing I was doing with computers back then. From that point on, I had several minor jobs, played in a rock ’n’ roll band, and tried to become a linguistics teacher, all while getting married and moving all over the country together with my wife. Fast forward to November 2006 and I found myself in need of somehow becoming hirable by a software company. I had to become a credible computer programmer. Time for Some Goals If I wanted to get hired, the first thing to do was evaluate my skillset as a programmer. I had to be honest with myself so I could know where to focus my efforts. At the time, I knew a bit of ActionScript for Flash MX and the very basics of PHP programming. Earlier that year, I had started learning those technologies as a hobby. I’d also started a pet project to learn programming, thinking maybe it could become a secondary source of income. I came up with the idea of making a digital map of my hometown where you could drop pins that would point the user to the location of businesses, shops, and interesting locations. I would then charge those businesses money in exchange for appearing in my online map application. Of course I know what you’re thinking. “That’s just Google Maps,” you say. Yes, but back in 2006, the only thing Google Maps knew about my hometown was that it was crossed by a big national highway. Given that, my map seemed like a good idea. Also, I figured this project would be the perfect way to showcase my skills to a prospective employer. I had a clear goal of what I wanted to build; I just had to get down to work and make it happen. So at the end of 2006, I set myself a deadline: come February 2007, I had to have a working concept of the map application. This had to include a Flash frontend, served by a PHP backend, using MySQL for data persistence. The technologies I’ve just mentioned might not seem too relevant today, but the point here is that I had to nail down every detail of my plan so I would know which problems to tackle first, since time was ticking: every day that went by was another day where my wife was overloaded, working overtime to get food on our table. Additionally, to even have a shot at getting a programming job, I had to show potential employers that I could program in those particular technologies, because that was part of the job description. Naturally, I had nothing related to these skills on my resume, so I had to build up my knowledge from scratch, and my app would serve as the showcase of my programming expertise. The plan was to land an interview at the company my friend had mentioned before, and hopefully, with the combination of my skills and my app, I would end up getting a job there. Even then, I knew the importance of setting clear goals for yourself in order to achieve what you want. Learning project: a Map Application The map application I created was called Aleph Maps — a reference to Jorge Luis Borges’ 1949 story, “El Aleph,” about a place in the universe where everything — past, present, and future — is contained. Not ambitious at all, right? And to bring the idea into existence, I would have to learn how to program web apps. Having no internet at home is a real challenge for a future web developer. When I started, ADSL broadband adoption was almost nonexistent, limited only to businesses and maybe wealthy households. For the average family, connecting to the internet meant dialing in on a modem connection and paying high prices for a slow internet experience. I couldn’t afford that, which meant I had to go and bother friends every time I needed to access some online tutorial that explained how to program in PHP. So even though I had a computer and the will to learn, I still didn’t have easy or regular access to the information on how to do it. But I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions. Meanwhile, due to the lack of internet access around town, cyber cafes started popping up in the city, charging around half a dollar for one hour of surfing. This struck me as a better solution than constantly bothering my friends. But this also meant finding an extra 50 cents and a couple of floppy disks in order to get to a cyber cafe, find the information I wanted, copy it onto one of those diskettes, and get it home onto my computer. More often than not, data got corrupted in the process of extracting it from the floppy disks. Imagine how angry and frustrated I was: I had made a trip to a cyber cafe and wasted 50 cents for nothing. Half a dollar! This might not sound like much, but at that time where we lived, you could buy a burger or a bottle of beer for a dollar. For us, it was a lot of money: it meant our daily bottle of milk or a loaf of bread. During those days, my routine consisted of trying to solve problem A to get to point B. Sometimes the tasks were rather easy and I felt like I was making quick progress. Other days, it felt like I was going nowhere. For example, say I had to implement a feature like “insert new data into the database.” This meant writing down all the obstacles I had to solve to achieve that — from how to write an SQL INSERT statement to how to execute it using PHP — and then integrating everything into the app. Each of these tasks was an item on my daily “shopping list” for when I went to the internet cafe. I would take a couple of floppy disks with me, and then I would google for blog posts, tutorials, and guides that would help me solve the items on my list. Once that was complete, it was time to save them on my diskettes and head home, all the while hoping the data had successfully saved and would be easily accessed on my computer. Because of the uncertainty involved, the bicycle trip back would be fueled by the worst anxiety ever. “What if the data isn’t there at all?” I wondered. “What if the bike shakes too much and the data gets corrupted? I really don’t have another dollar to spare until tomorrow, so this better work when I get home.” I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions. Suffice to say, this wasn’t practical at all. Once I was back home, I’d use the information I’d brought back to help me accomplish the task in progress, but once it was complete, I lacked the knowledge to perform the next step. This means I was left sitting at home, thinking about a problem, and waiting until the next day, when I could squeeze another 50 cents out of our budget to go to the cafe and repeat this routine. Though at the time it seemed like my only option, eventually I had to admit to myself that it was time for a new strategy. I needed something that contained most of the information on how to write a web application with PHP and Flash MX, with guides explaining how to perform the most trivial of tasks, all in one single place. Not the internet, but books! It seems like such a no-brainer, but for someone in my situation, the kinds of books I needed weren’t necessarily in reach. The problem is that when you’re part of a marginalized sector of society, accessing books isn’t so easy. The closest thing to a programming book you could find at the public library would be some outdated manual on how to repair a computer — maybe some dusty MS-DOS guide, or perhaps a BASIC or Delphi book if you got lucky — but not much more. Well, at least one could buy books, right? Not really. In most towns in Uruguay’s countryside, technical books are usually absent from the bookstore shelves, and my town was no exception. Add to the problem the fact that most of the tech books — particularly those talking about cutting-edge technology — are written in English, and you can just forget about the local bookstore. In the end, this left me with only one option: Amazon. But it wasn’t that easy either. To buy books on Amazon, you need a little piece of plastic called a credit card, but to get access to a credit card, you need a good credit history — which for most people is not a problem. In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan. For us, it worked like this: if we wanted to buy something more expensive than our monthly income, we either saved month after month until we got enough money to buy what we wanted, or we asked some family member to buy the product for us and worked to pay them back later. And even if we’d had the option of buying books on Amazon, we hadn’t factored in the fact that shipping alone from the United States to Uruguay was nearly the cost of the book, not to mention it would take a month for it to arrive. In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan Sometimes the solution to these kinds of problems is closer to home than we think. Eventually, we ended up resorting to asking for help from family. My wife has an aunt who had been living in the US for quite a while, so we figured it was worth a shot to ask and see if she would buy me a couple of programming books. So on one of my internet excursions, I wrote an email to her explaining my situation, hit send, and basically crossed my fingers and prayed to every deity out there that she would help us. After a couple of days, I had a new email in my inbox. It was her answer, straight to the point: “Tell me which books you need and I’ll order them from Amazon.” After doing some research, I ended up asking for the Flash MX Bible and the PHP 5 and MySQL Bible. Those two books proved incredibly helpful in the weeks to come. They were both so thorough that I was able to make steady progress without needing to constantly visit the internet cafe in search of missing information. I could finally make headway on understanding what I needed to know to build my maps application. And finally, with access to the information I needed, it was time to sit down in front of my computer and get to work.
In our final episode of our Codeland mini-series, Katrina Owen shares what it really takes to get that mentor you've always wanted, Quincy Larson gives us his best practices for writing technical blog posts people will actually read, and Nell Shamrell-Harrington explores what it really takes for an open source project to be successful and what you should know as a future contributor. Show Links Digital Ocean (sponsor) MongoDB (sponsor) Heroku (sponsor) TwilioQuest (sponsor) Sample Testing Guide How to read Medium articles people will actually read CodeNewbie YouTube channel Continuous Integration (CI) Open Source Governance Sample Code of Conduct Travis CI Sample Contribution Guide Be Lucky—it’s an easy skill to learn by Richard Wiseman Codeland, CodeNewbie's conference - April 21 and 22 in NYC Codeland Conf Codeland 2019
Suddenly, automation is changing our world faster than anyone anticipated. For technologists, the world is becoming convenient and high-leverage. For non-technologists, the job market is evaporating. Haseeb Qureshi and Quincy Larson join me for a roundtable discussion on automation, jobs, and artificial intelligence. Haseeb and I have had numerous discussions about this topic before, and The post Automation with Haseeb Qureshi and Quincy Larson appeared first on Software Engineering Daily.
Founder of https://www.freecodecamp.com/ Quincy Larson gives us some low hanging fruit of how to protect our data, including browsing data. He tells us how to set up a VPN and some simple hacks to improve personal security. We talk to Anthony O'Callaghan, Director of Analytics and Artificial Intelligence Johnson Controls. Anthony is vice chair of Cork@IT and gives us a quick download of what the nonprofit does and about the upcoming event in Cork. https://www.itcork.ie/event/tech-summit-2017/ Quincy Larson, freecodecamp, How to set up a VPN, government tracking, data mining, Anthony O'Callaghan, Director of Analytics and Artificial Intelligence Johnson Controls. Vice chair of Cork@IT
Coming from a nontraditional background as an educator living in China for years, Quincy combined his passion for education and technology to launch Free Code Camp, an open-source community that helps people learn how to code and practice their coding skills by building projects for nonprofits. Quincy has indeed built a massive network of “campers” with close to a million developers learning how to code around the world. Free Code Camp has helped over 5,000 people find their first engineering jobs and 6,000 developers level up by getting better jobs. Being a prolific writer that he is, Quincy is also the editor of freeCodeCamp, Medium’s largest technical publication read by 100,000 people every day.
To say that Quincy Larson is a teacher is an understatement. Quincy Larson is an accomplished writer, mentor, and founder of FreeCodeCamp.com which is an organization that teaches over 400,000 students how to become job ready developers. What is the catch? Just hard work and a 1200 hour course that will transform you into a coding Ninja. Coding skills can make […]
Net neutrality is the principle that internet service providers and governments regulating the internet should treat all data on the internet the same. Debates around Net Neutrality can be as contentious as subjects like global warming, or tabs vs. spaces. To a hardcore free market economist, Net Neutrality sounds suspicious. Why would it be good The post Net Neutrality with Quincy Larson appeared first on Software Engineering Daily.
Free Code Camp is an online learning platform that takes people from knowing nothing about code to having enough knowledge to build software for a living. We have already done a show with Quincy Larson, the founder of Free Code Camp, in which we discussed his motivation for starting the organization. The economics of running The post Architecture of Free Code Camp with Berkeley Martinez appeared first on Software Engineering Daily.
Best of 2016! If you're a parent, child, or just an interested family member this show is for you. We're featuring it in our "best of" series because it flew off the digital shelves. This show is packed with wisdom and insights so download and share. Special thanks to this episode's sponsors, Concordia International School Shanghai; discover more at www.concordiashanghai.org. // What'd you think of this show? Send comments, questions and feedback to the host at Pete@limitlesslaowai.com. Be well.
Listen in to episode 50 as Arsalan and Quincy discuss how Free Code Camp came to be and how you can benefit from this wonderful resource. Don’t forget to sign up for Arsalan Ahmed’s Five Steps to Success as a Software Developer email series to guide you on your coding journey. Quincy Larson’s Bio:...
Listen in to episode 50 as Arsalan and Quincy discuss how Free Code Camp came to be and how you can benefit from this wonderful resource. Don't forget to sign up for Arsalan Ahmed's Five Steps to Success as a Software Developer email series to guide you on your coding journey. Quincy Larson's Bio:...
If you're raising kids abroad, have you ever wondered what it may be like for them to repatriate as Third Culture Kids? In this show, Limitless intern Nick Abouchedid interviews two college students who spent the majority of their childhood in China. Americans by passport, Aaron Brantingham and Quincy Larson, both call China home, and had different experiences as they acclimated to life in the US. What was it like to graduate from international schools? Were they prepared academically and socially to attend college? How did they manage their adjustment and culture shock to life and study back home? Tune in to find out! // Ten quick questions will better your listener experience. Take the 2016 Listener Survey at www.limitlesslaowai.com/survey. // A special thanks to this episode's sponsor Concordia International School Shanghai. Discover more at www.concordiashanghai.org.
Guest: Quincy Larson @ossia Full show notes are at https://developeronfire.com/podcast/episode-120-quincy-larson-teacher-with-enough
03:10 - Quincy Larson Introduction Twitter GitHub 03:20 - Free Code Camp @FreeCodeCamp 04:47 - Quincy’s Background 06:43 - Curriculum and Non-Profit Projects 09:47 - Keeping the Curriculum Updated 10:30 - Enrollment; Starting & Finishing 12:20 - Resources for Learning Gitter 15:39 - Funding 16:06 - Working Through a Self-Paced System vs Structure 17:17 - Nonprofits 19:51 - Learning to Work on Non-Greenfield Code 21:47 - Getting Hired After the Program 23:21 - Marketing and Media Medium: Free Code Camp Camper News Twitch.tv: freecodecamp 26:07 - Sustaining Living While Running This Program 27:31 - The Future of Free Code Camp Free Code Camp Wiki 28:34 - Long-term Sustainability 29:44 - Hypothetical Monetization and Contribution 33:51 - Coding as a form of art or function? 36:55 - Partnerships Project Management Institute 37:53 - Making Free Code Camp More Effective 39:18 - Criticism? 40:29 - Curriculum Development and Evolution 43:02 - Is Free Code Camp for everybody? Read, Search, Ask 46:09 - The Community 51:07 - Getting Involved in Free Code Camp Free Code Camp Volunteer Quiz Picks Our Greatest Fear — Marianne Williamson (AJ) The Rabbit Joint - The Legend of Zelda (AJ) Nintendo (Twilight Princess HD Soundtrack) (AJ) Steve Wozniak: The early days @ TEDxBerkeley (AJ) Favor of the Pharaoh (Joe) The Goldbergs (Joe) The Best Podcast Rap (Chuck) Word Swag (Chuck) Cecily Carver: Things I Wish Someone Had Told Me When I Was Learning How to Code (Quincy) Code for the Kingdom (Aimee) diff-so-fancy (Aimee)
03:10 - Quincy Larson Introduction Twitter GitHub 03:20 - Free Code Camp @FreeCodeCamp 04:47 - Quincy’s Background 06:43 - Curriculum and Non-Profit Projects 09:47 - Keeping the Curriculum Updated 10:30 - Enrollment; Starting & Finishing 12:20 - Resources for Learning Gitter 15:39 - Funding 16:06 - Working Through a Self-Paced System vs Structure 17:17 - Nonprofits 19:51 - Learning to Work on Non-Greenfield Code 21:47 - Getting Hired After the Program 23:21 - Marketing and Media Medium: Free Code Camp Camper News Twitch.tv: freecodecamp 26:07 - Sustaining Living While Running This Program 27:31 - The Future of Free Code Camp Free Code Camp Wiki 28:34 - Long-term Sustainability 29:44 - Hypothetical Monetization and Contribution 33:51 - Coding as a form of art or function? 36:55 - Partnerships Project Management Institute 37:53 - Making Free Code Camp More Effective 39:18 - Criticism? 40:29 - Curriculum Development and Evolution 43:02 - Is Free Code Camp for everybody? Read, Search, Ask 46:09 - The Community 51:07 - Getting Involved in Free Code Camp Free Code Camp Volunteer Quiz Picks Our Greatest Fear — Marianne Williamson (AJ) The Rabbit Joint - The Legend of Zelda (AJ) Nintendo (Twilight Princess HD Soundtrack) (AJ) Steve Wozniak: The early days @ TEDxBerkeley (AJ) Favor of the Pharaoh (Joe) The Goldbergs (Joe) The Best Podcast Rap (Chuck) Word Swag (Chuck) Cecily Carver: Things I Wish Someone Had Told Me When I Was Learning How to Code (Quincy) Code for the Kingdom (Aimee) diff-so-fancy (Aimee)
03:10 - Quincy Larson Introduction Twitter GitHub 03:20 - Free Code Camp @FreeCodeCamp 04:47 - Quincy’s Background 06:43 - Curriculum and Non-Profit Projects 09:47 - Keeping the Curriculum Updated 10:30 - Enrollment; Starting & Finishing 12:20 - Resources for Learning Gitter 15:39 - Funding 16:06 - Working Through a Self-Paced System vs Structure 17:17 - Nonprofits 19:51 - Learning to Work on Non-Greenfield Code 21:47 - Getting Hired After the Program 23:21 - Marketing and Media Medium: Free Code Camp Camper News Twitch.tv: freecodecamp 26:07 - Sustaining Living While Running This Program 27:31 - The Future of Free Code Camp Free Code Camp Wiki 28:34 - Long-term Sustainability 29:44 - Hypothetical Monetization and Contribution 33:51 - Coding as a form of art or function? 36:55 - Partnerships Project Management Institute 37:53 - Making Free Code Camp More Effective 39:18 - Criticism? 40:29 - Curriculum Development and Evolution 43:02 - Is Free Code Camp for everybody? Read, Search, Ask 46:09 - The Community 51:07 - Getting Involved in Free Code Camp Free Code Camp Volunteer Quiz Picks Our Greatest Fear — Marianne Williamson (AJ) The Rabbit Joint - The Legend of Zelda (AJ) Nintendo (Twilight Princess HD Soundtrack) (AJ) Steve Wozniak: The early days @ TEDxBerkeley (AJ) Favor of the Pharaoh (Joe) The Goldbergs (Joe) The Best Podcast Rap (Chuck) Word Swag (Chuck) Cecily Carver: Things I Wish Someone Had Told Me When I Was Learning How to Code (Quincy) Code for the Kingdom (Aimee) diff-so-fancy (Aimee)
Quincy Larson is the creator of an open source community called freeCodeCamp. We talked with Quincy about “the secret to getting good at coding”, their curriculum that spans a solid year (totaling 2,080 hours) of deliberate coding practice, plans for financial sustainability of the project, and the people behind it on the leading/teaching side and the camper side.
Quincy Larson is the creator of an open source community called freeCodeCamp. We talked with Quincy about “the secret to getting good at coding”, their curriculum that spans a solid year (totaling 2,080 hours) of deliberate coding practice, plans for financial sustainability of the project, and the people behind it on the leading/teaching side and the camper side.
He’s only been coding for four years. But thirteen months ago, Quincy Larson launched one of the most beloved learn-to-code resources in the CodeNewbie community, Free Code Camp. We deep dive into his own learning journey, what he’s learned from helping hundreds of thousands of campers learn to code, and why Free Code Camp will forever be free. Show Links Digital Ocean (sponsor) MongoDB (sponsor) Heroku (sponsor) TwilioQuest (sponsor) MOOC Project Euler Node NPM Odin Project Codeland Conf Codeland 2019
“Free Code Camp is my effort to correct the extremely inefficient and circuitous way I learned to code. I’m committing my career and the rest of my life towards making this process as efficient and painless as possible.” Continue reading… The post Free Code Camp with Quincy Larson appeared first on Software Engineering Daily.
“Free Code Camp is my effort to correct the extremely inefficient and circuitous way I learned to code. I’m committing my career and the rest of my life towards making this process as efficient and painless as possible.” Continue reading… The post Free Code Camp with Quincy Larson appeared first on Software Engineering Daily.