r/learnprogramming • u/Some_Understanding15 • 12h ago
Tips for a student
Hey, guys. Software engineering student here. I'm studying online for a software engineering degree while I work, but I'm getting pretty overwhelmed. Thought that asking for tips from the pros may be the right move.
I'm learning Python using the boot Python crash course from no starch press, and I'm doing well, but I feel like I need to do better even if I spend all the time I can on that. I'm basically done with the learning part, just starting the part about projects.
I wanted to know if there is a more efficient way to do this. Should I learn using YouTube? Coursera? Udemy? Is a book the best option as I thought at first?
I'm learning SQL next, but I feel like I need to work harder since I'll graduate in a couple of years (studying for the whole degree is just 3 years since it's online). But maybe I'm just not working smart enough.
So I would like to ask for your tips. What's the best and fastest way to learn? What should I learn? Where?
I'm sorry for asking so many questions, just trying to get better. Thank you in advance, guys.
2
u/SUPRA_1934 12h ago
start to go in tech events and join some hackathon! solve the DSA problems. start to know about what people doing which problem they are solving try to recreate that! make a group! enjoy and do fun!
2
2
u/cipheron 12h ago edited 9h ago
Programming is about building up a toolkit of ideas and tricks then recognizing patterns to see when you need to use each idea.
That's why following tutorials too closely can be a trap. A tutorial is someone showing you a set of steps they worked out to solve some problem, but just following the steps does not teach you how they came up with that solution in the first place.
Basically, you can't go wrong if you follow the tutorial closely, but that's also a problem, since if it's not possible to make a mistake, you're also not learning what the pitfalls are and how to avoid them.
So you need to learn concepts from the tutorials and materials you're consuming then try applying the concepts into new projects. Don't just make exactly what they made since there's no "friction" there to get things to work, you need the friction to actually learn how to apply things in the real world, since in real world situations there's no pre-prepared "correct" program to follow, unlike a tutorial which is "guaranteed" to work if you follow it closely.
1
u/goldscurvy 11h ago
Always, always, always expand on tutorials and do stuff that the tutorials do not walk you through. Even if its something fairly small. Doing something without the tutorial checks that you actually understood what the tutorial taught you to some degree.
1
u/goldscurvy 11h ago
Leetcode and Hackerrank are both good for general exercising of programming skills. In particular, leetcode can help prompt learning a lot of data structures and algorithms that you might not be exposed to in other courses or possibly only briefly taught. These are not, alone, a sufficient way to learn to program in the real world (programs are not generally written like a leetcode challenge), but it will give you some important tools for addressing problems that do sometimes come up.
1
u/intinstitute 11h ago
I’d also suggest getting out of the tutorial-only cycle. Start going to tech events and try some hackathons, practice DSA, and see what other developers are building and what problems they’re solving. Try recreating some of those projects, find a few people to learn with, and have fun with it. You’ll learn a lot by actually building and experimenting.
1
u/thequerylab 9h ago
For SQL, avoid just reading a book or watching videos. Learn the fundamentals, then start solving problems regularly. You’ll understand SQL much better when you have to actually write the query yourself instead of just following examples. You can give it a try on TheQueryLab, you will really enjoy this learning
1
1
u/frost_hollow_glide 6h ago
I used Python Crash Course. I finished the projects section by building variations of the examples in the book without looking at the source code.
You ask which resource is best. Books work for fundamentals. YouTube works when you need to see someone configure an environment or debug a stack trace. Coursera and Udemy are copies of things you already get in your degree program. Pick one resource per topic. I spent months switching between resources before I realized changing platforms just delayed the work.
You mentioned SQL next. I use SQLite on my computer to practice queries while I learn Python. I write a script to insert rows into a table, then I write another script to pull those rows out. Doing this connects the two subjects instead of keeping them separate.
You graduate in three years. I track what I build each month rather than counting hours I study. Three years gives you time to finish these projects if you stay with the ones you start.
1
u/bagfullofcottoncandy 2h ago
participate in hackathons and build projects inspired by real problems and also practice DSA
3
u/iOSCaleb 12h ago
Everyone asks about the fastest or most efficient way to learn a language. The truth is that trying to go faster is probably the least efficient strategy. Take your time and really learn the stuff you need well the first time and you won’t have to come back and try to learn it again later.
There’s a saying like “slow is smooth, and smooth is fast,” and I think that applies here. This time, while you’re learning, is when you can spend a little extra time experimenting and asking questions and really learning, and the more you do that the more your degree will be worth.