The Student Room Group

Best programming language to learn?

I'm fairly okay with python, and while I will continue with it, I wanted to pick something new up as a new challenge as my uni workload is quite low this term...was thinking C++, but does anyone have any recommendations for anything that would be more useful?

Thanks.

Scroll to see replies

Reply 1
Pascal i think,
Reply 2
java = mobile development
c++ = pc and games
visual basic = beginner
We were learning Haskell for the introduction course for computing - it's a bit weird, it's purely functional (controlled side affects) so it's fairly niche- but it's so cool!!!
C/C++ would be my suggestion. In particular, C++ if you've got some familiarity with the OOP concepts from Python. They're the most used/widespread languages, which have had a lot of influence on many others (a lot of javascript looks identical to C!).
Original post by Padwas
java = mobile development
c++ = pc and games
visual basic = beginner


Yeah, C++ is so much better than VB.net for an amateur who wants to make games. :rolleyes:
Reply 6
Original post by VisualKiddy
Yeah, C++ is so much better than VB.net for an amateur who wants to make games. :rolleyes:


yes it is but of course i have no idea what I'm talking about with 6 years programming experience lol
Reply 7
I think Pascal or Java would be good languages to start with.
Reply 8
Original post by FireGarden
C/C++ would be my suggestion. In particular, C++ if you've got some familiarity with the OOP concepts from Python. They're the most used/widespread languages, which have had a lot of influence on many others (a lot of javascript looks identical to C!).


Thanks for
a) Being pretty much the only person who replied to actually read my post
b) Actually explaining your answer.

Probably a stupid question, pros and cons of C vs C++?
Original post by Serentonin
Thanks for
a) Being pretty much the only person who replied to actually read my post
b) Actually explaining your answer.

Probably a stupid question, pros and cons of C vs C++?


Haha! That's ok!

My disclaimer is that I strictly only know C to a certain competency, and 'know of' C++; So I'm going to answer essentially "The pros and cons of C, and hence to some extent its related languages", and hope that it's still helpful.

Pros of C:

It is a powerful compiled language, with a lot of cross-platform capability. Literally compiling the same source code on a different machine will probably get it to run. By 'powerful', I mean it does.. just about anything. The OS UNIX was/is basically entirely C, and most software today uses C or some variation (C++, C#, Objective C), the last is what iPad and iPhone software is written in. I found it pretty straightforward to learn, and lots of resources if anything became a problem. As i said in my previous post, it has had a lot of influence on other languages - particularly syntax, so learning another language will be easier from this base knowledge. The compiled thing means the program you write will run stand-alone (in contrast to say, Java, which needs a runtime environment, or python, which needs an interpreter), and as a consequence, are faster. Lots of useful libraries around, too.


Cons of C:

It might do 'almost everything', but that isn't near a guarantee that it's a good idea! Some things are better suited to other languages with a different focus; C is a procedural language. In contrast, C++ is object oriented; the difference being in how they can handle your data. "Objects" allow the programmer to deal with the relationships between their data much more 'humanly' than other languages. I have no idea what you'd like to do with it, but I shall say everything I have ever done runs inside a console window. The package I use (Xcode) doesn't really allow much help for GUI programs; maybe other development environments will make this easier, but I don't know! In general though, there aren't too many cons, unless you have something specific in mind. Such as, if you were going to write smallish programs to run on a website for various tasks, you'd never use one of these languages! you'd use javascript, PERL, PHP, or something along those lines (i.e., designed for the task). The upshot again is that javascript in particular has essentially identical syntax to C for certain things.


This is all I can really think of off the top of my head right now.. If you have any more questions though, I'm happy to answer as best I can!
(edited 10 years ago)
Original post by Padwas
yes it is but of course i have no idea what I'm talking about with 6 years programming experience lol


Care to explain why, then?
Reply 11
Original post by Padwas
java = mobile development
c++ = pc and games
visual basic = beginner


I wouldn't say "Java = mobile development" these days. "Java = Android development" would be more accurate. I'm not sure it's possible to use Java on iOS.

VB has a bad reputation. It's a perfectly valid and useful language for all sorts of development. Modern VB is pretty much equivalent to C#, mostly just different syntax. The only thing that makes it more beginner friendly is that the syntax looks slightly more like English.

Original post by FireGarden
Haha! That's ok!

My disclaimer is that I strictly only know C to a certain competency, and 'know of' C++; So I'm going to answer essentially "The pros and cons of C, and hence to some extent its related languages", and hope that it's still helpful.

Pros of C:

It is a powerful compiled language, with a lot of cross-platform capability. Literally compiling the same source code on a different machine will probably get it to run. By 'powerful', I mean it does.. just about anything. The OS UNIX was/is basically entirely C, and most software today uses C or some variation (C++, C#, Objective C), the last is what iPad and iPhone software is written in. I found it pretty straightforward to learn, and lots of resources if anything became a problem. As i said in my previous post, it has had a lot of influence on other languages - particularly syntax, so learning another language will be easier from this base knowledge. The compiled thing means the program you write will run stand-alone (in contrast to say, Java, which needs a runtime environment, or python, which needs an interpreter), and as a consequence, are faster. Lots of useful libraries around, too.


Cons of C:

It might do 'almost everything', but that isn't near a guarantee that it's a good idea! Some things are better suited to other languages with a different focus; C is a procedural language. In contrast, C++ is object oriented; the difference being in how they can handle your data. "Objects" allow the programmer to deal with the relationships between their data much more 'humanly' than other languages. I have no idea what you'd like to do with it, but I shall say everything I have ever done runs inside a console window. The package I use (Xcode) doesn't really allow much help for GUI programs; maybe other development environments will make this easier, but I don't know! In general though, there aren't too many cons, unless you have something specific in mind. Such as, if you were going to write smallish programs to run on a website for various tasks, you'd never use one of these languages! you'd use javascript, PERL, PHP, or something along those lines (i.e., designed for the task). The upshot again is that javascript in particular has essentially identical syntax to C for certain things.


This is all I can really think of off the top of my head right now.. If you have any more questions though, I'm happy to answer as best I can!


I mostly agree but I'd be careful with that line of thinking (the bit in bold). Javascript and C do have similar syntax, but they are very, very different languages. Their similarity is very superficial. I'd say Javascript is far closer to Python than C/C++ (or Java for that matter).
Reply 12
Original post by Serentonin
I'm fairly okay with python, and while I will continue with it, I wanted to pick something new up as a new challenge as my uni workload is quite low this term...was thinking C++, but does anyone have any recommendations for anything that would be more useful?

Thanks.

If you're ok with python then it might be interesting to pick up C with the intention of writing a python C extension.
I.e. you load the compiled C code like a normal module and call functions you've registered.

Gives you some C and some understanding of how you might implement performance critical bits of code in Python, or interface with libraries that only have a C interface.
Though it's worth noting that in practice you shouldn't do it for performance reasons until after profiling!
C++ over C.
Can't stand Java anymore.
A rudimentary grasp of SQL is potentially quite handy to have.
Original post by Padwas
yes it is but of course i have no idea what I'm talking about with 6 years programming experience lol


Sorry for someone with 6 years experience you're clueless, VB is a horrible language for learning anything and teaches crappy conventions.
Reply 16
Original post by John Stuart Mill
Sorry for someone with 6 years experience you're clueless, VB is a horrible language for learning anything and teaches crappy conventions.


did me fine
Original post by Padwas
did me fine


'fine' Java or even C# would still be better, VB should die it's a piece of crap
Reply 18

Original post by John Stuart Mill
'fine' Java or even C# would still be better, VB should die it's a piece of crap


There's nothing wrong with modern vb.

Op I would go with c# to start with then learn c++ for 3d game development.
C++ has a steep learning curve for a beginner. Just getting anything graphical together is a fair bit of work.

C# will be good to know for general purpose programming(and employability) and will reduce the learning curve for c++
(edited 10 years ago)
Original post by INTit



There's nothing wrong with modern vb.

Op I would go with c# to start with then learn c++ for 3d game development.
C++ has a steep learning curve for a beginner. Just getting anything graphical together is a fair bit of work.

C# will be useful for general purpose programming and will reduce the learning curve for c++


oh God there really is, it's not that it's awful it's that there's no reason for it, the syntax is horrible and the alternatives are much more efficient.

Quick Reply

Latest

Trending

Trending