Welcome, Guest. Please
Login
Home
Help
Search
Login
FAQ
Radified
Ghost.Classic
Ghost.New
Bootable CD
Blog
Radified Community Forums
›
Rad Community Non-Technical Discussion Boards
›
The Water Cooler
› Learning Python
(Moderators: Rad, Christer, NightOwl, Pleonasm, MrMagoo, El_Pescador)
‹
Previous Topic
|
Next Topic
›
Pages: 1
Learning Python (Read 10577 times)
Rad
Radministrator
Offline
Sufferin' succotash
Posts: 4090
Newport Beach, California
Back to top
Learning Python
Feb 14
th
, 2009 at 7:24pm
MrMagoo wrote
on Feb 14
th
, 2009 at 6:44pm:
By the way, I'm on the fence about if I'd recommend Programming Python. It assumes zero experience with programing/scripting/computers and so moves slow for me, but I never did get a proper introduction to CS and still feel like it will be good for me to make sure I've got that foundation.
Slow is good, no? For someone who has no programming experience. Filling in all the gaps makes it easier to ramp up once the basics are absorbed. Is that what you mean?
Pls elaborate on your experience with the Zelle book, as I was thinking about that.
Is the Zelle book available here?
http://books.google.com/books?id=aJQILlLxRmAC&dq=john+zelle+python&printsec=fron...
IP Logged
MrMagoo
Übermensch
Offline
Resident Linux Guru
Posts: 1026
Phoenix, AZ (USA)
Back to top
Re: Learning Python
Reply #1 -
Feb 14
th
, 2009 at 10:44pm
Rad wrote
on Feb 14
th
, 2009 at 7:24pm:
Pls elaborate on your experience with the Zelle book, as I was thinking about that.
Is the Zelle book available here?
Yup, that's the book.
I'm only a few chapters in, so my current assessment isn't worth much, but I'll tell you what I know now and give you an update when I get further in.
Slow is good for someone who isn't familiar with the material, but I feel like he goes even slower than that. It feels almost like it is aimed at someone who has never used a computer beyond browsing the web. As an example, he spends a page or two explaining the difference between RAM and a HD. So, as someone who is very familiar with computers and at least passingly familiar with programming, the book feels almost too slow.
Now, I think it will still be worth it for me if he does a good job of covering all the CS basics that I never had any formal instruction in. So far, it looks like that is the direction he is headed.
What I meant when I said I was on the fence was that I think it is going to do a good job of covering CS basics, but that it may proceed too slowly for someone like you or me that has some solid computer experience and maybe has seen a script or two. I'll let you know when I get through a little more of the material.
IP Logged
MrMagoo
Übermensch
Offline
Resident Linux Guru
Posts: 1026
Phoenix, AZ (USA)
Back to top
Learning Python
Reply #2 -
Feb 18
th
, 2009 at 6:53pm
This Topic was moved here from
The Water Cooler
by
MrMagoo
.
IP Logged
MrMagoo
Übermensch
Offline
Resident Linux Guru
Posts: 1026
Phoenix, AZ (USA)
Back to top
Re: Learning Python
Reply #3 -
Feb 18
th
, 2009 at 7:21pm
Our other thread just past the 5 page mark, and I remember we used to have problems with long posts, so I split this one out. It may generate a little discussion.
I'm finished with chapter 9 of 13 in this book, so I'm a good way through the book. At this point, I feel comfortable with making some general observations.
The first observation is that this book WILL NOT move too fast for ANYONE. The author assumes you have no prior programing experience, very little prior computer experience, and at one point goes into a short explanation of integer division and remainders, just in case you didn't pass 4th grade. He explains everything in simple terms and uses easy to follow examples. I honestly think a 7th grader with no prior programing experience could learn python from this book.
So, if you want a gentle introduction to programing, this is your book. If you like things to move a little faster or have any programing experience, you might want to look for a text that is going to be a better compliment to the knowledge you already have.
Chapter 9 wraps up the functional introduction to Python, and chapter 10 starts in on the objective programing. So, at this point I am beginning to get an idea of what Python is capable of and if it is a good language for people to start with.
The advantage of Python is that it is fairly clean to read and write and popular enough that there is a wide variety of code out there and lots of libraries available. It is a high-level language, and takes care of memory allocation and garbage clean-up for you.
The disadvantage is that Python isn't as capable as Perl or Ruby. It isn't very flexible about how information is passed between functions, like Perl is, and it doesn't allow you to pass functions as input or output to other functions (at least I haven't seen a way yet.)
My feeling at this point is that Python would be a good replacement for Basic and other "starter" languages used in high school classes. It would be a good stepping stone for a 10th grader who knows some HTML to get into programing. It's also nice to know, just because of its popularity. But, if you are really wanting to do interesting things, you will quickly need something more powerful.
There's nothing in Perl or Ruby that make me think they wouldn't suit the a beginning programmer, and both have enough libraries and code examples out there that you won't be at any disadvantage. Unix geeks have been pumping out Perl code for a long time, and you can find a module to do just about anything with a few tweaks. For those who have done a little scripting but don't want to jump head-first into LISP, I'd say to start with Perl or Ruby and then go from there. You can go back and learn Python afterwards and it will only take a week or two to learn the syntax if you need to read someone's code.
IP Logged
Rad
Radministrator
Offline
Sufferin' succotash
Posts: 4090
Newport Beach, California
Back to top
Re: Learning Python
Reply #4 -
Feb 18
th
, 2009 at 11:50pm
Thanks for splitting out the thread.
MrMagoo wrote
on Feb 18
th
, 2009 at 7:21pm:
My feeling at this point is that Python would be a good replacement for Basic and other "starter" languages used in high school classes.
Have you heard of Django?
http://www.djangoproject.com/
MrMagoo wrote
on Feb 18
th
, 2009 at 7:21pm:
There's nothing in Perl or Ruby that make me think they wouldn't suit the a beginning programmer
Kinda got me leaning toward Ruby, then.
MrMagoo wrote
on Feb 18
th
, 2009 at 7:21pm:
Unix geeks have been pumping out Perl code for a long time
I keep seeing references to Perl as a replacement for the Unix shell scripting, but still haven't been able to understand the Perl/Unix connection and how they interrelate. What's the skinny there?
IP Logged
MrMagoo
Übermensch
Offline
Resident Linux Guru
Posts: 1026
Phoenix, AZ (USA)
Back to top
Re: Learning Python
Reply #5 -
Feb 19
th
, 2009 at 1:15am
Rad wrote
on Feb 18
th
, 2009 at 11:50pm:
keep seeing references to Perl as a replacement for the Unix shell scripting, but still haven't been able to understand the Perl/Unix connection and how they interrelate. What's the skinny there?
I wouldn't call it a replacement. It's more like the next step up. Shells are not written as programming languages. While they have basic support of loops and things like that, its fairly clumsy. If you need to do something more serious than clearing out files on an automated schedule or starting a list of processes in a particular order, Perl does it more elegantly than a shell script and isn't all that hard to learn if you already understand control structures and such.
Perl has awesome support for Regx.
http://en.wikipedia.org/wiki/Regular_expression
That makes it a favorite for admins who need to look through gigabytes of web logs looking for a particular referring URL, for example. As popularity for Perl grew, its popularity meant that there was lots of code examples and snippets of code that people had already written, making the job of writing a script often a matter of taking something that's out there and tweaking it to fit your needs. So, its popularity made it popular. The trend continues, and huge repositories of Perl code (like CPAN) exist on the internet.
Perl is also very high-level - managing memory for you. So, you can whip together a few quick scripts without having to rack your brain too hard looking for memory leaks.
The writers of Perl have also done a great job of keeping the language relevant. They added support for classes several years ago, and continue to update the language.
Ruby has a lot of the same capabilities but is a newer language, so it lacks the huge existing code base.
Rad wrote
on Feb 18
th
, 2009 at 11:50pm:
Kinda got me leaning toward Ruby, then.
My experience is limited, but I enjoyed the little bit of Ruby I wrote much more than a lot of code I've worked on. I also enjoyed the teaching material more than any other:
http://whytheluckystiff.net/ruby/pickaxe/
That text balances tutorial and reference better than almost anything else I've read on any subject. Most texts are meant either as a reference and you can't read them without your mind wandering off in the middle of the gory details, or they are meant to be read through and aren't dense enough to make you feel like you really know something at the end.
With that said, I had trouble following a few of the examples and it does little to teach you Computer Science. It is meant to teach programmers how to use Ruby, so I don't think it is aimed at us beginners.
I'm really beginning to agree with Nigel that it doesn't matter what language you learn to start out with, as long as you learn something. Python, Perl, and Ruby are all very similar syntactically, so its not hard to move between them. Even the little bit of C that I know, while syntactically very different, is functionally similar to Perl in lots of ways. You define procedures, feed them input, grab their output, pass that to another procedure.
Even shell scripting is useful and gives you a good introduction to flow control, variables, boolean decisions, etc.
Rad wrote
on Feb 18
th
, 2009 at 11:50pm:
Have you heard of Django?
No. It looks interesting, but I think I'd rather learn Rails since I like Ruby better than Python.
IP Logged
MrMagoo
Übermensch
Offline
Resident Linux Guru
Posts: 1026
Phoenix, AZ (USA)
Back to top
Re: Learning Python
Reply #6 -
Feb 20
th
, 2009 at 3:13am
Ok, I finished this book. I'm glad to be done with it, if that says anything about its quality.
Chapter 10 actually gives a decent introduction to objects. Objects are one of the tougher things (I've always felt) to get your head around just because they are so steeped in terminology. The author does a good job at explaining them through an example that both shows their power and doesn't over complicate them.
Chapter 11 *finally* introduces lists and hashes (known as dictionaries in Python.) Most other books would introduce them along with any other data type back in chapter 2 or 3, and I think that would have made a lot more sense. He had to write some ugly code up to chapter 11 to get around the fact that he didn't introduce lists, and in doing so missed showing some good examples of the power of lists.
Chapter 12 is a few case studies in how to use objects and I think that he picks terrible examples. His examples problems don't lend themselves easily to objects, so he sort of contrives how objects could be use to solve the problem. It ends up making objects look clumsy when they can really be very elegant in the right situation.
Chapter 13 actually has some great discussions of recursion and sorting that finally touch on Computer Science rather than just programming in Python. I was fully engaged in his writing for once and found it thought-provoking. Unfortunately, he wraps up the chapter with a discussion of the Halting Problem.
http://en.wikipedia.org/wiki/Halting_problem
While I can reason in my own head why the Halting Problem would be impossible to solve, I think his example of why it is impossible uses completely inexplicable logic. The reason his example code wouldn't work is because it's bad, contrived, and illogical code - not because the problem is impossible to solve (although I do believe the problem is impossible to solve.)
Over all, I do not recommend this book. The writing isn't all that good, shows no creativity, and has a slightly condescending tone toward the reader (especially considering he was aiming at college freshmen.) I could possibly recommend this book to a high-schooler due to its slow pace and lack of advanced concepts. Anyone with any coding, computer, or math experience at (or beyond) a college level should look for a book that they can get more out of.
One possible use of this text if you happen to find it in the library is to learn some programing basics somewhere else, then read chapters 10 and 13 to glean the few gold nuggets this author has managed to produce there.
--------------------
On a related note, from the little bit I now know about Python, I'm not impressed with it as a language. Then again, it could be because of where I learned it.
IP Logged
Pages: 1
‹
Previous Topic
|
Next Topic
›
« Home
‹ Board
Top of this page
Forum Jump »
Home
» 10 most recent Posts
» 10 most recent Topics
Rad Community Technical Discussion Boards (Computer Hardware + PC Software)
- Norton Ghost 15, 14, 12, 10, 9, + Norton Save + Restore (NS+R)
- Norton Ghost 2003, Ghost v8.x + Ghost Solution Suite (GSS) Discussion Board
- Cloning Programs (Except Norton Ghost)
- NightOwl's Bootable CD/DVD
- PC Hardware + Software (except Cloning programs)
Rad Community Non-Technical Discussion Boards
- The Water Cooler ««
- YaBB Forum Software + Rad Web Site
Radified Community Forums
» Powered by
YaBB 2.4
!
YaBB
© 2000-2009. All Rights Reserved.