C or C++
Moderator: General Moderators
- shiznatix
- DevNet Master
- Posts: 2745
- Joined: Tue Dec 28, 2004 5:57 pm
- Location: Tallinn, Estonia
- Contact:
C or C++
I want to learn one of them because its compiled and what have you so ya. Which should I learn though? Really I just want to know the one that is most 'in demand' and would make me a more valuable employee.
- n00b Saibot
- DevNet Resident
- Posts: 1452
- Joined: Fri Dec 24, 2004 2:59 am
- Location: Lucknow, UP, India
- Contact:
If you want to get seriously into programming, learn different paradigms, not just languages.
If you know OOP with PHP5, C++ or Java will offer little new.
Since PHP is like C in another skin, you'll find the C syntax familiar, but the actual coding frustrating (ya have to define them variables, you know
For a really mind-opening experience try LISP (or rather Scheme, as the academics prefer it AFAIK) and/or PROLOG -- they are not just different languages, but totally different programming worlds.
Then go back to PHP and start using lambda functions and generated code like real men do
(Just kidding, hey)
To answer your question directly - if you have to choose betwen C and C++, go for the ++.
If you know OOP with PHP5, C++ or Java will offer little new.
Since PHP is like C in another skin, you'll find the C syntax familiar, but the actual coding frustrating (ya have to define them variables, you know
For a really mind-opening experience try LISP (or rather Scheme, as the academics prefer it AFAIK) and/or PROLOG -- they are not just different languages, but totally different programming worlds.
Then go back to PHP and start using lambda functions and generated code like real men do
To answer your question directly - if you have to choose betwen C and C++, go for the ++.
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
Java developers are high in demand, but most jobs which seek Java developers also seek a minimum of 4 years post-secondary schooling, in addition to job experience.
So although learning Java wouldn't hurt, you may find it difficult to actually get a job programming in Java.
C/C++ have the added benefit that they are still very common. C will let you eventually get into OS kernel design, etc. Play aorund with *nix...
C++ is still the most widely used application programming langauge for desktop environments, although C# is slowly gaining ground, it still has a ways to go before it topples C++ stance on the market share.
C++ is quite complex...it's like C (which is complex in it's own right) but with the added complexities of advanced design pattern concepts, best practices, etc...
There are many ways of doing one thing and each has advantages over the next...Smart pointers, Templates, Libraries, Functors, Delegates and so on...
Of course the power you unleash when you learn C++ is unparalelled in any language (why it remains popular so many years later) it's learning curve as a whole is larger than any existing language (also why it remains popular).
You can be as close to the machine as a system language like C or almost as abstract as PHP, infact it's sometimes more abstract. Good C++ developers are truely inspiring people to learn from and often have amazing insight. There are some kick bum libraries around in C++ which capitalize one some cool, but not common techniques of C++ compiler design.
Also, I wouldn't count on getting a job developing C++ software anytime soon...although like Java or C it wouldn't hurt to have some experience on a resume...
Of course these are just my experiences and opinions on this subject
p.s-This topic has sooo been beatin to death
You shoudl search for this topic I'm sure you'll find something more 
Cheers
So although learning Java wouldn't hurt, you may find it difficult to actually get a job programming in Java.
C/C++ have the added benefit that they are still very common. C will let you eventually get into OS kernel design, etc. Play aorund with *nix...
C++ is still the most widely used application programming langauge for desktop environments, although C# is slowly gaining ground, it still has a ways to go before it topples C++ stance on the market share.
C++ is quite complex...it's like C (which is complex in it's own right) but with the added complexities of advanced design pattern concepts, best practices, etc...
There are many ways of doing one thing and each has advantages over the next...Smart pointers, Templates, Libraries, Functors, Delegates and so on...
Of course the power you unleash when you learn C++ is unparalelled in any language (why it remains popular so many years later) it's learning curve as a whole is larger than any existing language (also why it remains popular).
You can be as close to the machine as a system language like C or almost as abstract as PHP, infact it's sometimes more abstract. Good C++ developers are truely inspiring people to learn from and often have amazing insight. There are some kick bum libraries around in C++ which capitalize one some cool, but not common techniques of C++ compiler design.
Also, I wouldn't count on getting a job developing C++ software anytime soon...although like Java or C it wouldn't hurt to have some experience on a resume...
Of course these are just my experiences and opinions on this subject
p.s-This topic has sooo been beatin to death
Cheers
As Mordred said, if you're after learning something new and different, try to learn new paradigms. Lisp, Haskell, Fort. ObjectiveC might be interesting too.
As for the market demand, Java and C# hold their position.
Learning some ancient languages like Fortran, Ada and Cobol may get you some interesting (money-wise) jobs without virtually any competition.
As for the market demand, Java and C# hold their position.
Learning some ancient languages like Fortran, Ada and Cobol may get you some interesting (money-wise) jobs without virtually any competition.
I'd say C++ if you're starting off, then C if you feel the need. C does not lead nicely onto C++, like many seem to believe, certainly not if you've got any degree of proficiency so that you can see beyond the superficial.
I'd also like to second the vote for Haskell. I'm getting the hang of it just now. It's very different to anything else I've used, and seems to be good for some uses (complex mathematical functions have code reduced by an order of magnitude or more over C in my experience).
Oh, and a .NET language might be good, just for kicks.
I think that would give a good base in compiled languages (albeit .NET is JIT
).
I'd also like to second the vote for Haskell. I'm getting the hang of it just now. It's very different to anything else I've used, and seems to be good for some uses (complex mathematical functions have code reduced by an order of magnitude or more over C in my experience).
Oh, and a .NET language might be good, just for kicks.
I think that would give a good base in compiled languages (albeit .NET is JIT
- MrPotatoes
- Forum Regular
- Posts: 617
- Joined: Wed May 24, 2006 6:42 am
C++, just for the strings and OOP. C is great but awful to beginners. doesn't leave much in terms of being 'nice' to you lmao!
with C/C++ tho there are still alot of jobs out there. they are just more selective. so if anything learn an assload of languages. once you learn C++ and C you can take anything on within hours. i was first taught C/C++ then i thaught myself PHP in a week and C# in less than 4 hours. HTML and CSS was hoenstly trivial.
then come the API's. so many more for C/C++ which in turn make you look more tasty to an employer. DIrectX (*UGH*), OpenGL (*YAY*), most physics and AI stuff (faster in these) and most shader languages. jut do it man. just do it
with C/C++ tho there are still alot of jobs out there. they are just more selective. so if anything learn an assload of languages. once you learn C++ and C you can take anything on within hours. i was first taught C/C++ then i thaught myself PHP in a week and C# in less than 4 hours. HTML and CSS was hoenstly trivial.
then come the API's. so many more for C/C++ which in turn make you look more tasty to an employer. DIrectX (*UGH*), OpenGL (*YAY*), most physics and AI stuff (faster in these) and most shader languages. jut do it man. just do it
With ngen you can precompile the .Net code... Opposed to regular JITted code that only lives in the memory this results in native instructions that are persisted on disk (so you reduce the amount of code that needs to be compiled @runtime).AngusL wrote: I think that would give a good base in compiled languages (albeit .NET is JIT).
- MrPotatoes
- Forum Regular
- Posts: 617
- Joined: Wed May 24, 2006 6:42 am
well i had a background in these for 2 years before i started anything else. everything else came really easy. but then again i was programming in these two like crazy.Weirdan wrote:Not really. Try some of the languages I mentioned... C/C++ background doesn't help much when learning them.once you learn C++ and C you can take anything on within hours.
reason i say what i said is because alot of the programing paradyms come from either of these. OOP, structs, namespaces, coding conventions and such