[Tutor] louis renton
dn
PythonList at DancesWithMice.info
Sun Jan 22 19:17:35 EST 2023
On 22/01/2023 15.05, paulf at quillandmouse.com wrote:
> On Sun, 22 Jan 2023 14:43:27 +1300
> dn via Tutor <tutor at python.org> wrote:
>
> [snip]
>
>>>
>>> A good and simple reference is important. Matter of fact, I've found
>>> Google to be invaluable. If you can't find it in your reference
>>> easily, Google it, and you'll find explanations and simple code
>>> examples. I'm relatively new to Python, and that's how I've done
>>> it. Also, there is a good reference for Python and its libraries on
>>> line. Look for it.
>>
>> Google is NOT a reference. What you will find listed is a collection
>> of web-pages. Whether they are accurate or otherwise good or bad is
>> open to question! See also: copying code from StackOverflow.
>>
>
> Opinions apparently vary. I've found tons of useful explanations and
> working code from Google and Stackoverflow. "How to fetch a string from
> the user in Python" on Google yields useful help. Obviously, you have
> to copy or mimic and test to make sure stuff works.
+1 but.........
in order to decide if it is worth copying in the first place, and later
to "test", one first needs a basis of knowledge.
Some dispute this, saying that as long as they know where to find facts
(Google?) why bother to learn them. However, learning is more than
"facts". Per the OP's "hands on", it is knowing how to use what you
know/can find-out, and actually proving that by doing-so.
Question: if needed an operation, would you prefer a graduate of
Med.School, or someone who is picking-up brain-surgery from different
web-sites recommended by the GOOG?
Learning to fetch a string is a great illustration of two aspects:
1 it is an isolated fact, ie input(); and being told, use:
result = input( "prompt" )
doesn't teach much about strings or the likely constructs to do with and
'around' the uses of input(). Thus, isolated cf cohesive leads into
asking: "what if I want to fetch an integer?". 'Stack-Overflow Driven
Development' requires another search. Agreed, some answers do provide
width and depth, but others stick strictly to the narrow question. If it
were a cohesive lesson on terminal-input (as was one of my
coaching-sessions at the local-PUG a few months back) then it would
cover the above, including an explanation of the word "prompt", the
building of a loop to cover mistakes in input (eg "ten" instead of a
number), and what is/how to handle EOD through semaphore-values or the
use of control-keys (which vary by OpSys). Chalk and cheese!
2 having completed a structured course, few of us remember everything -
and few courses cover 'everything'. In addition, it may be that we work
on Python, but don't use specific facilities for a long period. So, it
IS useful to have a reminder: 'how do I use range() but not starting
from zero?'. This is where having your own study notes, downloading
"cheat sheets", or using Stack-Overflow (or this Mailing List's
Archives) can be a 'treasure trove' (of knowledge) - and all without
disturbing one's colleagues' concentration/"flow"!
Have a look through some of my posts here. Partially because many don't
know 'enough' to be able to frame a question without leaving-out
necessary facts or leaving things open-ended; you will see that I
frequently add reading references. Something to use to answer the
question-posed, something for later, or something that is irrelevant to
the poster's needs. Who knows? How to tell in-advance?
(same conundrum faces courseware and book-authors!)
>> A formal curriculum such as an on-line course or even a text-book has
>> been designed to introduce topics in manageable chunks, to build upon
>> existing knowledge, and thus to show how 'it all' hangs-together.
>
> Doubtless a formal course of study is useful. However, my experience
> with academic texts (including those from my college years) has been
> less than stellar. My college calculus text was nearly unreadable, and
> I did well in high school math up through analytic geometry. This is
> partly why Amazon allows you a look into the book before you buy it,
> because a lot of them are just garbage. I've known plenty of academics
> who couldn't think their way out of a crossword puzzle.
+1
FWIW, I completely agree with you: some academics have no idea how to
teach - and I had trouble with Calculus 101, too.
You'll be familiar with the old adage: "you can't judge a book by its
cover". Your local Librarian (note the title-case, and please be aware
that some staff in a library are "Library Assistants") will be happy to
discuss exactly this point: how readable is this book (for my level of
expertise in the topic); and its related consideration: how applicable
is this book to my own intentions, eg 'Python for Network Admin' cf
'Python for Machine Learning'.
With books, courses, etc (including YouTube 'training videos'), just as
with so many other aspects of life, there is no such thing as a "silver
bullet"! One of the (possibly 'the') most popular Internet courses for
learning to program[me] is offered by a 'top' US institution, but I look
at the antiquated training techniques they use and wonder where the last
fifty (or more) years went? Yet, they have higher (since first offered
to-date total) attendance (- haven't compared success/pass-rates though
- aspects of high drop-out rates, and attempting to counter same, a
current research effort to which @Leam alludes, elsewhere).
The yawning gulf in the above observations, is that if "academics"
produce a range of work varying from 'impenetrable' to 'made it so
easy', what is the equivalent success/failure measure for YouTube videos
or web-posts? There are many 'experts' (largely self-appointed, ie no
job application to an institution's employment panel, and with no
editorial oversight or even a colleague's advice like a 'code review')
who post material which seems to say far more about them than it does
about Python (and not always in a good way, if we are judging an ability
to impart information, use time efficiently, whilst also enthusing, etc,
etc).
There are some which are downright wrong - and therefore damaging. There
are some which are truly excellent.
(next proverb: sorting the wheat from the chaff!)
Knowing something, and then being able to impart such knowledge to
others, are quite different things!
In short, we're back to the curation of material, firstly to assure
quality, and secondly, to assemble some applicable sequence of 'chunks'
of coverage to facilitate learning and ensure a reasonably/practically
cohesive pattern of knowledge. Followed by an assessment of the material
vis-a-vis one's personal needs and interests.
In the case of complete ignorance about Python, pretty much any course
or book which 'looks good' (per above, see also @Leam's list of
reputable publishers from his experience) is a place to start. Once the
new-learner has picked-up built-in types, functions, loops, etc (the
'core' of the language if you will*; (s)he is much better-equipped to
review alternate materials - even to the point of 'dropping' the first
and promoting him-/her-self to something heading-off in a more
appropriate application of the language (for example).
* and the subject of another local initiative called: "The When of Python"
In the case of the OP:
- proving one's learning by challenging yourself to produce some "hands
on" application of new-knowledge is by-far the best way to
learn/re-inforce new-knowledge
- the phrase "learn to code" seems wider than "Python". Perhaps then,
something which introduces computing or computer science may be more
appropriate, eg Harvard CS50 (https://cs50.harvard.edu/x/2023/) which
introduces ComSc "(Two thirds of CS50 students have never taken CS
before.)" and in terms of programming languages introduces C, Python,
SQL, and HTML5 with the aim of providing just-enough knowledge to
facilitate a person's (deliberate choice of) next steps - and note how
they list 'choices' of learning-path based upon different peoples'
intentions and expectations!
- as far as Python is concerned, two good starting places are:
- The (official) Python Tutorial
(https://docs.python.org/3/tutorial/index.html) which we (list members)
have all used (or at least scanned), right?
- @Alan's (our ListAdmin) own course, with the added advantage of
being able to pose any follow-up questions 'here' and hear-back (content
warning: another old adage) "straight from the horse's mouth". (when he
gets back from holidays/vacation)
(sorry Alan, please don't be an old nag at me...)
Disclaimer:
Harvard was one of the founding institutions for edX, since sold to 2U,
but with the retention of (some) managerial oversight. I use the edX
platform, but not for Python training.
--
Regards,
=dn
More information about the Tutor
mailing list