Quincy Larson on — staying motivated, becoming a better developer, FreeCodeCamp, and more

We invited Quincy Larson to host a FreeCodeCamp AMA, the last Friday. Being regular readers of Quincy's publications on Quora, and Medium, we are huge fans of his immaculate ability of articulating his insights on a wide variety of topics, in a lucid style; and we had a blast reading all of his answers.

We’ve curated, and categorised the best responses. You can find the full AMA here.

Starting from the origin of FreeCodeCamp, the path that it’s headed towards; to amazing developer insights on learning programming, improving your craft as a programmer, crossing your hurdles, and staying motivated through it all; Quincy has shared a lot of the wisdom, that he has gained over the years, with us; including the super cool story behind on why he calls himself an ossia. Dive in! 😃

The origin of FreeCodeCamp

Thanks for creating Free Code Camp. How did such an amazing idea come to your mind and what motivated you to build it? @fernkul

Hi Fernando! Like most good ideas, the idea for Free Code Camp came out of a multi-year fascination with the problem: we have so much technology around us but so few people are able to truly use it in productive ways.

Even though people have been able to learn to code on their own for free for decades, not enough people were doing so. So it was really a problem of accessibility. So my goal was to remove as many excuses as possible.

  • Socioeconomic excuses: it's free.
  • Time constraint excuses (especially important for parents): it's completely self-paced
  • Hardware constraint excuses: Free Code Camp can be completed on any device with a browser from the last 10 years.

After figuring out what the solution needed to look like, I just needed to figure out a way to implement it. I didn't want to take VC funding (who knows what values VCs would ultimately force us to compromise) or take government funding (takes too long and is too complicated). Open source was a risky but promising option, and in retrospect, it was the smartest decision we've made. Now a majority of the improvements to Free Code Camp's curriculum and codebase are made by skilled volunteers from our community. Our staff (me, Berkeley Martinez and Michael Johnson) can focus on support, strategy, devops, and overseeing nonprofit projects.

FreeCodeCamp’s expansion

What new features are you planning to implement sooner, and later in Free Code Camp? @wat_node

We're moving all of FreeCodeCamp.com over to React. Berkeley Martinez (https://twitter.com/berkeleytrue) has been working on this for a couple months, and it's already live at http://beta.freecodecamp.com - check it out and if you discover any new bugs, create a GitHub issue and add the "beta" tag 😄

In the medium term, we are adding a multi-file editor. This is basically a simplified version of CodePen running right in our challenge framework. So you'll be able to build your projects right on FreeCodeCamp.com

And in the long term, we want to implement live pair programming on challenges, and a system that matches you with another camper in real time so you can pair program.

We are still early days (we just launched 21 months ago). There are so many things we will do with Free Code Camp.

It's great to see Data Visualisation as a part of the FCC curriculum. Are there any plans to add content that's apart from traditional web development: Machine learning, Deep learning, and the likes? @mariacarey

Great question. Machine learning is incredibly powerful, and I'm blown away by the rate at which the field is advancing. I've written a bit about this here: https://www.quora.com/Which-company-will-have-a-greater-impact-on-technological-evolution-in-the-decade-between-2016-and-2026-Google-Facebook-or-Amazon/answer/Quincy-Larson

We plan to include Machine Learning eventually in our Video Challenges section (basically 2-minute whiteboard lecture videos). I still think Machine Learning is an advanced specialty, and Free Code Camp aims to be serve as more of a foundation in software development.

We only have 1,200 hours to teach all the fundamentals (and 800 hours to practice them through nonprofit projects). Machine Learning may eventually become part of those fundamentals.

Contributing to FreeCodeCamp

What technologies should I be familiar with if I want to contribute to the development of Free Code Camp? @wat_node

First and foremost, you should be familiar with GitHub. There are a ton of ways you can contribute without even really knowing Node, Express, and JavaScript all that well.

Ideally, you'll want to get Free Code Camp running locally on your computer, which doesn't require so much understanding of Node/Express as it requires an ability to carefully follow directions (and our project is not unique in this regard).

I wrote a short guide a few days ago about getting started contributing to open source:https://www.quora.com/What-is-a-step-by-step-procedure-to-become-a-GitHub-open-source-developer-for-a-complete-newbie/answer/Quincy-Larson

What does it take to become a FreeCodeCamp forum moderator? How many hours are expected to be dedicated? @jinrawx

We try to keep things as simple as possible on our forum and in our chat rooms. The fewer rules, the better. So this means that becoming a forum moderator is a pretty straight-forward process.

If you regularly contribute to the conversation on Free Code Camp's forum, and are interested in becoming a moderator, you can contact Michael Henderson, who's our core team member in charge of our forum: http://forum.freecodecamp.com/users/michaelhenderson/activity He can consider making you a moderator.

We don't have any expectation of a specific number of hours or anything like that. We just appreciate that you are willing to volunteer your time and make our forum a better place to discuss technology and coding!

I understand that you want to keep the learning free and open, but why not make a voluntary donation option directly to FreeCodeCamp for those that want to contribute (like you do for other nonprofits for motivation)? I for one would contribute. @ahmadabugosh

In the spirit of keeping learning free and open, we'd rather not accept straight donations. You can support our community by getting books and services through our shop: https://www.freecodecamp.com/shop

You work hard to earn your money, and we want you to have something concrete in return to show for it.

Learning a programming language thoroughly

Do you think is best for people that are learning JavaScript to start with a framework or to start with just pure JavaScript? @clos2100

There's a tension between teaching pure JavaScript - which provides less instant gratification - and teaching more powerful frameworks - which are more likely to motivate people to keep learning. Being able to build something quickly and show it to your friends is a huge win, and immediately boosts your confidence.

For example, our core team frequently debates whether we should continue to teach jQuery before JavaScript (there are advantages to both). In the real world, people use jQuery. But it's important to understand how jQuery works under the hood, and use jQuery for convenience - rather than as a crutch.

We're expanding our JavaScript challenges to make sure new coders are comfortable with the fundamentals of JavaScript and programming in general.

I have a lot of ideas I'd like to execute on, but as a beginner in backend code, my biggest challenge is often deciding a language to work with. What are some strategies to identify an ideal language for a project? @asia

Unless you are an experienced developer who's worked with a lot of different languages on a lot of different projects, I recommend going with the default tools. Today, those are JavaScript and Node.js.

There are a ton of resources for learning JavaScript and Node.js (such as FreeCodeCamp.com) and it is extremely well documented compared to most other languages.

Also, regardless of which languages and frameworks you use, you will still need to use JavaScript. So make your life easier and just focus on learning that one language well.

How can I learn a new programming language fast and what are the most important things I should look out for while learning? @charliwize

I wouldn't recommend trying to learn a new language quickly. Learning to program takes a long time. I wrote some more advice on this here: https://medium.freecodecamp.com/learn-to-code-by-coding-d1e241de81c0

Also, focus on learning one language thoroughly (and building a ton of projects with it) before attempting to learn a second one.

Becoming an all-round developer

What are some things we can do to become better developers? @clos2100

I strongly recommend contributing to open source: https://www.quora.com/What-is-a-step-by-step-procedure-to-become-a-GitHub-open-source-developer-for-a-complete-newbie

And of course, the advice I give like 20 times a day: code every day and hang out with other people who code.

What learning path/resources would you recommend for someone who wants to get into hybrid mobile apps? @ahmadabugosh

I would recommend focusing 100% on web development first. Then picking up React Native or Cordova will be much easier, and you will already understand the back end components, which are extremely important for mobile apps.

For example, even though Uber is mobile first, they have a sophisticated back end and make heavy use of Node and React. You can read more about that here: https://eng.uber.com/tech-stack-part-one/

I'm a computer science student, so back end programming just feels more natural to me. So when it comes to design/front end programming, I tend to struggle. How can I get better at design. If I do decide to focus only on back end, will I be hurting my chances for employment opportunities? Do employers look for people who just specialise in either front end or back end? @RedBlackStudios

Every developer should learn some basic design and front end skills. Employers are increasingly expecting developers to know both front end and back end - especially front end. I've written a bit more about this here, with data to support this claim: https://www.quora.com/Computer-Programming-How-does-the-number-of-front-end-back-end-and-server-side-programmers-all-compare-with-each-other/answer/Quincy-Larson

Keep in mind that visual design (how something looks) and user experience design (how something) are two different disciplines. Some of the best designed sites, such as Quora, are quite simple visually, but have excellent user experience design.

You can also draw inspiration from other developers' projects on CodePen.

As far as learning design, the best approach is to practice. Free Code Camp will give you experience building more than a dozen front-end focused projects (along with plenty of back-end focused projects). These will give you ample opportunity to apply design concepts.

Staying motivated, and crossing hurdles

How can I stay motivated when I constantly feel that I'm not qualified? Should I invest time to learn math alongside programming? Do you have any book recommendations on that? @farhad

Staying motivated is the biggest challenge of all. Just keep coding every day and know that the more you practice and learn, the faster you will be able to get a developer job.

Instead of studying math independent of programming, I recommend solving Project Euler challenges. These will help you learn applied mathematics and practice programming at the same time: https://projecteuler.net/

What's the biggest hurdle that needs to be overcome by people just starting to learn programming? What's the point at which most of them give up? @nebojsac

The biggest hurdle is to actually believe that you can get a job as a software developer.

Many people still believe in a "fixed mindset" and think that some people are "born to code", when the reality is that anyone can learn to code if they put in the time and effort.

There are so many open developer jobs. They are increasing in number all the time. And software development is already one of the most popular professions in the world. There are more than 19 million software developers out there, but that's nowhere near the number that the world needs.
Most people give up because they don't see the light at the end of the proverbial tunnel. But that light is there, off in the distance. You just have to keep going.

What are the hurdles do you think a developer without a degree would have to cross, that a developer with a degree wouldn't need to address, or vice versa? @Daniel_Ashcraft

For people who haven't yet finished college yet, I strongly recommend getting a degree in computer science. For everyone else, I recommend taking free online computer science courses from great universities. Here's the best list of these: https://www.class-central.com/subject/cs

Even though some HR people will filter you out because you don't have a bachelors in CS, I still wouldn't recommend going back to get a second degree. Instead, learn the underlying theory and work on extending your network.

I've written about how most developers claim to be self-taught and less than half of them have computer science degrees here: https://medium.freecodecamp.com/2-out-of-3-developers-are-self-taught-and-other-insights-from-stack-overflow-s-2016-survey-of-50-8cf0ee5d4c21#.f39zmdujb

Quincy’s Ossia

What is the story behind the handle @ossia? :) @juanita_sutton

I wrote a script to discover 5-letter dictionary words that weren't already taken. Among the few dozen words that hadn't been taken (or had been removed and recently freed-up) was ossia. I chose it because it started with OSS (Open Source Software) and because I loved the definition of the word - an alternative musical passage which may be played instead of the original passage.

I felt like this was symbolic of my decision to abandon the "safe" path of being a school director in a traditional brick-and-mortar school and attempting to become the teacher of thousands of people who wanted to learn to code.

What are your thoughts on Microsoft's "openness" and cross-platform? @jf

I think it's awesome that they're including Bash in Windows soon. It will make it much easier to be a developer in the Windows environment - which is still the dominant desktop environment, especially in China and India.

I will applaud any effort for a company to become more transparent and open source. Here's hoping Apple's next 😄

Do you believe in Facebook's Internet.org? Do you have plans to get whitelisted there? @marykode

I agree with the stated goal behind internet.org - to give more people access to the internet - but I disagree with Facebook's approach. I am glad that India rejected Free Basics. I hope this forces Facebook to re-evaluate their methods.

Most of the software development community agrees with the Electronic Frontier Foundation's assessment of internet.org: https://www.eff.org/deeplinks/2015/05/internetorg-not-neutral-not-secure-and-not-internet

What YouTube channels do you follow? @the_doer

Find the full AMA here.