The Changelog: Software Development, Open Source - freeCodeCamp (Interview)
Episode Date: February 12, 2016Quincy 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,0...80 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.
Transcript
Discussion (0)
I'm Quincy Larson, and you're listening to The Change Log.
Welcome back, everyone. This is The Change Log, and I'm your host, Adams Dekowiak.
This is episode 195, and today we're talking to Quincy Larson about a big subject,
learning to code at Free Code Camp.
We talked to Quincy about the secret to getting good at coding.
We learned about their curriculum, spending a solid year, 2,080 hours of deliberate coding
practice.
We discussed plans for financial sustainability of the project.
We talked about the people behind it, both on the leading and the teaching side, as well
as the camper side, and so much more.
We have four sponsors for the show today,
CodeShip, DigitalOcean, Outbeat, and Truesight Pulse.
Our first sponsor is CodeShip,
and they have a free webinar coming up on February 25th
where co-founders Florian and Manuel
will discuss their new continuous integration and delivery platform
with native Docker support.
They will give a walkthrough of how the platform
works examples of working with docker compose features as well as live real world examples
of working with the platform two killer features i have to mention number one you can use existing
docker files in your docker compose yaml files with the code ship docker platform there's no
need to rewrite service definitions and number two you, you can use the CodeShip Docker CLI tool
to run tests locally,
so you ensure absolute parity with your CI environment.
If that gets you excited,
head to resources.codeship.com slash webinars.
And the very first webinar in the list
is the webinar I'm talking about.
Click through to that, sign up,
you'll be good to go,
and now on to the show. All right, everyone, we're here today joined by Quincy Larson. And
Quincy started an open source community. We had to get him on the show. He's been
trending on Change All Nightly. It's called Free Code Camp, and we're here to talk about his journey and the plans and the impact of Free Code Camp and how it's having
an impact on the software development world. Quincy, welcome to the show, my friend.
Thank you for having me.
And I think that the best way, Jared, might be to kick the show off with yet another mention to
this awesome thing we have called Change All Nightly. It's our own radar. That's how we found out about FreeCodeCamp.
And this is an email
we ship out every single night that
features top repos on GitHub
in the last 24 hours. So if you're
on a web browser or able to do
so, go to changelog.com slash nightly.
Subscribe to that. But Jared, let's
kick things off with you telling us a bit
about how we found
FreeCodeCamp through
Change.onLightly and how it kind of bubbled up to get our attention.
Yeah, well, lots of times certain projects will get our attention because they pop up into the
top new list. And then eventually they'll sometimes they'll show up in top overall list as well,
which means they're not just created in the last 24 hours, but overall the most our repos
on GitHub for the day.
FreeCodeCamp is one of those that has been chilling in Nightly for months.
I mean, it routinely is the top starred repository, or at least in the top five.
And we started wondering, what the heck's going on with this FreeCodeCamp?
Everybody loves it.
It's getting starred like crazy.
In fact, we checked it out and it looks like it's number two overall starred repo on GitHub with something like 72,000 stars currently, second only to Bootstrap, which everybody
knows and loves, and which has been around for quite a bit longer.
So we almost just couldn't even ignore it.
It was just there in our inbox every single night.
Couldn't see what that makes you feel like, man?
Does that make you feel like a rock star or what?
Or you're doing something right?
How does that impact you?
I'm extremely humbled by the attention Free Code Camp's been getting.
And yeah, I feel great.
And I'm excited about the prospects.
It's definitely steered a lot of developers
that regularly contribute to open source
to coming and putting in pull requests
and filing issues.
And including Sahat,
it's S-A-H-A-T.
He created the hackathon starter,
which was actually the Node. rollout if you will the
boilerplate that i started free code camp with so he actually had like a ton of commitment
commits on free code camp to begin with and he came back the other day and and followed the pr
so was it a surprise to you i guess to one were you familiar with cheese all nightly
did you know you had been trending for months now, basically?
No.
I mean, obviously on GitHub, but like you've been appearing every single time in this email.
I wasn't aware of that.
I, of course, like people will mention occasionally like, hey, you're trending on GitHub and stuff.
And I'll be like, awesome.
Check it out.
You know, and I remember the first day that we were trending.
It was like, I think, during jQuery SF, which was a big event here in San Francisco.
And I just remember the feeling like, whoa, you know, like we're right behind, you know, Facebook and Google and some other major companies that were really, you know, open sourcing tools at the time.
I think like React Play framework or something was being open
source partially and uh yeah so it was definitely um a big shot in the arm in terms of morale
behind the scenes you don't know this but jared i've kind of been watching what you've been doing
simply because you you're daily on our nightly radar so to speak And so we kind of feel like we know what you're doing already,
but it's great to finally get you on the show.
I'm excited to be here.
I'm a longtime ChangeLog listener,
so I was honored and thrilled when you submitted that GitHub issue
requesting that I come on the show.
That's cool, too, because, Jared,
how often do we have longtime listeners on the show? Is it often or is it because, Jared, how often do we have long-time listeners on the show?
Is it often, or is it
few and far between? Every once in a while.
It's less
often than I'd like to hear, but
it's always nice when somebody
both listens and comes on the show.
Since we're mentioning the show,
Quincy, you really enjoyed
the show just before this show, so this is
episode 195.
Episode 194 featured Jose Valim talking about Elixir.
You like that show a lot, too, but long-time listener of the show.
It's always nice to have someone on the show that's listened.
It's great.
So in this case, you probably know what's coming next,
which is the same thing we did with Jose,
is we like to hear about our
guests' origin stories, how you got to where you are now, because we find those to be informative,
inspiring, and really help us and the listeners relate to you and what you're doing at Free Code
Camp. So could you tell us your hacker origin story? Absolutely. So I started out as a teacher and progressed to a school director
over kind of a process of about 10 years. I ran schools in both the U.S. and China.
And along the way, I was doing these very repetitive workflows, you know, involving immigration, involving grade reports
and enrollment documentation. And I just kind of decided that I wanted to learn more about how to
automate those processes and speed things up so that I could free my school's administrative staff
and teachers from the tedium of just filling in work, you know,
paperwork the old-fashioned way. And so that kind of kicked off a journey into, you know,
writing Excel macros and ultimately writing little scripts that did things. And once I was able to basically facilitate my entire staff being able to spend more time with the students and less time in front of their computer in their offices by themselves, I started to really think about how this technology could be applied more broadly to help teachers and school administrators.
And that's when I decided to kind of take the plunge and leave my job and just focus on learning to develop software full time.
So I did that for several years.
I can go a little bit into how that went. Basically, I shuttered myself and in a hacker space because I couldn't find the motivation to work at home at my kitchen table, which was my original plan. I just there was too much to distract me. There was the fridge. There were all these little things, little excuses. Whenever I hit like a brick wall, I had some convenient chore that I had to go do.
Right.
I know the feeling.
So I locked myself in.
At the time, I was living in Santa Barbara, Santa Barbara hackerspace.
It was just a room at the time.
It was very small and was stacked high with dead Roombas and other drone-type gear and
stuff.
And I just sat in there on their wifi and crunched through
a lot of programming books and worked through a lot of online courses through Coursera and edX.
And I was really all over the map and took me a long time to get good enough that I could
actually go. I mean, like basically seven months of just going to hackathons nonstop and coding, you know, 60, 80 hours a week.
And then finally, I was able to get a software engineering job.
And of course, it was that itself was a completely brutal process of being told I was wrong repeatedly by both humans and machines. And I just continued learning to code
because I was really passionate about helping teachers
and school directors like myself just automate these workflows.
And I figured that there would be a way that I could do that at the end.
But along the way, I kind of discovered that the real struggle
was just
learning to code itself. That what I was doing, you know, this self-directed learning thing,
where I was spending days and days going off in the wrong direction down these rabbit holes with,
you know, debugging Linux drivers and all these other things, that this wasn't necessarily the optimal way of doing it.
So that's when I started seriously thinking about coding education.
And that eventually led me to put up the prototype for FreeCodeCamp and see if we could get any traction.
I think it's interesting to hopefully rep know, hopefully repaint this, what you,
the story just shared. So it sounds like you came from a teacher background with no formal or
traditional training in software development. You taught yourself through, you know, the school of
hard knocks, basically either finding community and, you know, immersing yourself in that.
And then finding out that
essentially software is the is a way to help people back into your original position, which
was a teacher.
And that's sort of been your path.
Is that about right?
Is that fair to say?
Yeah, absolutely.
It was a circuitous path, but I've always been interested in education.
That's that's my calling.
You know, I decided a long time ago that that
was what I thought the major bottleneck to the progress of civilization was, was education. It
wasn't a whole lot of other things that people seem to think it is, like access to capital or
rule of law. There are so many other things that you could consider, but I think education is really fundamental and is causing a lot of the issues that we're experiencing.
And technology education is going to be the biggest solution to income inequality and a lot of these other problems that we're facing in the 21st century. So just to think back through some of your struggle to learn software development
and the resources and tools that were available to you, you said you had books, which you read,
maybe you could tell us, you know, some of the specifics there, but also, you know, some,
some online learning tools. You also seem to be really in surrounding yourself with developers,
at least physically, I don't know if you're, if you're working with them or asking them for help.
But what were the biggest struggles?
What was the hardest part?
You said just learning the code.
Can you give us more on that?
Can you go into that further?
Yeah.
I mean, I think learning the code is a struggle.
First of all, I just want to say, as I've said like a million times before,
and I'll continue to say, anybody can learn to code. It's just a matter of persistence.
I don't think there are any innate properties that give an individual a significant advantage
over another in terms of learning to code. It's just a matter of sitting down and doing it. So
really, at the end of the day, it's a motivational issue.
And it's easy to get demotivated when you're reading a book that you checked out from the library where none of the code examples run because you're in Python 3 instead of Python 2,
for example, and you didn't realize it. Or you're enrolling in a machine learning course and you realize halfway through that you
were supposed to have knowledge of this, you know, relatively advanced mathematical
subject that you know nothing about. And you basically just had to put that class on hold and
switch over to learning mathematics, for example. So there are a whole lot of dependency issues,
if you will, where if you imagine you're learning a big hierarchical thing,
and there are so many moving parts underneath that thing that you need to understand before
you can get all the way up there. So that was a big part of the problem was there wasn't a clear path.
There certainly are clear paths.
People will every once in a while put up a blog post like, here's how you should learn machine learning and do this and then this and then this and then this.
But those kind of get stale after a while and resources are no longer available.
Better resources come out.
Those are not necessarily updated. So we wanted to make sure
that we had like a living curriculum that addressed that specific concern and that we really focused
on just teaching like one very specific thing, which is web development. So maybe this is fast
tracking the whole entire story a bit, but I guess the question I have at this point is like, how do
you go from the story you just painted, teacher, to, you know, in no negative words, wannabe coder, to immersing yourself in hackathons and around people who are developing software, to being the person leading the charge of FreeCodeCamp and encouraging others and leading people through that struggle to actually program?
Like, what makes, what made you the right person to do this?
Honestly, it could have been anybody. I just happened to be in the right place at the right time uh there was a critical mass i remember very like right when i was considering leaving my career
as a school director um that's when mark andreason published the famous now famous uh software is eating the world essay in the wall street journal
um this was right after uh sebastian thron and uh also uh definitely caller and uh andrew
had recently published the uh their uh machine learning and computer science classes that were extremely popular,
the AI class and the machine learning class,
respectively, I think.
And that really launched MOOCs in earnest,
massive open online courses.
So this was a big discussion in education already.
And the shift toward technology,
I really feel that I was on the leading edge of that in the sense that
like i was one of the first people in my field to like really realize how significant and permanent
that uh the shift was uh i think a lot of people to this day kind of even downplay the importance
of these uh scaling technologies where you where you can literally teach hundreds of
thousands of people instead of teaching a class of 30 at a time.
So I think that that was a major part of it, was I just happened to be receptive to these
things, and I was in a position within a school where I could directly take these concepts
and apply them. And another thing was, you know, I was extremely thrifty
and I'd saved half of what I'd earned for like the past decade.
So I had like a little baseline in terms of like a runway to support myself
while I just turned through these things.
I mean, most people don't have the resources to just be able to stop what they're doing
and spend literally years of their life learning the code.
And my hope is that they won't have to have those resources because hopefully Free Code Camp will address that partially and they don't have to leave their jobs or do anything drastic.
But at the time, Free Code Camp didn't exist. And I felt that that was the only way that I could really dive into it.
Because everybody I saw who was taking like a half-hearted approach just wasn't really getting
anywhere. So I would say that it was mostly luck. And like Oprah and all these other people have
said, luck is just opportunity and preparation. And the opportunity was definitely there.
I think at this point, our listeners probably know what free code camp is in a very nebulous way.
It's obviously an online learning community or tool.
But maybe you could give us kind of the,
the summary pitch of it for those,
you know,
who are driving or whatnot,
can't go to free code camp.com and just check it out as we talk,
give the high level,
like what it is and what sets it apart.
And then we'll, we'll continue from there.
Sure.
Free Code Camp is an open-source community
that helps you learn how to code
and helps you practice coding by building projects,
including projects for real-life nonprofits
that need software solutions
to be able to do their jobs more effectively.
We launched, I think, in October 2014. And along the way, we've accumulated a pretty
large core team of contributors, both teachers and developers, who are working on building
this very large open source curriculum
that covers web development from end to end,
starting with basic HTML, CSS, jQuery,
and moving all the way through the front end
with tools like jQuery and React and D3 and data visualization.
And then also covers the back end with tools like Node.js, Express,
and covers some database ORM stuff as well.
And ultimately, throughout the course of FreeCodeCamp, you're not just sitting there like reading
tutorials or watching videos.
You're actually coding the entire time. It's approximately 2,080 hours of coding practice,
which is like a calendar year worth of 40 hours a week work.
And that involves, among other things,
building 10 front-end projects, 10 data visualization projects,
10 back-end projects that are like APIs and microservices,
and then building two projects for nonprofits
and maintaining two other legacy projects
because we think working with legacy code is really important.
And then we're working on an interview preparation component as well
that will cover pair programming on the interview and whiteboard coding and things like that and we focus a lot on
pair programming throughout we we have live chat rooms where community members just volunteer to
to help each other so at any time if you get stuck on a coding challenge you can just click a help
button it'll open up a chat room and you can immediately get help on whatever your issue is.
And we've made extensive use of external tools. So we use Gitter, which is a great, it's kind of
like Slack, but it's for open source communities. And it's really well built and maintained by these gentlemen out in London.
So, yeah, it's a community first and foremost. It's spread across Reddit, across Medium.
And, of course, we have almost 1,000 local groups
called campsites throughout the world
where campers, that's what we call community members,
campers will get together and uh code
together we call them coffee and codes they'll like buy some coffee and sit down in the starbucks
or whatever cafe and just code together for a while it's like live in-person pair programming
and some sometimes it'll be two people sometimes it'll be 40 people in like Delhi or Seoul or some of these bigger cities. It's a mix of coding to learning to code through, you know, resources, actual curriculum, a community, leveraging some social media aspects like Medium, Reddit, or even not so much meetups, but your local meetups.
Sounds like you got like a thousand, it seemed like.
I think when I zoom back out i i think that
sounds really really awesome but i also heard you say earlier that you bootstrap this thing on your
own dime it sounded like so there's a little bit of a story i'm kind of missing there which is like
if you put away for 10 years a decade uh you know half of what you earned it sounds like you fit the
bill you i'm not trying to like harp on how much money it takes. I'm trying to just figure out how this thing moves and how this thing operates because it's not just
you. It's a we. So I don't want to figure out the we. And I also want to figure out, you know,
if you bankrolled it and then now it's free for all, like how in general, I guess the bootstrapping
process was. And then obviously it's free for all now, but you have some
ways you're making money. So over the course of our conversation, I'd like to pull some of that
out as you, as you're able to. So what do you think about the bootstrapping, bootstrapping
process of, of this thing? Sure. So, uh, I mean like bootstrapping is a term like that is generally
used with products that charge and Free Code Camp will never charge.
We're never going to charge campers to learn.
We're never gonna charge the nonprofits we help.
We're never gonna sell your data to somebody
so that we can make money.
In fact, we give away basically all the anonymized data.
It's only semi-anonymized,
but basically you can opt out of that if you want.
But we're not going to give away your email address, for example.
But basically, we have almost no income.
Almost all the income right now comes through merchandise.
We sell t-shirts.
Occasionally, we'll have a teespring campaign.
And we're getting ready to start selling some stickers and some other cool stuff through our shop.
We don't accept donations.
We don't accept, like I've turned down funding.
Wow.
I think that my goal with Free Code Camp is to really keep Free Code Camp as independent as possible
and to retain as much control as possible
because I see Free Code Camp as something that could easily be screwed up if we brought in like a lot of a lot of corporate interests or like angel VC funded people.
We just had a show on that, actually. I don't know if you listen to that one with Nadia Ekbal.
Yeah, I did.
So obviously you can kind of see where I'm coming from or where Jav and I are coming from because there's a lot of altruistic goals and ideas out there.
And I'm not saying one little bit, just trying to do some digging, investigating with you out loud.
And we've got to go to a break here in just a second.
But I think what I'm trying to figure out is, one, you spent some money doing this and then it's not just you it's we
um we haven't shared some of your personal life but you've got a family you've got things like
that so i think you know we're always looking for the sustainability side of of ideas like this
because one you built something really awesome two it's super popular three it's helping people i see
you tweeting and i see people saying you know in, in 20 hours, I learned some stuff and boom, I built this calculator or I built this thing with node or
whatever. So obviously there's results. Uh, and I'm just kind of figuring out how, you know,
how we keep it moving, how you're, how you're funded, how you keep funding, how you keep people
motivated, invested, whatever. So hopefully you're taking us on that, on that journey,
but let's, let's pause there since we're since we're sort of at a pause moment here.
We'll take this quick break.
We'll come back and we'll dive a bit deeper on those topics.
So we'll be right back.
DigitalOcean is simple cloud hosting built for developers.
If you have not tried DigitalOcean yet, in 55 seconds,
you can have a blazing fast SSD cloud server up and running with your choice of Linux distro, CPU, RAM, and even create new droplets based on backups or snapshots in time, which is a cool feature.
For those that operate in teams, you can invite multiple users to access and manage your account's infrastructure resources while keeping all of your sensitive information totally private.
Head to digitalocean.com and make sure you use our code CHANGELOCK
to get a $10 credit when you create a new account.
All right, we're back from the break.
We're here with Quincy Larson talking about Free Code Camp.
And Jared, during the break, we kind of talked a little bit
to kind of realign some thoughts here.
And you brought up something, Jared.
People may not know this about you, but you're part of Interface School there in Omaha, Nebraska.
And we kind of just talked about how it's a capitalistic endeavor and that, you know, people are, you know, they're getting value from the teaching that goes on at this coding school.
And the same frequency with what he's doing with this and those who have joined the,
the,
the efforts with the rest of the campus,
so to speak.
And Quincy,
I think what we're trying to do really is just figure out for the listener
stake and everyone who wants to invest,
whether it's getting involved in learning or pitching in on becoming a
teacher or just becoming a camper and whatever that entails,
you know,
from a revenue perspective,
from a bootstrapping perspective, you mentioned it's kind of focused on products, but, you know,
what kind of endeavor is this for you? Is this a capitalistic endeavor or is this a give back
to community endeavor? How do you frame sustainability when it comes to this project?
Sure. First of all, this is an endeavor of, you know, this is an idealistic venture in the sense that I'm happy to spend the rest of my days sitting in my closet
where I am now eating microwave burritos and coding all day
and going for runs around the Bay Area.
I think that Free Code Camp can absolutely fund itself
through helping campers find jobs after they finish Free Code Camp.
So far, maybe several hundred campers have found jobs after they've worked through Free
Code Camp's curriculum.
And we're not doing anything to capture that value.
Basically, they're just going and getting the jobs on their own.
There are a lot of ways that we could potentially become kind of an intermediary.
And one of them is through our job board
that we've already built
that basically our job board is special
in that it is for campers
and for employers who specifically want to hire campers
who've completed some of our certifications.
And that's a very hands-off kind of laissez-faire approach to matchmaking campers with employers
that will work really well in the long term when we have a high volume of campers completing those certifications now right now we only have less than a thousand people who've completed a certification
out of the i think uh 225 000 uh campers that have registered at all on free code camp so far
yeah we saw 222 000 campers and it sounds like you said a thousand have completed
a certification that's not challenged that's just certification that's a certification so it's approximately 400 hours
of uh coursework so a lot of it is all this stuff is so new that people just haven't had time to
work through it but we we think that people will have time as free Code Camp continues. It's just so far, Free Code Camp is very, very new in the big scheme of things.
Yeah, I mean, like we said in the earlier part of the call,
it's been on our radar because it's been trending on GitHub.
It's getting started like crazy.
Obviously, it's doing something that's getting the attention of the masses,
those who are on GitHub and forking projects and contributing back.
The number does seem a little skewed to me with, you know,
quarter million campers and a thousand certifications.
And obviously you're still sort of figuring things out.
How do you feel about, you know, that number, that skew, basically,
that ratio and what, I guess,
given the fact that you're still new and still figuring
things out, what are you doing to sort of match those numbers to, to higher ratios?
Sure. Well, we're comfortable with a relatively low ratio. Um, you know, Daphne Collar who
founded Coursera, uh, is, you know, fond of answering the question of like, uh, you know,
attrition essentially, like attrition is a red herring, right? Because these are people that wouldn't have learned any coding
at all. And if they hadn't come to free code camp, they may have just, you know, said, well,
I'm not going to bother learning or maybe they'll, they'll come to free code camp. They'll use it for
a while. They'll switch to another resource. they'll come back we we see that all the time uh because free code camp is hard i mean we we definitely we're
not like the the weeder class your first year of physics or whatever but we are definitely we we
make no uh pretenses about learning to code being an easy endeavor no it's a serious endeavor that
that takes a lot of commitment and a lot
of effort on your part in time investment. And you have to allocate your time accordingly.
I mean, uh, 2080 hours, that's, that's really to get started. That's to, to be job ready and
really just take the first step as a developer of actually getting a job and working for a while um peter norvig uh the director of uh google's i
think research uh right now i think is what he's doing um he uh famously said you know learn to
code in 10 000 hours and uh he believes that learning to code is like a serious input of time and energy. It's not something that
you just trivially choose. And of course, a lot of people just want to try it out and see if it's
for them. Now, I certainly believe everybody can learn to code if they persist in their effort.
In practice, a lot of people are going to procrastinate or they're going to um just
decide that like they don't want to worry about it right now and invariably those people come back
several months later they'll come back and they'll start working on it again so what we're
experiencing is you know we have more than 100 000 people use free code camp every month and
a lot of times it's like it's like they're strobing in and out of free code camp every month and a lot of times it's like it's like
they're strobing in and out of free code camp as their motivation waxes and wanes and then at some
point they'll they'll lock in and they'll be like all right i can really do this they'll kind of
clear the proverbial um the proverbial uh log jam and they'll just keep jamming forward
through the curriculum and and once they get that momentum and they'll just keep jamming forward through the curriculum.
And once they get that momentum and they really start to believe that they can learn to code,
that's when they start clearing these certifications and that's when they go out and get jobs.
But it's just an innately challenging process.
So as Daphne Culler says, when a MOOC has 1% or 2% completion rate, she's quick to point out that of the people who put forth a serious effort, it's much higher.
It's like 60% or 70% of people who really do spend the time to complete the first or second week's assignment.
Those people will go on to complete it at about the same rate that a university class will.
And for us, I think it's probably very similar.
Our numbers are very similar to that.
It's just that we're so new that it's not reflected directly in our outcomes yet.
So if we could just back up a little, or maybe not back up, but zoom out a little bit and
talk philosophically a little bit.
As Adam said, I'm co-founder of a, of a web school here in Omaha. So, uh, definitely seeing the need and kind of taking a hybrid approach, both, you know, IRL plus adjunct of online tools, um, as a strategy, you know, teaching 10 people at a time, not going for the, for the massive numbers, but we profile our students, like our potential students. And one thing that
we look for in a potential student is exactly what you said you had, which is why you made it through
the slog of learning, which is that perseverance, you know, hardheadedness,
like some sort of intrinsic self-motivation. And, you know, most people that I've had experience with online-only self-learning is that problem that you've kind of been touching on, which is the waxing and waning of interest or not able to get through that logjam. like, and in my experience, having somebody, a real life instructor or a mentor, or I guess
maybe in your guys' case, a pair, is a good way to get more people through that log jam
and move beyond the ones who are going to be the Quincy Larsons of the world who are
just going to teach themselves no matter what, come hell or high water, and get more people
through the course to success.
Is that something that you guys are thinking about?
I know you said you mentioned you have these campouts
or these copying codes.
Is there any sort of angle of taking the technical,
you guys have the broad swath approach
of like let's get the curriculum online for everybody
and then a lot of the code schools are taking the other approach of like let's get it, let's get the curriculum online for everybody. And then a lot
of the code schools are taking the other approach of like, let's get it in real life for a few
people. And it seems like if you can meet in the middle and say, well, we can take this online
thing where we're having, you know, less than 1% at this point, I understand your point with
it's kind of new. So it takes time to get people through the certification. But let's just call it a 1% success rate if certification is the definition of success.
And let's work on bolstering that with real other people to come alongside and get people through the logjam.
Sure.
I'll tell you, I strongly believe that in-person learning is critical to establishing that
motivation I was talking about earlier.
Cause if you're literally alone in your closet,
like I am right now, it can be very isolating. However, you know,
we have the online community component, but that's just a part of it.
We have the in-person coffee and codes. That's a big part of it too. But we actively encourage our campers to go and participate
in as many hackathons as they can, to go to tech talks, to go to conferences, if they feel so
motivated to enroll in an intensive coding bootcamp or other, um, short-term program. Uh, and I see tremendous value in those.
Um, a lot of coding schools are adopting free code camp as part of their, uh, their pre-course
work or even part of their core curriculum. And, um, we, we definitely, I just want to say
that we support what they're doing and we think that, think that there should be a wide variety of modalities for learning to code.
There are certain people for whom attending one of those programs is simply not plausible.
Maybe they have a lot of kids, and they've got a full-time job, and they simply can't do anything that's intensive at all.
So what we're hoping Free Code Camp can do is just give them a slow trickle over the course of years.
Because, I mean, if you're only doing it two hours a day,
it probably is going to take you years to get good enough
to be able to transition your career.
You may be able to transition within your company,
which is what a lot of our campers do.
They'll apply for slightly more technical positions
within their current company.
And that's been kind of a path to success because they get more practical experience
and they can keep their income stream and all that. But yeah, I think that in-person activities
is critical to maintaining motivation and to contextualizing a lot of the lessons. I mean,
if you see somebody stand in front of the whiteboard and diagram out a design pattern
or how a schema actually looks,
it's no longer so abstract
and you can kind of internalize it
and suddenly it becomes part of your gestalt
of how a program works
or how this different technology works.
The other huge aspect of it,
which I've seen firsthand,
is all of those speed bumps that
you hit that are actually just barriers. You were called on dependencies earlier,
like you got the wrong version of Python or you're typing this command wrong. Some of those things
are it's like it's useful to get through that on your own because it's that again, you've proven
to yourself, I can solve this problem or I can get over the speed bump. But a lot of those are
just gigantic wastes of time. And you're not actually learning, right? You're just banging
your head against a wall. And if you only have two hours a day to do this, you're investing,
you know, I'm going to invest two hours a day. And you spend that entire time hitting these
dependencies or whatever the problem happens to be and not learning. Having somebody who can in a moment move that thing out of your way and you can
just continue on your learning path is hugely valuable.
Yeah, I agree.
And I would say that that's one of the major reasons that free code camp exists
is to give you like a clear path forward so that you can spend less time out in
the sticks, so to speak, going down
rabbit holes and fixing things that are not...
A lot of people get caught up in deploying servers and doing all this ops or DevOps type
stuff early on, and it feels like you're being productive because you're following this tutorial,
you're getting a server up, but you're not actually coding.
Right.
And if you think about like becoming
a software developer what is the biggest you know the biggest aspect of that career it's coding and
i think that uh people should spend as much time coding as possible and as little time
worrying about you know configuring their flavor of Vim shortcuts or whatever,
or whatever ancillary stuff that can seem like it's a productive, relevant use of your time,
but in fact is not an optimal amount or an optimal application of your time,
considering that you need to get thousands of hours of coding under your belt before you're really going to be very good. Maybe to help us guide this call a bit would be to help us understand what your version of success for this would be. Maybe not right now,
but where do you hope to go? What are some of the milestones, success goals that you,
maybe not numbers, but just aspirational ideas? what do you think success for this is success for free
code camp would be helping a lot of people in aggregate not necessarily a high percentage
of applicants but a lot of people in aggregate be able to transition from whatever they're doing
right now to working as software engineers and um in terms of the goal, the scope of FreeCode
Camp, this isn't some project that I'm going to get bored with and move on and go start building
different JavaScript libraries or something like that. This is where I literally see my career.
I'm hoping that 50 years from now, FreeCode Camp is still going strong. One of my personal heroes is Jimmy Wales, who founded Wikipedia and really got the critical mass necessary to sustain that and make this incredible resource.
If you look at the total amount of time that went into building Wikipedia, it's the equivalent of building the Egyptian pyramid several times over. And it's all because he just planted the seed and kind of nurtured it early on and got a
whole bunch of other people to come over and contribute. And my hope is that with Free Code
Camp, we can get even more teachers and even more developers coming in to really build this amazing online
resource so that anyone anywhere in the world who has the motivation can sit down and learn to code
in a very efficient way that is free of a lot of the issues associated with you know self-directed
learning in general of not knowing exactly what to do or having to
deal with like resources that do not interoperate properly because they're dealing with different
content or maybe excessive overlap between different resources. For example, there's this
resource density of early content that teaches you the most fundamental aspects. And there's also
this density of advanced tutorials,
but there's very little in between
that would help you bridge from one side to the other.
So what we want to do is create a reliable bridge
from the people who are stuck in kind of beginner resource mode
where they're jumping from tutorial to tutorial
to actually have something where they can hunker down for the long term
and expend a lot of time and energy
just learning all the intermediary aspects of coding.
And then they'll be in the advanced state
where they can rely on the gamut of tutorials
and effectively use Google, Stack Overflow, all these other tools
to be able to accomplish whatever they need to accomplish.
So that's what I see free code campus.
Like ideally it's a bridge from a novice to a fairly advanced job ready,
a coder that can be used by anybody anywhere in the world for free at their
own, at their own pace.
So like any strong bridge out there, you've got a lot of support, right?
Free code camp is not just you
it's not just quincy i'm sure you don't want it to be because that would be a lonely trek
um help us understand because we really haven't talked about who else is involved
you mentioned teachers you mentioned mentors you mentioned uh in real life opportunities you
mentioned um pair programming uh curriculum i'm sure there's somebody creating curriculum so paint a picture for
who's behind this
and I guess as a dovetail
to that after that maybe if you can lead
into some motivations how you're motivating
what people are motivated by
and how hard it might be to get them to buy into
your dream
Free Code Camp is
our core team I think currently is 17
people I can tell you some of the people on our core team. I think currently 17 people.
I can tell you some of the people on that core team.
Please, yeah.
Name some people.
So Michael Johnson in Washington, D.C. is in charge of our nonprofit projects.
And we've broken everything out in terms of like coordinating our
volunteer uh agile project managers who are working toward getting experience for their
certifications and he also goes out and identifies and vets all of these non-profits that want
different projects built and then he actually oversees the entire process of pairing up two campers
who've completed our, you know, three outstanding certifications,
which is 1200 hours worth of work.
And then like pairing them up and getting them on a team with the agile
project manager and the,
in the nonprofit stakeholder to actually build the project.
And we've repeated this process almost 20 times now,
done more than half a million dollars worth of pro bono coding for nonprofits.
So he owns that.
Berkeley Martinez owns our open source code base.
And he is responsible for making sure that we have, you know,
a CI that runs and that we're using a style guide that's enforced by ESLint.
We're using Airbnb's JavaScript style guide.
And that generally stuff is not introduced that makes FreeCodeCamp buggier or less secure.
So he's kind of like the fun police in many ways on the Free Code Camp repo. Rex is over in Sacramento area,
and he's an electrical engineer who is also quite good at coding,
and he's in charge of our JavaScript curriculum.
Brianna Swift is a K-12 music teacher who's also quite good at coding and very good at teaching.
And she's in charge of our video curriculum.
So she stands in front of the whiteboard and records these two-minute videos that talk about everything from computer security to big O notation and all these other concepts that are more theoretical rather than practical.
So she basically has ownership of the theory curriculum,
and Rex has ownership of the practical curriculum in terms of coding challenges.
Then we have Justin Richardson, who's in Toronto, who's in charge of our campsites.
And as I said, we have nearly 1,000 of these campsites, each of which has its own
Facebook group.
And basically, we coordinate these Coffee and Code events and other events like people
go to hackathons together and things like that through these Facebook groups.
We have Nathan Lennis, who has built a lot of our ancillary tools.
He's in Washington.
He's in the Army Bomb Squad.
He literally takes apart bombs all day.
That's his day job.
And then afterward, he comes and pulls another shift doing node development for Free Code Camp.
Shipping bombs.
And then we've got a whole lot of other people.
I mean, I could go on.
We have just a whole lot of issue moderators.
We have moderators in our chat room.
When you have thousands and thousands of people in your chat system, you do need to keep out the occasional teenager who decided to come in and harass people.
So we're very vigilant about that.
There are so many people involved.
I feel embarrassed that I can't name them all
right off the top of my head,
but I am extremely grateful for all of these people.
And they are doing 95, 99% of the work
that is done on Free Code Camp.
And my percentage, my overall percentage 95, 99% of the work that is done on Free Code Camp.
And my percentage, my overall percentage of things that I do keeps decreasing because there are just so many more contributors coming in.
We have almost 300 contributors on our open source repo.
And then we have just a ton of people that are going out
and evangelizing our campsites in various cities and getting people to come
in and sit down and learn to code with them.
Wow, that's a big, yeah, you got a lot going on there, Quincy.
I think we do want to touch on like how you motivate all these people.
A lot of people in open source, you know, they want their project to get traction.
You know, they have a great idea.
They have some valuable software
that they've written.
And maybe people aren't paying attention to it.
Maybe they haven't been able to motivate others
to help them with a PR or a bug request.
And I think that's an insight
that people like to have
is when we see somebody who's been successful
in two things.
You've brought a lot of users, okay?
I think some of that can be explained
by your hardcore curriculum
and the free aspect of it.
You've also brought a lot of contributors
as you just listed off a bunch of them
and can't even remember them all.
So we're going to take a break,
but we really want to hear from both sides
how you motivate people
to become a part of the community
on the help out side,
especially with the freeness of everything.
And then on the other side, some success stories of users that have used FreeCodeCamp.
And I'm sure these are some of the motivation, as you see, kind of transforming people's
lives.
So we'll take a break, give you a second to think about a few of those things, and we'll
be right back.
I'm here with Thomas Watson of Opbeat.
And as listeners of this show, you know that we love to turn things on their heads
and that's no different than sponsorships.
And one thing we're doing
is we're going deeper into the organizations we work with.
Opbeat is doing some really interesting things
around application performance monitoring,
specifically around Node.js.
And Thomas has an interesting story
on how he got started with Opbeat
and also starting off their Node support.
So Thomas, say
hello. Hey, hello everybody. Thomas, you got an interesting story here with how you came to be
at Opbeat. It seems like the Node support has kind of been thanks to you. So what's the backstory on
that? Yeah, so I've been doing Node.js for almost five years and i i found upbeat and they were doing uh they were doing
application performance monitoring and i wanted to have that for my stuff that i was doing and
they didn't have node support so i uh basically approached them and said hey can i do an unofficial
node.js implementation and uh they were like yeah sure we would love that and i did that um
and then slowly uh we we started started to work more and more together
and all of a sudden I find myself being employed now at Upbeat,
being the Node.js lead,
and I'm now responsible for this agent
that I started back in the days as an open source project.
I'm now responsible for that at Upbeat
and that's the one you install uh on your production servers
to monitor the health and performance of your application and so that's that module's upbeat
node and so things began with that open source repo is that how things began for you with this
yeah i i started it under my uh my own github account and just did it for for myself and my
own projects and then people started using it and the Upbeat guys were really happy with it.
And then when we decided to join forces,
we moved it to the Upbeat org on GitHub.
So now it resides on github.com
slash Upbeat slash Upbeat node.
That's really interesting to see,
because we'll get into this here in a second,
but you have this passion for open source, but how your own personal drive and desire for something on a particular language platform like Node and then a service like Opi to get that application performance monitoring into your own apps.
You were like, hey, you don't have it, but I can write this.
And now you actually work there and you're building it out.
Yeah, that's the beauty of open source.
It connects you with a lot of people and you can basically do what you want for yourself.
And then if people like it, you see where it takes you.
In this case, it took me to this really awesome place.
I'm doing this really awesome stuff with Node that's really down in the machine room, so to speak,
which is really, really interesting to do.
And right now we actually
uh we're just going out of beta soon you can go to upbeat.com slash node.js and sign up for the beta
uh if you want to want to try out the stuff so the upbeat node module can you talk a bit about
what it does so basically it sits on your on your server uh inside your your node.js app you require
it at the top of your main program,
and it just monitors the overall health of your application
on a request basis,
so incoming HTTP requests to your Node server.
It figures out what's slow, what's performing badly,
what should you take a look at to optimize.
Maybe it's a database thing,
maybe it's a Reddish cache or something else.
And it also manages errors happening in production. So we will break down the error,
figure out who made that code, when was it committed to Git, when was it pushed to production.
So we can also assign errors as well to the developers who actually
is responsible for the code that is breaking. So obviously your passion for open source and your passion for giving back, you know,
got you to doing some of this stuff with Opbeat and what we just described there with your
Node support and whatnot.
Can you talk a bit about your work at Node School, the open source you've written, just
some of your passions around open source and kind of how you think about open source?
Yeah, I really love open source and I've been a big open source software kind of how you think about open source yeah i really love open
source and i've been a big open source software user for over 20 years um so when i joined the
node.js community five years ago and finding such a big open source spirit um in the community it
was really exciting so i've now gone from an open source user to an open source developer
i love to to teach that's one of my passions and especially of
course I love to teach programming. So there's something called a Node School where I try to
help out as much as I can to teach other people Node.js. And you get to do that not only you know
on the web you know kind of remotely so to speak but you also get to do it face to face. Yeah it's
you can go into nodeschool.io and you can take some courses online, but you can
also join some of the regional chapters and you can meet up at a city. There'll be a Note School
event where we will have tutors who can help you out with your note questions. And you can
actually do some of these online courses. You can do them in person, in real life with people who
know Note really well. And I try to do that as much as I can.
I've been organizing one here in Copenhagen where I'm from.
Well, cool. If you want to follow up with Thomas,
you can check him out at github.com slash Watson.
That's his last name, W-A-T-S-O-N.
And if you want to sign up for the Opbeat Node.js beta,
you can do so at opbeat.com slash Node.js.
And now back to the show.
All right, we are back with Quincy Larson
talking about FreeCodeCamp
and the community that he's built around it,
community of contributors, of users.
I think you named 17 core contributors
and many, many more.
And before the break, we were wondering
how you went about building this community.
How do you motivate people when there's no promise of money
to be so involved and give so much of their time
to this awesome community?
It's really challenging initially
to get people to care about you.
You know, I really felt like for the first month
after I'd put together the Node.js prototype
and thrown it online and like we immediately created
a chat room, which I think in retrospect was very wise.
I didn't attempt to create all the resources myself.
Initially, we were using a lot of Stanford classes,
things like that as our challenges. And we've since moved to like almost all internal, um,
content, but, uh, we, we got that live and I would just hang out in the chat room.
And whenever somebody came in, I'd be like, Hey, how's it going? Blah, blah, blah, blah,
blah. Probably scared more people away than I actually like retain that way.
Bombard them. Yeah. But I,
I mean,
I literally,
this is my life.
You know,
I,
I have a young daughter and I spend as much time as I can with her,
but often like the time I'm spending with her is me like running around the
city,
pushing a stroller on the phone with,
with a contributor.
Um,
I answer all of our team email myself still.
Um, I spent a good amount of time in the chat room
looking at GitHub issues.
I just try to lead by example
by being as involved as possible
and being completely down to earth and approachable.
If you send me a message on Gitter or on Twitter
or on Quora or any of these other platforms I'm active on,
I will get back to you. I can't promise it I'm active on, I will get back to you.
I can't promise it'll be immediate, but I will get back to you. And I think it's worth the time to accept that additional, you know, communication overhead, so to speak, of trying to
answer everybody's questions and make sure everybody feels their feedback is heard.
Because a lot of times great feedback just comes out of nowhere
and it's like, wow, why didn't we think of this before?
So I would say that by trying to establish personal relationships at scale,
just by cordoning off 50 hours a week to talk to people,
that has been instrumental in helping us build a team i
mean i can tell you some of the people that have joined that just kind of wandered in and started
talking to me and i was able to convince them to contribute uh you know rafael uh up in uh brooklyn
he took over our wiki and he's done an amazing job. And I think it was just like a casual, you know,
he messaged me with some question on Gitter
and I was able to like wrangle him into like,
hey, you should write a wiki entry on this.
And we have our own wiki, which we're moving from GitHub.
We were using GitHub's wiki.
We're moving it over to our own wiki
using an awesome React-driven tool called Gatsby.
If you haven't heard of it, it's great. Um, Wesley McCann, uh,
is kind of this, uh, nomad out in, uh, on the East coast. And he, he's the kind of guy that
hops on a bicycle and bikes from Tampa to Boulder. Um, and he, uh, he took over our Twitch live
streaming.
And there's a guy named Evaristo who's from, I think, the Netherlands.
And he was a data scientist and had this academic stats background and everything.
He was really interested in our data. And he created the data science chat room on Gitter and has basically been leading a lot of other academics and statisticians who are
interested in working with our data and learning more from, I guess, what amounts to a new paradigm
in education. I don't think Free Code Camp is precedented in terms of this specific combination
of permutations anyway. And then Vladimir Tamara, he's like a church director down in uh bogota colombia and uh he was
very interested in translating free code camp into spanish and he did it so quickly uh he did it very
quickly and we wrote the logic to like actually display the spanish we just just we just launched
that during our big live stream
a couple of days ago on Twitch.
But basically, he handled the Spanish translation so well
and coordinated the volunteer effort so well
that I was like, man, you should own
our internationalization effort.
So recognizing people that are doing great things
and just giving them the reins and trusting
that they're going to do a good thing. Here's an interesting anecdote. There's a guy who Bill Gates
has only met one time or two times ever. And Bill Gates trusts his entire $80 billion estate with
this one finance guy because he just got a good impression.
He didn't want to micromanage it.
He didn't want to tell this guy how to do his job because he didn't have the domain
expertise to do that with any level of reliability.
So he's like, look, you're clearly doing a good job with this.
Take it over.
And I think that approach has worked really well.
I've delegated things.
Ben McMahon, a high school student out in Dublin,
Ireland.
We just gave him this project called the challenge-o-matic,
which was like kind of a gooey way to create challenges for free code
games curriculum.
So you didn't have to go in and just build them in JSON.
Like I was building them back in the old day.
And,
and he just took it and ran and built it.
And like so much of our code base is the product of these people that just kind of wandered in and ended up
being uh extremely productive it's kind of like they follow a power law like 90 of the people
who come forward are going to put in a pull request and and be of some level of uh of utility which we greatly appreciate of
course and then occasionally we get these proverbial whales who just come in and like
are extreme dynamite dynamos of energy and just code non-stop all day all night that's what they
love doing i you know the guy i talked with or talked about earlier, Nathan, who's in the Army, New Year's Eve 2015, 2014, New Year's Eve.
Like, we didn't even realize that New Year's had come and gone because we were so in-depth on our pair programming session.
That's deep.
Yeah, I mean, like, we were just in the zone.
We were, like, bonded bonded uh at like the soul level
wow that's the testament to pair programming too i mean to to have that kind of attention span and
and be totally zoned in totally in flow yeah and pair programming is great and i can't say
enough good things about it like that's the that's the main modality of me coding these days. Because simultaneously, it produces
better code, which is proven. They've done research, and it produces less buggy code than
individuals coding for a commensurate amount of time. And at the same time, it's like bonding,
and you get to understand a person. It's like the heat heat of battle you truly know a man's soul you know
i mean that's that's how i feel about pair programming you know love it you don't really
know somebody unless you pair program with them so uh it's a great way to like not only um
understand them better and get meaningful work done and and at the same time i can uh you know
teach them a little bit about my my particular
world view in terms of like features and how to like keep free code camp as simple as possible
which we're constantly culling features that get in there just because they complicate the user
experience i want to keep things simple so um we've got a lot of other people that are coming
forward that look like they're going to be incredible contributors as well. Every day I'm getting messages from various professionals
with lots of domain expertise that want to help out.
So my key to sustaining this chain reaction,
which I was lucky enough to kick off,
is just listening to people and giving them agency.
While we're on that note, since you're talking about pair programming, let's talk
about the stack behind this.
What is it built in?
How do you ship it?
Who's involved?
And you talked about during the process of pair programming, you get a chance to share
your philosophies and keeping things simple.
So it sounds like there's some core values that get shared through these interactions
you have with the team.
What's it like?
What's it build on?
And share that with us.
Sure.
We started out with basically the mean stack.
MongoDB, Express, Angular, and Node.
And now we're using MongoDB still and Node still. We're using Loopback,
which is also by Strongloop
that I think created and maintained Express.
And we're also using,
we've moved to React
and we're moving from our own
open source implementation of Flux
called Thundercast.js,
which Berkeley, who I said is in charge of our repo,
he built this Flux tool called Thundercast.js,
but he's recently come around to the fact that
Dan Ebermoth is a genius and has the,
like you can't top Redux.
So we're moving to Redux as well so uh berkeley's
transitioning to that and uh so soon free code camp will be like a full uh you know single page
react experience what about curriculum how do you author curriculum and how do you get that into the
system so what we do is we just create these json files and we used to just do it manually like i
would insert html into json and the seeded in that way it's really easy because instead of having it
in some database somewhere that it just gets blown up every time you reseed it um and uh that way
like it's very easy to go in and add a translation to it or add a new feature to all the challenges so we just store it in all this json and uh in terms of curriculum development if you're curious
about that too it's very incremental like we basically say like what we did in december was
we said we want to have react d3 and sass covered sass we were switching from less to sass because
bootstraps moving from less to sass and we we're from LESS to SAS because Bootstrap's moving from LESS to SAS.
And we're going to continue using
and teaching Bootstrap
because we think it's awesome.
And if Bootstrap is using SAS,
well, if it's good enough for Bootstrap,
it's probably good enough for us.
So we're moving over to SAS.
And we wanted to teach all those.
But what we wanted to do
is we're very focused on evaluation criteria
rather than process.
So we'd start with the evaluation criteria, and then we build the curriculum to work people up to it.
So what we did first was our community put together 15 new challenges or 10 new challenges specifically for the data visualization component.
And we lumped React and Sass in with data visualization because it was convenient,
even though you could argue
it's part of front-end development more so.
But we created like five D3 challenges
where you build visualizations of increasing complexity
and five React Sass challenges
where you can use any tools you want,
but you have to use React and Sass,
including on up to creating a roguelike RPG game in browser that runs.
And all of these projects ideally run right on CodePen.
So you don't have to spend a lot of time bootstrapping a development environment.
CodePen's been great.
And we use Cloud nine for the backend challenges just because it's simpler
than trying to say,
okay,
now go download this VM.
No.
And so run all these commands to set up your Linux environment,
you know?
So are those companies involved by any chance that you'd mentioned Twitch
earlier in that your live channel and people giving back and pouring in may
not be monetarily,
but just free resources. Are they pitching in any way? No, we, earlier in your live channel and people giving back and pouring in may not be monetarily but
just free resources are they pitching anyway no um we we looked into doing corporate sponsorships
um it's something we may explore again in the future but it like we didn't want to uh we didn't
need to frankly um we still have you know a couple years worth of runway, even on my savings.
We're kind of slow rolling
getting
revenue, if you will.
I think if we can get it
through our community, through merchandise
like stickers,
laptop stickers,
t-shirts,
potentially Raspberry Pis loaded up with our curriculum
and things like that. Um, then we will, uh, absolutely do that first. And then we'll consider,
you know, doing things that might compromise our perceived, uh, uh, neutrality. I mean,
I don't think it's a big deal. I, every good podcast I listened to has corporate sponsors.
I don't think anything of it.
But we just personally, we're like, well, we can cross that bridge.
Part of it was a lot of people didn't understand.
A lot of the organizations we approached to just kind of feel out for this
didn't understand what Free Code Camp was.
And they thought we were like a hackathon.
And they were just used to bankrolling hackathons, for example.
So they bend us in that and it as a result like they it's complicated but we're going to consider that maybe
down the road but if we can support ourselves purely through um through matching uh campers
to complete our curriculum with employers who want to hire them which if you look at the recruitment
business um and like hire.com and all these
other companies,
obviously there's money there.
And if we're creating hundreds of thousands of skilled developers,
I'm not concerned about us being able to sustain ourselves.
Right.
I mean,
I didn't want to bring up the sustainability thing again,
just because I mean,
I mentioned those opportunities just as like,
are they giving back in some sort of way?
But you talked about runway and things like that and not quite.
Jared, I really hate this late in the game,
but I really hate bringing it back up.
But since you mentioned I have to, you know, is there a burn rate?
Do you have expenses?
Like how do these things work for you?
Like you said, you've got your own savings.
And so you're essentially fitting the bill, so to speak, for everything going on with a plan to eventually somehow figure out because there are opportunities.
But you're going to figure out later on once you hit some sort of place, some sort of milestone to say, OK, now it's time to think about how we can generate some revenue.
T-shirts, obviously stickers stickers, back to the community,
makes sense for a short-term but not a long-term gain.
Yeah, I mean, we've been thinking about these for a long time
because obviously we want FreeCodeCamp to continue.
And make no mistake, like worst-case scenario,
we shut down FreeCodeCamp.
The effort, it's open source.
I mean, somebody could just relaunch it,
and we certainly do everything we could.
It's kind of like Parse is shutting down,
but they're open sourcing pretty much everything.
So it's not really a loss.
It's just an inconvenience.
It's Facebook, so you expect that in a way.
Yeah, I think it's good.
But I don't think we're in any risk of doing that.
Worst case scenario, we could open it up to donations. With hundreds of thousands
of people using Free Code Camp right now,
and we're hoping to hit a million
by 2017,
I think that
we could generate enough to cover
the server costs, which are not that significant.
The main cost associated with Free code camp is my opportunity cost if
you're familiar with the the economic concept of opportunity cost as a software engineer i could go
out and get a pretty good job so that's income that i'm foregoing working on free code camp but
you know i don't really care about money that much i'm like i said i'm happy to just eat
microwave burritos and sit in my closet and
code all day, which costs almost nothing. Like my daily expenses would be like 20 bucks. And then,
you know, my wife has a good job and she has benefits. I'm very fortunate for that, you know,
because if we need to go see a doctor or take our baby to the doctor, we can do that. No problem.
So there's two reasons why we asked that question. Uh, and I, the only reason I'm going to clarify this is because I don't want
anyone to think we have, or I have the wrong idea with trying to drive that question home.
It's like, we think like the change log, this show is listened to by all sorts of kind of people,
right? People come to this show and maybe this one in particular, because of who you are and
what you're doing, because they aspire to be like you or they have the same dreams as you do.
And it's not to say, you know, like negatively, how are you getting there?
But more like how are you getting there?
Because somebody else might be wanting to ask that same question and follow the same path and jump on the same ship you're already on.
And so I just want to clarify that.
So it's not mistaken anyway. I know it's probably not and i'm
over clarifying it but i had to say it so yeah i mean if i could give if anybody's interested in
my advice right like i really want you to help these people listening know what you're doing
and how you're doing this they can get involved the advice is burritos burritos like keep costs
low uh save money uh i mean if you're going out and buying
brand new cars off the lot like there's a good chance that you're not able to afford to uh to
finance an operation like this and you're going to be at the behead you know you're going to be
beholden to these bankers and other people that are you know maybe not the most savory types
frankly uh and don't share your Their interests are not aligned with you.
They want to pump you full of steroids
and run you up to a liquidation,
a liquidity event,
which DHH, the guy who created Rails,
wrote an awesome article on Medium
about how you should figure out a way
to sustain your organization without financing.
So if you can save up money,
that's one easy way.
You can just self-fund.
But even if you do self-fund, how do you get traction?
Well, if you look at how Pinterest took off,
the guy wrote handwritten letters
to every single person who signed up for Pinterest
and mailed them to him physically.
Can you imagine opening up your mailbox
and you've got a letter from the founder
of the service you just signed up for?
It takes grit.
It's not something you should take trivial.
It's extremely difficult to get past
that initial indifference towards your project.
And no amount of money is going to get you past that.
You can't Google ads your way out
of people just not giving a damn about your project.
Well, let's let's take that opportunity to turn into a break real quick.
When we come back, some closing questions we have are obviously some of the traditional closing questions we have, which is open source radar.
Who's your hero?
But specifically, since we're on this topic,
we want to talk about your needs.
If there's somebody out there that wants to get involved,
wants to help out, whether it's teaching,
helping with curriculum, whether it's mentoring,
whatever it might be, let's talk about some of your needs.
And then we haven't quite touched on getting started.
And I feel like maybe there's tons of people out there
that already started, but nonetheless, let's voice out at least
what it takes to get started with Free Code Camp
and what that process is like.
So let's touch on that when we come back from this break.
We're excited to be working with BMC
to spread the word about TruSight Pulse,
their SaaS-based monitoring service
for cloud and server infrastructure
that lets you monitor, visualize, and alert with one-second resolution.
I had a chance to talk to Mike Moran, the senior architect, about what real-time monitoring is.
Take a listen.
Real-time obviously means different things to different people.
To us, real-time is one second.
So for us, we have one- second metrics on everything that we collect. We'll pull all of that, push it to our servers, and you can see it roughly in about four to eight seconds, depending on where that falls in the interval.
So we'll pull one second data and within eight seconds, you can see it streaming live on your dashboard.
So during this conversation with Mike, I was trying to figure out what real time monitoring means to them.
And I was also trying to figure out who might use it and why they would care about
one second resolution timing when it comes to monitoring their infrastructure. And this is how
Mike broke it down for me. I think at the beginning, you kind of looked at it and went, that's a very
niche set of the market. But I think as things have changed, you know, you can look at e-commerce
companies or you can look at anybody who's running an application. We now have stacks that are very
nimble and we end
up with things like restarts that are quick or our stats change very, very quickly now. So our spikes
maybe aren't something that, you know, it's not Black Friday and you end up with this gradual
spike or this immediate spike that lasts for a long time. You now have a lot of things happening
because you have so many interconnected systems and you have microservices and dependencies
everywhere. Something happening in one obviously affects other things. But if it's something small or
happens very quickly, you don't notice that. And at this point with Mike, I was like, well,
what's a better example? Give me a real world example that everyone knows about that can really
explain how important it is to have one second near real-time monitoring on infrastructure level
stuff stuff that really matters the heartbeat so to speak of an infrastructure and this is what he
had to say it's pretty interesting if you're looking at your ekg and you're looking at your
heartbeat how many doctors would ever look at your heartbeat at a minute interval or a 15 second
interval you'd be crazy because you'd miss whatever was happening with your heart. And that's something that you wouldn't want to screw with. Wow. What a great real world example of what
that exactly means. I don't know about you, but I don't want to mess with my heart. My heart keeps
me going. Your heart keeps you going. And if you value the heart of your business, the heart of
your infrastructure, you're going to care about one second resolution timing. You're going to
care about real time monitoring and BMC's TrueSight Pulse truly is something you should take a look at.
Head to bmc.com slash TrueSight Pulse.
All one word, no hyphens, and tell them the change long sent you.
All right, we're back from our final break of the show.
And Quincy, obviously we've loved diving deep
into this conversation with you.
We've talked about where you personally came from.
We've talked about your goals and motivations.
A lot of give back to those who are involved,
those who are actually making it through.
And I think there's a lot of people out there right now
who are thinking, I want to get involved,
whether it's becoming a camper and getting taught or mentored or, you know, taking part of, you know, pair programming and all these different things you've mentioned on the show here today.
But there's a lot of people out there who want to get involved somehow.
So what are your needs?
How can people help out?
How can they get involved?
And not only how, but if they want to do it specifically, where can they go to take the
next step?
One thing we're really big on is internationalization.
A lot of people are not native English speakers and would benefit tremendously from not having
to simultaneously learn English and coding. So we are basically all of our video challenges
where Brianna stands in front of the whiteboard
and draws diagrams and explains theoretical concepts.
We would love to have those re-recorded
by native Portuguese speakers, native Chinese speakers,
various world languages.
We would also like to have our entire wiki translated into all these different languages speakers in the various world languages.
We would also like to have our entire wiki translated into all these different languages because our wiki is like,
we're trying to build a kind of a very easy to read and friendly version of
maybe Mozilla's developer network or,
or some of these other resources that are maybe a little bit more esoteric and
not quite as beginner friendly.
We want to make it really,
really beginner friendly and issue as much
jargon as possible.
So that is one area where we could definitely use help.
So both the translation and the creation of those challenges, of those videos and of those
wiki articles, is one place where you could, if you're listening and you want to get some
open source contributions,
like Matt Melwig from WordPress was saying,
like everybody who goes to a bootcamp
or some sort of intensive program
should try to get as many open source contributions
under his or her belt as possible.
Well, we absolutely will take any contribution seriously
and look at them
and we would love your contributions
and you can contribute all those and all that stuff will go through GitHub, so you'll get GitHub credit for it.
GitHub credit. Love that idea.
PRs as credit.
What about on the teaching side and curriculum mentoring?
You know, you mentioned, I think, just through conversation that some of the people that have stepped up and gotten involved have done so through their,
you know, smaller contributions and you've sort of noted that they're really good at it. And so
you handed them more responsibility based on doing really good with small responsibilities.
But what about those teachers out there who are like, you know what, I just want to give back.
I got like five hours a week. Are there opportunities for teachers, mentors?
You know, how can they step in? Is that an opportunity for them?
Well, there is one immediate
way that anyone can give back which is to just jump into our chat rooms and we have help rooms
on a variety of topics uh data visualization back-end development things like that and if you
were interested in jumping into one of those you you could help answer questions from our community
because people will frequently get blocked or they'll stumble and they'll just click the help
button and go in and explain their problem. And often just explaining it to somebody and having
somebody listen, even if you don't know the answer, you've helped them just by having them
articulate their problem. And of course, if you have time, if you're a teacher and you actually have a good presence and are
good in front of the whiteboard you could you could uh help write some scripts and record some
scripts of that we could include in our theory curriculum the another way you can help out is if
you become part of the campsite nearest your city, which there's a good chance
that there's one within, you know, a 30 minute drive or bus ride of where you live. If you want
to take a, you know, a Thursday evening and go over to one of the Coffee and Code events and
offer to help people out and just be there and be an example. If you're already an experienced
software engineer, that would be wonderful. If you're already an experienced software engineer, that would be
wonderful. If you're an experienced teacher and you just want to kind of help people understand
by applying general teaching methods, help them understand concepts that they're struggling with,
that would be wonderful. And I guarantee you, you'll meet a lot of interesting people and
they'll be extremely grateful. Fantastic.
Well, obviously, as you know, listeners, we have some awesome show notes.
This is episode 195.
You can find those notes at changelog.com slash 195.
Or if you're listening on a podcast app, just go ahead and find the show notes or link back to freecodecamp.com, which is the website.
And I'm sure that there's lots of links and lots of navigation to the right kind of places that Quincy just mentioned.
So follow links as needed to find your way to get her in other places you can chat with people.
But Quincy, this is where we turn it back on you and figure out who you might, I don't want to say idolize, but someone you look up to, someone that's
inspired you, impressed you, motivated you, who is someone you consider a programming hero?
Well, there's a gentleman, I think in France, who runs a community called lichess.org.
That's L as in Lima, I as in india chess like the the gang.org and his name is tibalt
duplices if i'm pronouncing that correctly it's a french name and um over the past couple years
his open source project is basically he's building this incredible chess platform where literally tens of thousands of people are playing chess every day.
And the thing that's amazing about it is it's totally open source and he's managed to build it.
He's built all this infrastructure, I think, using Scala.
And he is able to do all of this for like $400 a month, which is covered completely through donations from the community.
And he doesn't even do it full time.
I think he has a day job.
And he is already, like LHS.org is already the second most popular place to play chess on the internet and it's closing in on chess.com which is you know
the big corporate you know chess company that has banner ads everywhere and wants to charge you a
ton of money in a recurring membership and everything and uh you know tibalt's li chess
is free forever he never wants to charge anybody he just wanted to build an incredible platform
because he's passionate about chess you can watch him stream on twitch and everything i mean i think he's so down to earth
and he so symbolizes everything that i personally as a as a developer and an open source project
maintainer want to uh want to go for it seems like this simplicity of, I mean, obviously, chess.com was the bigger version of LHS.
I mean, whenever you go to a website and you just plaster with ads and you totally make it only about making money and you don't make it about enriching the community that you're trying to serve.
I mean, I just don't understand how anybody, even a company, how silly you must be to think that's a good model.
You got to love people, right?
Jerry, we said it when we went on, well, I said it when we went on Giant Robots Smashing Into Other Giant Robots.
And I don't remember saying it on the show, but you reminded me afterwards.
I said, you know, Ben Orniston said, you know, what are you trying to do, Adam?
Or what are you guys trying to do?
I forget the exact question.
I'm like, you got to get in the trenches.
You got to, you know, you got to love, buddy your knuckles and hug some people.
Like, that's what you got to do to earn the love and respect of the people you're trying to actually serve.
Is not treat them like, you know, piggy banks or something like that.
I don't know.
Treat them with respect.
Actually do something right and give back. I feel like that i don't know and treat them with respect actually
do something right and give back i feel like that's what you're doing quincy and i feel like
that's what you kind of embodied in your your respect for lhs and what he's doing at lhs.org
correct me if i'm wrong that's correct lhs.org i didn't mean the url i meant my my uh pontification
yeah oh i i you know that's certainly what i aspire to yeah sorry i had to rant there for a I meant my pontification. Yeah.
That's certainly what I aspire to.
Sorry, I had to rant there for a second.
You kind of inspired me.
Why don't I go sometime?
I didn't mean to do that.
Anyways, we are definitely rambling.
We're definitely getting close.
We got two minutes left.
Oh my, come on, come on.
I'm just kidding.
I'm just kidding.
I'll give you a shorter answer to the next question or two.
We're going to punt on open source radar.
We might do that in the after dark and put that on SoundCloud or something like that.
We're going to punt on that
because we definitely are short on time.
I don't know.
Is there anything else you want to add
to this call before we tail off?
Honestly, I'm a huge fan of the changelog.
I wrote about it on medium a few weeks ago
what? how did I know?
I included you all in my list of
like five podcasts that every
beginning programmer should listen to
and you know
you all
do so much for open source
and it's been a great
resource for me to learn from other open source project
maintainers and and i think you're a great vector for uh knowledge within the field wow wow that's
thank you so much didn't expect that that's really appreciated almost makes me cry i'm not even
kidding you tell us more i'm just kidding well you know on that note we we just uh i think i said it
kind of best not not not intending to but we try to get in the trenches we try to buddy our uncles
you know you know do what needs done to get the work done and we try to hug some people we love
open source we love the people of open source doesn't matter what gender you are what background
you are we care about everybody and we want jared and i our mission is much like your mission we
want to enrich the lives of developers that's our mission like that's why we do this podcast that's
why we have people like you on it's why we challenge you in some ways you know in respectful
ways to move the ball forward you know and and i think that more people should do that
but uh we are at the point where we have to tell off the call so we have some upcoming awesome
shows in the schedule up next this is the third time i'm saying this tiddly wiki it's the funniest
name to say for a wiki i love it jared i can't wait to have jeremy on but jeremy rustin is coming
on to talk about this awesome wiki called
TiddlyWiki. Wikis, man.
The quintessential web
is wikis, right?
What Quincy said earlier, like Wikipedia,
build your own wikis.
Lots to talk about there for sure.
And we have
two big, and I mean B-I-G,
capital B-I-G,
upcoming shows, the future of WordPress
and Clip so we're looking forward to that one
with Matt Mullenweg so that's coming up
soon don't know exactly we got the date
pinned down but don't know what show number
it's going to be and we also
have potentially
for show number 200 for us
20 years
of Ruby with Matt
Matt himself so we're excited about that show
if you haven't yet
this is your first time listening to the changelog
go to changelog.com
and find the subscribe button, it's really hard to find
but subscribe to the podcast, we're on iTunes
open up a podcast app, subscribe there
follow the emails
we send out, changelog.com slash weekly
changelog.com slash nightly.
Those are two awesome emails.
And follow us on Twitter.
And, yeah, that's the best way to kind of tail up one of the shows.
We're excited about those shows.
And, Betsy, we're thankful so much for all of your effort towards Free Code Camp. We highly encourage the fight you're fighting.
And whatever we can do to support you in the future,
we want to do that for you.
And to the listeners out there,
we thank you for listening
and to the members who support us as well.
We love you and we thank you for supporting us,
but that's it for this show.
So let's say goodbye.
Bye, everyone.
Bye. Thanks, Quincy. We'll see you next time. you