Should I take Java before C++?
-
Squire Grooktook
- Posts: 5997
- Joined: Sat Jan 12, 2013 2:39 am
Should I take Java before C++?
I got an A in my Visual Basic course, and wanted to move on towards something more advanced. I was originally going to take Java, but a friend told me that I shouldn't and that it would give me "bad habits". However, someone gave me a second opinion that Java is closer to C++ than Java and would be better to learn over all. Any opinions here would be very appreciated.
Aeon Zenith - My STG.RegalSin wrote:Japan an almost perfect society always threatened by outsiders....................
Instead I am stuck in the America's where women rule with an iron crotch, and a man could get arrested for sitting behind a computer too long.
Re: Should I take Java before C++?
I grasped the basics of C++ through self-study although i've previously only had low-amateur-level experiences with php. If you're doing this for yourself to make videogames I'd recommend to jump straight into C++.
Honestly my recommendation isn't worth shit, but just know it's not impossible to learn without having a programmer's background
Honestly my recommendation isn't worth shit, but just know it's not impossible to learn without having a programmer's background
blog - scores - collection
Don't worry about it. You can travel from the Milky Way to Andromeda and back 1500 times before the sun explodes.
Don't worry about it. You can travel from the Milky Way to Andromeda and back 1500 times before the sun explodes.
Re: Should I take Java before C++?
Java is shit and awful. Learn C++ or C.
@trap0xf | daifukkat.su/blog | scores | FIRE LANCER
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go.
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go.
Re: Should I take Java before C++?
Never tried my hand at java, always thought it looked ugly and slow. C++ was the first language I tried my hand with though, and it was damn hard, but since you have prior formal instruction I don't think you'll have much trouble with it.
No surprise that I'd say go with C++ then. In my uneducated opinion it has more uses than java and should you ever decide to mess with C, and C is damn everywhere, you won't be terribly lost.
No surprise that I'd say go with C++ then. In my uneducated opinion it has more uses than java and should you ever decide to mess with C, and C is damn everywhere, you won't be terribly lost.
-
nasty_wolverine
- Posts: 1371
- Joined: Sun Oct 09, 2011 11:44 pm
Re: Should I take Java before C++?
^ this.trap15 wrote:Java is shit and awful. Learn C++ or C.
Also, you should not just limit yourself to one type of language.
Learn something procedural like C,
then learn something like OOP language like C++,
then learn a scripting language like python or lua,
also something functional like haskell.
But if you do want to keep yourself to one language and learn it well, that would be C++. Because it highly flexible, has lots of helper libraries, and it is a industry standard. C++ is a superset of C, so you can write proper C style code in C++, with a little work make it compile under a C compiler too. It is a OOP language, but you are not forced to use it. Has a good metaprogramming/template feature.
Programming is all about logic flow. So, if you learn C/C++, you can pick up any other language pretty easy, all you have to do is learn the syntax and grammer a bit. After all, most languages are derived from either C or C++. Except functional languages, they are a different ball game entirely.
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
-
Squire Grooktook
- Posts: 5997
- Joined: Sat Jan 12, 2013 2:39 am
Re: Should I take Java before C++?
Oh I definitely want to learn as many languages as I can, I just sort of wanted to dive into C++ and get a familiarity with it as soon as possible. My main fear is that I'm not "ready" for it yet, since I understand it's very difficult and I'm not really confident in my skills yet.nasty_wolverine wrote: Also, you should not just limit yourself to one type of language.
Thank you all for your replies also.
Aeon Zenith - My STG.RegalSin wrote:Japan an almost perfect society always threatened by outsiders....................
Instead I am stuck in the America's where women rule with an iron crotch, and a man could get arrested for sitting behind a computer too long.
-
nasty_wolverine
- Posts: 1371
- Joined: Sun Oct 09, 2011 11:44 pm
Re: Should I take Java before C++?
Dont be afraid. Its like playing shmups. First time when you turn on a bullet hell, you go "Da Fcuk is going on here?", after spending a little time you go "Its not that hard once you understand what to do!!!" to spending a few years with it and go "I PWN NOOBS, BITCHES". Same thing.Squire Grooktook wrote: My main fear is that I'm not "ready" for it yet, since I understand it's very difficult and I'm not really confident in my skills yet.
Basic C++ is very easy to learn, only advanced topics are a bit complex. But accept the fact that you not going to master everything C++ in under 6 months or a year. That takes years, also the language itself is evolving. But to learn usable C++, enough to write a small game, it will only take about somewhere between 3 months to a year, depending on how quick you are on the uptake.
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
-
GaijinPunch
- Posts: 15845
- Joined: Mon Jan 31, 2005 11:22 pm
- Location: San Fransicso
Re: Should I take Java before C++?
As someone who works as a programmer by trade (but with zero education on the subject) I can say that knowledge of C/C++ is invaluable, and probably best to start with. Is it "harder"? Yes. But, it can go way lower than Java. However, that being said, if you are an advanced C/C++ programmer and know zero Java (like me, yay!) your probably limiting yourself in jobs. It's a sad state of affairs, but they teach Java across the board for a reason.Squire Grooktook wrote:Oh I definitely want to learn as many languages as I can, I just sort of wanted to dive into C++ and get a familiarity with it as soon as possible. My main fear is that I'm not "ready" for it yet, since I understand it's very difficult and I'm not really confident in my skills yet.nasty_wolverine wrote: Also, you should not just limit yourself to one type of language.
Thank you all for your replies also.
But, you're in school right? Get cracking at C, and if you get into C++ learn the STL inside and out. Note that that will take years, but at least get a grasp on it before you start Java. Knowing where doing something in Java is a smarter idea than C/C++ is a good asset.
I started learning this shit when the JVM was a clunky nightmare, so I was anti-Java anything. I still am, but have less of a reason to be now. Haha. Apparently X-code is just objective C so as a fall back you can get a job programming apps like iFart.
RegalSin wrote:New PowerPuff Girls. They all have evil pornstart eyelashes.
-
Squire Grooktook
- Posts: 5997
- Joined: Sat Jan 12, 2013 2:39 am
Re: Should I take Java before C++?
Thank you for the insight. Also by "get cracking at C" do you mean any C language/C in general, or are you saying basic C would be a better starting point than C++?GaijinPunch wrote:As someone who works as a programmer by trade (but with zero education on the subject) I can say that knowledge of C/C++ is invaluable, and probably best to start with. Is it "harder"? Yes. But, it can go way lower than Java. However, that being said, if you are an advanced C/C++ programmer and know zero Java (like me, yay!) your probably limiting yourself in jobs. It's a sad state of affairs, but they teach Java across the board for a reason.Squire Grooktook wrote:Oh I definitely want to learn as many languages as I can, I just sort of wanted to dive into C++ and get a familiarity with it as soon as possible. My main fear is that I'm not "ready" for it yet, since I understand it's very difficult and I'm not really confident in my skills yet.nasty_wolverine wrote: Also, you should not just limit yourself to one type of language.
Thank you all for your replies also.
But, you're in school right? Get cracking at C, and if you get into C++ learn the STL inside and out. Note that that will take years, but at least get a grasp on it before you start Java. Knowing where doing something in Java is a smarter idea than C/C++ is a good asset.
I started learning this shit when the JVM was a clunky nightmare, so I was anti-Java anything. I still am, but have less of a reason to be now. Haha. Apparently X-code is just objective C so as a fall back you can get a job programming apps like iFart.
Aeon Zenith - My STG.RegalSin wrote:Japan an almost perfect society always threatened by outsiders....................
Instead I am stuck in the America's where women rule with an iron crotch, and a man could get arrested for sitting behind a computer too long.
Re: Should I take Java before C++?
I'm trying to get a CS Associate's at the Community College here. There's a set of three courses each for C++, C# and Java and you have to choose your path to meet the prerequisites and what not. When I was with a counselor trying to pick classes I ended up with C++, and I mentioned I was interested in the mobile development course. Signing up for classes this semester I noticed the prerequisites for that one are Java courses.
Doesn't that kind of date the course though? All the IDEs I've looked at on Android are based around Java and C++.
All my professors this semester were kind of goofy anyways; either slaving away at some IT job, cancelling the last class of the semester and not responding to e-mails the day the final project is due, or COBOL gurus that are getting ready to collect Social Security in six months.
Doesn't that kind of date the course though? All the IDEs I've looked at on Android are based around Java and C++.
All my professors this semester were kind of goofy anyways; either slaving away at some IT job, cancelling the last class of the semester and not responding to e-mails the day the final project is due, or COBOL gurus that are getting ready to collect Social Security in six months.
Last edited by szycag on Sat Dec 14, 2013 1:23 pm, edited 2 times in total.
That is Galactic Dancing
-
nasty_wolverine
- Posts: 1371
- Joined: Sun Oct 09, 2011 11:44 pm
Re: Should I take Java before C++?
C and C++ are very different, even though C++ is a superset of C.Squire Grooktook wrote: Thank you for the insight. Also by "get cracking at C" do you mean any C language/C in general, or are you saying basic C would be a better starting point than C++?
C is very useful if you ever want to get into to embedded systems development. Its not object oriented, so advanced techniques involve pointer arithmatics, which is a pain, but if you ever learn it well, noobs will bow before you. Things are generally more low level, and learning it will give you insights that will last a lifetime.
C++ on the other hand can be used almost anywhere where there is adequate memory. Things are more easy to implement, you got objects and classes and templates to make your life easier. By far the biggest advantage of C++ is the STL. its a library of generic containers and algorithms that saves you hours. C++ can be regarded as a mid level language but its very flexible. You can go as low level as C with pointers, while you still have the advantage of objects and templates like any high level language like Java or C#.
I learnt C first than C++. it makes learning C++ easier, however, you can start with C++, as the first part of C++ is C, the second part the high level stuff. If you only have the option of learning one language right now, learn C++.
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
Re: Should I take Java before C++?
I thought C# was the future... Am I wrong in this?trap15 wrote:Java is shit and awful. Learn C++ or C.
Sony Vita: More Lives Than A Cat!!!
-
- Posts: 324
- Joined: Sun Nov 05, 2006 10:05 pm
- Location: San Diego, CA USA
Re: Should I take Java before C++?
C++ is like New York. If you can make it there.... you can make it anywhere! (learn any other language)
Java is a lot easier imho. Lots of stuff it just "takes care of" for you... most likely why people say you will pick up bad habits.
.
Java is a lot easier imho. Lots of stuff it just "takes care of" for you... most likely why people say you will pick up bad habits.
.
Re: Should I take Java before C++?
Very wrong. .NET is shit and the only people who use it are Microsoft developers or Microsoft cock-suckers.replayme wrote:I thought C# was the future... Am I wrong in this?trap15 wrote:Java is shit and awful. Learn C++ or C.
@trap0xf | daifukkat.su/blog | scores | FIRE LANCER
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go.
<S.Yagawa> I like the challenge of "doing the impossible" with older hardware, and pushing it as far as it can go.
Re: Should I take Java before C++?
Most definitely not! If anything bypass C for a while. The danger with learning C first is that you'll treat C++ just as a "better C", when in fact C++ is a multi-paradigm language based on a C-like syntax. If you are game for a non-managed language start with Accelerated C++ by Andrew Koenig, Barbara E. Moo to get you started on the right path, and track down a copy of Designing Object Oriented C++ Applications Using The Booch Method by Robert C. Martin to get you thinking the right way (ignore the Booch reference - this book is the C++ version of "Agile Software Development, Principles, Patterns, and Practices" (Java) and "Agile Principles, Patterns, and Practices in C#" (C#)).Squire Grooktook wrote:Also by "get cracking at C" do you mean any C language/C in general, or are you saying basic C would be a better starting point than C++?
In response to the topic question "Should I take Java before C++?": taking Java first is "somewhat" easier for a novice - however just because memory is managed for you doesn't mean your other resources are managed, so some people continue to have a hard time to learn to "put away their toys after they are done playing with them". With C++ you have to be constantly on your guard as you are responsible for all the resources that you use - including any memory you dynamically allocate. But in contrast to plain C, C++ has a competent set of language features that can help you out (for example, enough to support idioms like smart pointers). So it is more complicated to learn C++ first but to succeed you will need to be more disciplined and in the long run that will turn out to your advantage.
Whatever you do listen to this piece of advice (Real World Haskell) - not because you will ever use it to implement anything but because of the (eye opening) effect it will have about how you think about programming and software design. There is a reason why first year students at MIT learn scheme (probably also to separate the wheat from the chaff).nasty_wolverine wrote:also something functional like haskell.
When you are knee-deep in muck, it helps to have a shovel and as far as shovels go C# works. I used to prefer Java but then Oracle went and gobbled up Sun Microsystems and Apache Harmony was retired. Anyone who thinks Microsoft is evil needs to take a good look at Oracle (not as obvious as they aren't active in the consumer markets).trap15 wrote:Very wrong. .NET is shitreplayme wrote:I thought C# was the future... Am I wrong in this?trap15 wrote:Java is shit and awful. Learn C++ or C.
-
null1024
- Posts: 3823
- Joined: Sat Dec 15, 2007 8:52 pm
- Location: ʍoquıɐɹ ǝɥʇ ɹǝʌo 'ǝɹǝɥʍǝɯos
- Contact:
Re: Should I take Java before C++?
Oracle is truly the devil of software companies. Completely manged to trash any goodwill that Sun had built up, and I'm pretty sure the only reason anyone bothers with them still is because they were locked into the Sun product ecosystem, which is now Oracle's.
Also, HydroLox is right -- learning C before C++ will make you pretty much just write C and use a handful of C++ things on occasion, instead of really using the sometimes wonderful features C++ adds. You end up reimplementing language features by doing things the C way in C++.
Also, C# wouldn't be be so bad if it weren't so coupled to MS's .NET framework.
Also, HydroLox is right -- learning C before C++ will make you pretty much just write C and use a handful of C++ things on occasion, instead of really using the sometimes wonderful features C++ adds. You end up reimplementing language features by doing things the C way in C++.
Also, C# wouldn't be be so bad if it weren't so coupled to MS's .NET framework.
Come check out my website, I guess. Random stuff I've worked on over the last two decades.
Re: Should I take Java before C++?
FORTRAN is where it's at folks.
Breaking news: Dodonpachi Developer Cave Releases Hello Kitty Game
Re: Should I take Java before C++?
Someone never read the Tao of Programming.brentsg wrote:FORTRAN is where it's at folks.

Take C or C++, doesn't matter which. C# will ultimately replace Java one day in industry, and you will always find a job if you know it, but C/C++ are much better. Personally I started with C++ and went back to C before then finishing learning C++ (well, finish is a strong word). If you want to do game dev, C++ is probably the better of the two to learn.
Don't forget to learn Assembly before you leave. You'll be loved and adored by all.
-
nasty_wolverine
- Posts: 1371
- Joined: Sun Oct 09, 2011 11:44 pm
Re: Should I take Java before C++?
Be a man and learn assemblybrentsg wrote:FORTRAN is where it's at folks.

Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
Re: Should I take Java before C++?
fuck "considered harmfuls," GOTO basic. drawing squares that aren't square is the best.
-
Squire Grooktook
- Posts: 5997
- Joined: Sat Jan 12, 2013 2:39 am
Re: Should I take Java before C++?
Thank you all for your replies, this is all very encouraging.
Aeon Zenith - My STG.RegalSin wrote:Japan an almost perfect society always threatened by outsiders....................
Instead I am stuck in the America's where women rule with an iron crotch, and a man could get arrested for sitting behind a computer too long.
-
null1024
- Posts: 3823
- Joined: Sat Dec 15, 2007 8:52 pm
- Location: ʍoquıɐɹ ǝɥʇ ɹǝʌo 'ǝɹǝɥʍǝɯos
- Contact:
Re: Should I take Java before C++?
The biggest reasons GOTOs are considered so bad are 1: since you aren't using functions/dedicated procedures, all your variables have the same scope, and 2: line numbered GOTOs meant that coders would make wild jumps away and back to extend a program after they ran out of numbers [good practice was considered numbering each line by 5 or 10 so you could add more statements between, but if you ever ran out of intermediate ones... [so 5 was a bad option]]. And so, spaghetti code would result. With actual labels, this is also possible, but more a result of easy-to-do bad program design than something that eventually hits your program out of necessity.Ed Oscuro wrote:fuck "considered harmfuls," GOTO basic. drawing squares that aren't square is the best.
Mind you, my first programming language was BASIC. I remember checking out a book on it from the library that was from the late 70s or early 80s [it referenced the Commodore PET!]. Not having a machine that had a real basic on it, and not having internet access for ages [to get a proper BASIC interpreter], I tried to port the programs into VBA inside of MS Access with MsgBox and InputBox instead of print and input.

Also, I remember a teacher of mine that seemed to balk at students using functions before he explained them [which ended up being ages late in the class], so I ended up writing this horrible horrible loop involving a bunch of ifs and would use continue to return to the top and a string that determined which label would be executed. Just disallowing GOTOs doesn't mean you can't do the bad practices it allows anyway.

Come check out my website, I guess. Random stuff I've worked on over the last two decades.
-
GaijinPunch
- Posts: 15845
- Joined: Mon Jan 31, 2005 11:22 pm
- Location: San Fransicso
Re: Should I take Java before C++?
What nasty_wolverine said is true.
Accelerated C++ is a great book, but be warned it's title is not a lie. Make sure you know each chapter rock solid before moving on. It even gets into templates about three quarters of the way through the book, AFAIK.
This can also be true, although the necessities of C in a lot of jobs is not that great, whereas C++ is. As such, if you put off C for now, you may not go back. Things that nasty_wolverine mentioned (pointer arithmatic, etc.) suck balls, but they are useful. Every now and again I have to deal w/ some legacy code and it's really nice to have. I have to Google around most of the time to make sure I'm not fucking something up b/c I never started w/ C. That's the only real warning I can give. If you put the time in (and you're a student, you can) it might not be a problem. I learned all my shit on the job, so I don't have a padding of basics that most have.HydrogLox wrote:Most definitely not! If anything bypass C for a while. The danger with learning C first is that you'll treat C++ just as a "better C", when in fact C++ is a multi-paradigm language based on a C-like syntax. If you are game for a non-managed language start with Accelerated C++ by Andrew Koenig, Barbara E. Moo to get you started on the right path, and track down a copy of Designing Object Oriented C++ Applications Using The Booch Method by Robert C. Martin to get you thinking the right way (ignore the Booch reference - this book is the C++ version of "Agile Software Development, Principles, Patterns, and Practices" (Java) and "Agile Principles, Patterns, and Practices in C#" (C#)).Squire Grooktook wrote:Also by "get cracking at C" do you mean any C language/C in general, or are you saying basic C would be a better starting point than C++?
Accelerated C++ is a great book, but be warned it's title is not a lie. Make sure you know each chapter rock solid before moving on. It even gets into templates about three quarters of the way through the book, AFAIK.
How would this happen if C# is tied to .net? Java's main feature is that it's portable, and the tools associated it are rich on the 3 main platforms. Very rich.C# will ultimately replace Java one day in industry,
RegalSin wrote:New PowerPuff Girls. They all have evil pornstart eyelashes.
Re: Should I take Java before C++?
All I mean is that Java will go away and C# will be more in demand, as will .NET. I do not mean that C# will (or can) fulfill Java's exact function. And under Oracle, I think Java will continue to diminish.GaijinPunch wrote:How would this happen if C# is tied to .net? Java's main feature is that it's portable, and the tools associated it are rich on the 3 main platforms. Very rich.
Re: Should I take Java before C++?
Never got any clarification about Java and mobile development. Is it a must? Easier for various things, like memory usage? It's so similar to C++ anyways, I should try to pick up a few things. I'll have to ask someone about that pre-requisite though.
That is Galactic Dancing
-
GaijinPunch
- Posts: 15845
- Joined: Mon Jan 31, 2005 11:22 pm
- Location: San Fransicso
Re: Should I take Java before C++?
I think Java's going to be around until someone makes something as portable... and I doubt Microsoft will do that.o.pwuaioc wrote:All I mean is that Java will go away and C# will be more in demand, as will .NET. I do not mean that C# will (or can) fulfill Java's exact function. And under Oracle, I think Java will continue to diminish.GaijinPunch wrote:How would this happen if C# is tied to .net? Java's main feature is that it's portable, and the tools associated it are rich on the 3 main platforms. Very rich.
RegalSin wrote:New PowerPuff Girls. They all have evil pornstart eyelashes.
Re: Should I take Java before C++?
As a person who learned Java before C++, I would do the latter especially if you decide to expand your coding horizons such as C.
True story bro! IMO, a basic understanding of all levels of coding (from low to high, vise versa) provides a overall picture of when to use certain languages depending on efficiency, time, and commitment to your projects. My preferred set of languages to learn/employ is Assembly, C, and C++ (MATLAB if I'm lazy).nasty_wolverine wrote:Be a man and learn assemblybrentsg wrote:FORTRAN is where it's at folks.
Ex-STGWeekly Crew
Sky of Pin
LoserGaiden
Sky of Pin
LoserGaiden
shmups IRC wrote:wich linode wud u fuk
Re: Should I take Java before C++?
That's a very Microsoft centric point of view and as it is Java is Dead Like COBOL. Translation: it has built up enough inertia to always be around. Java hit it's sweet spot around version 5 - past that they started to bolt things on that just didn't fit. The new features simply work better in a language that was designed from the ground up to include them - like for example Scala. For the most part C# benefited from Anders Hejlsberg's experience but it is starting to head the same way - and it will always be confined to Microsoft technologies/products despite the fact that it has an ECMA standard. Bottom line: get comfortable in a world that uses both.o.pwuaioc wrote:C# will ultimately replace Java one day in industry.
Generally this will not be true - there will be working environments that will be more .NET focused, while others will rely heavily on JVM based technologies. And many businesses use Microsoft servers, Office, Project, Sharepoint and Oracle RDBMSs (and other products) simultaneously. Typically only software vendors can afford to focus on one single technology stack - but in doing so they could alienate potential clients. To be successful your .NET product has to play nice in a JVM ecosystem and your JVM product has to play nice in a .NET ecosystem.o.pwuaioc wrote:All I mean is that Java will go away and C# will be more in demand, as will .NET.
Squire Grooktook wrote:However, someone gave me a second opinion that Java is closer to C++ than Java and would be better to learn over all.
- C++ and Java: their code looks similar and they both support the object-oriented programming paradigm - other than that they are two completely different beasts. Other than the differences in the language design, the design philosophies behind the supporting standard libraries are quite different. C++/STL is for the most part template driven, while the Java libraries are object-oriented sometimes to the point of being painful (they use Generics now but that language feature is "weak" when compared to C++ templates). Java isn't helped by the fact that the Android API is completely different from the regular JVM standard libraries (primarily to bypass licensing issues) - so learning the Java language is less than half the battle, familiarization with the relevant libraries is the bigger part of the job.
- That being said their commonalities are such that a competent C++ programmer shouldn't have any trouble picking up Java. Going the other way around is a lot more traumatic. However a C++ programmer will often feel that Java is an object-oriented straightjacket.
- Having learned C++ you will still need to pick up Java. There are a lot of excellent texts with general programming knowledge that use Java for their sample code. For example Head First Design Patterns is an excellent crash course (lousy reference) for the Principles of Object Oriented Design. All the code is in (standard) Java and frankly the equivalent C++ code would probably be harder to read for most people.
From what I can see that is a platform issue: Android = Java/Android API, iOS = objective-C family.szycag wrote:Never got any clarification about Java and mobile development. Is it a must?
If the industry had any sense they would have started with something based on Erlang - making it a lot easier to safely exploit the full power of multi-core CPUs would have just been one benefit - but convenience won out; Apple already had Objective-C and Java had sufficient momentum at the time.
-
Crafty+Mech
- Posts: 395
- Joined: Sat Jan 19, 2013 1:17 am
Re: Should I take Java before C++?
LOGO for the win...
Re: Should I take Java before C++?
I PROGRAMZ IN BINARIES.
but fo rill, I don't know shit. Never take my advice on anything.
but fo rill, I don't know shit. Never take my advice on anything.
GaijinPunch wrote:Ketsui with suction cup.