Short intro by Kyle:
Quincy is not someone who needs an introduction, but if you don't know much about him, he's responsible for helping over 1,000,000 programmers get into the world of web development through freeCodeCamp.
I asked him some practical questions and I think you'll find his answers very helpful.
Without further delay, here's Quincy:
How Did You Get Started With Web Development?
When I was a school director in my 30s, I noticed a lot of my teachers and administrators spent a ton of time entering data into computers.
So I thought "how can I free them from their computers so they can spend more time interacting with students?"
I picked up some basic programming tools to automate tasks in Excel and on webpages. (I didn't know anything about coding. I had to ask my wife for help doing basic things like configuring our Wi-Fi router.)
After this, I was able to automate a lot of the rote back office tasks for my team. When I saw the results of my basic coding - happier teachers and students - that's when I became convinced I should learn more programming.
Since web development is the most common form of software development and it has the lowest barriers to entry and the best learning resources, I went straight into it.
Because web development is gradually subsuming mobile development, and even VR, I plan to stay in web development for some time to come.
How and Why Did You Start FreeCodeCamp?
My coding journey was lonely. I hung out with as many developers as I could, but I didn't know anyone else who was learning to code.
Everyone else had been coding for years, and they'd lost any memory of how hard it was to learn to code. So the entire time I felt alone and like an imposter.
My coding journey was also really winding. I went down so many blind alleys and learned tools I'd never use. I was spending days going in the wrong direction. I should have started building projects from month one, but I didn't really build anything until I'd been working through books and courses for several months.
Whenever I met other people who had successfully learned to code on their own, outside of university, their experience was similarly frustrating. That's when I knew - it's not just me - there are challenges that are inherent in learning to code mid-career.
I thought about all the people out there who would benefit from learning to code, and many of them were in a similar situation as me - with a family and a job, too busy to drop everything and focus on learning to code, and probably too resource-strapped to go back to university.
So from day one, I knew the program needed to be as convenient and accessible as possible. And that meant self-paced, browser-based, and free.
I built a basic prototype of freeCodeCamp in a few days, launched it, and did my best to publicize it by blogging and tweeting.
Miraculously, people started hanging out in freeCodeCamp's chat rooms and helping one another. Some of them started contributing to the open source project and we just started to grow from there.
What is Something You Regret About Your Professional Career That You Would Have Changed?
I regret that I spent so much of my career focused on doing the specific task that was right in front of me instead of stepping back and asking:
"Can I think of a way I can automate this? And if so, is it worth automating in terms of the time investment?"
Some tasks aren't worth the time investment of automating, but a lot of them are.
After you've automated them, any time you spent doing those tasks before is time you won't get back.
So now whenever I'm confronted with a new task, I think in those terms.
What Skills Would You Recommend Developers to Have Besides the Technical Skills?
Communication skills. As a working developer, if you get to spend even half of your time coding, consider yourself lucky. So much of software development is planning and communication and that means meetings.
Written communication skills are particularly important, since so much of software development happens remotely. Everything from issues to commit messages to code reviews - you need to be very clear with how you communicate these things.
The best ways to build this skill up is to contribute to open source. This is a great way to communicate with already-existing teams and understand what they need help with, and to communicate the code changes you're making.
Are There Any Top Programming Languages You Would Recommend and Why?
I've written more on this topic here.
What Advice Can You Give to Freelance Web Developers/Designers?
Freelancing is more about sales and communication skills than it is about software development.
It requires an entirely different skillset. We've published lots of articles and video tutorials on freelancing.
One of them that I strongly recommend watching is this 36-minute video:
What is Your Prediction Within the Next 5-10 years When It Comes to Web Development?
Developers are already building VR experiences using web development tools and I think that trend will continue.
Here's a video we recently published showcasing the power of WebVR:
I'm also excited about serverless, conversational interfaces and offloading more things to client-side, such as client-side machine learning.
Here's a web app that uses client-side computer vision and machine learning to play Rock Paper Scissors.
These things are just getting started.
What Are 5 Tips You Would Advise Someone Just Starting Out in Web Development?
1. Code every day.
2. Hang out with other people who code.
3. Focus on how to build things (engineering decisions) rather than "what to build" (business decisions).
4. The tools you use don't really matter. Just use whatever tools you feel comfortable with and build. You can learn new tools later.
5. Contribute to open source.
Conclusion by Kyle:
Thanks again to Quincy for doing the interview and I hope this short Q & A article helped you with your web development journey.