Here is everything I wish I knew 4 years ago when I started on my journey to becoming a full-stack developer. I really hope it helps someone in a similar situation to where I was. A full-stack developer is just a developer who can use tools across the software spectrum. In other words, someone who can build a complete application with a "front-end" like a website, a "backend" like a server that handles logins, and a database that can store and fetch information. Unlike most other professions, you don't need to know a bunch of theory to become qualified. It's not operations or administration focused where you do repetitive tasks or follow procedures. It mostly consists of creative and logical problem solving and you only get better by doing it. To get hired, you just need to be good enough - it's as simple as that.
The good news about becoming a developer is you can do it by yourself without much money and it puts you in a career with accelerating demand and nearly unlimited earning potential.
The bad news about becoming a developer is that the bar for entry is high. You will have to spend a huge amount of time developing your skills in your own time, and the industry is fast-paced and always changing.
University will just teach you how to pass assessments. No matter what they do, it will always be a soft environment and no match to the real world. Don't pay for such an expensive simulator when the cost of doing the real thing is so low! The future is: Portfolio > Transcript Remember, once you are good enough, you will get hired. Smash out a bunch of cool projects and you'll get to the required skill level much faster. Universities were invented when the scarcest resource was information. Today, information is basically free, the scarcest resource is hands-on experience. Going to university and believing that the investment would be worthwhile was my single biggest mistake so far.
There are tons of Websites, Subreddits, Slack Channels, Discord Servers, Github Projects, Youtube Channels etc that are super friendly to newbie developers. Finding other people on the same journey as you will help you stay motivated. It's something I wish I did way more when I started.
I never managed to find one myself which is why I'm so determined to be the one I never had for others. I'm soon going to be looking for 5-10 aspiring developers to mentor. If you are interested contact me! The more overlooked and unconventional you are, the keener I'll be!
When I was learning to become a developer, despite having practised every day for over a year, I couldn't seem to land a job. Every employer I approached said I needed more experience and that they were only looking for senior or intermediate developers. This is very defeating but don't let it get you down. They were just saying I wasn't good enough yet. This is because coding is more of an art than a science. There is a big difference between knowing the basics and reaching a professional skill level. The only way to get there is to practice in your own time. Just like top graphic designers, musicians and cinematographers spend years developing their skillset before getting paid well, top developers also typically spend years honing their skills on hard problems outside of work to reach senior positions.
In my journey to becoming a developer, I found Udemy and YouTube to be the ultimate resources. My advice would be to start learning "Front End" development first as it's more gratifying seeing cool websites and apps come to life and then gradually move deeper into the back end as you build increasingly powerful systems. Here's an ordered list of my favourite courses that helped me to become a full-stack developer.
I recommend React.js, it's the most dominant player at the moment. But check out Vue.js or Angular too if you want to see what else is being used.
I recommend React Native as you can directly transfer ~60% of what you learned in React.
Learn additional tools and practices that help you create better programs. - Typescript (make fewer mistakes) - Websockets (faster apps, with live updating) - Databases (I like Postgres & MongoDB) - Practice using cloud platforms, use 3rd party tools built by super-smart people to make your apps way more powerful. (Azure, AWS, Google Cloud Platform) - Testing
If you have any questions or would like some advice regarding any of this please get in touch! I'm more than happy to help you get into software development.