Choose a Technology and Start Freelancing
I recently received an email from a reader. He asked me how to freelance with his set of skills, which are totally unrelated to web technologies. He’s familiar with some frontend and backend languages though.
This reminded me of myself, when I was working in a company using Symfony2 (a PHP framework), but I disliked it after completing a big project (a custom shop, inspired by Prestashop).
I really wanted to do something with Ruby on Rails. My goal was to totally switch to that framework and continue making money, but the change was so different that I needed to think a lot on how to do it quickly and effectively, so when I was ready I started to search for a new job.
Today the tendency is to know both frontend and backend fields (being a full-stack developer), but at the end of the day you will know better one or the other. So try to specialize on the one you feel more comfortable with.
The first step
The first step then is to learn and interiorize the concepts about the technology you like most. By concepts I mean trying to master the basics.
Once you know the basics, you can learn the advanced pieces on the go, while you work on a project. Don’t try to learn everything at once because you will not retain all the information. You will end up wasting your time.
In order to make your learning process enjoyable, I would recommend searching for a technology that has a good community behind, providing good tutorials so you can avoid reading big books. Yes, I recommend tutorials instead of books. I prefer the rich web format and videos. For me it works faster than a book (and it doesn’t get deprecated so easily).
- With Code School I could learn the basics following a path.
- With Railscasts I could learn more specific subjects, the ones that I felt weaker.
From there, with a good basic knowledge, I found the Ruby gems an amazing resource of features that I could add to my applications easily.
This made my learning process fast, and my applications would be bootstrapped in almost no time. Being Ruby a programmer’s best friend (it’s the language slogan), I could focus on the app rather than the tool.
Create your first application
Okay, you are now confident enough to develop an application. Why waiting? Start making your first application!
Think about something you could clone (there are tons of tutorials out there to clone the most typical apps in any language). Maybe you could build something original, go ahead! Even better, you could do it open source, host it on Github and find collaborators.
When you finish your first application, you can find other open source applications you can collaborate on to gain some experience working in a team. It’s a very important aspect when working remotely, because your code will be reviewed and you will have to improve it. Take a look at the open issues, maybe you could pick up one and provide a fix.
Promote yourself and find a job
You now have the knowledge, your first application and experience working in a team for an open source project. All this can be put into your CV, so don’t hesitate to do it now. If you are collaborating writing answers in StackOverflow you could create your Developer Story. Do not forget LinkedIn either.
Then it’s time to search for a job! If you want to try working remotely (which I recommend) I suggest two tools to find interesting positions:
If you prefer to work on different projects, I think the remote approach is a must. Using the sites I recommended you can find companies searching for developers to work on a limited time per week, so you can have multiple clients to start with.
Another alternative is using a site for freelancers such as Upwork, but you will need to compete in price with other developers. I think it will be very difficult and time consuming to find good clients there.
Working in interesting projects with good clients is a slow process. Invest your time and effort on few projects that you really like, it will be worth it.