So you want to become a freelance web developer. Maybe you're already a front-end developer and want to dig deeper into web applications, or maybe you're a copy wiz and are eyeing the countless developer positions out there. Either way, it's an entirely new skill you’ll be picking up. Here’s how to do it successfully.
The challenge for most is finding the right resources, understanding them, and staying motivated when you hit walls. While learning from quality resources is needed, it's the process behind learning that will set you apart. It's important to create the best learning environment to ensure your success.
1. Don't Do it Alone
It might seem contrary as a freelancer to work in a team, but when learning any new skill, especially development, it's crucial to learn with at least one other person. The dynamic completely shifts. I recommend at least finding one other person you can pair with while learning.
I mean actually pair with, not just connect with. Both of you should sit at the same terminal and work together. One person drives, manages the mouse and keyboard, while the other navigates. Take turns and swap positions as well. You'll quickly notice a few key things when pairing with another beginner.
2. One Mind + One Mind = Three Minds
It's strange math, but it works. You'll realize when troubleshooting that your mind processes things quite differently than your pair's mind. And while both of you are hashing out on code separately, a third mind forms outside of your own to help you stay motivated, stay the course and problem solve in more unique ways.
The idea of the third mind isn't as uncommon as it sounds. Consider tasks you often do as a team, sports for example. You share the same goal, the same path and are able to play off each others abilities and passion. It's as much the team dynamic that creates a successful player, as it is the individual skill of the player.
3. There is No Bad Pair
Whether you're more skilled, or your partner is, everyone still gains something out of it. As a more skilled person you can let your partner drive more frequently and you'll quickly notice how your navigating deepens your understanding of concepts. Conversely as a beginner, the hands-on experience is the best way to find where you're struggling and where you're doing just fine.
Be sure to find someone as motivated as you to start coding. I imagine there are quite a few out there, locally or otherwise jumping into the deep end of coding for freelance positions. Do your best to find someone with a similar focus and skill level as yourself.
4. Find a Mentor
Another key experience is finding a mentor in your community who can sit with you even if it's just a half hour a week. It's a priceless meeting that will prove to be one of the most valuable things you can do while learning to code.
Traditionally mentors provide oversight to your overall vision or goal. A development mentor is no different. Seek out someone who remembers what it's like being a beginner, ideally self-taught themselves, and who enjoys teaching.
The goal here isn't for them to do your work, or even be your tutorial. Instead they are your guide to success. They should be able to match specific resources to your specific goals. And while learning, your mentor should be able to facilitate where you’re at in the scope of becoming a developer, where you’re lacking and where you’re successful to better cater your learning experience.
If you're struggling to find mentors or people to pair with, I recommend finding as many local meetups as you can. Go to technical business meetups, go to code nights, hackathons and startup weekends. You'll find a surplus of people with ideas looking for developers. Convince one to become a developer with you.
5. Pick One Language
If you're open or unsure, I personally love and recommend Ruby on Rails. As a beginner myself it wasn't too deep a dive to get the basics down, setup was simple enough thanks to OS X, and there are a ton, I mean a TON of resources and tools to tap into. Really most of the work is already done for you.
6. Web Development Resources
If you do choose the Ruby on Rails route, you can never go wrong with Learn by Example from Michael Hartl. It's beginner focused, free online, or you can purchase the video and book separately.
Railscast are also amazingly simple, quick video walk-throughs for your most common tasks when building an application.
Stack Overflow will be your Quora for coding questions. Once you have the fundamentals down, it's a great place to ask questions when you hit bigger walls.
Don't forget to rely on your network first before reaching out to the interwebs. Meetup.com is your best friend. Find events and network. You'll be surprised by how many people are willing to help a beginner pushing to learn, rather than a beginner pushing an idea, trying to get developers.
7. Freelance Away
After three to four months of straight learning, chances are you'll actually be in a place where you can build basic enough applications to get work. Maybe you'll know Ruby enough to offset tasks people tend to do in Microsoft Excel. Little tasks are great for practice and great for landing your first freelance projects as a developer. Plus little projects always help scale you into bigger and better ones down the road.