Hi everyone at FCC! I am a 13 year old web-developer in training. I would like to know, what do you need to know to become a good full stack web developer. I’ve heard some suggestions: Node JS, Git - but I want to know more. I am enrolled in a GREAT course on Udemy called the The Web Developer Bootcamp. It is good, but I want to know what else to do. If anyone can help, please do so!
Completing freeCodeCamp will make you very prepared for when you are old enough to start applying for developer jobs. I’ve heard good things about that Udemy course. Glad to see people your age interested in web development
I taught myself how to program at the same age as you, but back then the popular language(s) were BASIC, C, and C++. This is what I’d recommend for someone your age:
The first thing that every developer should have is a strong understanding of computer science basics—how the CPU and memory work, OS concepts, data structures, algorithms, etc. edX has a great free course on this called CS50X, which is the first thing that you should do (before that Udemy course): https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/course/
The next thing that you should really decide is what you want to do in life. That is, I mean to say what kind of software development you want to do. No offense intended against Web development, and yes it is a hot field right now, but you could do so much more with your life than mere Web development. How about data science? Or machine learning or deep learning? Or cybersecurity? Or VR/AR? Or blockchain/cryptocurrency? Basically, there are some other really hot fields right now too, that will probably end up paying more than Web development—in some cases, a lot more, and at your age, you should stop to consider all your options.
Regardless, this is the route I’d recommend for someone of your age, since you have plenty of time before you’re even thinking about college:
Start with the CS50X course. It’s foundational to everything as it covers computer science basics and plenty of other material that you’ll end up using in your future career. If you end up going to college later, more than likely you’ll be repeating the material if you major in computer science, but it’ll make it easier for you (and allow you to do other things in college like having fun, which is also important).
Pick a third language and learn the basics. Make sure it’s sufficiently different from the other two. If you’re a Mac user, you might consider making this Swift, or if you’re on the other side and use Windows and/or Android, you could go with C# or Kotlin. Or you could go with something else entirely, like Golang, Erlang, Rust, Elixir, or Clojure.
The point of learning these different languages is to build up your future resume, and show employers that you’re familiar with different ways of programming. Some languages are functional, others use OOP to the max, and some are there just to show you’re up on the latest trends.
If you still want to go into Web development, then you should learn every part of the stack. This is a great overview of the actual languages and technologies you should learn: https://github.com/kamranahmedse/developer-roadmap. Everything in yellow is something you should learn to an extent.
And finally, your timeline goal for all of this should be by your 3rd year of college, or when you’re about 20 if you don’t go to college. That’s the age that most people start getting internships, which you should do too. If you already know everything on that Developer Roadmap by then, you’ll be way more prepared than everyone else. I know some others will disagree with me on this, but I wouldn’t recommend trying to jump the gun and getting a coding job before then. You’ll be too young for most people, and especially tech companies, to take you seriously. If you really want to “work”, then just look for opportunities to help out friends, family, and acquaintances.
As my mom says, when hopelessly trying to teach me piano, practice makes perfect.
Wow! Thanks so much for the long, detailed reply. I really appreciate it. Yes, right now I really want to become a full stack web developer, but, although I will concentrate on that, I am trying out other languages as well, right now mainly python, but later probably one of the languages you suggested. Again, thanks so much.
I took two piano courses in high school, she’s right about that, whileas I’m not some amazing pianist I got to waste a lot of time playing tunes from my favorite video games. The same will apply to coding, it’ll just take time to learn everything.
Sure no problem, but the main point I wanted to make in my earlier post was that you should seriously consider your future career options. Web development, even full-stack, isn’t exactly one of the higher-paying fields in software development, and you could make significantly more doing something else, particularly something that has to do with AI or ML. The future of blockchain is a bit iffy at this point, but I’ve read that 2018 will be the year for blockchain, so you could take a wait-and-see approach for that. Still, that could be another great software career option if it explodes this year.
Btw, CS50X is really the first course you should do before anything else, as I mentioned. It’ll help you out in a ton of aspects. Programming languages are just tools, and CS50X will teach you how to use those tools, among other things.
Also I forgot to mention it before, but no matter what type of programming you go into, learning databases will be applicable to most software careers. I’d recommend taking the time to learn both relational SQL databases (along with the math that goes with them) as well as a couple of NoSQL databases like MongoDB and Cassandra (or Redis).