New developer career advice
I guess, as a new developer, reading my FAQ is a good way to start out - thank you for mentioning it, Sandeep Panda!
As for career advice, when I started out, I did a lot of hobby projects, then I freelanced quite a bit. Lots of bad pages on the internet which I today still have to maintain - urghh. However, I got money plus was able to practice a range of different skills. (That's how you get several years of professional experience before applying for your first job, btw.)
When you apply for a job, going for a junior position is usually the way to go. They will take you in and mentor you to make you a productive employee - they hope that one day you will be valuable enough to get back all the money they invested into you. So don't be afraid to apply even though you think you might not be good enough.
No matter what you do, though, always keep practicing - ideally get money for your projects, because that's what you need to survive! If you are lucky, find a mentor. Else, stay here on Hashnode. I never had a mentor, and Hashnode was really helpful. Write questions about stuff you don't understand, which confuses you or whenever you don't know how to go on. Answer questions by others with your knowledge and see how the rest of us reacts. It's a good way to learn, give back and at the same time even get feedback on what you already know.
You should read this awesome guide by Marco Alka:
If you have more questions, we are always here to help. :)
There is no real best path.
More what you are interested in doing, and market demand.
Some general recommendations:
What you do can be affected by if you looking to freelance or go full time with an employer, but in the early days, I guess there's not much difference.
You want to practice your skills early on a great way if your having trouble finding work is to volunteer for a local company. It's a great way to get hands-on experience and quickly find out what type of work you enjoy.
I have a developer in my team that volunteered one day a week whilst working and eventually we offered him a full-time job.
On the other side, freelancing is also good for getting experience with clients and earning whilst you do it.
As for what type of job should you apply for it's hard to say if you feel confident in your abilities there is no harm in applying for development role but early on its maybe better to apply for entry-level roles like a junior developer that way the expectations are not high and you'll actively be trained on the job.
There are specialist and all-rounders, ie can design and develop I realised early on design was not for me so concentrated on development. I do think its important to be able to use HTML/CSS for the front-end in smaller teams you'll be doing a bit of everything so it helps to have some front-end knowledge.
David Carr
Web developer
Goran Blazin
Web programmer
For someone to even be called a junior developer that person needs to have couple of small projects finished and and at least one medium.
What do I mean by small and medium project? Small project could be considered if only one or two technologies are involved (for example structural programming in web-browser or modeling and creating SQL for database). Medium project is something that is actually useful and includes several technologies (ie. small web application with data saving on backend, completely finished simple game, IoT app that measures single property of something in real world).
When these requirements are filled any person could easily get a job and could be called a developer. From then on a person should see what technologies are their passion and choose jobs that will allow them to improve those skills. You definitely always want to choose jobs with challenging projects where you constantly need to learn new things. For example In case of web development that would be proper data modelling and handling concurrency and asynchronicity (since web apps are suited for many users at once). In gaming those skills would be to squeeze every bit out of low level to make your game run as smoothly as possible on cheaper hardware,...
What you definitely want to stay away from are jobs that make you (mostly) do repetitive things that don't advance your knowledge. As a rule of thumb - if you can listen a podcast in background and you can follow it while doing a job properly - it is not challenging enough :)
Also what is very important is not to forget to work on your soft skills. Whether you are a people person or not, every project benefits if its workers are organized as a team and not as a group of lone wolves. This is why every project needs to also be a classroom in some sense where seniors teach juniors about best practices and what technologies are relevant both to the project and their personal growth, while juniors need to challenge the ideas of seniors if they are a bit outdated and there is something new out there.
Essentially you want a job where you are forced to constantly learn and apply new knowledge, where you learn how to learn and self-improve, where you learn how to interact with community (stack/overflow, forums,...) but also with team-mates and where the code quality is not compromised by the deadlines.
Please bear in mind that these things are not so easy to find especially in the beginning of your job so it is good to take chances. Working on bad projects in the beginning does bring some value as it builds character and gives you experience so that in the future you can easily avoid them. Also sometimes you can influence and turn bad project into a good one, with the help of team-mates and project owners who are open to criticism. Just don't try to fix lost causes - if you are clearly seeing that you are not progressing after ~6 months - don't feel bad to change the project and/or job.
Work hard but more importantly - work smart :)