Live data from Hacker News

Show HN: Intro to Python and Programming for non-CS majors

github.com

41–50 of 56 posts

Re: Show HN: Intro to Python and Programming for non-CS majors

#41
post #39

Earlier quoted context omitted.

I consider my course a thorough course. You really learn a lot of theory. This is usually what makes students at my university drop the course after two weeks of auditing. Just because the course assumes no prior CS contents (anything really, except high school math), does not mean they don't get introduced.

Oh I wasn't suggesting anything against the quality or content of your course - perhaps I misunderstood the comment I replied to, but I took it as: > High schoolers are really just doing some web course and then getting data scientist jobs? so my response was: > No - or at least this isn't evidence of that - the author is a postgraduate student and the target audience appears to be other graduates/university students…

I hope there are no companies that hire a "data scientist" that only speaks HTML :)

The course aims at students of business administration. What do they usually do? Maximize some profit function. So, my background is really more traditional Operations Research.

Re: Show HN: Intro to Python and Programming for non-CS majors

#42
post #37

Earlier quoted context omitted.

That is correct. But even then, I think in the future the data scientist role and the data engineer role will converge and the person doing this must know virtual environments.

In the future we will likely have different tools to handle dependencies and environments. If these things aren't immediately useful, it might be worth teaching other stuff instead.

Let's hope poetry will become a standard. Opinionated, I know :)

Re: Show HN: Intro to Python and Programming for non-CS majors

#43

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

I agree that this is important. My personal choice is to use pyenv together with poetry on a Linux machine. Yet, please understand that I teach this course to absolute (!) beginners. That is why I chose to use the Anaconda Distribution in class, which comes with every package installed that I want my students to study. Making your first steps in programming is hard enough and so I want to keep the "boiler plate" as s…

Conda is a fine alternative, and perhaps superior to pipenv.

Re: Show HN: Intro to Python and Programming for non-CS majors

#44

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

I agree. One of my most memorable unanswered questions from my first C programming class is where the things we imported came from. I wondered how to inspect them so I would know what's available in those libraries, how to use it and to some extent how I would build my own. I moved on from C and so in the end it didn't matter much, but when you do settle into a language long term it is really helpful to know how to navigate docs, system/standard library and packaging tools so that you can participate in the ecosystem effectively.

Re: Show HN: Intro to Python and Programming for non-CS majors

#45

Earlier quoted context omitted.

I agree that this is important. My personal choice is to use pyenv together with poetry on a Linux machine. Yet, please understand that I teach this course to absolute (!) beginners. That is why I chose to use the Anaconda Distribution in class, which comes with every package installed that I want my students to study. Making your first steps in programming is hard enough and so I want to keep the "boiler plate" as s…

I hear you. There's probably no one "right" answer because as I type this, I'm already conflicted with my own opinion. There's already a mountain of important topics to teach. What's on my mind is that all of the "meta" parts of programming are usually seen as "boilerplate" when they make up such a critical part of "authoring" meaningful software. I'm approaching this concern from my personal experience in university…

As a related note, this is what I think we really lose as we move to computing environments like the iPhone with absolutely mandatory code signing.

I've heard it said that "oh, if you're a kid with an iPad and you just want to learn, you can download the little Swift playgrounds app, easy!"

But the thing is that the children I've worked with don't want to create stuff inside a toy app that only other people with the toy app can use—they want to create programs that feel real. Sure, maybe the only thing that real app does is display a guess-the-numbers game, but still, you can install it on the computers of your parents and friends and say "look, I made this app!"

iOS devices just don't let you do it. Android, Windows, and macOS does, and I really hope we don't loose that in the name of security.

Re: Show HN: Intro to Python and Programming for non-CS majors

#46

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

Strongly recommend ignoring virtualenv, venv, and pipenv; and using Poetry instead. Poetry is simple and feature-complete where the others require you to learn all kinds of minutiae.

http://python-poetry.org/

Re: Show HN: Intro to Python and Programming for non-CS majors

#47

Forgive me if I missed this, but I would highly recommend talking about virtual environments, pypi, and the existence of other things like pipenv. The environment/dependency management story for Python is such a tire fire and I wish someone introduced me to it from a reasonably high level at the very beginning of my time with Python. It doesn't have to dig deep. Just needs to talk about what these things are, why the…

I agree that this is important. My personal choice is to use pyenv together with poetry on a Linux machine. Yet, please understand that I teach this course to absolute (!) beginners. That is why I chose to use the Anaconda Distribution in class, which comes with every package installed that I want my students to study. Making your first steps in programming is hard enough and so I want to keep the "boiler plate" as s…

It might seem painful, but the fact is students will be reading lots of material besides what you personally prepare. That material will be referencing all sorts of "advanced" boilerplate things.

One of the highest-impact things you can do is orient them in a way to understand outside material more effectively. It doesn't have to be comprehensive, but they're going to see things like "pipenv" and "virtualenv" in outside material sooner rather than later.

Re: Show HN: Intro to Python and Programming for non-CS majors

#48
At this point, I feel like there are too many "Intro to Python" courses floating around. It will take a newbie, multiple hours of reading reviews and recommendations to find a course. There are many good ones out there.

I wish there was more effort spent on creating intermediate courses. It would be great if there were more people trying to write books like this Nicolas Rougier is trying (https://github.com/rougier/scientific-visualization-book). Take a specific library and help people become proficient in them. Usually, the core contributors to a library are not always the best people to teach people how to use that library.

Re: Show HN: Intro to Python and Programming for non-CS majors

#49
What I never understand about intros like this (even intro courses in college), is why not start with types? Reading the content, it’s obvious there’s something different between a string and a number, and a list (or a dict) is obviously very different again. You quickly figure out that these things are also capable of doing completely different operations, but why? And what things (methods) are they capable of?

I was helping a friend who decided to start a CompSci degree recently (the 101 course was taught in python), and she was massively struggling with type coercion and understanding type methods. Looking at the course forum, so was everybody else. I helped her understand what types were, why they were important and what the built in type methods were (and how to read the python documentation), and it was a major breakthrough for her. She’s now getting close to 100% on her tests.

I was also blown away by how archaic some of the content was, like using .format() instead of fStrings, but that’s a seperate topic.

Re: Show HN: Intro to Python and Programming for non-CS majors

#50

At this point, I feel like there are too many "Intro to Python" courses floating around. It will take a newbie, multiple hours of reading reviews and recommendations to find a course. There are many good ones out there. I wish there was more effort spent on creating intermediate courses. It would be great if there were more people trying to write books like this Nicolas Rougier is trying ( https://github.com/rougier/…

What would be contents you expect from an intermediate Python course?
Post reply on HN