Quincy Larson

Creator and teacher, freeCodeCamp

13th September 2017, 6:00 pm

This AMA is over!

Thank the host

Message from the host 馃挰

That was a blast everyone! Thank you for your thoughtful questions! I hope my answers help you in your coding journey 馃捇馃挭

Why do online programming resources revolve so much around web tech (HTML, JavaScript, PHP, Ruby etc) but it's somewhat difficult to find good quality embedded systems programming resources or anything relating to bare metal programming? If there are some out there then what are they?

Server programming, for example, can relate to both web and bare metal programming but most of what is taught is only with higher level languages like Python and JS in the Node.JS runtime environment.

Most online programming resources are geared toward beginners, and high level scripting languages are a good place to start for that.

Another reason is that most developer jobs involve doing web development - if not for building web applications, at least for creating APIs that can be reached through the giant platform that is the internet.

There are jobs that focus mainly on using tools that are "closer to the metal" such as embedded systems, but in my experience, employers who are filling these positions are more likely to also require a traditional computer science and/or electrical engineering academic background. For example, defense contractors like SpaceX have lots of developers who work on propulsion software for rockets.

Still, there are some resources for learning these things outside of an academic environment. You might take a look at this giant list:

What is your view on Facebook React License controversy? Do you think open source software should never change license once they are popular? 馃

I am not a lawyer. My perspective on it is informed mainly through reading the thoughts of lawyers on this topic. But here goes.

A few weeks ago, a developer (who is not a lawyer) wrote a popular Medium article asserting that Facebook could use its BSD+ patents open source license - which is uses for React and some of its other open source libraries - to prevent you from suing them. So in theory, Facebook could compete directly with you and perhaps even misappropriate your intellectual property, and you wouldn't have good recourse.

Here's a link:

That article has some thoughtful responses from lawyers who make this sound a lot less scary than the original author made it sound.

Also, a former Facebook employee said that it's not nearly as bad as it sounds and it's just there so that Facebook doesn't have to have their legal team review every commit to their open source projects.

Again, I'm not a lawyer. uses React and Redux, and may use GraphQL and other tools in the future. We are not planning on suing Facebook any time soon (I imagine that would be quite an expensive feat for a small donor-supported nonprofit) so this clause doesn't seem to have any immediate impact for us.

My advice is if you're really worried about it, talk with an IP lawyer.

Hello Quincy!! :) First of all my question is unrelated to programming. You do so many things ranging from doing development, learning new technologies to handing such a big organization and your family too. What is your typical day like? What is the secret of your time managerial skills :D How do you spend your free time(if there is some :P)?

I work about 80 hours a week, but I work it at my own pace, according to my own schedule. The key is to try and make as many things asynchronous as possible. To the extent possible, I avoid getting on the phone or adding anything to my calendar.

Here's my calendar for this week:

I stacked all my synchronous stuff on the same day so all the other days I can work uninterrupted.

I talk to dozens - sometimes hundreds - of people every day. But it's almost always through email or instant message. This way I can batch process everything.

This has the other benefit of being able to take a break at any point to play with my kids!

I've written more about living asynchronously here:

Hi Quincy, thanks for everything you do. You rock! I have just one question for you -

What do you see as the future of tech education, say 5-10 years from now?

Thanks for your kind words, Hrishi!

I'm going to answer this specifically for continuing education for adults, which is where I've spent my career as an educator, and is whom freeCodeCamp is focused on helping.

Right now a lot of technology resources that used to be completely free are moving over to corporate training. This is a much more lucrative field than trying to help individual learners gain practical skills they can use to get a better job.

All of the original massive open online course programs seem to be moving in this direction.

I think that's great. Employers should invest in professional development for their employees, and these platforms are way better than what employers used to use for this purpose.

But there are also hundreds of millions of adults out there who would benefit tremendously to learn to code, and their employers aren't going to foot the bill for that.

So I see the rise of inexpensive (and in's case, completely free) resources that focus on helping busy people learn to code in a self-paced way.

These resources will continue to get more convenient and accessible.

What are your thoughts on developers calling themselves "Full stack developer"? Is it a real thing according to you?

Yes. Software development is becoming more generalist. Most people on development teams are expected to have wider exposure. These are often called "T-shaped" developers - deep in one specific field (say, cross browser compatibility), but with a broad complementary skillset. You can call these developers "full stack developers" or more commonly just "developers."

Increasingly, employers may expect developers to be familiar with concepts like UX design and DevOps as well.

The body of knowledge you're expected to have as a developer keeps growing. Luckily, the resources to learn these things get better and better all the time, and the tools themselves get easier to learn.

Hi Quincy, Keep up the good work you do in OSS community. 鉁岋笍

Do you think everybody should learn to code? Why or why not?

Yes. Everyone should learn to code.

Coding is the new literacy. Like reading was in the 12th century, writing was in the 16th century, arithmetic was in the 18th century, and driving a car was in the 20th century.

And just like how not everyone who learns to write will go on to become a professional writer鈥娾斺妌or everyone who learns arithmetic will go on to become a professional mathematician鈥娾斺妌ot everyone who learns to code will go on to become a software developer. But all people who learn these things will be immensely better off as a result of their efforts.

I've written more about this here:

How did you start your programming career? What was the first programming language you learned?

When I started out back in 2012 at the age of 31, a bunch of my older experienced developer friends told me to just focus on JavaScript, and that JavaScript was the future. Well, I didn't listen to them. Instead I geeked out over tools.

I started using Python. Then I worked as a Ruby on Rails developer. And finally I came back to learning JavaScript, and that's when I realized that those experienced developer friends were right.

I've written more about this here:

What is your advice on starting some real work after finishing courses, let's say on FCC. Most of us are having troubles since we don't have experience in real projects like making a website for a client and transferring ownership. How to overcome that hurdle? Is there a community where we can volunteer to get some real experience?

Contribute to open source. This will help you do the following:

  • learn how to work with legacy code
  • learn how to work within existing organizations and productively communicate and get work done
  • build a portfolio of meaningful contributions (that aren't just good because you say they're good - they're good because an organization believed they were good enough to accept into their codebase)

Contributing to open source accomplishes all three of these things at the same time. Here's a good place to start:

Hi Quincy. Thank you a lot for your work on Freecodecamp and starting such a wonderful project.

I wanted to ask what is your opinion on this open source tool we are building to learn things in the most efficient way :

For example if a person wanted to learn web development, Freecodecamp would be the first link suggested as it is by far the best website to learn web development online. Of course web development is only one topic that you can learn, there are many others too.

Hey Quincy, First of all, thank you so much for giving all of us freecodecamp. A place where we all can learn to code for free by making real-world projects & help non-profits. ^_^

My first question: Quincy In my country(India) websites/web apps made by the government organizations perform really bad. How can I contribute to Improve them? There are many developers who want to help their country, so your thoughts and ideas will be helpful for us.

My second question: What all challenges you faced while building How much time it took, why you decided to build a free coding platform, what all languages/tools you used and from where you learned them.

Please connect with me on Facebook:

Thanks for your kind words. For helping make the Indian government more efficient, I would look at what Code for America is doing. Here's one of their long-running meetups in San Francisco:

You may be able to find a similar organization in India or start one.

I applaud you for making an effort to improve your government by empowering it with code. 馃憤

I have this Question in my mind from a long time. How do you organize your activities (teaching, reading, blogging in medium, developing, learning, working, TV Interviews, etc ...) I mean you have a LOT of work every day?

I answered a similar question a minute ago, so again I'll link to this article I wrote again. It's basically all of my core productivity hacks wrapped into one article:

How hard and what it takes to get funds and budget (if is needed) to keep walking a nonprofit org?

When I started freeCodeCamp I made a conscious decision not to take any funding, and turned down funding, anticipating converting it to a nonprofit. So I don't know how hard it would be to get traditional seed funding. I have lots of friends who've gone through this process, and it's months of their lives they have to spend building slide decks and practicing pitches, then pitching dozens of investors. So I would say raising funding is hard.

For nonprofits, it's even harder. If you want to get government grants, you will probably need a full-time grant writer. Most nonprofits also have other full-time fundraising staff. Fundraising can often be 10-20% of a nonprofit's operating budget. is in a special position because the freeCodeCamp community is huge. More than a million people use freeCodeCamp each month. And yet our nonprofit is extremely capital efficient, operating at a fraction of what a typical nonprofit would need. But we may need to hire professional fundraisers in the future.

The money problem is a hard one for everyone. Nothing about running a startup or a nonprofit is easy.

With so much emphasis put on the JS stack for both FE and BE, do you think it's a good idea to learn JS for the FE and python for BE?

JavaScript is faster than Python and it's under much more active development, thanks to significant investment from Google, Facebook, Microsoft, and thousands of other major companies who pay their employees to improve open source JavaScript tools like Node.js.

Python is a great language to learn if you want to do scientific computing. Some companies, like Quora and Instagram, use Python on the back end. But far more of them use Node.js or are in the process of transitioning to it.

Hi Quincy, thanks for doing this AMA

What is the best project you have seen from freeCodeCamp users?

The best project so far is the platform itself. It has been built entirely by campers (I consider both me and Berkeley to be campers even though we haven't earned any certificates yet).

I'd also consider Mail for Good - a mail campaign tool we built so that nonprofits can send email blasts incredibly inexpensively - to be one of the most sophisticated (and hopefully most impacting) projects the community has built yet.

We'll announce an open beta for Mail for Good soon. Here's the repo if you're curious:

According to your experience, what is the average time someone needs to dedicate daily to become a software engineer in one year?

The term "software engineer" is somewhat fuzzy (in Texas, for example, you have to have a 4-year engineering degree to legally call yourself an engineer). So just to clarify, I will answer for someone who is able to get a developer job.

There are a lot of aspects to getting a developer job that go beyond coding: your ability to interview well, to network effectively, and soft skills. Do people like you? Are they convinced that you're reliable?

Assuming you have those skills, I think that most people will be able to successfully get a developer job after 2,000 or 3,000 hours of deliberate practice building projects. So that's about 40 - 60 hours a week of coding. This will vary wildly - some people get a job after just a few months - but I think this is a reasonable conservative figure.

How come my professor is teaching me the waterfall methodology and nothing else?

Academia often lags behind industry. I would try and learn everything your professor tells you to learn, but I would also supplement that with lots of books, podcasts, YouTube videos, and online learning platforms.

University professors are well-meaning, but ultimately it's up to you to learn what you need to learn so you can get a good developer job. Don't get complacent and think that a university degree will guarantee you a job. It won't.

What is your technology stack? Which technologies do you use when developing a new project today?

The platform runs on the same tools that the freeCodeCamp curriculum teaches. We eat our own proverbial dog food. :)

We use Node, Loopback (which is basically Express with a few extra API features), and React + Redux on the client side. We use other common tools like Cloudflare, NGINX, and cloud servers.

Do you do speeches for Universities on the importance of Computer Science?

Yes. This is almost always done over Skype or Google Hangouts. (I have 2 young kids so I don't travel much at the moment.) But if you're a professor - or if you're a student and can get your professor onboard - and want me to talk to your class, email me. I may be able to do that.

What tools you use (and/or your favorites) to create and produce your online courses?

is graduating from a non brick and mortar institution considered job worthy? do freecodecampers get hired without a formal CS degree? can bootcamps like it substitute the traditional institutions?

Yes - plenty of campers get hired without a formal CS degree. University degrees are a huge career boost, and often lead to higher paying jobs, but they are not necessary for getting a developer job.

There is no direct substitute for a university degree. No certificate program or intensive coding bootcamp will give you a credential that holds a candle to a university degree, which is still the gold standard for most employers. If you are almost finished with college, I recommend finishing. Spend as little money on it as absolutely necessary.

If you can get a developer job without a university degree, great! But you should still use online courses to plug the gaps in your theory knowledge. Here's a list of great online courses - most of which are free - that just published a few hours ago:

How to get back into the software development industry, after a long hiatus? Note: Used to work as a software developer a decade ago.

I recommend contributing to open source and learning contemporary web development skills through a platform like

Much of this will be review for you. Building the projects will be great projects.

With some practice, you should be able to re-enter the software development job market with confidence.

Remember - the tools may change, but the underlying math and computer science fundamentals haven't changed much. You just need to acquaint yourself with the minority of topics that have changed. You've got this.

Any plans to introduce other web stacks such as python/flask django?

What do you recommend as study resources for someone who is not a beginner and needs more intermediate/expert training in web development?

How do you measure the %learning from the users?

Hi, what's is your stack Tech ?

Hi, what are the most challenges to generate a good online content that others can really learn ?

Hi Quincy, Thanks for the AMA, I have three questions:

  1. like these days there are majority of web development or app development courses on vibrant frameworks and technologies and so the jobs but still what are other side of programming (or to be specific) areas which are quite serious and core part in development (other than apps and web development) and what skills does it requires?
  2. In a long road of development with experience of 8-10 years what is the nature of work or it differs from organisation to organisation or work to work?
  3. Sometimes despite of having knowledge of back-end and front-end it's the design part that makes very difficult to think and proceed and to build something , what's your suggestion for managing this designing problem? PS: sorry if I am not able to phrase my questions properly, and thanks for you time

Hi.. I am currently working as a test automation engineer and my job is to write end to end automated test cases using Java. I am willing to switch my career to Data Science or Web Development. What would be a better option ?