Learning more languages at once?

  • Context: Python 
  • Thread starter Thread starter doktorwho
  • Start date Start date
Click For Summary

Discussion Overview

The discussion revolves around the challenges and implications of learning multiple programming languages simultaneously, specifically Python, Pascal, and C. Participants explore how prior knowledge of Python may influence the learning process of Pascal and C, and the potential benefits and drawbacks of this approach.

Discussion Character

  • Exploratory
  • Debate/contested
  • Technical explanation

Main Points Raised

  • Some participants suggest that familiarity with Python may provide advantages when learning Pascal and C, but caution against the risk of learning multiple languages "half" and becoming confused.
  • One participant proposes that suspending Python learning to focus on Pascal and C could offer a new perspective on programming languages and their philosophies.
  • Another viewpoint emphasizes that a short duration of learning a language may not constitute true learning, advocating for a deeper understanding of fundamentals with a single language before branching out.
  • Concerns are raised about the stark differences between Python and C, with some participants warning that C may be less forgiving and more challenging compared to Python.
  • Participants note that understanding C can provide valuable insights into memory management and the inner workings of programming, which can be beneficial even when using higher-level languages like Python.
  • There is a discussion about the comparative complexity of Python and C, with some agreeing that Python abstracts many difficulties that C exposes.

Areas of Agreement / Disagreement

Participants express a range of opinions on the best approach to learning multiple programming languages, with no consensus on whether learning them simultaneously is beneficial or detrimental. Some agree on the importance of mastering fundamentals first, while others emphasize the value of understanding different programming paradigms.

Contextual Notes

Participants acknowledge that the effectiveness of learning multiple languages may depend on individual learning styles and prior experience. There are also varying opinions on the relevance of Pascal in modern programming.

Who May Find This Useful

This discussion may be useful for beginner programmers considering learning multiple languages, educators designing curricula, and individuals interested in the comparative study of programming languages.

doktorwho
Messages
181
Reaction score
6
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. I am 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?
Thanks
 
Last edited:
Technology news on Phys.org
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.
 
  • Like
Likes   Reactions: doktorwho
doktorwho said:
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. I am 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?
Thanks

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.
 
  • Like
Likes   Reactions: BvU and doktorwho
doktorwho said:
At my school this month we're starting to learn pascal and in january we are learning C.
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.
 
  • Like
Likes   Reactions: Tom.G
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.
 
  • Like
Likes   Reactions: BvU
harborsparrow said:
Python hides a world of hurt from programmers, whereas C does not hide it.
Ain't that the truth? Python is a very high-level language in comparison to C.
 
  • Like
Likes   Reactions: harborsparrow
harborsparrow said:
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.

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?
 
  • Like
Likes   Reactions: harborsparrow
Drakkith said:
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?
In Python, you can look forward to much more being done "under the hood."

Python:
my_list = [i for i in range(256) if i % 16 == 0]
print(my_list)

The code above is equivalent to this C 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;
   printf("[");
   for (i = 0 ; i < 16; i++)
      printf("%d, ", 16 * i);
   printf("]\n");
   return 0;
}
 
  • Like
Likes   Reactions: Drakkith

Similar threads

  • · Replies 397 ·
14
Replies
397
Views
22K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
16
Views
3K
Replies
86
Views
3K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 66 ·
3
Replies
66
Views
24K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 14 ·
Replies
14
Views
6K