Question about learning Python

avi.e.gross at gmail.com avi.e.gross at gmail.com
Wed Sep 7 20:32:11 EDT 2022


Chris,

I started with BASIC in high school and kept shifting my focus from one
computer language to another long before I even looked at Python. 

Arguably each language had a REASON for existing so it supported some ideas
or paradigms or ways of looking at things. Many at first were rather focused
on doing one or a few things well, and others not so well or not at all. No
need to rehash it.

In a sense, many modern languages can be viewed as containing multiple
overlapping modules which collectively do all kinds of things in many ways
and can do whatever many earlier initial releases of earlier languages did,
sometimes better but also sometimes slower. If you look at Python as a base
and added modules, it can do all the mathematical things of say FORTRAN,
manipulate text and produce reports and on and on. But it also can NOT do
things done in basic, or at least not easily, like subroutines and goto's
that are associated with a more primitive way to solve problems. 

Is there any purpose in teaching new students how to structure your code so
that you use such methods? Well, maybe. I mean we have all kinds of slightly
hidden ways to do a GOTO in some languages such as breaking out of a nested
loop. Underneath it all, an IF/THEN/ELSE type of statement has regions you
jump between. But arguably it is helpful to see operations on a higher level
and leave the details of how it is accomplished in well tested code within
the interpreter or compiler.

C was designed on purpose to do some things that a language like PASCAL was
designed not to allow or make easy. Both started off though as fairly simple
languages that did things somewhat linearly. You can obviously emulate many
things using a simplified subset of Python that would allow programs in
those languages to be done. If that is all you want to learn, fine. But if
your goal is to make use of OO and functional programming and other
paradigms supported, ...

As I posted elsewhere, I ask why the questioner specifically mentioned C. I
also use R and there too, C is only needed if you want to speed up some
function by writing parts in their version of C or C++. The fact that many
interpreters are written (or sometimes were written) in C is not really
relevant.


-----Original Message-----
From: Python-list <python-list-bounces+avi.e.gross=gmail.com at python.org> On
Behalf Of Chris Angelico
Sent: Wednesday, September 7, 2022 2:58 PM
To: python-list at python.org
Subject: Re: Question about learning Python

On Thu, 8 Sept 2022 at 04:54, Grant Edwards <grant.b.edwards at gmail.com>
wrote:
>
> On 2022-09-07, Chris Angelico <rosuav at gmail.com> wrote:
> > On Thu, 8 Sept 2022 at 01:50, Maruful Islam <maruf.gibl at gmail.com>
wrote:
> >>
> >> I want to start learning python. I have a question about learning
python.
> >>
> >> Is learning C essential or not for learning python?
> >
> > Absolutely not essential. In fact, I would strongly recommend 
> > learning Python before ever picking up C, as it's much easier to 
> > mess around in Python.
>
> If you're a beginning programmer, then IMO learning C first is 
> probably detrimental. C has quite a few quirks and pitfalls that will
> a) frustrate you and waste time, and b) influence your way of thinking 
> about programs in a way that will be unhelpful for higher level 
> languages.

Not as detrimental as starting with BASIC, and then moving on to x86
assembly language, and trying to massage the two together using CALL
ABSOLUTE in order to get mouse input in your GW-BASIC programs.

Don't be me, folks.

ChrisA
--
https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list