So I'm finally finished with programming in VB6, and to get ready for Computer Science in University I want to get started on an industry standard programming language. I'm thinking of learning both C# and Java, but I am not sure which language to do first. For instance, I know that with Java I can develop programs for any OS which supports Java, which also means Android Phones. Alternatively, C# can help as a stepping stone towards C++ and C, C# is developed by a company like Microsoft, so that means a much more powerful language than Java when I'm programming on Windows machines, plus I can learn the joy of how-to-port programs to Linux and from Linux to Windows, because I am sure it is a good skill toi have. What do you think? Now is the time to extend your E-peens. And to answer your questions, no I will not do something other that C# or Java. No, I will not do a language that only serves to draw fractals (looking at you Haskell). No, I will not do a stupid language like brainfuck. No, I will not do assembly because I have already tried. No, I am not planning on creating an erotic game based on the Unreal Engine once I learn how to code. edit: Fuck made the poll multi choice.
Or, you could go straight into learning C/C++ instead of using another language as a stepping stone. It isn't hard at all, and it's what my university uses for it's programming course. I'd say go for C# unless you feel like you're going to use Java later on. Or Lisp, Lisp is good too.
C#. It's fun and you get to code in visual studio. Learn some XNA while you're doing it, it's easy and you'll learn C# faster. Just keep it to 2D graphics and you're good. http://msdn.microsoft.com/en-us/centrum-xna.aspx
Learn C and you already know half of java. Or that is what I have been told. C# is my suggestion since I just hate java a lot.
C# is basically Microsofts' copy of Java, so you can't go wrong with either. Java is still a little bit more popular at universities. But if you want to prepare for CS learn C and have fun with malloc.
Java is reasonably more popular than C# by a few metrics, but there isn't a terrible amount of difference between them. If you're going to stick with Windows, Microsoft has some awesome tooling for C# available (Visual Studio, XNA, blah blah). But since you say you're going for University that doesn't matter. By the time you finish, you'll be able to pick up languages in less than a month reasonably well. You are far more likely to be taught in Java and/or C/C++ than anything else and you'll be learning science-y concepts, not OS integration. Java will probably serve you better in that regard.
fucking malloc and free. lol use math to allocate specific amounts of memory then try to free them with math and get off by one error freeing extra memory.... yaye.
It doesn't matter, they're pretty much the same language with a few syntax differences. They're both quite easy to pick up. C# is a better gateway to Microsoft web programming (ASP.NET/MVC) so if that floats your boat then go down that route. They're both an abstraction on C++ so you're asking if you should eat an apple or an apple.
http://mitpress.mit.edu/sicp/full-text/book/book.html I did something similar as a course. Languages and frameworks never mattered, concepts and solid skills do.
I think that C# is vastly superior to Java. The differences between the languages are huge. C# has been updated throughout the years to keep up with modern language design, unlike Java which is a decade out of date. For example: In C# you don't need to specify the type of every variable - it's done automatically by the compiler: Code: var coordList = new List<KeyValuePair<int, int>>(); In Java you have to specify the type of every variable: Also in C# you have lambdas, which helps to make event-driven code more readable: Code: player.Join += (sender, e) => { println("Hello C#"); }; In Java you have to create an anonymous class: Code: world.addEventListener(new EventListener() { public void playerJoined(PlayerJoinedEvent e) { println("Hello Java"); } }); C# saves you a lot of typing and programming work with modern language features. However I have to agree with Candles and Hamster that you should learn C or C++ first. The reason is that these languages force you to deal with memory management so you understand what's really happening when you type a line of code. C# and Java abstract this away, so you're more productive, but you have a weaker understanding of what is happening on the computer. It is much easier to go from C++ to C#/Java than to go the other way. A lot of stuff like stack allocation, value types, and pointers are harder to understand if you don't start with C++. Also you could become an Empires Mod programmer if you learn C++.
ITT a ton of horrible advise. C++ builds on too many concepts that only make sense when you understand the fundamentals well. Please don't put an emphasis on languages. They don't matter at all, never have and never will. Algorithms, data structures, critical and analytical thinking are important. Learning another language after you know the fundamentals is trivial and a question like Java or C# doesn't not make any sense at all. Concept wise they offer pretty much the same with similar ecosystems. Or just disregard my advice learn the current flavor of the month shit, barely scrap by and turn into a CRUD monkey. Whatever.
Ha ha ha... no. Yeah ok I get it but I have to choose a language to learn the concepts practically, and I am not sure which language to choose, which is why I made the thread.
Which is a good thing, since you should understand the fundamentals well. Sounds like propaganda by university professors. All your critical thinking doesn't help if you don't feel familiar with atleast one language. And sooner or later this language should be C++. C++ is the most popular language for 30 years now and it doesn't look like it's going to change soon.
I don't think its possible to become familiar with algorithms, data structures, critical and analytical thinking without becoming familiar with atleast one language. Learning all thing stuff will make a lot more sense in C or C++
Thats why I linked SICP. Work through that book. Then learn whatever programming languages you want. There is a reason why that was the introduction into programming book at MIT for ages (They are doing basically the same program with Python now I read).