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

Python Learning more languages at once?

  1. Nov 17, 2016 #1
    Hi, let me explain the situation. I am learning python on my own, as i am a beginner i found it to be the most suited to my style. Im also doing lots of courses and know quite a bit about it. Now the problem. At my school this month we're starting to learn pascal and in january we are learning C. Will this affect my Python progress or vice versa? I mean will it be the same for the to learn C as if i was not already damiliar in Python, better or worse?
    Last edited: Nov 17, 2016
  2. jcsd
  3. Nov 17, 2016 #2


    User Avatar
    Science Advisor
    Education Advisor

    I think it depends a lot on what kind of person you are. Familiarity with Python may really be to your advantage when learning Pascal (I did not know they still teach that in schools) and C, as long as you keep in mind that there are substantial differences between these languages, their natural domains of application and their underlying philosophies, particularly between Python versus Pascal and C.

    On the other hand, I think you should be careful not to learn two or three languages "half". It is my impression that I learn a language best by using it to solve problems I encounter on a daily basis. Using three languages interchangeably for this would be more confusing than helpful to me.
  4. Nov 17, 2016 #3


    User Avatar
    Science Advisor
    Gold Member

    There is no better or worse, as long as you keep what you learn sufficiently separated and intact in your mind. Now, it is true as Krylov points out, that there are substantial differences between Python, Pascal and C and it is not a good habit to learn "half" a language. You can suspend your learning of Python and devote your efforts to learn Pascal and then C. This way, you'll develop a new view if you will, of how a programming language works, what is its philosophy and its domain of applications.

    Now, for Pascal there is not much to say, because it is not used to develop applications anymore. Only object-oriented branches and hybrids of it are used, successfully but by a relatively small number of developers worldwide. It still remains a good "teacher" in my opinion, but don't overwhelm yourself with it. C is a whole different story and I would strongly advise you to learn it (or directly C++ depending on your school) and keep in mind that C itself, will teach you a lot of "quick and dirty" things in programming (among other great things). C has a substantial influence in many programming languages that were developed or branched after it. When you reach a decent level of knowledge / expertise with it and return to whichever other programming language you previously learned, you'll see it from a whole different perspective. And last but not least, you'll be capable of developing a way more informed opinion about programming in general.
  5. Nov 17, 2016 #4
    If you're only spending a month or two "learning" a language, then I'd say you're not really learning it. You're just getting an overview, especially if you have no prior programming experience.

    I think the best approach to learning how to program is to learn the fundamentals with a single language, as well as object oriented concepts (if they apply), and continue using that language to study data structures and algorithms. That would give you a basic foundation to build on, and would probably take 1 to 1.5 years. In fact, this is the standard approach used in computer science curricula for CS majors.
  6. Nov 21, 2016 #5


    User Avatar
    Gold Member

    I think that someone should warn you that, as compared with Python, you are likely to despise programming in C. Python hides a world of hurt from programmers, whereas C does not hide it.

    Nevertheless, you do want to learn C, because if you do, you'll have a good understanding of what is actually happening in the memory of a computer when your program runs. Even in languages such as Python that attempt to hide all that pain from you, it is occasionally quite useful to have this deeper understanding.
  7. Nov 21, 2016 #6


    Staff: Mentor

    Ain't that the truth? Python is a very high-level language in comparison to C.
  8. Nov 21, 2016 #7


    User Avatar

    Staff: Mentor

    The only programming language I know is C. Does that mean I have something to look forward to when I move to a higher language?
  9. Nov 21, 2016 #8


    Staff: Mentor

    In Python, you can look forward to much more being done "under the hood."

    Code (Python):
    my_list = [i for i in range(256) if i % 16 == 0]
    The code above is equivalent to this C code:
    Code (C):
    #include <stdio.h>
    int main()
       int i;
       int my_list[16]
       for (i = 0; i < 256; i++)
          if (i % 16 == 0) my_list[i] = i;
       for (i = 0 ; i < 16; i++)
          printf("%d, ", 16 * i);
       return 0;
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted