Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Python Programming

How Much Python Do You Need To Know To Be Useful? 263

Nerval's Lobster writes: Since Python is a general-purpose language, it finds its way into a whole lot of different uses and industries. That means the industry in which you work has a way of determining what you actually need to know in terms of the language, as developer Jeff Cogswell explains in a new Dice piece. For example, if you're hired to write apps that interact with operating systems and monitor devices, you might not need to know how to use the Python modules for scientific and numerical programming. In a similar fashion, if you're hired to write Python code that interacts with a MySQL database, then you won't need to master how it works with CouchDB. The question is, how much do you need to know about Python's basics? Cogswell suggests there are three basic levels to learning Python: Learn the core language itself, such as the syntax and basic types (and the difference between Python 2 and Python 3); learn the commonly used modules, and familiarize yourself with other modules; learn the bigger picture of software development with Python, such as including Python in a build process, using the pip package manager, and so on. But is that enough?
This discussion has been archived. No new comments can be posted.

How Much Python Do You Need To Know To Be Useful?

Comments Filter:
  • by hypergreatthing ( 254983 ) on Thursday June 11, 2015 @01:27PM (#49893191)

    The answer has to be 0 right?

    • Re:trick question (Score:5, Interesting)

      by Anonymous Coward on Thursday June 11, 2015 @01:39PM (#49893317)

      I know 0 hours worth of python and still was the only person to present an all python solution at a job interview asking people to solve a problem in python.

      I think zero is close to the amount needed to be competitive with those that *only* know python.

    • by TechyImmigrant ( 175943 ) on Thursday June 11, 2015 @01:58PM (#49893509) Homepage Journal

      The answer has to be 0 right?

      No. The answer would be : None

    • by sinrakin ( 782827 ) on Thursday June 11, 2015 @02:17PM (#49893645)
      If you need to know it, you need to know it. If I hired someone who didn't know some piece of Python that was needed, I'd totally sit his ass down and make him spend the 5 minutes it would take to learn it. No excuses.
    • I'm thinking this is one of those Google brain-teaser questions. The one of us that comes up with the most creative answer to this impossible question may get a job offer!

      I'm going to go with "As much as you need to build an app that teaches you any other computer language."

    • by Fallen Kell ( 165468 ) on Thursday June 11, 2015 @04:13PM (#49894453)
      I mean seriously, you need to at least know the Holy Grail to say that you know Python...
    • The answer has to be 0 right?

      Not if you're going to program in Python. But "less than you think" would be a pretty good answer. You're better off knowing Math, because you can always learn Python as you need it. And someone who knows Python and a lot of Math has a much better career path than someone who knows a lot of Python and a little Math. I'm shocked at how much money an entry level Python programmer who's done a masters in say, linear algebra will have thrown at him.

    • by telchine ( 719345 ) on Thursday June 11, 2015 @04:28PM (#49894535)

      I find that knowing the majority of the Dead Parrot sketch and the main chorus of the Lumberjack song gets me through fine :)

    • by sconeu ( 64226 )

      I'd go with the Argument Clinic, and the Bridge of Death, myself...

  • by plover ( 150551 ) on Thursday June 11, 2015 @01:29PM (#49893215) Homepage Journal

    I know C++. To me, anyone who knows python but not C++ is half useless. If you only know Java, you're 25% useless. And if you know only Visual Basic, you're 125% useless.

    • by ADRA ( 37398 ) on Thursday June 11, 2015 @01:46PM (#49893403)

      Spoken by a true pragmatist. I'm glad you're not my hiring manager (though sadly there are many who work under the same broken assumptions). I hate programming languages as much as the next zealot, sure. To assume a systemic bias against those with a specific set of language skills (disregarding experience/domain knowledge/people management/customer interaction/raw productivity/hipster hat collections) may be a little short-sided to the extreme.

      • Yeah, I hate it when jobs advertise for X experience in Y language, rather than just asking for a creative, analytical thinker with development experience.

        Ok, I'm being partly sarcastic, but in an ideal world, I'd be serious.

      • Re: (Score:2, Insightful)

        by Anonymous Coward

        But the assumptions aren't necessarily broken.

        There are some very important concepts that are handled "under the covers" by languages such as Java and VB. (Garbage collection is one such concept.) I strongly believe that thoroughly understanding those concepts helps promote more disciplined code.

        If you "only" know VB and cannot write competent C++ code without significant (re)education, then I will not be confident that the VB code you write is worth much in the first place. (Sure, maybe it is quite good

      • by Livius ( 318358 )

        systemic bias against those with a specific set of... skills

        That's every job interview.

    • Did you see "Ex Machina"? They show code on the computer screen, and it is obviously python. So, apparently, python can be used to program hot android chicks. Of course, there were some flaws in the program, but they were fundamental design flaws rather than due to any limitation in the language.

    • by tomhath ( 637240 ) on Thursday June 11, 2015 @02:58PM (#49893957)
      Yea, reminds me of the time a co-worker wrote a little utility in C++. It was only a few dozen lines and took him less than an hour to get it working; I did the same thing in one line of awk in less than a minute.
  • by xaosflux ( 917784 ) on Thursday June 11, 2015 @01:31PM (#49893237) Homepage

    Holy Grail;
    Dead Parrot;
    Spam;
    Ministry of Silly Walks;
    and of course Spanish Inquisition.

  • by Anonymous Coward on Thursday June 11, 2015 @01:36PM (#49893289)

    So here's the link with the campaign tracking [dice.com] removed.

    It looks like Dice is going to run a series of non-articles detailing what we should know, and have started to embed shit like "?CMPID=AF_SD_UP_JS_AV_OG_DNA_" this in their self-promoting URLs.

    Click bait is click bait. Especially when done by sleazy assholes like Dice.

    Fuck you, dicebags.

    • by iONiUM ( 530420 )

      Almost all of the submitter's [slashdot.org] posts are articles which have the first link as dice.com with a campaign ad, and then other links to non-news sites (such as in this one with 3 links to python.org).

      How is this okay?

    • The millennials doing recruiting now days don't even know Dice ever existed, they must be hurting. Then again their shitty clickbait articles force my sympathy filter to off.

    • Fuck you, dicebags

      Please don't slander the noble dicebag [luckymojo.com] by associating it with the scum who ruined Slashdot and Sourceforge.

  • How Much? (Score:5, Insightful)

    by MagickalMyst ( 1003128 ) on Thursday June 11, 2015 @01:40PM (#49893333)
    None, if you use Perl :) I write code to monitor hardware devices, interact with SQL, and output to HTML pages. Perl does it all!

    That said, I think learning the basics of any language is important no matter what type of software you will be coding.

    Programming languages are like tools; use the best tool to get the job done.

    Assembly is a wonderful language if you are writing low level system software; not too useful for SQL databases. C++ is great for system interaction and fast apps - but I probably wouldn't use it for front end UI. Javascript is great for web pages but not for device drivers.

    Visual Basic is good for.. um.. nothing.
  • A Similar Question (Score:5, Insightful)

    by raftpeople ( 844215 ) on Thursday June 11, 2015 @01:43PM (#49893363)
    How much of a summary do you need to read to know you should skip that one?
    • Or: How much of the title do you need to read in order to guess it's an article from dice?

      • by ArcadeMan ( 2766669 ) on Thursday June 11, 2015 @03:29PM (#49894183)

        Question: How much of the title do you need to read in order to guess it's an article from dice?

        Answer: None at all. If you're on Slashdot, it's a given.

        By a strange coincidence, "None at all" is exactly how much suspicion the ape descendant Arthur Dent had that one of his closest friends was not descended from an ape, but was in fact from a small planet somewhere in the vicinity of Betelgeuse. Arthur Dent's failure to suspect this reflects the care with which his friend blended himself into human society, after a fairly shaky start. When he first arrived 15 years ago, the minimal research he had done suggested to him that the name Ford Prefect would be nicely inconspicuous. He will enter our story in 30 seconds and say, "Hello, Arthur."

        The ape descendant will greet him in return but, in deference to a million years of human evolution, he will not attempt to pick fleas off him. Earthmen are not proud of their ancestors and never invite them round to dinner.

    • Those three points would be steps in learning any language too; next week they can s/Python/Objective C/g then s/Python/Go/g .....

    • If the title is obviously confusing and/or misleading, read the summary before commenting.
  • Tier 2 support might get by with being able to read and diagnose problems, them pass them on to dev. Junior programmers might need bare minimum of syntax and structure, the heavy lifting being taken care of by the architecture team: anything they can't handle goes to the senior developers. Architects and thought leaders may need to at least be familiar with every major library, and experts or even contributors to the ones critical to their systems in order to be useful in their roles. Improperly scoped questions are guaranteed to generate non-productive discussion as people are arguing from their own positions.
    • It's like shell programming. If you know how to use "&&" or "||" you can make use of that without knowing anything else. It's all incremental. Python is not used only for major software development, so you need to know nothing at all about "pip" or the extra modules to make use of it. Just like perl, you can be a highly experienced Perl user and never once look at the CPAN stuff.

      Like any scripting language, they're initially designed to be helper languages that let you get the job done on some si

  • by Anonymous Coward on Thursday June 11, 2015 @01:49PM (#49893419)

    We've seen this same thing over and over with a different language. Does anyone care by now?

    Next week:

    How much Swift ... useful?

    • OK, you beat me to it. There have been a number of "What's the minimum amount of $LANGUAGE do you think I can get away in order to land my dream job? Preferably something that earns 6 figures...

      Ok folks, I like answering questions but that's something I can't help you with :)

    • How much Slashdot do we need to know in order to be called a geek?

      • How much Slashdot do we need to know in order to be called a geek?

        I was at Hope College [hope.edu] this week, where it all began. What does that get me? [bracing for rude replies]

    • That's what happens when a website's owner decides to use it for data mining instead of publishing actual articles anyone cares about.

  • by bobdehnhardt ( 18286 ) on Thursday June 11, 2015 @02:05PM (#49893555)

    I'd say the Parrot Sketch, Argument Clinic, and Silly Walks. Maybe add in Bruces and Spanish Inquisition, although no one expects that last one.

    Um, what? No, I didn't read the article before responding. Why do you ask?

    • I'd say the Parrot Sketch, Argument Clinic, and Silly Walks. Maybe add in Bruces and Spanish Inquisition, although no one expects that last one.

      If you haven't spent an afternoon saying "Ni!" to your colleagues, you may turn in your geek/nerd card on your way out.

      By way of penance, you must return here with a shrubbery, or else you will never pass through this wood alive. One that looks nice. And not too expensive.

      Now go!

  • The answer is that you need to know enough that you can hit the ground walking, if not running, unless you are entry level.

  • I'd say "not dead yet", "the lumberjack song", "spam", "Torremolinos!", and a couple movies.

  • Scope of question (Score:5, Insightful)

    by lq_x_pl ( 822011 ) on Thursday June 11, 2015 @02:47PM (#49893855)
    It is difficult to identify how much of [anything] one needs to know without knowing what the [job] responsibilities are.
    I use Python for day-to-day automation of things I'd rather not do by hand. I'm not master, and most of what I write looks like c++ (not very pythonesque) - so someone who is exceptionally proficient with Python would cringe at what I produce.
    However, what Python I do know allows me to be more productive throughout my day.
    Just spend time with the language trying to do things that [job] requires, and you will discover how much Python you need to know to do [job].
    • by msobkow ( 48369 )

      I do my automation with ksh/bash scripts. They work on pretty much any *nix platform without requiring an additional language stack be installed.

      • Pretty much all mainstream Linux distros (which, let's be honest, is 90+% of *nix platform these days) have Python out of the box. On others, installing it is a single command along the lines of "pkg add python" away. It sounds like an excuse.

        • by msobkow ( 48369 )

          The only dependency a software package should have is on the things it actually needs and uses. Adding a dependency just for the sake of scripting given the number of tools out there that can achieve the task is foolish.

          See "systemd"...

      • by lq_x_pl ( 822011 )
        Oh sure. Bash is plenty useful for many tasks. However, if my boss asks me to harvest a 50k line xml doc for a certain kind of information, I can get there a lot faster with Python. That may just be due to a deficiency in my ability to regex - however, the number of modules I can import into Python extend my usefulness on many of the random tasks I get assigned sometimes. :-)
  • From TFA:

    Python is a general-purpose language, which means it isn’t used for just one purpose such as Web development.

    Oh, so that is what "general-purpose" means! I'm still not sure I understand, though. Can you give me some examples?

    For example, if you’re hired to write apps that interact with operating systems and monitor devices, you might not need to know how to use the Python modules for scientific and numerical programming. In a similar fashion, if you’re hired to write Python code that interacts with a MySQL database, then you won’t need to master how it works with CouchDB.

    Got it. So with Python, I don't need to spend time learning things that I don't need to know. Python does sound like quite a useful language!

    In all seriousness, the article doesn't even have its facts straight. Consider:

    Any Python newbie needs to know which types are immutable, which means an object of that type can’t be changed (answer: tuples and strings).

    No, that's not the correct answer. Numeric types are also immutable, and that includes integers, floats, complex numbers, and Booleans. Frozen sets are immutabl

  • Unless you're hiring someone for a specific development role (in which case you know exactly what you need) there's really no right answer to this question. But evaluating someone's ability to learn and do on their own is paramount in my experience. I'm a sysadmin and don't code much but I have written my own python scripts that interact with databases including scripts with classes and modules as well as multi-threaded scripts. It was what was necessary to fix the problem at hand. Just don't ask me to
  • by Verloc ( 119412 ) on Thursday June 11, 2015 @03:57PM (#49894339)

    Comment: Ahh Dice (Score 4, Funny)
    by Verloc on Thursday June 04, 2015 @10:08PM (#49844935) Attached to: How Much JavaScript Do You Need To Know For an Entry-Level Job?

    Last week it was "How much C++ do you need to know for an entry level job"

    next week it'll be "How much Python do you need for an entry level job"

    Must be nice crowd sourcing your job requirements from Slashdot.
    ---

    It was even Python. Amazing. I predict next week: Ruby.

  • It does not take much of any skill to be useful. There's always a certain amount of entry-level work that has value.

    It takes god-like powers, however, to be competitive in today's job market, which I suspect might be the question actually intended.

  • I know C, C++, C#, Java, Javascript and Python. By far Python is my favorite language. Reading the comments I see many haters here bitching about the tabs. That is a very weak argument. Python's beauty comes in the elegant and readable code. Also there are three programming styles to solve any problem, OOP, procedural and functional. This allows a programmer to be creative and have a ton of fun programming. Those other verbose languages are tedious and boring, everyone's code looks the same because the IDE
  • C'mon people, I waited all day and I still have to post this for you?

    https://xkcd.com/353/ [xkcd.com]
    which all of course ends in:
    https://xkcd.com/521/ [xkcd.com] (mouseover text)

  • It's not the language nearly as much as it's more general software development skills such as algorithms, data structures, algorithmic complexity, and design patterns. It's really easy to transition between languages and shore up your own holes in knowledge by keeping links to reference resources (or books).

    The general practice of knowing how to translate an idea into a workable piece of code is far, far more important. The individual language is just the medium through which you're working. Different la

  • I didn't read the article, but the summary makes it sound like it would have been a waste of time anyway:

    How Much Python Do You Need To Know To Be Useful?
    ...
    Cogswell suggests there are three basic levels to learning Python: Learn the core language itself, such as the syntax and basic types (and the difference between Python 2 and Python 3); learn the commonly used modules, and familiarize yourself with other modules; learn the bigger picture of software development with Python, such as including Python in a build process, using the pip package manager, and so on.

    Isn't that the case with any language? Dice could have attracted even more people with this:

    How Much of a Programming Language Do You Need To Know To Be Useful?
    ...
    Cogswell suggests there are three basic levels to learning your next programming language: Learn the core language itself, such as the syntax and basic types (and the difference between the current and last major versions); learn the commonly used modules, and familiarize yourself with other modules; learn the bigger picture of software development with the language, such as including it in a build process, using the package manager, and so on.

  • I can't think of much of a practical use for most of python, but "always look on the bright side of life" was a song with a wise undertone.
  • Does anyone have a greasemonkey/tampermonkey script that hides dice spam authored by this twat?

The bogosity meter just pegged.

Working...