Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Should I learn C and Java simultaniously?

  1. Dec 16, 2005 #1
    Hello all. I have never taken a programming class, but this next semester I am taking two. One teaches you Java, and the other is C. Will it be hard to learn both at the same time. I am very dettermined, and a very hard studier and hard worker. Has anyone else here learned two languages at the same time. These are the only two languages I plan on learning. I chose the C class, but it is required for me to take the Java class. Would know these two languages be more benificial than just learning C? Because as I understand it, the most important language to learn is C or C++. What do you all think?
  2. jcsd
  3. Dec 16, 2005 #2


    User Avatar
    Staff Emeritus

    Java is more closely related to C++ because both focus on object oriented programming. There is nothing wrong with learning Java and C at the same time but you might not have enough time to spend practicing both languages to complete understanding. What I have found is that if you learn C/C++ well you'll be able to pick up any other language very easily. Java tends to shield the programmer more and thus takes away what really is going on.
  4. Dec 16, 2005 #3
    Really? I have the choice of being in the C++ class instead of the C Class. I though C++ was harder than C
    Last edited: Dec 17, 2005
  5. Dec 16, 2005 #4


    User Avatar
    Staff Emeritus

    C++ is an extension of C that adds object oriented concepts. C++ is only more complicated than C because you can do more with it. In most intro classes you won't even get to the advanced features of C++, so the difference between learning C and C++ are almost indistinguishable. Perhaps the only difference you'll see is the way you input and output data, which is only a small part of programming. You can literally take a class just on object oriented programming and that is why intro classes won't go into it. If you do have the choice between C and C++ you're probably better off with C++.
    Last edited: Dec 16, 2005
  6. Dec 16, 2005 #5
    I don't understand, you are saying that C++ is a little harder, but I should take it. Would you please explain that? I have to make the decision pretty soon before classes fill up. Would it be easier AND smarter to learn C++ with the required Java class, or C with the Java class?
  7. Dec 16, 2005 #6
    In my schools catalog it is recomended that one takes C before taking C++. That sounds right to me, becuase isn't C++ based on C. So wouldn't it be easier to learn C++ if you first understand C? I know very little about this, so if I am saying something stupid please forgive me.
  8. Dec 16, 2005 #7


    User Avatar

    Staff: Mentor

    Why? If you have never taken a programming class before, what leads you to think that you can successfully learn how to program, and two programming languages, all at once?

    When you study your first programming language, you are really learning two things at once: how to program computers (in general), and the specific details of a particular programming language. I've taught introductory programming courses in Fortan, Pascal and C++. I've seen many students, even some very bright ones, have great difficulty with programming in general, regardless of the particular language being used.
  9. Dec 16, 2005 #8


    User Avatar
    Staff Emeritus

    I have to agree with jtbell. Learning 1 language well will do you more good than trying to learn 2 not very well.

    Programming is much more than just the language. It is about the way you approach the problems.
  10. Dec 17, 2005 #9
    It is just that I want to get into more advancecd classes faster, because I am thinking about minoring in computer science and I still want to get my bachelor degree in 4 years, and their is no other class that I can take that does not require a prerequisite that I have not taken yet.
  11. Dec 17, 2005 #10
    Well, I am going to spend the entire Christmas break learning the first important thing you mentioned, about how computers are programmed. I am going to read these two books: Beginning programming for Dummies, and "Programming Logic and Design", by Joyce Farrel. The logic and design book is more like a text book, but it is for complete beginners. Neither of these books teach you a language, nor do either of them focus on a specific language. They both claim they just teach you how a computer is programmed in general. So I figure after I read these two books I will be ready to almost focus solely on learning programming language.
    Last edited: Dec 17, 2005
  12. Dec 17, 2005 #11
    www.libsdl.org[/url] [url]www.opengl.org[/URL]

    just pick up any 1980s-90s C book...it'lll teach you majority of what you needfor intro course =]
    Last edited by a moderator: Apr 21, 2017
  13. Dec 17, 2005 #12
    So do you guys think that it will be too difficult to actually learn and fully understand two programming languages at the same time? I will also be taking Calculus 2, Engineering Physics 2, and General Chemistry 2.
  14. Dec 18, 2005 #13
    Learning Java and C at the same time seems like a good thing. If anything, it actually seems pretty ideal. This is because regardless of language, you will develop a set of misconceptions and bad habits that will only be removed by years of experience. By that time, regardless of starting language, you will be able to pick up most any other language.

    Now, certain language designs disallow for some types of bad habits to develop and their form allows one to appreciate proper programming paradigms most quickly. Of the two, I would name Java as being that. But then C is a systems language whose low to the metal nature allows you to program most efficiently in terms of developing system optimized code. By learning the two at once, you get some of both worlds and can reinforce your programming ability as the two interact to disallow certain misconceptions to form that would have because of such things as your assume using pointers is the only way or that the object model is the only way to go and abuse polymorphism.

    That is my opinion.
  15. Dec 18, 2005 #14
    Wow, it sounds like learning C and Java at the same time would be very beneficial. But I must say, accorrding to what these other people are saying I am begining to have doubts about taking both at the same time. I am starting to think that my workload will be so great that I will not have enough time to learn them as good as I would like to.
  16. Dec 18, 2005 #15
    I think getting overwhelmed might be the only problem. I think if you can make the time you should try it (and blog about it too, so those of us who learned differently can see what it is actually like :D). While you might not master the syntax of both as you might have otherwise done, I argue you would be a better programmer for that very reason. Attatchment to syntax and language derived specific ways of thinking are one of the main hurdles towards writing elegant code.
  17. Dec 18, 2005 #16
    You sure are making a strong case for me to learn both at the same time Deenicus. If I don't learn C this semester though, I will just learn it next semester, this is the way that the Computer Science department at my school recomends it.
  18. Dec 18, 2005 #17
    I just realized that I titiled this thread as "Should I learn C and Java AT THE simultaniously?"! How dumb of me.
  19. Dec 21, 2005 #18
    I would recommend that you do NOT take both classes at the same time. I just don't see a reason for it. Study one language for a semester -- learn the concepts and fundamentals which are similar for all programming languages (and certainly Java and C). Once you have a very firm grasp of programming fundamentals in general, and classes you take afterwards will be MUCH easier and you will understand and learn much, much more from them.
  20. Dec 21, 2005 #19


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    C and Java are similiar enough in syntax that what you learn about basic program features like loops, conditionals and the like will directly translate from one language to the other.

    The only problem I see is that C is a procedural language, and Java is an object-oriented language. While the syntax may look similar when looking at small pieces of code, the overall approach one would take to solve high-level problems is quite different in one language than the other. Some problem-solving skills in C won't be directly applicable in Java, and vice versa.

    To clarify this a bit more, imagine that someone gave you a fragment of three lines of code, and asked you to determine its language. There are many such fragments of code which are literally identical in both languages, and many more which have only slight differences. However, if someone gave you an entire module of code, it would be readily apparent which language was used; the differences in overall structure are very large between C and Java.

    However, as dduardo points out, most of these first-semester language courses are not going to address broad system-level problem-solving; they're going to focus on syntax and basic flow-control and computational tasks, which are quite similar in both languages.

    If you're sharp and can manage to keep track of the (sometimes small) differences between the two languages, I don't think you should have a problem taking both classes at once.

    - Warren
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook