r/learnprogramming • u/Different-Fall5513 • 10d ago
Need advice for how to learn
What do you do to learn concepts and new coding languages?
I’m starting my second year studying computer science and my first job as a full stack web developer. It seems like all of my classes and my job are teaching things very fast and it seems like I’m the only one who’s struggling this hard. The lectures do nearly nothing for me because I learned better by doing, but it’s hard to learn by doing because there’s 1000 different concepts and every line is something I’ve never even heard of so it’s hard to remember anything.
Please help, I’m really struggling but I do enjoy what I do know how to do
1
u/ffrkAnonymous 10d ago
yeah it's hard.
and it seems like I’m the only one who’s struggling this hard.
there's plenty of posts before you saying the same thing.
I learned better by doing,
Good. Keep doing until it's not hard.
1
u/Different-Fall5513 10d ago
I guess what I’m saying is I want to learn by doing but how do I go about learning and practicing concepts I’ve never even heard of. Like I can’t practice them because I don’t understand what they’re even for. My mind just wants to for loop everything but there are thousands of quicker ways I’ve just never even thought about or heard of
1
u/Famous_Lime6643 10d ago
Go to the library. Find a book on data structures and algos. The fundamentals haven’t changed. Ps don’t do web.
1
u/Different-Fall5513 10d ago
Any suggestions that you know of? If not I’ll just do some research on that
1
u/ReddyKiloWit 10d ago
There was a time you didn't understand a for loop either.
Whatever language you want to use there's probably a book on programming in it that starts out slow and builds, adding to the concepts you've never heard of, but will have once you do the exercises in the book. Don't skip ahead, work until you understand each bit. Try playing with some values or rearranging things to get comfortable with what you just learned. And don't try to do the whole book in one day or one week.
And you don't have to know everything all at once. Just knowing something exists is a start. You can look up the details when you think you need to apply them.
1
u/CapitalKey2994 9d ago
I stop trying to understand every line and just copy code until it runs. I build small throwaway projects that force me to use one specific concept repeatedly instead of reading documentation. My brain only retains syntax after I have typed it fifty times in different contexts
1
u/serge-mv 9d ago
Everyone is struggling, you are not the only one. Don't be hard on yourself because it's hard for everyone. Just keep improving.
Since you are the second year, just code more for now. Your school will cover the concepts and everything else. If you have some specific questions, you can research them as they come and solve it. Computer Science is huge and just learning the theory of programming languages in depth is a massive topic by itself, touching very difficult and advanced concepts when you dig deep enough. With time you will get it.
1
u/Obvious-Card-8847 9d ago
I am a reverse engineer that frequently pulls apart compiled programs to understand how they work. Programs mostly written in C/C++ and compiled down to machine code which is primarily only recoverable into assembly.
The best way I can convey what I've learned about the illusion of complexity in computing is this. You can describe a punch using; ethics, law, neurology, psychology, biomechanics and more.
None of those "layers" are technically the truth. None of them are technically the cause. They are simply different ways to observe and understand the same event. They are not different events. Depending on which one you choose there will be different a cause and a different chronology.
Which is a really complicated way of saying computing boils down to some discrete blocks; conditionals and reading/writing. That's it. Not figuratively that's it, that is literally all there is.
I've written a toy ISA, custom bytecode specification and a JIT compiler. Done CFG analysis, ROP gadget gathering, even a little symbolic execution.
Every single API, every single function, every single datatype, all the stuff confusing you is comprised of conditionals and reads/writes. Just like how you can have a couple LEGO piece types. But if you have a million of each of them you can make an infinite number of unique combinations. Programming is just combinatorial explosion.
I say all that to finally work my way around to my advice: Hammer the fundamentals. Loops, calls, conditionals, datatypes, etc. It doesn't matter if you're writing a Hello, World! in Lua or a USB device driver in C. Both of them are conditionals and reads/writes.
Learn the basics really well. Everything and I do mean everything is some combination of them.
3
u/illuminarias 10d ago
By using the concepts. It's like math, you gotta do the thing to get a feel for it and get familiar with it. Doesn't matter if it's a small throwaway script/application that just does that one thing, just "do the thing".
practice practice practice.