Taking C ++ this semester, need advice.
Posted by Ldirel@reddit | learnprogramming | View on Reddit | 13 comments
For some background I'm a software engineering major with pretty much no knowledge in coding yet. I took Java 1, and made the stupid mistake of GPTing my way through it. Albeit a very dumb mistake, I have realized my stupidity and am trying to fix it this semester even though I am very panicked about what I did costing me. Instead of taking advanced Java and setting myself up to cheating again, im jumping over to C++ which is another required course while also taking a seperate course through online to actually learn Java.
That being said, what can I do to help myself with c++ as I've heard it's a pretty unforgiving and complicated language. When I did research on reddit, I saw a top comment say that you should learn computer programming first, then the languages are just different syntaxes. He recommended the book "think python, how to think like a computer scientist", but how else can I really grasp this concept of computer programming. Or if you have completely separate advice id love to hear that as well.
Sincerely, a panicked college student.
carsmenlegend@reddit
C++ can feel brutal at first but focus on thinking like a programmer not just memorizing syntax. Start with small programs and really understand loops and conditions. Once that clicks switching between languages gets way easier. Don’t stress the mistakes just learn from them
jeffwithhat@reddit
+1 on previous comments. I’ll add that C++ has evolved more than most languages but tries to retain backward compatibility—thus you have the equivalent of Old English, Middle english, and modern English available in the same compiler. Your class will likely teach one of these profiles (hopefully the newest) while also working on some generic concepts that apply to many languages & CPU architectures.
You should do fine as long as you focus on the tasks in front of you, and perhaps you’ll recognize some syntax and concepts that are familiar from your Java course.
scubastevie@reddit
The biggest thing I took away from my college degree was learning to problem solve and take large problems and break them up into smaller ones to code.
I took a c++ class and all I remember was pointers, and how they weren’t fun.
I now do C#. When I was job hunting recently I did lots of Java and kotlin code, it was easy because I knew how to solve problems just needed to google “how do I write this in Java” and things were easy.
Personally I wouldn’t worry too much about chat gpt as long as you can understand the problem and start asking detailed questions instead of just copy pasting the answer you will learn. I’d more wean off it then try to go cold turkey. I still use google and someone’s ai is just faster.
All in all I still sometimes think I am a shitty coder and learned nothing in school and yet here I am 10 years in
Ldirel@reddit (OP)
Thanks for the reassurance, that definitely helps things. I probably wasn't going to just cut off GPT, since I think there are definitely things it can do to help me learn, I just need to set some firm boundaries so my previous mistake doesn't happen again.
Chrykal@reddit
I would actually hard argue against using any AI coding help until you know enough to know when it's gone off course and needs you to steer it back. It's so confident in it's mistakes that if you try to use it for learning it'll only make things harder.
Ldirel@reddit (OP)
That’s a 100% valid take, not really in a position to argue. I’m gonna try to use it as little as I can this semester for sure. While getting ideas for a split for the gym the other day I had to tell it four times that it was only generating a 3 day plan and not a 4 day like I asked for, so I get it.
Chrykal@reddit
Sometimes the hardest thing to remember with LLMs, is that they understand nothing at all. They are pattern recognition spitting out the next word in the sentence.
Also I wish I had the link to hand, but a recent study found that even experienced developers were not actually faster when using it most of the time. I think far too much of its hype from developers is that it's a new toy that's fun to play with, so they don't realise how long they've been going back and fore correcting things they probably could have written themselves quicker.
LengthMysterious561@reddit
I recommend checking out Codecademy or Exercism. They have interactive lessons on C++. Codecademy is more beginner friendly, but is more aggressive with pushing their premium courses.
C++ can be frustrating to learn, but it isn't as bad as people make it out to be. I think the biggest pain points for newcomers is header files and stack vs heap.
Ldirel@reddit (OP)
I just enrolled in that Harvard CS50 course on EDX since I heard it was highly praised. Do you think I should continue with that or look at the other resources?
LengthMysterious561@reddit
I haven't tried that course so I don't know. I think you should see how you get on with it. If it's not working for you then look elsewhere.
Dissentient@reddit
The important part is to learn the basics (functions, variables, control structures, scope, classes/objects), and be able to use them when solving problems. Doesn't hugely matter which language you do that with, though I generally recommend a statically typed user-friendly language like C# or Java for that.
LLMs are very helpful if you use them to learn instead of use them to not learn. An LLM is basically your own personal stackoverflow that won't call you names no matter how stupid your questions are. You can probably even ask it to generate you exercises appropriate for your level and grade them.
You can't really rely on college to teach you those fundamentals, since a lot of courses are kinda awful even when you aren't cheating through them. Back when I was in college, most people who didn't start learning programming before college struggled. You have to get into the mindset is that learning to program is your own responsibility and college is there just to give you a piece of paper that says you did.
Ldirel@reddit (OP)
That makes sense, I feel like most of my buddies that can code all learned before college. I signed up for CS50 on EDX because I heard that was very good, but will definitely put more diligence into learning coding asides from the classes.
edrenfro@reddit
This is true, generally, but you're short on time. It would probably be better and faster just to learn C++ directly. Aside from that there are no shortcuts - if you learn by books buy a book, if you learn by tutorials find a tutorial, etc. and get started.