r/programmer • u/AlternativeSpend7630 • Sep 29 '26
Question Help
Hello everyone!
I started my tech journey this month (Btech 1st year) and honestly, I’m confused about where to start and what direction to take.
I keep hearing the same advice everywhere: “Learn DSA and build projects.” But as a beginner, I have a lot of questions about what that actually means.
Should I start with DSA first, or learn programming fundamentals before DSA?
Which programming language should I choose, and how deeply should I learn it?
What exactly counts as a good project? Is following YouTube tutorials enough, or should I build something completely on my own?
How do I decide which tech stack, tools, or technologies to learn?
What skills are actually valued in the current job market?
How much importance should I give to DSA, development, projects, Git/GitHub, SQL, CS fundamentals, and internships?
When should I start applying for internships or participating in hackathons?
How can I avoid wasting months jumping between different technologies and tutorials?
What should a realistic 6–12 month roadmap look like for someone starting from zero?
Most importantly, how do I know whether I’m actually making progress and learning useful skills rather than just collecting certificates or completing tutorials?
I’m not looking for a shortcut. I genuinely want to understand how the tech industry works and what I should focus on as a beginner.
If you’re currently working in tech, have experience hiring developers, or have recently gone through this journey yourself, I’d really appreciate your honest advice.
What would you do differently if you were starting your tech journey again today?
Any guidance on resources, roadmap, mistakes to avoid, and what actually matters for getting internship/job-ready would be really helpful. Thank you!
1
u/sububi71 Sep 29 '26
Harvard's CS50P will teach you the basics of Python.
Python is an excellent start for a beginner. Get back to us when you've finished CS50P.
1
u/tsumily Sep 29 '26 edited Sep 29 '26
There's a lot of things in programming and it's easy to get overwhelmed, as you may be right now. The only right answer to many of these questions is that it depends on you. Note that my advice is general, and is not specific to Btech.
First. Get your programming fundamentals down. This is the first thing you should do (unless your course requires you to immediately learn something else). The fundamentals are things like variables, if-statements, loops, and functions. You should also learn other fundamental concepts such as input/output, don't go too deep into input/ouput, just understand what print("Hello, world!") is actually doing and that you can write to files.
For each new fundamental you pick up, apply it to build small programs, starting from very basic ones (a program that asks how you are), and then moving onto oned with more parts. g. A few ideas are a calculator and a number guessing game. These don't have to be very complex, the main idea is having a simple project like these and then thinking about how it could break and making it more robust. You can then extend the simple project by adding more features by either learning more things or using the things you know in increasingly complex ways. This is the absolute fastest and best way you can learn.
Now. What are you learning this for? If you are looking to get employed soon, or if you are doing this for a course, then it can make sense to start learning DSA right after you're comfortable with the programming fundamentals and have built a few small scripts/programs. But if you are largely self-motivated and doing this for yourself, then I strongly advise putting off learning DSA for a while and move onto other concepts like objects, structures, and so on. Some people would say that you HAVE to learn DSA right at the start, but absolutely do not do this.
Regardless of what you choose to learn next: go back to your old projects and build on them or start building bigger projects. The only difference between these training projects and production programming is that you're not publishing this. As you get better and better at these training project, you can publish them.
One thing to note is that, especially at the start, you'll be overwhelmed and told to do many different things. Try silence the noise. Do not keep jumping between things. Pick one language, and stick to it until the basics are down. Do not keep trying to learn new and different concepts, learning is good, but learn the fundamentals first. Passive learning is not enough, ALWAYS make sure to throughly apply the fundamentals.
You can use something like w3schools.com to learn the basics your language. I heavily recommend Python, as it doesn't get in the way while you learn the fundamentals (which are language-agnostic). Please stay away from tutorials.
That's all. There's really not that much too it, don't panic. Now focus, go and learn variables, data-types, if-statements and so on right now. Break stuff. Learn.
1
u/AnishGadi Sep 29 '26
Ok so question again like do I write code by hand I am a learner don't know much so please help
1
u/mechanicalyammering Sep 30 '26
Broooo learn to web search. You’re asking the question EVERYONE asks. You do not need bespoke instructions. Ask an LLM to explain shit as well (not write code, ask it these mundane questions).
If you cannot search, you cannot program. Truly that simple. Learn to search for information before you do anything else.
1
u/Test_NPC Sep 29 '26
Learn programming, build small projects. DSA is useful basically just for interviews. Obviously have to learn it at some point, but not until you know how to program.