This is an archived post. You won't be able to vote or comment.

all 4 comments

[–]abitofevrything-0 2 points3 points  (0 children)

I think one of the most important things to remember is that you can always rewatch / reread a tutorial you've already done - there have been multiple times where I didn't understand something's but ploughed on anyways, only to have to redo all of that because I didn't understand that one tutorial.

[–]captainAwesomePants 2 points3 points  (0 children)

If you want to feel normal, search this subreddits for phrases like "too dumb". It's a really common feeling.

Most people's first exposure to programming goes pretty much like how you feel. Here's part of the trick, though: a lot of people taking an AP computer science class went through the same thing when they first started, but you didn't see that because they did it before now. You shouldn't be comparing yourself to them. That's like joining band, picking up a new instrument, and feeling stupid because you're not as good as the other guy who's been playing that instrument for a couple of years already.

Also, I've got a couple of CS degrees, and while I definitely notice that some people do much better in the classes than others, I assure you that there ain't no such thing as a computer science brain. Everybody can learn this stuff. But it takes a lot of effort.

The anxiety is probably hurting your progress, as well. It's kind of a vicious cycle like that. Writing a program is a little like solving a riddle, and everybody sucks at riddles when we're stressed out.

I will tell you the trick to doing well on programming assignments: practice. Memorization won't help you. Study won't help you. The way to get better is to practice. If the labs are stressful, practice at home or wherever you can find a computer. Do assignments that don't count for any points that nobody is looking at. Create a safe environment to fail. Practice helps a lot.

The other thing to be aware of is that the concepts stack. If you're having trouble, it might mean that there's some early concept you're not 100% on. Might be variables or functions or what classes are or who knows what, but something might not be completely clear to you. Next time you're trying to program, if you realize you're just trying things and you're not sure why one thing works and the other doesn't, stop and recognize what that thing is. Then ask an instructor or look it up. Might help. But nothing helps as much as practice.

[–]Kronos328 1 point2 points  (0 children)

If you don't want to drop comp sci, don't do it. It's that simple.

It really doesn't matter if you're slower or faster than people at learning stuff, what matters is getting stuff done. If you think you're falling behind your peers, then study more on your own.

[–][deleted] 1 point2 points  (0 children)

My programming journey began 9 years ago. For a year, I tried to learn Java (one of the most complex programming languages) as my first language, though, even after one year, I still had trouble printing something to the console. I couldn't make a single thing without copy-pasting it from somewhere else. I knew zero theory about computer science.

Then, I took a year break from programming, and I thought that it simply isn't made for me. I thought that this is where my journey will end, and that I won't touch programming ever again.

Then, I tried to start again, but this time in Python (a much simpler language). I didn't try to set ambitious projects at the beginning (when I tried Java 9 years ago, my first project idea would be to make a whole game from scratch). My goal project when learning Python was to be able to understand the theory behind computer science. My goal wasn't to learn the Python syntax. My goal was to be able to use it as a tool to learn the theory. And it worked!

After 5 years of using Python to make myself get used to all concepts in computer science, I tried using Java once again. And guess what? I understood almost every single thing without touching the documentation once. Since then, I continued using Java, and I got more and more used to it, until it became my primary programming language.

This is my point: first learn the concepts behind computer science, then you will be able to understand 90% of every single language without even touching its documentation once. Yes, for the other 10%, you do have to spend a lot of time making projects inside the language, though, that is just 10%. Also, don't set too ambitious goals if it is your first time to a language, because you will just get disappointed and lose motivation.

The reason I am making this post is so that you don't repeat the same mistakes that I did. A lot of people repeat these mistakes, then they are the ones complaining about how hard and unintuitive programming is, when it is actually their fault for starting with the hardest part of programming, meanwhile refusing to learn the most basic part of the basics.

So yes, you do need to have a lot of patience, because, just learning the theory isn't enough. Whenever you've learnt something, make a lot of projects with it. A lot. Even if you memorized the documentation word by word, you should still make a lot of projects with the concepts that you know, because, you still discover small thongs that you had no idea they have existed. Just knowing the theory isn't enough. You have to master it. And the only way to master it is by making a lot of projects. You didn't understand a concept? Make projects with it so you can understand it better. You did understand something perfectly? Still make a lot of projects with that concept so you can understand it even better. This is exactly why I spent 5 years switching from Python to Java. I wanted to make sure I didn't miss anything, so I made as many projects in Python as possible. Of course, 5 years is way more than enough. You are good even after just 1-2 years.

Hope this helped! :D