|
I want to learn programming and i have narrowed it down to these two. Realy it doesnt matter because ill probably end up learning both but still which one should i learn. (first) |
|
Depends on what kind of software you want to write.
Also consider:
"A programming language is low-level when its programs require attention to the irrelevant" |
|
First i would ask what the program that you are planning to use to program is. I use Visual Studio 2010, but that is not cheap. I code in C#(Learning to...) and will start on C++ after i get good at C#. I went with C# first because of a suggestion and because it is newer. For anyone that doesn't know C# is pronounced C"Sharp". |
|
I would suggest C# because you can learn it by mashing your face against the keyboard...
C++ is more difficult because there are non-standard aspects (aka. undefined behaviour, "what happens when you break the rules") which aren't portable and can cause subtle yet serious issues and misunderstandings. |
|
If I remember correctly C# is going to die very soon. As in Microsoft no longer supporting it. So C++ would be better in that case. But, I would suggest that you learn C. With no # or ++. C works on most Operating Systems not just Windows. But, if you a way to easily create normal Windows app, or use for Website (If are thinking about that, don't use C#, or anything like it, it will cast you a lot to host). |
|
I would say learn C#. That's the path I chose, mostly because it is newer. Some argue that C# is more powerful. C# is also easier to learn if you come from any other language, because it has elements of three languages: Basic, C++ and Java. You can also run Microsoft Visual Studio Express for free. Combine that with Microsoft XNA Framework 4 (Also free) and you're set for building PC games or even xBox 360 games. So, if you are going to write games or enterprise quality software, I would say go for C#. |
|
If you don't know any languages and you want to learn in hopes to become a programmer, as in, you'r not just interested and want to use programming as a tool, not a career, learn C#, it is allot more simple, less ways to make headaches... If you are interested in becoming a programmer DONT LEARN ANY OF THESE LANGUAGES... You should always work from the bottom up when learning somthing... The same applies to programming and learning programming... When you make a big project, first you plan, which starts out at a very high level of abstraction then gets smaller... then you make these small complex systems so that the wole system can use the tested and working moduals... I don't know why I went so into that it doesn't matter... anyways, learn C first, yes I know, it doesn't do all that C++ can do, still, it will punish you'r poor programming and make you do it correct, later on when you are better, C++ is the optimal language to use as it will allow you to make the program work the way you need it to, but start at C, move to java, possibly try assembly as after learning C and java your low level algorythms should be up to par, although, from personal hatered of assembly, I'm not gonna recomend it... then move to c++ finally once you understand where and how it came to be a language through C and Java. 1
C and Java aren't really low level. The C standard defines the language in what is known as an "abstract machine" which means that they use a theoretical architecture to explain it. Java has many of the same "high-level" features as C#. The only machines that could consider C or Java low-level are those that execute C or Java source code natively, rather than using machine code to translate the source code. Many consider C fairly "low level" because the x86 architecture was modelled around executing C code. Try executing that C code on a LISP machine and you start to realise that C is actually high level on that LISP machine; In fact, you'll probably find Javascript is more low-level than C on those machines! C probably isn't very low-level to GPU processors, either, because GPUs don't have the same branching mechanisms. |

