Python, is it worth learning

From Visual Basic to GNU C, this is the place to talk programming.

Moderators: SecretSquirrel, just brew it!

Python, is it worth learning

Postposted on Fri Jan 23, 2009 7:36 am

I'm doing Unit 3 and 4 software development this year at school and i'd like to know if its actually "worth" my time putting the effort into this and learning it? Will having this kind of experience actually get me anywhere? Thanks, this is my first programming language I'm going to learn, what are the uses of Python and what could be made with it?

Also while on the programming subject, what language could be made to make a program, that could overlay ASCII characters over a video stream? Thanks.
Image
AMD Damo
Gerbil Jedi
 
Posts: 1655
Joined: Wed Jun 07, 2006 3:35 am
Location: Australia, the backwater of all things Technology!

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 8:18 am

I'm just trying to find the time to start learning Python. I've got a progammer mate who swears by it, though obviously I can't make a personal recomendation.

As I understand it Python is most useful for complex scripting jobs and simple applications (by that I mean stuff where you're not doing a lot of number crunching in your code, though you can call C/C++ functions for that)

Lots of applications use Python as an internal scripting language too, I'm sure someone knows a long list.
Fernando!
Your mother ate my dog!
cheesyking
Minister of Gerbil Affairs
 
Posts: 2253
Joined: Sun Jan 25, 2004 7:52 am
Location: That London (or so I'm told)

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 9:07 am

cheesyking wrote:I'm just trying to find the time to start learning Python. I've got a progammer mate who swears by it, though obviously I can't make a personal recomendation.

As I understand it Python is most useful for complex scripting jobs and simple applications (by that I mean stuff where you're not doing a lot of number crunching in your code, though you can call C/C++ functions for that)

Lots of applications use Python as an internal scripting language too, I'm sure someone knows a long list.


Righto, thanks much :)
Image
AMD Damo
Gerbil Jedi
 
Posts: 1655
Joined: Wed Jun 07, 2006 3:35 am
Location: Australia, the backwater of all things Technology!

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 9:09 am

Almost any "major" programming language is a good thing to learn. The more languages you "speak" it is usually better. Not only you can put that on the resume, but the more variations you see how each language implements a certain feature, you can come to appreciate how people solve problems in general.

Getting "stuck" in one language may force you to be stuck in thinking only 1 or 2 ways of solving a problem. That will limit you in your career. Granted you don't have to like the different languages that you learn, but at least you should "know enough to be dangerous". ;)
Image
The Model M is not for the faint of heart. You either like them or hate them.

Gerbils unite! Fold for UnitedGerbilNation, team 2630.
Flying Fox
Gerbil God
 
Posts: 24360
Joined: Mon May 24, 2004 2:19 am

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 10:00 am

There is no point in being good at one particular language. "Being a programmer" is generic, all you need to be good at is logic. Once you have fleshed out your problem, flesh out the best way to solve it, and then pick a language that best fits your need. Where I work, this happens all the time. Some of the stuff I've written uses a mix of up to 4 different languages, all in the same application. Pure logic is really all you need, the language doesn't matter. I used to think I "needed to be good at C++ or I couldn't be a good programmer" and once I realized that wasn't true, I became a programming Jedi. Good luck!
*** Shuttle X48 / 4 GB Corsair PC6400 / C2D E8400 @ 3.6 Ghz / Radeon 5850 / Caviar 750GB / Windows 7 Pro 64-bit ***
Fragnificent
Gerbil Elite
 
Posts: 955
Joined: Tue Feb 05, 2008 4:28 pm

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 10:12 am

I agree getting exposed to lots of "major" languages is a good thing. This would include C#, Java, C++, perl, PHP, Python, and Ruby.

To answer your specific question, yes, there are a ton of places where Python is used. It's an exceptionally practical yet elegant (Ruby would reverse those words) object-oriented scripting language. Python is my first choice when it comes to scripting.

If you do a lot of script writing, the best environment there is for doing is is Komodo:
Komodo Edit (free): http://www.activestate.com/komodo_edit/
Komodo IDE (not free): http://www.activestate.com/komodo/
Buub
Maximum Gerbil
Silver subscriber
 
 
Posts: 4198
Joined: Sat Nov 09, 2002 11:59 pm
Location: Seattle, WA

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 11:48 am

Buub wrote:Python is my first choice when it comes to scripting.
Me too.

I'd say it's definitely worth learning. The nice thing about Python is that it is very expressive and succinct ("executable pseudocode" is one nickname). That, coupled with a large standard library, allows you to be productive very quickly. If I need to accomplish something, I like how I can just express it in a straightforward way and prototype very rapidly in Python.

I like xkcd's take on it:
Image
bitvector
Grand Gerbil Poohbah
 
Posts: 3234
Joined: Wed Jun 22, 2005 4:39 pm
Location: Mountain View, CA

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 1:21 pm

Fragnificent wrote:"Being a programmer" is generic, all you need to be good at is logic.
It's not just straight logic (i.e. Boolean Logic), an awareness of how stuff is stored in memory is also needed. In some languages (e.g. Assembler, C) it's absolutely critical, in others (e.g. Java) it will stop your application from hogging all the memory on the box and performing like molasses.
notfred
Grand Gerbil Poohbah
 
Posts: 3726
Joined: Tue Aug 10, 2004 10:10 am
Location: Ottawa, Canada

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 1:33 pm

IIRC Civilization IV is built entirely with Python.

If Python proves too hard as a first language, try Processing.
2014 21" iMac w Intel Iris Pro
ssidbroadcast
Graphmaster Gerbil
Silver subscriber
 
 
Posts: 1399
Joined: Sun Jul 08, 2007 10:42 pm
Location: Seattle, WA

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 6:24 pm

I just logged onto my distance ed course early this morning and the whole first semester (weeks 1-8) has nothing on python at all, its a bit above general knowledge on computer hardware but it demands a lot of work, not like IT Applications where i can sit back, relax and do nothing and ace the exam with an A. But I read the first chapter of python on this book and i like it already (Yes i did the hello world thing too). This year will be an interesting one.
Image
AMD Damo
Gerbil Jedi
 
Posts: 1655
Joined: Wed Jun 07, 2006 3:35 am
Location: Australia, the backwater of all things Technology!

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 7:17 pm

I personally enjoy PERL. I use it for it more traditional purposes and even some more advanced ones. I often use it to parse large text files, logs etc. I've also created a PERL program that interfaces a badge reader via Ethernet and controls entry into a server room via magnetic lock also controlled via an Ethernet relay controller. This was kind of an experiment that worked surprisingly well. This same program uses MySQL for users/badges and all its logging etc. I'm still surprised at all the neat stuff you can do with PERL.

I'm told Python is PERL with all annoyances fixed... alas I've not bothered to play with Python, yet.
equivicus
Gerbil First Class
 
Posts: 117
Joined: Mon Jan 02, 2006 1:57 pm
Location: Houston, Texas

Re: Python, is it worth learning

Postposted on Fri Jan 23, 2009 8:54 pm

What exactly is the kind of "Logic" i need to be able to use? If its the same one for maths, I'm a bit on the under average side in that area.
Image
AMD Damo
Gerbil Jedi
 
Posts: 1655
Joined: Wed Jun 07, 2006 3:35 am
Location: Australia, the backwater of all things Technology!

Re: Python, is it worth learning

Postposted on Sat Jan 24, 2009 10:12 pm

There is no point in being good at one particular language. "Being a programmer" is generic, all you need to be good at is logic.


Not necessary math based. If you've never done any type of programming I would recommend reading up on programming logic in general. Years ago I took a course in college that was just that. We didn't do any programming but studied logic in general... we did create a bunch of flow charts, decision trees etc.

In essence what Fragnificent says is true. Once you've got a basis for logic you apply this way of thinking to programming.
equivicus
Gerbil First Class
 
Posts: 117
Joined: Mon Jan 02, 2006 1:57 pm
Location: Houston, Texas

Re: Python, is it worth learning

Postposted on Sun Jan 25, 2009 7:56 am

The question of "Is Python worth learning?" depends on a couple of things: What languages do you know so far? How many are you planning to learn and how much time do you have? Do you have a specific need to learn Python?

My personal preferences for scripting languages are Ruby, Perl, and bash. I personally don't like Python's syntax and it doesn't like the way I do indents. So we don't get along. But I think Perl is more intuitive for hacking things out, and Ruby has a more consistent object structure and is more powerful. So Python for me sits in a middle ground that I'd never choose it to solve a problem. Again, that's personal preference. There are many people who choose Python and prefer it.

That said, there are many things that are already written in Python that may need to be tweaked, Zope and Plone being two of them. So knowing enough Python to hack existing code is useful.

I would definitely learn either C++ or Assembler, if you don't know them. Assembler is generally a pain in the butt for programming anything real, but knowing it will give you a deeper understanding of how things work and why they work that way. C++ has the power of OO with the speed of a low level language, and is sometimes the only good way to solve a problem. For example, right now at work I'm writing a multithreaded decryption module, where I need to control how and where things get stored in memory (for security reasons). Speed in this application is also completely critical, all the way down to minimizing the number of memory copies. C++ in this case is the only reasonable option. Well, I could have chosen assembler, but that's crazy talk.

Then I'd learn either Ruby, Java, or C#. Those are the 3 languages, in my opinion, that have the cleanest and most consistent implementation of Object Orientation. I would try to get your head deeply around OO, and make that your primary way of solving programming problems. If you solve problems procedurally and then try to convert them to OO, it'll never quite click. This is of course a point of contention in programming circles, as there are great procedural programmers. But my personal preference is to solve things by thinking about objects.

On the topic of programming logic, I strongly disagree about learning flowcharting. Flowcharts encourage procedural thinking instead of OO, and are considered "quaint" among most professional programmers. I'd learn UML instead. Start with class diagrams and then sequence diagrams. Sequence diagrams are the OO equivalent of a flowchart.

Oh, and absolutely positively take a data structures class. Learn about powers of O, and recursive trees, and all that happy stuff. It'll make you a better programmer. The other thing to learn is Design Patterns. The "Gang of Four" book is the classic reference for them, but there's a book called "Head First Design Patterns" that I think is much easier to read and understand. "Design Patterns in Ruby" is a great one also.

I'd like to emphasize one more time that this is my personal opinion, though I like to think it's an educated one.

.02,

Harley.
barleyguy
Gerbil
 
Posts: 16
Joined: Sun Jan 25, 2009 7:27 am

Re: Python, is it worth learning

Postposted on Sun Jan 25, 2009 2:47 pm

As others have said, whether Python is worth learning depends almost completely upon what you want to do. If you've ever programmed in other languages, "learning" Python can take about 3 hours (though obviously knowing what packages exist will take a lot longer). If you only want to learn one scripting language; I'd make it Python -- while I agree with barley that some of the syntax is obnoxious; it's generally obnoxious in ways that will force you to write better, cleaner code. Plus it's a highly useful, widely-deployed language -- it's one of Google's main 3 (along with Java and C++); as somebody else mentioned it's used extensively in Civ4 (I believe for AI and other unit-level behavioral stuff, though I'm not sure exactly); it's also popular in many web-development environments.

One of the things that recommends Python is that it can fairly easily be adapted into object-oriented programming, procedural programming, or functional programming. It won't necessarily be clean to do stuff functionally, but it's readable and if you want to learn all the programming paradigms in only one language; Python is the language to use.
Core i7 920, 3x2GB Corsair DDR3 1600, 80GB X25-M, 1TB WD Caviar Black, MSI X58 Pro-E, Radeon 4890, Cooler Master iGreen 600, Antec P183, opticals
SNM
Emperor Gerbilius I
 
Posts: 6206
Joined: Fri Dec 30, 2005 10:37 am

Re: Python, is it worth learning

Postposted on Sun Jan 25, 2009 6:14 pm

barleyguy wrote:My personal preferences for scripting languages are Ruby, Perl, and bash. I personally don't like Python's syntax and it doesn't like the way I do indents. So we don't get along. But I think Perl is more intuitive for hacking things out, and Ruby has a more consistent object structure and is more powerful. So Python for me sits in a middle ground that I'd never choose it to solve a problem. Again, that's personal preference. There are many people who choose Python and prefer it.


For many people, that's what it comes down to -- what you like best. It's a legitimate statement to say "I don't like the way Python does things". But that doesn't make it any less useful. Personally, I hate the way perl does things, unless it's something simple.

That's my primary complaint with perl -- it does simple things really well, but once you start getting complex, it's gotten so bastardized over the years trying to do things it wasn't intended for, that it becomes excessively hard to follow. Perl did not extend its paradigm well -- it should stick to doing simple regular expression parsing of files.

As far as Ruby vs. Python (a religious debate flush with possibilities on both sides of the aisle), I think you have over-simplified things. Both Ruby and Python are languages that were designed from the very first release to be powerful and object-oriented. Python is not "half way between" in any way if you want to discuss capabilities. They wouldn't be able to do things like be the primary build environment for boost jam (a scripting language chosen by advanced C++ programmers to build their libraries), Komodo, or that sort of thing if it were limited in capabilities.

Here's a more realistic take: Ruby is more "pure" object-oriented, taking the paradigm to a high level, and in that way, very elegant. At the same time, it's a little hard to figure out until you really get into its subtleties. Its syntax is a bit inscrutable at times because of its power, sort of like Lisp. It's a great language for those who like to sit back and admire their code. :-)

Python is more pragmatic. It's every bit as object-oriented as Ruby, but it doesn't take the subtle paradigms as far. For that reason, it's easier to get real work done in more quickly. It also executes code faster, on average, than Ruby. Because of its pragmatic nature, it has a native interpreter inside Java (Jython) that can run Python script without leaving the JVM. There is also at least one binary compiler for Python that can compile code that runs close to the speed of C++. Python is for those who don't have time to sit back and admire their code. :-)

The above is why I made the statement, earlier, "[Python is] an exceptionally practical yet elegant (Ruby would reverse those words) object-oriented scripting language."

IMHO...
Buub
Maximum Gerbil
Silver subscriber
 
 
Posts: 4198
Joined: Sat Nov 09, 2002 11:59 pm
Location: Seattle, WA

Re: Python, is it worth learning

Postposted on Mon Jan 26, 2009 12:17 am

Ruby to me is like design by committee. Everybody from every language camp come and say "let's put in our way of doing this thing". So you end up with like a million ways to do one thing, making the code very hard to read if they were written in "different styles". There are so many conventions that have roots in almost any language this is like a big pile of mess.

But of course, the OO and dynamicism is nice, but it certainly is not easy to get into.

As for the OP's case, his course requires him to learn Python. I don't think there is any way around that, no?
Image
The Model M is not for the faint of heart. You either like them or hate them.

Gerbils unite! Fold for UnitedGerbilNation, team 2630.
Flying Fox
Gerbil God
 
Posts: 24360
Joined: Mon May 24, 2004 2:19 am

Re: Python, is it worth learning

Postposted on Mon Jan 26, 2009 1:38 am

Flying Fox wrote:Ruby to me is like design by committee. Everybody from every language camp come and say "let's put in our way of doing this thing". So you end up with like a million ways to do one thing, making the code very hard to read if they were written in "different styles". There are so many conventions that have roots in almost any language this is like a big pile of mess.

I think that really comes from the rather heavy influence Perl has had on Ruby; Perl has the same patchwork feel. It also has the same problems of people working in their own balkanized dialects (which are practically disjoint and mutually unintelligible). Also, the multitude of different ways to accomplish the same thing appeals to hipsters who want to be artistic and emo rather than craft straightforward code. From that perspective, Python's goal of having "one obvious way to accomplish X" probably seems downright fascist.
bitvector
Grand Gerbil Poohbah
 
Posts: 3234
Joined: Wed Jun 22, 2005 4:39 pm
Location: Mountain View, CA

Re: Python, is it worth learning

Postposted on Mon Jan 26, 2009 2:52 am

Yes, I believe Python is a very worthwhile language to have in your arsenal of tools. It enables you to solve a wide range of problems quickly, because there are a huge number of libraries available for many diverse tasks. I started learning Python about 3 years ago, after many years (decades, actually!) working mostly in C/C++. This old dog has learned a few new tricks... :wink:

Performance of Python apps won't be quite up to the level of languages that compile directly to machine code like C/C++, but for most purposes it is plenty fast enough. And you can call C/C++ functions from it to do "heavy lifting", if needed.

Regarding the question of how to overlay text on a video stream... well, if you are talking about doing it frame-by-frame in real-time, you probably need a compiled language like C or C++. I've written code that does exactly that (at my day job); we used C and OpenGL.
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37635
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 5:21 am

just brew it! wrote:Yes, I believe Python is a very worthwhile language to have in your arsenal of tools. It enables you to solve a wide range of problems quickly, because there are a huge number of libraries available for many diverse tasks. I started learning Python about 3 years ago, after many years (decades, actually!) working mostly in C/C++. This old dog has learned a few new tricks... :wink:

Performance of Python apps won't be quite up to the level of languages that compile directly to machine code like C/C++, but for most purposes it is plenty fast enough. And you can call C/C++ functions from it to do "heavy lifting", if needed.

Regarding the question of how to overlay text on a video stream... well, if you are talking about doing it frame-by-frame in real-time, you probably need a compiled language like C or C++. I've written code that does exactly that (at my day job); we used C and OpenGL.


It'd have to be done in real time, as its important information (live betting odds and stats for Horse racing) that goes out over TVs all over the course.

To clear things up for everyone, Python is the language I have to learn for my course and its my first, I have no experience in programming at all. The reason why i took the course was to keep my options open, so far these are my career paths:

A) IT (some branch as its a wide category)
B) Electrical
C) Current job but full time if boss will take me on.
D) Dole Bludger (Lol, maybe not).

Also, whats a "MCSE" and where does that get you? Microsoft Certified Systems Engineer or something like that it stands for, but what type of work do they do? Is it recognised world wide? Thinking I might want to ditch Australia one day and migrate to another country like the USA one day, Australia is too..... out of touch with technology for me, not likely but if I want a good IT job, Australia isn't too great for them.
Image
AMD Damo
Gerbil Jedi
 
Posts: 1655
Joined: Wed Jun 07, 2006 3:35 am
Location: Australia, the backwater of all things Technology!

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 8:32 am

AMD Damo wrote:Also, whats a "MCSE" and where does that get you? Microsoft Certified Systems Engineer or something like that it stands for, but what type of work do they do? Is it recognised world wide? Thinking I might want to ditch Australia one day and migrate to another country like the USA one day, Australia is too..... out of touch with technology for me, not likely but if I want a good IT job, Australia isn't too great for them.

The forum does have search. ;) A couple that I have found:
viewtopic.php?f=1&t=44738
viewtopic.php?f=1&t=50697
Image
The Model M is not for the faint of heart. You either like them or hate them.

Gerbils unite! Fold for UnitedGerbilNation, team 2630.
Flying Fox
Gerbil God
 
Posts: 24360
Joined: Mon May 24, 2004 2:19 am

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 9:39 am

AMD Damo wrote:
just brew it! wrote:Yes, I believe Python is a very worthwhile language to have in your arsenal of tools. It enables you to solve a wide range of problems quickly, because there are a huge number of libraries available for many diverse tasks. I started learning Python about 3 years ago, after many years (decades, actually!) working mostly in C/C++. This old dog has learned a few new tricks... :wink:

Performance of Python apps won't be quite up to the level of languages that compile directly to machine code like C/C++, but for most purposes it is plenty fast enough. And you can call C/C++ functions from it to do "heavy lifting", if needed.

Regarding the question of how to overlay text on a video stream... well, if you are talking about doing it frame-by-frame in real-time, you probably need a compiled language like C or C++. I've written code that does exactly that (at my day job); we used C and OpenGL.

A) IT (some branch as its a wide category)

python is useful here as it's a lot less fluffy than other languages (syntactically speaking) so if you need to write a quick hack (esp. in unix derivs) it's just easy to pick up and code with no excessive compiling etc, and python is pretty widespread on nixboxes by now. That or perl are good options.

MSCE gets laughed at by some, and will get you interviews by others.
My Dreamcast PC thread
Main Rig: FX-6100 / Radeon 6950 / Velociraptor HD because old school rotations
pikaporeon
Graphmaster Gerbil
 
Posts: 1312
Joined: Mon Nov 19, 2007 4:42 pm
Location: Mississauga, ON, Canada.

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 9:42 am

AMD Damo wrote:Thinking I might want to ditch Australia one day and migrate to another country like the USA one day, Australia is too..... out of touch with technology for me, not likely but if I want a good IT job, Australia isn't too great for them.

Well... yes, it's true that there's probably more going on here tech-wise. But when the economy tanks (like now), you're competing with a huge pool of laid-off tech workers for the remaining jobs. When Lucent started circling the drain in the aftermath of the dot-bomb crash (around 7 years ago), they literally dumped thousands of people onto the job market in the Chicago area alone. The big Motorola facility near here also has a reputation for "binge and purge" staffing practices.

So it's a double-edged sword.
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37635
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 10:16 am

I sort of need to disagree with some of you guys on some issues.

First and foremost learning logic is not enough. Learning discrete math is super important but you also need machine organization as another poster mentioned. In this day and age, where processors are so much faster than RAM, if you don't understand the cache hierarchy and how virtual addressing REALLY works (i.e. not the simplistic description that is often given) then you don't really understand how to write optimal software.

Secondly, and more importantly, I do not understand why some are recommending learning so many languages that are so similar. I agree that learning many languages is a good thing but I don't see much point in learning 3 or 4 languages that are essentially the same thing when viewed from a high level.

For example some have recommended learning ruby and perl. But ruby shares so much in common with perl that I don't see the point. Or learning Java and C# and C++. They are so similar that one would suffice.

From a pedagogical perspective I would recommend:
1. learning a strongly typed, statically typed language such as C++,Java, or C#.
I would recommend learning C++ as you will learning jsut about everything you would learn from Java or C#, plus you would learn multiple inheritance, operator overloading, and template meta-programming. The only thing that I can think of that you really miss out on by not learning Java/C# is how best to design exportable interfaces in a garbage collected environment.

2. learn a dynamically typed, procedural-oo-hybrid language like python or ruby or ocaml. I would say python or ocaml are most useful. As popular as ruby is there really is'nt anything truly special in the language. Many people like the syntax but that is about all it has going for it. ocaml is rarely used, but it is fast and offers the ability to do functional, procedural or oo proraming paradigms. python is useful just because so many other programmers use it and have written vast amounts of libraries. F# is another possibility.

3. learn a dynamically typed functional language such as Lisp or Scheme. I recommend Lisp personally. Fully grasping the power of Lisp macros is one of the most important but often missed programming lessons. Yes, lisp has horrid syntax and is very hard to program in at first because it is so alien, but keep at it until you can appreciate why lisp macros are still to this day and age considered on of the most powerful programming concepts ever created. Of course once you "get it" that is really all you need to learn from Lisp. I wish some other language would pick up this feature as it is a pain to learn Lisp just to learn Lisp macro programming but it is very worth the effort none the less.

4. Finally learn a strongly typed functional language like haskell. haskell can be a real pain to learn mostly because the terminology used in the language is mathematical in nature as opposed to comptuer science oriented. The concepts are all the same they just use different (and arguably more correct) words. Yes haskell has a very difficult learning curve but in all honesty nothing else out there will make you a better programmer in any environment than learning haskell.

thats really about it. there are some other languages that are worth looking at but I would not "learn" them, just look at how they do some interesting things. Like Earlang and its generic server model, or Eiffel and its strong design buy contract approach. Or if you do alot of C++ programming look at the Resolve C++ discipline.

Hope this helps,
Spookware
spookware
Gerbil In Training
 
Posts: 2
Joined: Mon Jan 26, 2009 2:04 pm

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 1:18 pm

spookware wrote:I sort of need to disagree with some of you guys on some issues.
I think you're missing the point. He was asking whether Python is a reasonably practical language and a good place to start investing effort. The multiple language suggestions (from some posters) are potential alternatives. I agree that learning a bunch of different languages is good for depth, but you have to start somewhere and it makes sense to start with a good general purpose tool if you want to be productive quickly. It's like someone wanting to learn some basic self-defense skills and you telling them they must master four different martial arts from different cultures.

spookware wrote:2. learn a dynamically typed, procedural-oo-hybrid language like python or ruby or ocaml.
OCaml is not dynamically typed. It has strong static typing with inference.
bitvector
Grand Gerbil Poohbah
 
Posts: 3234
Joined: Wed Jun 22, 2005 4:39 pm
Location: Mountain View, CA

Re: Python, is it worth learning

Postposted on Tue Jan 27, 2009 1:42 pm

spookware wrote:First and foremost learning logic is not enough. Learning discrete math is super important but you also need machine organization as another poster mentioned. In this day and age, where processors are so much faster than RAM, if you don't understand the cache hierarchy and how virtual addressing REALLY works (i.e. not the simplistic description that is often given) then you don't really understand how to write optimal software.

On the flip side of this, I would argue that you shouldn't need to understand how the memory subsystem works, unless you are working in one of a few specific areas (OS kernel/device drivers, embedded code, or high performance computation to name three). Understanding the cache architecture of your CPU is completely useless if you're trying to write a Python script or a SQL query. :wink:

That said, I do agree with your sentiment that a lot of people working in the software field do not understand the underlying hardware well enough.
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37635
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Python, is it worth learning

Postposted on Wed Jun 24, 2009 5:54 pm

Ruby and Python are two languages than I am learning, and they both make me happy when programming them in comparison to objective C or Java. If you have any previous programming experience whatsoever, read diving into python. The book is totally free (http://diveintopython.org/), or you can buy a print copy.
FF on DDR3 with a Q9550
Flying Fox wrote:Can we have some of what he was smoking? X48? 2x16 SLI? Want some more e-penis with that? How about just get the Nvidia triple SLI board with a water block on the 3xGPUs+chipset+CPU?
swiecki
Gerbil
 
Posts: 67
Joined: Mon Jun 15, 2009 10:15 pm
Location: Dining in the Reagan room at the restaurant at the end of the universe.


Return to Developer's Den

Who is online

Users browsing this forum: No registered users and 2 guests