
Python for Non-Programmers - reuven
https://PythonForNonProgrammers.com/
======
danso
> _Q. What do I need to install?_

> _Just Python is enough. Other installation suggestions and support are
> available in the forum._

Speaking as someone who has taught Python to non-programmers in classroom and
workshop settings, this seems like far too vague an instruction. For many
novice (including the instructor!), the installation and system setup is the
most frustrating and confusing part of hands-on learning. With non-
programmers, you can never assume a base level of computing understanding –
this includes things like not knowing how to get into the command-line, or
install a text editor, or even what filenames and file extensions are (I
always have students enable display of file extensions at the start; usually
it's off by default for most OSes).

I would think you'd want to do this kind of thing having students use
something like CoLab or PythonAnywhere. Sure, it's nice to run code from your
own system, but that's not an immediate concern for most people trying to
learn the basics.

~~~
ericol
I been trying to get one of my daughters to learn programming (With / through
Python) for some time now. She's also willing, but life gets in the way and
her dedications was sparse.

This week with lockdown and everything she started to study again.

I had recently "upgraded" her laptop from Windows to Debian, and installed
both PyCharm and Miniconda on it.

So, this week she managed to configure PyCharm to use the Miniconda python
interpreter, and I gave her a few instructions (That were actually a
repetition or some I gave her a while back) on to how to run Jupyter.

Come the next day, and she calls me to ask me how to run some notebook she had
in a backup. She had already copied them in a folder (A different one that the
one she was using the previous day).

So I told her "Ok, so you go to the folder and run Jupyter in it".

"Dad. Run... WHERE!"

The amount of assumed knowledge we programmers have, and usually assume other
people (Even non-programmers) have, is enormous.

I didn't even click in the link, but if all are all the instructions they give
to install python, they are off to a not actually bad but chopped foot start.

~~~
commandlinefan
My son is taking a programming class in high school - they use repl.it for all
their assignments. That makes installation a non-issue; eventually I assume
they'll "graduate" to a local install, but it helps them focus on learning the
language and not worrying about the environment (yet).

------
ivanbakel
I'm guessing the FAQ is targeted at the non-technical audience, so I'm not
surprised this doesn't show up as a question, but - why Python?

I often wonder if imperative programming is actually a beginner-friendly
abstraction - in particular, because of name rebinding and interior
mutability. My university's CS course is highly technical, but also targeted
at non-programmers (officially, the lecturers cannot expect any computing
experience at all) - and it teaches Haskell, which addresses some of those
concerns.

~~~
kazinator
> _wonder if imperative programming is actually a beginner-friendly
> abstraction_

You know, a very common newbie Lisp question is "why is my list still the same
after _append_ ".

I bet you no Python beginner asks why their _list_ is _different_ after
_list.append(3)_ , having expected a new list to be returned and the original
one left alone.

Imperative is intuitive; the real world is apparently imperative. Though it
can be described by functions in which _t_ is just a parameter, the way those
functions play out is that the past values of _t_ are not available.

To take a more level view, the expectations w.r.t. _append_ could be
conditioned by prior exposure to other languages. However, any exposure to
_computers_ at all reinforces the imperative view. Almost all content is
manipulated destructively: documents, settings, you name it.

~~~
dbcurtis
> the real world is apparently imperative.

I beg to differ. The real world is declarative. But as software developers we
mostly suck at creating declarative ways to express problems. The spreadsheet
being the one example of an intuitive declarative UI that non-programmers grok
easily.

Your average corporate VP of engineering uses a declarative interface to
issues charters to his developers: "You need to hit X performance target, Y
cost of goods, and Z MTBF. By Date D. Go."

Declarative is the way the world works.

~~~
thelean12
And yet, the only way to actually complete that charter is to "interpret" or
"compile" that charter into something imperative.

------
webartifex
Cool initiative. I will take a look at some of the sessions. Can you post a
schedule when they will take place?

I am in particular interested to see how much depth you expose the "non-
programmers" to. Is it just an applied course? E.g., here is a function X that
does Y. Or do you focus also on the implications in memory and, for example,
Python's object model?

Good luck. We need more non-programmers to learn to code. Not for coding's
sake. Most of them won't become developers. But it allows academics from all
kinds of disciplines to teach their students advanced stuff. I see programming
just like most students independent of the major must take Calculus 101 or
Statistics 101.

BTW, I am the author of this introduction to Python (also for non-CS majors):
[https://github.com/webartifex/intro-to-
python](https://github.com/webartifex/intro-to-python)

I teach Python at a business school. Due to Corona, the campus was closed and
I put all my lectures on YouTube:
[https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQow...](https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)

Subscribe to my channel
[https://www.youtube.com/user/webartifex](https://www.youtube.com/user/webartifex)
if you are interested in more Python applications in the field of business
administration. I am new to YouTube and will post at most 2 meaningful videos
a month. No monetization, no hidden product placements.

See also this HN post from last week:
[https://news.ycombinator.com/item?id=22669084](https://news.ycombinator.com/item?id=22669084)

~~~
reuven
I'm running the course every Friday at 10 a.m. Eastern, in 1-hour segments.
Recordings are available to anyone who signs up. So far, it has been lots of
fun!

------
reuven
So this is what happens when I don't realize that my post on HN has gotten a
lot of attention! Yikes...

I'm going through the comments now and responding...

------
ducaale
I tend to recommend the free online course
[https://www.py4e.com/](https://www.py4e.com/) for people who want to learn
python and programming in general. If they struggle with it, then
[https://www.codecademy.com/](https://www.codecademy.com/) is another good
resource.

------
oarabbus_
What does it mean to be a "non programmer" vs. a "programmer"?

I don't mean "someone who doesn't know how to program" vs "someone who does".

I mean the common trope of a (for example) midlevel data scientist or someone
who knows how to use python and says "I'm not a programmer", yet knows more
programming than most junior devs I know.

~~~
reuven
The course is aimed at people who have never programmed before. There are many
participants who have, but they realize that I'm assuming they don't even know
what a variable is, or that you need quotes around text to distinguish it from
an identifier, etc.

Session 1 was about basic input/printing. Session 2 was about "if" statements.
Session 3 was about numbers. Session 4 will be the first of several talking
about strings.

My goal is to help people learn to program if they haven't done so already, or
(especially) if they have been frustrated.

------
quijoteuniv
Cool! Thanks for doing the course!

------
visarga
does it say at what hour is the course?

~~~
dfinninger
> Q: When does the course take place? For now, we're meeting at 10 a.m.
> Eastern on Fridays, via Zoom. Each session lasts for 1 hour, and is
> recorded. If you register for the course, you'll have unlimited access to
> all of the recordings.

7am, Pacific. My wife has shown a bit of interest but 7am is just too early in
our household to get up and start leaning right away. Seems like it would be a
good course though. She could still listen to the recordings, but being able
to ask questions live would be more engaging.

~~~
reuven
Finding a good hour that (a) fits my schedule and (b) fits the schedule for as
many people as possible around the world was... challenging. I apologize for
making it early for people on the West Coast, and hope that you can benefit
from the recordings.

------
terrycody
bookmarked for later use

