If you’re in your first year or a beginner in tech and want to build a strong foundation in tech, here’s a roadmap to follow. These are the essential things I would recommend you learn to get better at tech.
1. Pick a Programming Language
Choose one of the “big three” languages:
Python
Great for Development and DSA.
Java
Great for Development and DSA.
C++
Great for DSA not so easy for Development but it is possible. You can do your own research here.
What to Learn:
- Start with the basics and progress until you understand Object-Oriented Programming (OOP) concepts.
- Head over to HackerRank.
- Scroll down to Prepare by Topics and start solving exercises in the language you picked.
2. Practice and Implementation
- Build Something: Apply what you’ve learned. Even if it’s as simple as a program that takes input and prints output in the terminal—building something is crucial.
Exercise:
NOTE: Use whatever language you like and whatever data structures you want or any approach you like. This exercise is to write code and make a working prototype as soon as possible. There’s no correct answer to programming that’s the beauty of it.
- Build a To-Do app which takes input from the CLI something like below.
-
When someone adds a todo return a todo ID. This ID will be used later.
./todo add <todo-name> <categories> added todo with todo-id #1 -
User should be able to mark todo’s as complete from the CLI as well
./todo done <todo-id> -
User should be able to list all the todos
./todo list -
User should be able to search todos with
- todo-id
- todo-name
- todo-category
./todo search <todo-id> ./todo search <todo-name> ./todo search <todo-category>After this you should go ahead the extra mile and implement search in categories.
./todo search <todo-category> <todo-name>
This is a basic project but if done right. You’ll see programming in a new light.
The final Implementation should have these thing done right. All of these are must haves:
- Validation if two same todo’s are not added
- searching should be precise
- Error handling
- Use OOPs concepts
3. Pick a Domain You Like
After getting comfortable with a language, explore different tech domains. Some examples include:
- Backend Development
- Frontend Development
- Full Stack Development
- Machine Learning
- Artificial Intelligence
- …etcetra etcetra
Role based roadmaps on https://roadmap.sh/ translate to job role. You can definitely use it as your syllabus/roadmap ;)
4. Learn from YouTube, Avoid Paid Courses
YouTube is your best friend. Don’t waste money on paid courses, especially in your first year or beginner phase.
Warning:
Avoid most Indian creators—some love to gaslight and push paid courses. While there are a few good ones, no course will truly be beneficial for you in the first year. You need to focus on hands-on learning.
5. Explore Domains That Translate to Job Roles
Each domain directly translates into a real-world job:
- Frontend Development → Frontend Engineer
- Backend Development → Backend Engineer
- Machine Learning → ML Engineer
- And so on…
Spend one week exploring a domain by coding and building projects. If you’re not building something, you’re not learning. Simple as that.
Major Advice: Learn From People Who’ve Been There
Don’t ask someone for advice on something they haven’t done themselves. If someone is talking about climbing mountains but hasn’t actually done it, walk away from that conversation.
TL;DR:
- Pick a language and learn OOP.
- Practice on HackerRank.
- Explore a domain you’re interested in.
- Make sure whatever you’re learning correlates to a job role. (This will save lots of time)
- Use free resources like YouTube.
- Learn by building projects.
- Take advice only from people with real experience.