python-discord / meta

Issue tracker for suggestions and other questions relating to our community
https://pythondiscord.com
30 stars 5 forks source link

Resource Suggestion: ExplorePython #117

Closed Latkecrszy closed 2 years ago

Latkecrszy commented 3 years ago

Resource name ExplorePython

Resource location\ https://explorepython.org

Payment type Free

Why it should be included As opposed to some other python courses and tutorials, it gives the lessons in bite sized pieces with comprehension tests at the end of each lesson to test their learning. This helps with retention, as well as makes it more fun and entertaining to do. Also, Kat said it should be here.

Potential limitations It is missing some vital content (OOP, dictionaries, and more), but that will be coming in the near future.

swfarnsworth commented 3 years ago

I believe this has potential, but more review of the content is needed.

Variables are containers for pieces of information I do not agree with this metaphor. Variables should be conceptualized as labels, as a given object can have more than one variable associated with it.

...variable names cannot contain anything other than letters or underscores. If you include a number, comma, or any other character in a variable name you will get an error.

This is not correct. The first character cannot be a digit, but subsequent characters can. Variables must match the regex /[a-zA-Z_][a-zA-Z_0-9]*/

An integer is a whole number (positive or negative)

What about zero?

(str is short for string.)

Should be ("str" is short for "string".) as the words themselves are what are being discussed.

just like the article you're reading now

I would use "tutorial" and not "article".

A function is a block of code that takes input and then gives output, and can be used multiple times. print() is an example of a function.

It might be dangerous to use print as an example something that has input and output. While print causes something to be displayed to the screen, the "output" in a functional sense is None.

Of course! There are many builtins in Python, about 69

nice. There's well over 100 objects in __builtins__, so perhaps we can avoid displaying the funny number.

Besides print(), you'll also learn about input(), min(), max(), str(), int()

I would not have empty parens after the names of the functions as a function is an object in its own right.

because it has two forms of output instead of just one

I would avoid going into this.

lemonsaurus commented 2 years ago

Taking a quick look at this resource too now.

The very first piece of Python it shows us is this: image

This is a curious choice. Why would anyone write a class to print hello world? Is it just to show off more features? Would not a beginner find it overwhelming to jump straight into writing classes?

Beyond that, all the problems outlined by @swfarnsworth are still there, nearly a year later. They clearly have not updated this very much since then, and I find it troubling that it gives straight up incorrect information like variable names cannot contain anything other than letters or underscores.

Overall, this just seems too imprecise, and I disagree with its pedagogical choices, so I would not be okay with adding this to our resources. With that, we now have two members of staff who seem opposed, and the issue has been open for a very long time without seeing anyone in favor, so I'm going to close it here.