Ok... i know vb fairly well and want to move on. Preferably into the linux programming and more advanced windows languages. What would be better for me to learn, c, c++, C#, or any other languages? Any recommendations would be greatly appreciated.
Printable View
Ok... i know vb fairly well and want to move on. Preferably into the linux programming and more advanced windows languages. What would be better for me to learn, c, c++, C#, or any other languages? Any recommendations would be greatly appreciated.
Depends. I'd say learn C++.
PS: Linux is a kernel. You mean POSIX (i.e. Unix) programming :D
C# is not yet well supported on POSIX systems, so if you want to do that you'd rather go for C or C++. The mono project is speeding along nicely, but it won't ever reach the full power of the native POSIX environment.
C++ has basically replaced C, so go for C++. You should be able to read C code though (but that usually is simple once you know C++).
so c++? is it able to work on both windows and linux computers? If i compile it to both os'.
As long as you don't use any OS-specific functions, then yes.
Unix, not Linux.Quote:
Originally posted by MXAlPhA
so c++? is it able to work on both windows and linux computers? If i compile it to both os'.
And as Wynd said, yes.
If you want graphics, OpenGL can handle that in a portable way, and there are frameworks such as SDL which can handle it very nicely.
kcoo... i'll look into c++ a lil more lata.
I'm a big C fan, although i don't have much C++ experience. It seems that C++ is slowly replacing C though, so go for that.
tru... i need something that will still b around in a decade, when i hopefully start finishin up skool
Nobody knows whether they'll still be around in 10 years' time. They might be, if not, we just move quietly to the next thing that comes.
The important thing to learn is the problem-solving mindset, and ability to analyse the situation and divide it up into manageable chunks. Once you can do some of that, a lot of the time the language is independent of the problem :)
I would support that view. Learn C if possible just for the sake of getting started right. But then move on to C++ because (as Zaffir points out), the whole thing seems to be headed that way.Quote:
Originally posted by Zaffir
I'm a big C fan, although i don't have much C++ experience. It seems that C++ is slowly replacing C though, so go for that.
I think it's better to start with C++, and learn C later if you really need to optimize some code. C will teach you a lot of coding practices that are considered bad (or even evil) in C++. If you learn C first, learning proper C++ will be very difficult.
twanvl is completly right. There is this quote:
Forgot by whom.Quote:
C++ would be a decent teaching language if we could forget the C part and only teach the ++ part.
10 years is a VERY long time in computer terms.
And don't misunderstand parksie (on a naming rampage, huh?), when he says "Unix, not Linux" he just points out that GNU/Linux is compliant to the POSIX standard, which s a programming standard for Unix systems. Anything written for POSIX will most likely run on every Unix system.
Maybe we people are different, but I absolutely HAVE to disagree. I learned assembly first (believe it or not), but then moved to BASIC... what a blessing. Then I moved on to C++ and later C and Pascal.Quote:
Originally posted by twanvl
I think it's better to start with C++, and learn C later if you really need to optimize some code. C will teach you a lot of coding practices that are considered bad (or even evil) in C++. If you learn C first, learning proper C++ will be very difficult.
Looking back at it ... I think the best start for me would have been C, then Basic, then Pascal, and then C++ (the assembly is a totally different universe).
Just look at jim mcnamara. He mostly codes in C, and whenever he writes C++ code some C things sneak in in there. His C is excellent, but his C++ is bad from an OOP point of view. (no offense jim)
If you learn C first you'll get into habits you should not have for C++. It's better (and even easier) to learn C++ and OOP first.
And unlike C++, C is slowly starting to die.
what do they use in colleges? I'm now a sophomore taking a vb class and next semester, i was supposed 2 start c++ but since the ap computers exam was changed to java, i will be starting java. In colleges.... does it matter what you use, what is more popular?
If you know C, Pascal and BASIC are nothing to you. You'll get tired of their deficiencies within minutes.Quote:
Originally posted by HaxSoft
Maybe we people are different, but I absolutely HAVE to disagree. I learned assembly first (believe it or not), but then moved to BASIC... what a blessing. Then I moved on to C++ and later C and Pascal.
Looking back at it ... I think the best start for me would have been C, then Basic, then Pascal, and then C++ (the assembly is a totally different universe).
What do they use in colleges? Some ****ed-up version of the language, usually involving the AP classes. Meh.
Glad to head the ap exams were changed to Java, the ap classes simply sucked too much. If they had been using real classes then I'd be sad, but not now.
bump for what they use in college?
Yes, there is some truth to that.Quote:
Originally posted by parksie
If you know C, Pascal and BASIC are nothing to you. You'll get tired of their deficiencies within minutes.
Agreed. I'm taking a Visual BASIC class in school (hey, it's a blow off, and i can become more familiar with the visual studio interface, which kinda scares me right now), and i write half of my programs in C simply because i HATE how limiting BASIC can be.Quote:
Originally posted by parksie
[B]If you know C, Pascal and BASIC are nothing to you. You'll get tired of their deficiencies within minutes.
I'm basically a C programmer who has had to learn C++ and Java etc. for my degree and for work etc.
If you learn C first you will find you look at C++ projects and try to make them more like C. If you're doing really OO stuff, you'll find that the code gets b*stardised into a ugly mess of C and C++. Over the years I've managed to 'sort of' untangle the mess, but its still difficult.
As for VB - The first couple minutes were great - "wow look how easy this is". Then it became rather annoying. Unfortunately my job requires that I get experience in pretty much anything and everything which includes VB.
Just my point of view.
HD
not all the colleges use screwed up versions of the language; where i go they start you off right away with managed c++.net
the only problem is they don't always have the right order of things, ie sometimes teaching advanced concepts b4 you learn much code
ps i'd go with c++ of some form, i think it'll still be around for a good while, especially if ms keeps adding/editing it (although that might not be such a good thing)
MS have no control over C++. That's the responsibility of ISO, who are somewhat bigger in general clout than MS is, because they're not just limited to computing ;)
Managed C++ IS screwed up.Quote:
not all the colleges use screwed up versions of the language; where i go they start you off right away with managed c++.net
It's only screwed up if you don't understand what it's doing behind the scenes. I for one don't have much idea how to use it, but I never bothered (don't want to -- if I wanted to use .NET or Mono I'd use C#, much easier language).
I would like to add to this whole thread, that no matter how much control you want (and C/C++ will give you that, let alone assembly), you should never forget that obligation grows with control.
I always try to write as much code as absolutely possible in Visual Basic, because it is easy, it is fast enough, and it is very "safe". HOWEVER, if there are problems thet demand heightened security or performance, I switch to C/C++ and write a DLL for those purposes.
With VB, you get a limited amount of options and less potential error sources. With C/C++, you get full control and very many unchecked holes, so C/C++ is a responsibility you accept.
Learn as many languages as possible, but first and foremost; learn not to get religious about any of them. Learn to distinguish a VB task from an Assembler task, and a Java task from a C task.
Incidentally, there is nothing good or bad about OOP. It is not better or worse than anything else. It is merely a ZEN in it's own right. When the time is right; use it. When the time is not right; avoid it.
Just my 0.02 US $
very intriguingQuote:
Originally posted by HaxSoft
I would like to add to this whole thread, that no matter how much control you want (and C/C++ will give you that, let alone assembly), you should never forget that obligation grows with control.
I always try to write as much code as absolutely possible in Visual Basic, because it is easy, it is fast enough, and it is very "safe". HOWEVER, if there are problems thet demand heightened security or performance, I switch to C/C++ and write a DLL for those purposes.
With VB, you get a limited amount of options and less potential error sources. With C/C++, you get full control and very many unchecked holes, so C/C++ is a responsibility you accept.
Learn as many languages as possible, but first and foremost; learn not to get religious about any of them. Learn to distinguish a VB task from an Assembler task, and a Java task from a C task.
Incidentally, there is nothing good or bad about OOP. It is not better or worse than anything else. It is merely a ZEN in it's own right. When the time is right; use it. When the time is not right; avoid it.
Just my 0.02 US $
I'm stuck with the fact that I can't use VB because it's not portable. Even a Windows program in C or C++ is portable to another machine, you just need to change round some of the interface -- most of the logic can be copied directly.
But in general, yeah. I didn't much care for VB but it was excellent for making DB frontends, I never found anything faster.
OOP is bad. However if you want to make money, then OOP languages are probably a good choice. C++ is screwed up. Programming in C++ is a painful compromise between lowlevel performance issues and design issues, two paradigms that are complementing each other, but confuses all but the most experienced programmers, C++ is everything but clean.
what do you guys mainly use then?
C++ :rolleyes::p
Zactly. C++ code seems to come pre-obfuscated. :)Quote:
Originally posted by kedaman
OOP is bad. However if you want to make money, then OOP languages are probably a good choice. C++ is screwed up. Programming in C++ is a painful compromise between lowlevel performance issues and design issues, two paradigms that are complementing each other, but confuses all but the most experienced programmers, C++ is everything but clean.
C is worse for obfuscation. You can do some lovely stuff with that ;)
Well, i don't know about worse, but it can be pretty bad too. It just seems that C++ begs to be hard to read, while C is like that only if you're lazy. :)Quote:
Originally posted by parksie
C is worse for obfuscation. You can do some lovely stuff with that ;)
No, not really. Bad C++ code is harder to read than bad C code, and it is harder to write good C++ code than it is to write good C code, but good C++ code is usually more readable than good C code.