Hi, trying to learn, help needed.
Posted by CrashedCake_@reddit | learnprogramming | View on Reddit | 23 comments
Hello, I'm a 18 yo trying to learn tech. My major (I'll be joining college next yeear), that I've decided is not computer science or anything related to computer (I suppose). But, I've a keen interest and learning programming.
I got my laptop this year in June, and since then I'm trying to learn but I cannot. I started with python, but I quit soon. I tried tutorials, books but it sounded gibberish. Then, I tried C, I did pretty well in it than python (Idk how).
Now, I have decided to learn JavaScript and it just feels... overwhelming...like, I do not understand anything at all. I cannot understand syntax, I feel weird watching tutorials and I cannot just study from book..
What am I doing wrong? Is it lack of structured plan? Or am I supposed to study something else before picking a language? How am I supposed to remember it all?
cubicle_jack@reddit
I'd try a bunch of different mediums to see which one you'd like! Do a course on W3 Schools, watch Youtube Videos, try a book, etc. See which one you prefer learning from and gives you the motivation to keep going. Then it's practice practice practice. Repetition is the way to remembering it all and making it second nature, but remember that this takes time and EVERYONE hits a wall with different mediums at some point!
CrashedCake_@reddit (OP)
I understand facing a resistance or hitting a wall but it shouldn't come that quick, right? Or perhaps, I just cannot find the right resource/way to learn. Confused myself so seeking for some help and guidance
cubicle_jack@reddit
To some it may come quick, others not so much! It took me awhile before the actual programming syntax started to click and things made sense on how or what I was doing when building apps. Honestly, it probably didn't fully click until my first actual job in programming and that was after years in college studying computer science. I may have been a late bloomer though, unsure how long it is typically for others. Either way, I think you have to figure our what motivates you and gives you that spark to keep going, because that's different for everyone!
Watsons-Butler@reddit
Pick up an intro textbook in C++ or Java and follow it. At first, the language is irrelevant, because you have to learn about primitive data types, loops, switches, functions, pass-by-value vs pass-by-reference, classes, inheritance, etc. and later on the language is also irrelevant b/c once you understand the fundamentals of how programming works you can look up whatever the syntax is in a language in a few seconds.
CrashedCake_@reddit (OP)
Ahhh so one doesn't has to learn syntax? And why c++ and java? I tried hello world in c++, isn't it like a subset of c?
Watsons-Butler@reddit
You have to learn syntax until you don’t. C++ is a superset of C. It’s C with the addition of object-oriented capabilities and a few other niceties not available in C. But start with either C++ op Java because that way you have to learn a little bit about what’s going on under the hood with pointers, memory management, cleanup, etc. Python does too much stuff magically behind the scenes, meaning it’s easier to use, but you understand less about what’s going on it’s actually doing. The best way to learn data structures is to take a Python structure like a list and rebuild its functionality in C++.
CrashedCake_@reddit (OP)
I see, so I think I should rather start with C++.. thank you
gbfc644@reddit
Honestly, C++ would be extremely overwhelming for a beginner. It's a language that doesn't do much hand-holding, and requires you to manage memory yourself, learn pointers, etc. All valuable things, but a lot for a beginner. A language like Java holds your hand a fair bit more, and it's still going to teach you a lot of the syntax and things like datatypes. I may be biased, but if you can deal with the verbosity then I think it's a great language to start with. And especially as a beginner, verbosity can be helpful.
axbeard@reddit
You'll need to learn syntax in order to do stuff in whatever language you're using.
C++ has a bunch of extra stuff that you don't need to go into at first in order to learn.
If you can follow a book, that's a good way to go. I prefer a structured class like CS50 because it teaches all the basics in a way that worked well for me and the projects were excellent exercises.
CrashedCake_@reddit (OP)
CS50, noted. I wrote I don't understand books because I tried "popular" books I found on languages. And it confused me...but, I'll check it out now. Thank you
gbfc644@reddit
I can give my own personal experience. I started out programming in Java. I was interested in game development, and watched some 480p videos of Notch creating a Ludum Dare game. I copied that line for line, and couldn't get it to run. Didn't have a clue what I was doing, but I just started changing things and trying to figure it out, and after hours I got it to work. That feeling when you get something to work after hours of struggling is what turned me into an addict xD.
You have to go through the struggles of not understanding, of slowly figuring out what something means. When you figure it out you'll feel so proud for it.
I haven't gone through uni or anything for coding, but I've been doing it for 13 years as a hobby. If you need any help. feel free to message me.
Tall-Introduction414@reddit
It helps to set simple goals, and achieve them. I think it also helps to think of the computer as a creative medium, rather than a prescribed collection of solutions to known problems.
There are some exceptional books, and I recommend seeking them out and reading them. Perhaps your C book (K&R?) was better than your Python book. Python does have more going on under the hood, and can feel more "abstracted" away from the hardware.
Baby steps... "toy" programs are good for learning syntax. Get a logo bouncing on the screen, or make a button change the background color to a random. color.
You don't have to design the Sistine Chapel from scratch. Start by getting some data onto the screen. Add to your toy programs and grow them into something that feels tangible. Follow your intuition about the next thing you "want" from the program. Eventually this will become fun and programming will be fun.
YetMoreSpaceDust@reddit
Yet. I can't sight read music right now, but I'm practicing regularly and getting better. Learn to study from books by doing a little bit at a time until it becomes natural. It might take some time, but the time is going to pass whether you take advantage of it or not.
markyboo-1979@reddit
Get a core computing principles book and you'll be way more prepared to learn programming
AffectionateZebra760@reddit
I think you have to stick with a language, even though it might not pique your interest atm but if have to be persistent with it to pick it up
AlSweigart@reddit
This subreddit's sidebar FAQ can help you with these basic kinds of questions. Go back to Python; it's the best language to learn first.
Remember that programming is something you do, like playing the guitar or driving a car. You can read about concepts, but eventually you should start writing code. I recommend finding a book or online course and sticking to it. The constant switching between tutorials is called tutorial hell, where you reread about the same basic concepts but never actually do anything. It's a common trap for beginners.
CrashedCake_@reddit (OP)
I see, I've been told by a commentor to go with java or C++ because in that way I'll actually know what's going behind the hood....(Thank you)
AlSweigart@reddit
Heh, it's funny that C++ is called a "bare metal" language these days because originally C was a high-level language because it wasn't assembly.
And I don't know how Java lets you "what’s going on under the hood with pointers, memory management, cleanup" because it's also has automatic memory management just like Python. (When Java first came out, people complained that it hid too many implementation details.)
I also don't know what's so special about allocating and freeing memory yourself. People get weird notions about what counts as "real" programming.
CodeTinkerer@reddit
What is your interest in college?
Also, you say you have a keen interest, but then you quit. So how keen is it? I think it's a little like someone who sees an athletic build on someone and says "I wish I could look like you", but doesn't want to put in the effort. It sounds like you like the idea of being a programmer, but not the work it takes.
So it sounds a bit suspicious that you don't want to major in CS or similar.
To be fair, programming is not that easy nor always that exciting to learn. Some people really enjoy it, but it's not for everyone.
CrashedCake_@reddit (OP)
I wrote keen because I've been around people who are very much into tech, tbf, my entire life I was very away from tech. I want to learn, but when I try to, things go above my head. I tried looking into tutorials, few books (got a good suggestion in this reddit). And, Ik what you mean about the idea but I've seen some real stuffs so I don't really think of it as "magic" or "the idea". Ik, have been told it's not very enjoyable all the time, rather mostly boring but still I want to learn and Idk where I'm lacking. Ik we get resistance and walls, but this soon? And my major will be Physics. Thank you
Bezorgdbijdeburen@reddit
If you’re a little bit into games, I can recommend “the farmer was replaced” on steam, it teaches coding in a visual manner in a pythonlike programming language. It does a pretty good job of explaining the basics, including giving hints how to solve making some sorting algorithms. It’s nothing too fancy, but if coding tutorials sound like gibberish to you, this might be more up your alley.
CrashedCake_@reddit (OP)
Oh, checked, it costs money... Btw, I haven't been around tech much, might sound really dumb but it's to an extent that Idk much about my laptop either, it's functions etc etc. Normal tasks, that might take few minutes for others take hour(s) for me. Can it be the reason I cannot understand tech?
CrashedCake_@reddit (OP)
Thank you, will check it out and inform you asap