Computer Science

<p>Is it more useful to learn how to program in C/C++ or Java? What is the difference?</p>

<p>I started with C++ which alot of people think is bad..(dont ask) Java is pretty much the standard lang being taught in schools so start with that first.</p>

<p>I dont know much about Java so I cant tell you many differences. However I do know that Java has automated garbage collection while
C++ doesnt. </p>

<p>The two languages are very similar though. Once you learn one, the other will be really easy to learn.</p>

<p>There is a hidden catch to learning java before C++. If you learn Java, you will go along quicker, but:</p>

<p>A) Your code won't be too fast, so don't be planning to write very computationally heavy programs.</p>

<p>B) You need to pay very close attention to references, and their relationship to pointers.</p>

<p>If you start with C++:</p>

<p>A) Sharp learning curve, but most scientific programs are written in C/C++, and you will have very speed programs indeed.
B) It is easy to develop bad programming habits, and become ignorant to the correct way of doing things. For example, developing your own list class rather than using the STL's implementation.</p>

<p>Benefits of Java:</p>

<p>A) Automated Garbage collection
B) Huge API to work with
C) Applets
D) Not any complicated pointer stuff</p>

<p>Benefits of C/C++
A) Very fast code(depending on how you write it of course ;) )
B) More support for science/math related projects.
C) Used in many computationally expensive fields.
D) Once you go through it properly, you will have a very deep and thorough understanding of how a computer works. You will also gain the ability to cut through other folk's BS on how stuff(programming related) works.</p>

<p>Would you consider computer science as a science, as a math, or as something different?</p>

<p>Thank you sagar_indurkhya for your explanations.</p>

<p>I suggest Java, or maybe C#, because they are designed for object oriented programming and have other features.</p>

<p>C++ also supports OOP, although not as purely as Java or C#.</p>

<p>I would consider Computer Science to be a branch of mathematics.</p>

<p>cs = math
programming = engineering</p>

<p>yup CS= MATH
and uh... River Phoenix: I would disagree with starting off with C#. Its a bit old now comapared with other languages. </p>

<p>Another one I forgot to mention earlier is Python. <a href="http://www.python.org%5B/url%5D"&gt;www.python.org&lt;/a> Its very easy to learn and the language structure is very similar to C++. I strongly reccomend this also</p>

<p>:P How is C# old? I think you're confuddled</p>

<p>idk lol but def. not a good begineer language.</p>

<p>Gandhiji(you've gotta get another s/n, its really ackward calling you that), I've gotta side with River on this one. C# is a pretty new language, newer than Java, C/C++, VB, etc. It is also one of the best languages for a beginner to learn, as it allows you to easily mixandmash with C++ later on.</p>

<p>sagar: :( sorry about my sn lol. well I heard from other people that C# wasnt a good beginner lagnuage and maybe im wrong but I found other languages like Python and Java simpler. Also most high schools dont teach C# so that was kinda my reason...
MathFun: Learn any language you want lol.</p>

<p>C# is C++ with all of the Java features added in, plus more features added in. So it has C++ syntax, and is more advanced than Java even is (uses a virtual machine too). It depends what kind of programming you want to learn. You want to do applications programming, I definitely recommend C#. If you want to learn algorithms or that sort of programming, try C++ or something like Perl. Or even MIT Scheme. I would stay away from Python, myself.</p>

<p>I think you should start with C#
Beside the fact that it's easier (relatiely) than java or C++, if you take AP comp sci, it would be easier to get 5 on the test, and then you would be able able to say that you know at least 2 languages: C# and java (which definately cant hurt you) :)</p>

<p>Don't learn languages to put it down on your resume. My dad has told me often, that people will put down every programming language(all the major ones) under experience, and just quickly read up on them the day before the interview.</p>

<p>Also, programming should not be confused with software engineering.</p>

<p>Try this link </p>

<p><a href="http://www.computer.org/portal/cms_docs_ieeecs/ieeecs/education/cc2001/cc2001.pdf%5B/url%5D"&gt;http://www.computer.org/portal/cms_docs_ieeecs/ieeecs/education/cc2001/cc2001.pdf&lt;/a> </p>

<p>for a definition of what computer science is, and plenty of tips about what to study in what order.</p>

<p>See, you guys are confused. Computer Science is not programming. There is a very, very, large difference.</p>

<p>Computer science is a way of thinking. It is having a certain paradigm or mindset when approaching a problem. It is a logical ideology.</p>

<p>I would say learn C first. But, that's not computer science.</p>

<p>I started with VB, and it ruined me for a while, but let's not get into that.</p>

<p>I would say, first, learn the syntax of C. Why? Because it will help you better understand the way a computer works. It is the "highest low level language" that exists at the moment.</p>

<p>Once you learn the syntax, pick up a book on algorithms and go through them. Do programming exercises. Check out USACO and the ACM library.</p>

<p>Once you know decent number of algorithms, learning a new language is a cinch because at that point it's just syntax. Syntax is easy to learn. I picked up Ruby in a week. I wasn't coding cleanly in it, no, but I was coding in it.</p>

<p>Computer science, generally, is coming up with creative solutions to solve complex problems. The amount of creativity involved in coming up with solutions is what makes it so attractive to so many people.</p>

<p>The people who go into Programming, not CS, are not Computer Scientists. They are codemonkeys :p.</p>

<p>Yeah, if you want to get further into CS, you want to learn about algorithms and data structures, and study subjects like compiler theory, the mathematics of CS, theory of computability, graph theory, etc.</p>

<p>When coding, remember that Standards are vital. You should always try and code in standard C(ISO C 99 i believe), and C++. You should opt for the most conformant compiler(MS VC++ 2005 now I believe), and become one with the STL.</p>

<p>And in most jobs related to programming/CS, the highest paid jobs don't even touch code. They are software architects, who manage 50 programmers underthem. This is what my dad does for IBM.</p>

<p>gcc and g++ are pretty damn conformant compilers ;)</p>