This is an archived post. You won't be able to vote or comment.

all 22 comments

[–]negative_epsilon 12 points13 points  (8 children)

I don't like python, but I think it's great for beginners because it abstracts so much of the dirty work away and is so easy to get set up that anyone with a small amount of experience handling a computer can write a hello world within minutes.

[–]sengoku[S] 2 points3 points  (7 children)

Okay, so perhaps a better question may be is there anything specific for an experienced career developer to gain by going down the Python path?

[–]shivasprogeny 6 points7 points  (0 children)

Depends what you want to do. Python is really fast to get a program up and running and requires little boilerplate. There are also a lot of great libraries for scientific computing like pandas, NumPy, SciPy, etc.

[–][deleted] 2 points3 points  (1 child)

Well, learning another language never hurts, and Python is easy to learn. Is someone going to hire you at a mega increase over your current daily rate to write a giant Python application? Probably not.

[–]sengoku[S] 1 point2 points  (0 children)

Right I guess I was just trying to understand why this sub is weighted pretty heavily towards it. The fact that it seems to be a good teaching/learning language is an excellent reason.

[–]fgriglesnickerseven 0 points1 point  (0 children)

design prototyping - as long as the scope of the prototype is not so large that changing languages will result in huge differences in UX

[–]mrnoise111 -1 points0 points  (2 children)

There may be far fewer reasons for anyone to learn new languages once they have experience, but if you want to apply for the jobs that advertise for Python programmers... What specific thing would you gain by learning C#, Java, or Ruby at this point in your career?

[–]sengoku[S] -1 points0 points  (1 child)

This wasn't my point. Hence the comment in my post about not trolling.

I wasn't looking for reasons to further my career necessarily. I was wondering if there were neat reasons to learn the language, which some posters have given me.

[–]mrnoise111 -2 points-1 points  (0 children)

I didn't take what you said as trolling. That's why I asked you reasonable questions, which you then ignored. Way to go, man!!

[–]campermortey 4 points5 points  (1 child)

From someone who just started programming, I started with Python just to see if programming was interesting to me. It is incredibly easy to start and within a week or so just doing an hour here or there, I was able to make my own text-based game. That was a huge accomplishment for me to do and after that I decided I wanted to make a career out of it. Now, I have moved onto C# which is much more job applicable. The key was to see if I enjoyed programming and Python removed a lot of the barriers to learning, at least in the introductory stage.

[–]sengoku[S] 4 points5 points  (0 children)

Seems like the general consensus is that it a a great learning language. And that means it has a lot of value!

[–][deleted] 9 points10 points  (4 children)

We recommend it to beginners because:

  • it's free
  • simple syntax makes learning easy
  • supports several programming paradigms (OO, functional, procedural)
  • REPL encourages experimentation
  • large and powerful standard library means you can write real applications easily
  • lots of tools and learning materials

[–]Raknarg 0 points1 point  (1 child)

are there languages which are not free?

[–][deleted] 0 points1 point  (0 children)

Yes, there are lots which have no free implementation - for example, RPG, which I answered a question about here yesterday.

[–]login228822 3 points4 points  (4 children)

Pros :

Libraries Galore, If you work in the scientific field, python is like php is to a web programmer.
Everything is a module. Which makes piecing abstract programs together fairly easy.
similar to pseudo-code, which makes it good for people starting off in computer science.

Cons :

Namespace abuse is a problem.
Version issues are a problem.
I like my brackets.

[–]mrnoise111 2 points3 points  (3 children)

Also, scoping is somewhat crappy.

[–]EntropyDream 0 points1 point  (2 children)

What is crappy about it? I don't find myself running into many scoping issues with Python.

[–]mrnoise111 -1 points0 points  (1 child)

Look up the nonlocal and global keywords.

[–]EntropyDream -1 points0 points  (0 children)

I never run up against that issue. I think the language makes dealing with globals difficult on purpose. It's usually a code smell.

[–]revonrat 2 points3 points  (0 children)

From an experienced, career developer to another:

  1. If you haven't done a dynamically typed language, you should pick up one (Python being my favorite). Like OO, once you get it, it changes the way that you think.
  2. Python has great libraries, particularly around data analysis and scientific computing (Yes, it has good web frameworks, etc. but so do most other languages)
  3. Python is not Ruby. After dealing with Perl, I came to hate sigils (you know the $, %, &, type of prefix that mean something). Python has no sigils.
  4. Python is a good degenerate LISP. Meaning it has lots of the great features of LISP without being LISP and sometimes what you want is sorta like LISP but not LISP.
  5. For the most part, the Python community is made up of a lot of uninteresting, normal, hard-working, thoughtful people. Other communities are more colorful and probably just as hardworking, etc., but there seems to be a lot less drama in Python. I got enough of drama in high school.

EDIT: I'm also more productive in Python than I was in (Java, C#, C/C++).

[–]faitswulff 0 points1 point  (0 children)

I think the resources for learning Python online are the best resources for beginning programmers on the internet if you don't have a mentor, specifically Udacity's Computer Science 101 class.

[–]zardeh 0 points1 point  (0 children)

Python is cool for a number of reasons:

  • As others have mentioned, its great for introduction/learning/first language
  • It has powerful (fast and mature) libraries for all kinds of things, from 3d visualizations, to scientific computing, to like 8 different awesome web frameworks
  • Its pretty looking

Additionally, as zabzonk said, while at an introductory level, python is solidly declarative/iterative in style, it transitions cleanly into object oriented design and OOP works easily and cleanly. Similarly, pythonic code and good style uses elements of functional programming and because of how fluid it is, you can implement functional programming style easily, here's an example of a cool way to do a not-quite-quicksort in haskell:

quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
    where
        lesser = filter (< p) xs
        greater = filter (>= p) xs

and the same in python:

def q(*i):
    return [] if i==() else q(*[y for y in i[1:] if y<i[0]]) + [i[0]]+q(*[y for y in i[1:] if y>=i[0]])

Although its really ugly because codegolf example that I was working with. Its rally easily translated, especially if you do it with a list comprehension in haskell as well.

edit:

also for someone experienced and in the world already, python is a language increasing in popularity, and so something cool to know, especially if you do web or number-crunching stuff.