QuarkCharmer said:
What really makes C better than Java? OOP is pretty helpful. I was under the impression that Java can do basically everything C can, perhaps slower. I'm not looking to make some awesome optimized code. I was looking to learn some basics and then try to make a line integral calculator or something as a first project.
Java is really great. It allows for pretty robust code and it allows developers to think very high-level. Additionally, it can be very useful when you have to deal with matricies and vectors (though MATLAB is still much better.) This is because the Java takes care of a lot of the underlying details of array implementation.
I suggested C simply because I like it more, and for several reasons. 1) It is what a programming language "should" be. That is not to say that there aren't problems. 2) Knowing C will really help you understand stuff in other languages. For example, when I was learning Java, I had no idea what a pointer was, but everyone kept saying "object names are pointers to data, not the actual data" I didn't really get what this was about until I learned C. 3) To know C, you have to learn more about how a computer works, specifically with respect to how memory is organised and used. 4) If you get to know C, then you will be able to talk intelligently about pretty much every other language. That's not to say you will know every other language. 5) Pointers are a really great feature of C and, for me, are the only things that I miss in Java. 6) IMO, knowing C is kind of like knowing Algebra: It might not be directly applicable to whatever you are doing, but you get a good glimpse of what is happening under the hood, specifically when you are wanting to analyse algorithms.
Additionally, it is sort of like a language that everyone should know (all technical people, that is.) Again, not really because you will "need" to use it, but more for the same reason we read novels by Charles Dickens, and others.
So, these are the reasons I suggested C. However, learning Java would also be a really good idea. Once you have learned your nth language, the (n+1)th is easier to learn. So, it might be wise to learn something like Java or Python, and then learn C.
But, like I said, most of it depends on what you are going to be doing. For example, I used Java for one project and C for another. Sometimes when I am doing numerical stuff I use C, sometimes matlab, occasionally Java or Fortran (usually those two to keep my skills semi-sharp, but they aren't too sharp and never have been with Fortran.) But, for a general purpose language, I will always go with C.