Disclaimer- I'm just a random 17 years old on the internet - I'm not an expert, so take this with a grain of salt. I'm just sharing my experience and what I've learned so far. I'll keep this updated I learn more stuff.
Introduction
So, university season is coming up and everyone suddenly wants to learn to code. That's great! But here are a few things you need to keep in mind in your learning process: I keep repeating this again and again - because this is extremely important.
DO NOT LEARN TO CODE just for the sake of it. Learn to create amazing shit, learn because it will help you in the long run. Learn, not because you'd like a nice high paying job but because you want to provide value with your skills.
DO NOT fall into the trap of courses and tutorials. They are great, I learnt to code with these courses. But I found myself in "tutorial hell" - I could make things, but only when following a tutorial word-to-word, and I was not understanding what's going on.
Build. Ship. Repeat. Even if it's an extremely small project or a huge one - put it out there in public.
Hold yourself accountable in public. There's no better way to keep yourself motivated than to create everything in public. Document your journey on twitter, write blogs on https://dev.to. Share your progress. Feel free to tag me on twitter and I'll fully support you! If that feels overwhelming to you, join my discord server where you'll be with a lot of amazing developers who'll help you out.
The number of languages, or what languages you learn doesn't matter. Just make sure you have mastered one thing enough to be able to create cool things with it. However, some languages are absolutely necessary (like javascript for web)
Bare minimum
You NEED to learn these, no matter what. You'll use them in your daily life as a programmer - so better become a wizard already.
Don't take too much pressure though, you can learn these side-by-side while going through the roadmap.
Tools:
Git & Github
Terminal commands
Concepts:
Object oriented programming, functional programming
Some basic data structures and algorithms
Databases (how they work and how to use them)
APIs (REST) (how they work and how to use them) - I have written a blog about it
The roadmap.
I spent wayyy too much time making that 😅
Here's my justification for the roadmap, and some links to tutorials and courses.
1. Python
I know. Python is not a great language. It's slow and feels like spoonfeeding to beginners. But - it is THE language to learn if you wanna get started. Learning to code isn't easy, it comes with it's own ups and downs. So you gotta make sure that you stay motivated throughout that journey. Python lets you move quick - VERY quick.
So, as soon as you learn some concepts, you can start building cool things! And that's what keeps you motivated.
Here's a great course to get started with Python: https://www.youtube.com/watch?v=_uQrJ0TkZlc (I learnt from this course) If you speak hindi, here's one more good course I had gone through when getting started https://www.codewithharry.com/videos/python-tutorial-easy-for-beginners/ (I wouldn't recommend you to follow the other tutorials by codewithharry, they're not that great because tutorial hell)
While learning python, you'll also learn some basic concepts like data structures, algorithms, object oriented programming, functional programming, etc. We'll need that later on.
2. Javascript
Javascript is the language of the web. You'll need to learn it if you wanna build web apps, or even if you wanna build a chrome extension or if you wanna connect your brain to the internet.
Javascript does it all. So, you gotta learn it.
I already have a blog post on this, so I'll just link it here, it has free and paid resources and stuff to learn javascript, HTML, CSS and more: https://dhravya.dev/blog/resources-i-used-to-learn-react-and-nextjs
But... Javascript SUCKS.
So, the blog post shared above also has Typescript in it. Typescript is a superset of javascript, which means it's javascript with some extra features. It's a great language to learn - because you'll get lesser errors and write code faster, with lesser headaches.
What is Node.js?
So, javascript is a language that runs in the browser. But, you can also run javascript outside of the browser. Node.js is a javascript runtime that lets you run javascript outside of the browser.
You can use it to build command line tools, or even build web servers - there's no limit to what you can do with it.
3. React
React is a javascript library for building user interfaces. It's the most popular library for building web apps. It's also the most popular library for building mobile apps (using react native).
So yeah, learning React would be cool. But you can also learn Vue or Angular. It doesn't matter. Just make sure you learn one of them.
4. Why only Python and Javascript?
I know, I know. You wanna learn C++, Java, C#, Rust, Go, etc. But, remember what I said earlier? You need to learn to code, not just learn languages. These languages keep you motivated while giving you enough knowledge to build cool stuff - and that's what you need to learn.
Now that you're done with the basics, you can learn any language you want. But, I'd recommend you to learn these languages next:
C++ (if you wanna learn game development)
Java (very popular if you want to get a job or get into competitive programming / android development)
C# (if you wanna learn game development)
Rust (i have a blog on it - https://dhravya.dev/blog/learn-rust)
5. Databases
For most of your projects, you'll need to store data - and that's where databases come in.
I'd recommend you to learn SQL first. It's a very popular database language, and you'll need it if you wanna get into data science or machine learning too.
You can learn SQL here: https://www.w3schools.com/sql/
What next?
Well, you've learnt a lot of stuff. Now, you can start building cool stuff. But, you need to keep learning. You need to keep building. You need to keep shipping.
That's it for now - if you have any questions, feel free to reach out to me. I'll be happy to help you out.
If I provided any value to you with this post, leave a thanks in the guestbook
Thanks for reading!