So as I continue to learn and grow as a developer. I build all of these cool little projects in Ruby and contribute to Open Source Projects in small but meaningful ways. At what point is it time to start applying for developer jobs? How do you know you are ready?
You are never “ready” until you have some on the job experience. Start applying now. Get rejected over and over. Build your interviewing skills and your portfolio. Keep learning and building. Eventually your growing skills (both for coding and job hunting) will intersect with a little luck and you will get a job.
I agree - you should start applying right away. There are probably companies you want to work for, so save those for later. But for everything else, you should definitely be applying and practicing your application skills. This is everything from writing customized cover letters all the way through the interview process.
In addition - you should start networking now. Go to meetups and hackathons as soon as you can. Build relationships with other developers in your community now. “Dig the well before you’re thirsty”
You should apply as soon as you have 2 projects/experience you can confidently talk about and a language you feel comfortable solving problems with.
There is no ready, so just do. Job searching is practically a skills in itself, so start doing, practicing, editing and evolving, as soon as possible
I’m going to demur from the opinions above and suggest some criteria. You are ready when:
- You can build and deploy a full stack application with responsive design, some form of authentication, data persistence, and unit tests, using one of the major frameworks.
- You have completed 100 algorithm challenges, including mid level ones (minimum of level 6 on Codewars)
- You have a well-designed online portfolio with at least 10 projects (at least 3 full stack) and its all polished and all the code is on GitHub
- You can explain, on demand, the fundamental principles of JavaScript (things like scope, closure, hoisting etc) and CSS (selectors, positioning, the box-model, the cascade etc)
- You can talk intelligently about how you work and how you choose between different technologies