Live data from Hacker News

Is Python The New Basic? ("Python For Kids")

scienceblogs.com

41–50 of 53 posts

Re: Is Python The New Basic? ("Python For Kids")

#41
post #20

The biggest reason BASIC was popular to teach back in the day, is because it is very simple. You are allowed to use GOTO statements which will make (bad) programming a whole lot easier for absolute beginners. On the other hand Python is a well-designed language. It encourages both OOP and FP, and honestly I am not convinced that just because smart people are actively pushing Python to become "the next BASIC", it is g…

To iterate on what you said:

Because it was simple and the rest was very complex. In fact, only assembly language for some CPUs was as simple as basic (now, it's not really the case anymore, although asm basics are simple, stuff often gets complicated with special registers and special opcodes doing magic)

Many languages today as simple and relatively sane, like, say "python" ;-) (now the other reason why I like python is because while you don't feel limited with it, it _forces_ people to code half readable, half decent stuff. They got a good balance)

Re: Is Python The New Basic? ("Python For Kids")

#42
post #32
post #28

Earlier quoted context omitted.

The way to get around the "everything" is an object thing is to just ignore it. Object Orientation is mostly a convenience at that level of programming and you can do almost everything without even bothering about it.

Indeed, it's still very annoying though, I can see how OOP can be good for larger scale but when you want to learn pragramming it shouldn't be something that gets in the way, it did for me.

Can you elaborate? I'm curious to hear ways in which it got in the way for you.

Re: Is Python The New Basic? ("Python For Kids")

#43
post #34
post #23

Earlier quoted context omitted.

1. If you think Python is a pain, I don't think there is any other language you can learn. I've learned lots of different languages, but Python was one of the easiest to pick up and get started--not so different from BASIC. 2. Unless things have changed since I last worked with python, your statement "Everything is an object" is not true. Actually this is one thing I like about Python over Ruby (In Ruby, everything a…

I get your point, but why should you even bother using modules when you are trying to learn programming? The scenario you suggests isen't a task for a beginner, especially not a kid with no experience. Anyway, I just want to say a quick apology, I relize my first post sounded a bit more aggresive than intended, sorry about that.

What sorts of problems and modules did you have in mind? Sure some modules can spoil the learning fun of the problem, but in most cases they seem to enhance it. Implementing the sqrt function is interesting to me (and in fact it's done early on in the SICP book for college freshmen), I also think it's interesting how other math functions can be implemented, but would you want kids who may not even have a solid grasp of what a logarithm is to implement the log function? How about making a 2D game? Why wouldn't you use PyGame?

Re: Is Python The New Basic? ("Python For Kids")

#44
post #19

I tried it as "first language" and it's a freaking pain, I still don't understand the "everything is an object" stuff and why to use modules for everything instead of solving problems with your own code. BASIC is way better for beginner's, especially kids.

Just ignore the object stuff when starting. And later, only use when it actually helps.

Re: Is Python The New Basic? ("Python For Kids")

#45
post #30
post #2

Javascript is.

The problem with Javascript is that you basically can only use it to interact with websites (thus forcing people to also learn HTML and CSS along with it). There is also the problem of it being a language full of warts and implementation incompatibilities and missing lots of features you would want from a modern language.

JavaScript w/Nodejs is pretty great.

I'm pretty language agnostic, but I'll admit I've briefly fantasized about an ECMAScriptish language that shared all it's feature, down to the object model, weird hybrid half FP/OO and prototypical inheritance, etc, plus some of the propose features and other cool junk like clean macro support, operator overloading, etc, and squared up some of the crazier stuff like weird definitions of truthiness, and looser type coercion.

Throw in a way to set up bindings, GUI toolkit or whatever, and a way to build distributable standalone binaries, and I'd use that as my go to language, esp to prototype and hack out ideas.

It's a fun way to just dump ideas and a few changes would make it a great all-round language worth favouring.

Re: Is Python The New Basic? ("Python For Kids")

#46
post #32

Earlier quoted context omitted.

Indeed, it's still very annoying though, I can see how OOP can be good for larger scale but when you want to learn pragramming it shouldn't be something that gets in the way, it did for me.

Can you elaborate? I'm curious to hear ways in which it got in the way for you.

Sure, I spent about 1 week learning the very basics about variables, loops and functions etc. After that I started looking for a harder challange and finded a few fun problems in some tutorials. I got very angry when I tried to solve them, since I pretty much didn't knew how to program, just about the basics of pythons syntax. What made me even more angry was, when I tried to find the solution many people suggested using all different modules and learning how to use it, instead of telling how to solve it with what I thought was programming. Also this OOP stuff was also very hard for me, since I only found. Tutorials which assumed you knew OOP in another language already.

Re: Is Python The New Basic? ("Python For Kids")

#47
post #43
post #34

Earlier quoted context omitted.

I get your point, but why should you even bother using modules when you are trying to learn programming? The scenario you suggests isen't a task for a beginner, especially not a kid with no experience. Anyway, I just want to say a quick apology, I relize my first post sounded a bit more aggresive than intended, sorry about that.

What sorts of problems and modules did you have in mind? Sure some modules can spoil the learning fun of the problem, but in most cases they seem to enhance it. Implementing the sqrt function is interesting to me (and in fact it's done early on in the SICP book for college freshmen), I also think it's interesting how other math functions can be implemented, but would you want kids who may not even have a solid grasp…

The thing is, using a function like sqrt is totally ok, but what I was more pointing to is that many tutorials teaches how to use module's in the very beginning and encuaraging(sorry for my bad english) using them to rather bypass problems instead of solving them. As for pygame, all tutorials I found said prior OOP knowledge was essential, which I had yet to understand.

Re: Is Python The New Basic? ("Python For Kids")

#48
post #47
post #43

Earlier quoted context omitted.

What sorts of problems and modules did you have in mind? Sure some modules can spoil the learning fun of the problem, but in most cases they seem to enhance it. Implementing the sqrt function is interesting to me (and in fact it's done early on in the SICP book for college freshmen), I also think it's interesting how other math functions can be implemented, but would you want kids who may not even have a solid grasp…

The thing is, using a function like sqrt is totally ok, but what I was more pointing to is that many tutorials teaches how to use module's in the very beginning and encuaraging(sorry for my bad english) using them to rather bypass problems instead of solving them. As for pygame, all tutorials I found said prior OOP knowledge was essential, which I had yet to understand.

I'm still having a hard time following... Maybe you could give a specific example of a problem that modules bypass? Is it just simply the idea of modules and the annoyance of having your code in multiple places and naive tutorials wanting to put everything in classes when you just want to solve one problem you thought was pretty simple?

For PyGame, I wouldn't say it's that essential, but there's a tendency for most tutorials to classify everything when often there's no reason to. The amount of OOP knowledge needed is very basic and following the simple examples is a great way to learn OOP in the first place. But I remember feeling frustrated with all the indirection and namespacing (part of the "module" frustration you had perhaps?) when I first looked at Python, having come previously from PHP. "pygame.display.set_mode() is dumb, why can't I just type make_screen()?"

Re: Is Python The New Basic? ("Python For Kids")

#49
post #48
post #47

Earlier quoted context omitted.

The thing is, using a function like sqrt is totally ok, but what I was more pointing to is that many tutorials teaches how to use module's in the very beginning and encuaraging(sorry for my bad english) using them to rather bypass problems instead of solving them. As for pygame, all tutorials I found said prior OOP knowledge was essential, which I had yet to understand.

I'm still having a hard time following... Maybe you could give a specific example of a problem that modules bypass? Is it just simply the idea of modules and the annoyance of having your code in multiple places and naive tutorials wanting to put everything in classes when you just want to solve one problem you thought was pretty simple? For PyGame, I wouldn't say it's that essential, but there's a tendency for most t…

If I had more time I could gladly try to find all tutorials I'm targeting at, this ain't targeted at the book mentioned in the story, that one I haven't tried. The thing I personally found hard is that these OOP and modules things come up in many tutorials in general, not all, I can see that both OOP and using modules instead of rewritting stuff that's already made is good, but I don't think that's the way to go for beginner's, BASIC is much better at that.

Re: Is Python The New Basic? ("Python For Kids")

#50
post #46

Earlier quoted context omitted.

Can you elaborate? I'm curious to hear ways in which it got in the way for you.

Sure, I spent about 1 week learning the very basics about variables, loops and functions etc. After that I started looking for a harder challange and finded a few fun problems in some tutorials. I got very angry when I tried to solve them, since I pretty much didn't knew how to program, just about the basics of pythons syntax. What made me even more angry was, when I tried to find the solution many people suggested u…

I see. So your difficulty really doesn't have to do with OOP at all then. The OP was saying that OOP doesn't really change your ability to use a language procedurally. It doesn't seem from your answer that you had difficulty with that.

It does sound like you had difficulty with managing complexity. That's definitely valid. It's hard to learn a bunch of modules when you're first starting out. I guess for that you just need to add a sprinkling of common sense where warranted, and manage the amount of new things you're learning.

Anyways, just was curious to hear where people have difficulty when starting out, so thanks.

Post reply on HN