C++ as preparation for Java?

<p>Well most of you guys know me and my story so I have to repeat it. I have one more quarter at my community college before I return to my regular school and Im picking my classes (note that im not getting credit for this since this is a special situation). Currently, I just got done with a computer course that taught me the fundamentals of programming and the Visual Basic language. But im just wondering is that enough for me to do decently when I retake my Java class at my home school or should I take a C++ course too? would take Java but its not offered next quarter.</p>

<p>You’ll find once you start programming that many of the languages have similar characteristics, and that often times the only differences are syntax. C/C++ is pretty similar to Java, so it may be good preparation for you. Visual Basic is a pretty fundamental language, and may not be as useful to you (in comparison to the relation between Java and C/C++). It’s really up to you, and how comfortable you feel with programming. Since you stated you are retaking Java, with atleast a little more programming experience, I wouldn’t worry about it unless you are really concerned.</p>

<p>I just started taking an intro to C++ course this semester, and according to my professor, the history behind coding showed that Java is a version of C++ with a bunch of abilities removed because it was too easy to send viruses and those sort of things with C++. They weakened C++ and made Java for apps like web browsers. The languages C, C++, and Java are all similar, but there is a reason why each one has its own course. I suggest picking up a book and teaching it to yourself if you have some background knowledge. After all, I’m sure plenty of people out there teach themselves how to write C++. Same goes for Java. If these courses are requisites for your college, then obviously take the course. If not, then at least look over some books and take some notes for references because there should be similarities that you’ll find.</p>

<p>Don’t take my response for granted - I’m just assuming because I don’t fully know any programming languages. I just started :)</p>

<p>C++ will teach you object-oriented programming concepts, which are key to learning Java. Knowing Java syntax barely scrapes the surface. Understanding objects is the next step in understanding Java, and finally understanding best practices, and much-utilized Java API’s would be the final step in truly mastering Java.</p>

<p>One you know one OOP languages the other are easy to learn…</p>

<p>C++ is a lot harder than Java. I don’t think it is a good idea to take C++ course as the preparation for Java unless you want to learn a different language.</p>

<p>

</p>

<p>At the end of the day this is the truth. </p>

<p>Take classes if you want more practice problem solving as a coder.</p>

<p>

Actually languages are always based on others. It’s human creation in the end.</p>

<p>

It’s very personal. I find C harder because of the troublesome string.
Python is easy in the beginning, but its minimalistic nature can be an obstacle to programmers who is not good at it.
Java, never had a touch so I can’t comment.</p>

<p>@ Magneto
What you need is to practice a lot. Transition to another language requires effort of practice. That’s the only requirement. In essence, reading reference, and ask questions are essentially part of the solution. </p>

<p>If you understand your stuff solidly, you don’t need to relearn everything over; although I personally prefer learning everything again, because very often I catch little “details” that I missed. Maybe some core concepts of the language. I didn’t do Java so I can’t comment on that. But let say from Python to C++, or C++ to Python, one has to drop the habits of with or without semicolon, the habit of “everything is object” in python, or the dislike of “long code” vs “short code” in C++ and python, respectively.</p>

<p>What my classmates have been doing (from P to C++) is that they have to live with some tutorial sites, and then keep on practicing. As a person proficient in both languages, I have to agree that in the end it’s the syntax, and what you can and cannot do using that particular language. Thus, practice is the key.</p>

<p>You are better off to concentrate with one language, either Java or C++ is good. If you are retaking Java, by all means keep working on your Java.</p>

<p>I would say take C++/C.</p>

<p>One thing that I find disappointing in a lot of programmers in school is that they haven’t taken C/C++ and therefore have no idea about memory management. Because Java and other managed languages remove pointers (mostly) and use automatic garbage collection, students’ grasp and knowledge of how memory works is poor.</p>

<p>While working with managed languages, it isn’t vital to know the nuanced details of memory. But by knowing how and why memory works the way it does, it allows you to be adaptable and transition to many different languages. And by being adaptable is how you stay ahead of the curve in industry.</p>

<p>One more thing about C++…</p>

<p>Certain…ahem…federal places still favor C++ because they are not yet sold on the encryption features of Java.</p>

<p>Just thought I would throw that tidbit of info out there.</p>

<p>As a game developer I use C++ more then anything else…So C++ is great for video games.</p>

<p>

</p>

<p>I mentioned encryption for a reason.</p>

<p>I guess you mean Intelligence Agencies.</p>

<p>Yes…but Kyt posted an even better reason when I think about it.</p>

<p>I have done C/C++, Java and even C# many years. It is better to stay with one language and be good at it in industry. Currently, there are more Java/J2EE job openings than C/C++.</p>

<p>“I have done C/C++, Java and even C# many years. It is better to stay with one language and be good at it in industry. Currently, there are more Java/J2EE job openings than C/C++.”</p>

<p>Software engineers have to learn new languages and SDKs all the time…I am having to learn Objective-C…so I can port causal games to the iPhone/iPad.</p>

<p>I think the most important thing is knowing how to solve problems and how to read the API documentation.</p>

<p>After I get my BSCS I plan on apply for a job with the NSA…I want to do something new beside working casual video games.</p>

<p>great point, Kyt.
Yesterday we actually discussed the same problem faced by many Pythonists.</p>

<p>CS2011: If you have the TCI clearance, you will get a job working for NSA in no time. Otherwise you will need a job first, then find a sponsor and wait for clearance to be processed while working.</p>

<p>“Software engineers have to learn new languages and SDKs all the time…I am having to learn Objective-C…so I can port causal games to the iPhone/iPad.”
This is very true. From my real experience, a good portion of software engineers don’t have the ability to do it. I have seen many Senior C++ developers could not understand Scott Meyer’s “Effective C++” book.</p>

<p>Thanks everyone. Im going to go a head and take C++ since its pretty much the only programming language that I can take due to my school not offering Java next quarter. Plus i actually want to be proficient at programming as it used to be one the things that i hated about doing engineering and this time off has actually helped me see that I dont actually hate it.</p>