Computer Science Major, Are These Viable Second Thoughts?

<p>Hello all,</p>

<p>I'm a sophomore, couple hours shy of a junior. Doing well with my GPA.
Got through Programming Foundations I in a breeze. In fact, didn't even take it. Tested out of it since I passed the AP exam for Java in high school with a 4. C++ has been quite a different beast though.</p>

<p>I love working with computers. I build my own PCs, enjoyed my Java class in high school, and am typically the one my close family comes to to troubleshoot PC issues for them.
Right now my current aspiration in this field is to go into Network Security and get my license as an ethical hacker.
But Programming Foundations II has been giving me some issues.
I say that because it feels like Im struggling. I'm actually maintaining a decent A in the course, but some of these programs we have to write, especially the ones that deal with C-style strings and character pointers really give me issues and Im having a hard time fully grasping them.</p>

<p>I've read around a few other posts on very similar topics, and the points of "The entire field isnt like that" and "It could very well just be that one course" came up a handful of times, but I wanted to get some opinions as to whether my case sounded like one of those two.
The resounding doubt of "Well, if I can't handle some simple C-style string manipulation, how can I handle setting up decent firewalls?" is almost overwhelming.</p>

<p>For those reading this with knowledge of C++ programming, the assignment that's made me seriously ponder the subject is basically to re-implement the member functions and overload the operators for the C++ string class. It's obviously quite a blast.</p>

<p>Thanks for you consideration.</p>

<p>I should mention my other option right now is switching majors to Physics, since I somehow seem to be pretty good at it, but I’d prefer to stick it out in Computer Science if there’s a decent level of hope left, lol.</p>

<p>C++ is tricky. When you learn Java first and then switch, it takes months if not years to really appreciate what it can do. Give it time and it will sink in; pointers, operator overloading, etc. aren’t the simplest concepts in the world but they are undeniably useful. Implementing a standard library class is no trivial matter either - there’s a reason the STL exists in the first place.</p>

<p>I’m glad that this whole thing isn’t me being slow on the uptake; and yes, Java was much easier than C++ has been for me so far, and again, I’m glad it’s not just me, so thanks for the booster.</p>