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?
trick question (Score:5, Funny)
The answer has to be 0 right?
Re:trick question (Score:5, Interesting)
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.
Re:trick question (Score:5, Funny)
The answer has to be 0 right?
No. The answer would be : None
Re: (Score:3, Funny)
Re: (Score:2)
IndentationError: unexpected indent
:retab
Re:trick question (Score:5, Funny)
Re: (Score:2)
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."
I think you would need to know the Holy Grail... (Score:5, Funny)
Re: (Score:2)
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.
Re:trick question (Score:5, Funny)
I find that knowing the majority of the Dead Parrot sketch and the main chorus of the Lumberjack song gets me through fine :)
Re: (Score:2)
Re: (Score:2)
I'd go with the Argument Clinic, and the Bridge of Death, myself...
COBOL (Score:2, Funny)
COBOL WAS LIKE THAT UP TO THE 1977 REVISION. FORTUNATELY I LEARNED COBOL-80.
Blah, blah, blah, COBOL is yelling.
Re:Almost (Score:5, Funny)
It always amazes me that so many folks reject something entirely because they don't like one aspect of it. Good luck finding a wife...
Re:Almost (Score:5, Funny)
My wife doesn't have a white space, she's asian.
Re:Almost (Score:5, Insightful)
Sneak preview; three virtually identical questions of the form "How Much [language x] Should You Know For an Entry-Level [language x] Job?" going to the Dice website and "submitted" by the same Slashdot employee in just over two weeks.
Bonus; OP linked above correctly predicted this week's story and even got the language right.
That's almost funny, except that it isn't. Admittedly, Slashdot has been "going down the tubes" almost since it launched, but this is particularly crap.
Re:Almost (Score:5, Funny)
I heard a similar rationale regarding a baby and its bathwater. At first, the bathwater was blamed for the unfortunate zealous disposal of the baby. But when that explanation didn't fly, the purported ugliness of the baby was offered as justification. However, after hearing both explanations, the jury remained unconvinced.
Re:Almost (Score:4, Insightful)
Would you rather I complain about the compatibility problems between minor versions? It's abysmal performance? Or do I need to expound on the original point and poke fun at how anonymous functions are crippled because of the absurd whitespace rules, point out how they often hurt readability, explain how they lead to bugs that are literally invisible, or about how they make refactoring code difficult?
The whitespace rules are reason enough to avoid learning it, just as it's serious compatibility issues are reason enough to avoid using it in any professional context. Why bother with further explanation? It's far more economical to move on to any one of countless alternatives far more suitable for any given application.
Re:Almost (Score:5, Insightful)
Re: (Score:2)
Re: (Score:3)
Re:Almost (Score:4, Informative)
I've written Python for years and have never used any special editor. The one problem I've had is when commenting out several lines of Python code -- you need to add a # character to the beginning of each line. It's a minor inconvenience.
What about using the """ triple-quote format? That works for multi-line comments, but may be "special" in that it's interpreted by other tools.
Re: (Score:3, Insightful)
What kind of idiot writes code in an environment that isn't language / syntax aware in 2015?
Seriously? You are arguing against change adamantly, and citing pig-headedness on the Python developers part? Now that is hilarious.
Re: (Score:3, Insightful)
I actually think that's kind of genius. It makes everybody's code more legible. I'm not that much of a programmer, mostly dealing with interpreted scripting languages like TCL, Bash, and Powershell, and I can't tell you how many times I've hated reading somebody else's script because they didn't indent for shit, and they put their curly braces in such weird places that it was hard to tell what was encapsulated inside of what. And then they somehow expect somebody else to be able to debug it later.
Re: (Score:2)
You have to know enough to know that it makes whitespace significant. That's useful, because it should lead you to choose another scripting language, one which is less retarded.
As a python guy, I lol'd the first time I had to maintain some ruby and found that the rubocop linter makes it more persnickety about whitespace than python is.
Re:Almost (Score:4, Interesting)
Tables use white space to convey structure. Do you think they are retarded?
Paragraphs usually have a first line with extra white space. Is this retarded?
Centering titles implies using lots of white space. Is this retarded?
Operas have white spaces between arias. Supposedly this is also retarded, isn't it?
> You have to know enough to know that it makes whitespace significant. That's useful, because it should lead you to choose another scripting language, one which is less retarded.
You used white spaces in your post. Why? Are they significant or is your post retarded?
[Meta: Can we filter out registered posts -- obviously without being registered?]
Re: (Score:3, Funny)
Someone should make a whitespace language comprised of only spaces and tabs.
Re:trick question (Score:5, Informative)
Re: (Score:2)
Alright...
Someone should send me a few hundred thousand bitcoins at D9scjyKETYZesSmhjCR4vye4bc6iDqXPd6.
Re: (Score:2)
I meant DogeCoins, sorry!
Re:trick question (Score:5, Insightful)
No, you're missing the point. It's not acting as a nanny, it's merely removing the redundancy of having both reasonably-indented code and start/stop tokens. That's it.
One of the interesting things about Python is that very few new programming languages use required-indentation, probably due to fear of backlash by the narrow-minded. I suspect that this tends to help keep the Python community (for whom this is a great feature) from dribbling away to the "new hotness" and may be why Python keeps getting stronger and stronger (in contrast to old competitors like Ruby and Perl).
Re: (Score:3)
No, you're missing the point. It's not acting as a nanny, it's merely removing the redundancy of having both reasonably-indented code and start/stop tokens. That's it.
Sorry, it keeps the start tokens and only does away with the end tokens[1]. Logically, this does not make sense. Logical people hate python.
[1]Some may even argue that it keeps the end tokens too, only it makes them invisible using whitespace rules.
Re: (Score:3)
Well, I can certainly understand a preference, but you're going too far to imply that Python is not a "reasonable" language.
Avoiding hard tabs in your code is all that you need to do and that's quite a simple thing for anyone able to actually write useful code. I've been coding in Python for years and years and have only run across that problem a handful of times, many years ago. Once the official guideline became "no hard tabs", the problem went away even for newbies.
Python doesn't make you guess 'shoul
Re: (Score:2)
should "10" + "15" == "1015" or should it be 25?
What a strange question. Obviously, 25 since you are using an arithmetic operator. So surely, you wanted to do arithmetic, right?
If you had wanted "1015", you would obviously have used a string operator instead ( "10" . "15" ).
Are there languages so stupid that they can't tell the difference and you have to spell it out for them in every boring detail?
PS: And if you had wanted to get 327680, you would have used the binary shift operator: "10""15"
Re: (Score:3)
What a strange question. Obviously, 25 since you are using an arithmetic operator. So surely, you wanted to do arithmetic, right?
Wrong. Quoted numbers are a string operation ("10" + "15" == "1015" is correct). Unquoted numbers are an arithmetic operation (i.e., 10 + 15 == 25). You can cast a string to an integer (i.e., int("10") + int("15") == 25) or cast an integer to a string (i.e., str(10) + str(15) == "1015").
If you had wanted "1015", you would obviously have used a string operator instead ( "10" . "15" ).
The dot string operator works in PHP.
Re: (Score:2)
Maybe in one of these weird languages where it's not the operator which determines the operation to be done. Or one of these annoying languages in which you need silly stuff like str(10)... :-)
I feel for the poor poor programmer who didn't get the chance to understand Perl.
And BTW, /. ate my binary operator in the post above. It was meant to be:
to get 327680, you would have used the binary shift operator: "10"<<"15"
Re: (Score:2)
I feel for the poor poor programmer who didn't get the chance to understand Perl.
The last time I saw Perl was in the classroom ten years ago. Alas, the class got cancelled due to a lack of students and never learned the language. I'm somewhat surprised to recently learn that Perl was still around.
I'm already useful (Score:5, Funny)
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.
Re:I'm already useful (Score:5, Insightful)
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.
Re: (Score:3)
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)
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
Re: (Score:2)
systemic bias against those with a specific set of... skills
That's every job interview.
Re: (Score:3)
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.
Re: (Score:3, Interesting)
see what it can do. [reddit.com]
Re:I'm already useful (Score:5, Interesting)
Re: (Score:2)
Yeah, stupid morans! [imgur.com]
Re: (Score:2)
Not so much whoosh as doing a follow-up on the VB reference. VB = Microsoft = USA.
You can get by with: (Score:5, Funny)
Holy Grail;
Dead Parrot;
Spam;
Ministry of Silly Walks;
and of course Spanish Inquisition.
Re:You can get by with: (Score:5, Funny)
I didn't expect the Spanish Inquisition to be on that list...
Re:You can get by with: (Score:4, Funny)
No you didn't.
Re: (Score:3)
No you didn't!
Re: (Score:2)
Holy Grail is an absolute requirement. I'll ask about that in interviews. If you can't come up with at least one line from the film, you're definitely not getting the job. I'm not sure Ministry of Silly Walks is necessary, though. It's more of a sight gag and actually requires skill to perform, so it might be a bit much to expect from someone. I might add in "Cheese Shop" and "Bruce"--especially The Philosophers Song.
Re: (Score:3)
Since the parent story appears to be yet another Dice plant, this subthread of responses is by far the most appropriate.
and . . . "you're supposed to 'aggle."
Re: (Score:2)
If you know Idle (Eric, not the IDE), you get the job automatically. If you can get me tickets to Spamalot.
Bruces. (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
This is Slashdot. You only get abuse.
Oh look, more dice.com crap ... (Score:4, Interesting)
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.
Re: (Score:2)
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?
Re: (Score:2)
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.
Re: (Score:2)
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)
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)
Re: (Score:2)
Or: How much of the title do you need to read in order to guess it's an article from dice?
Re:A Similar Question (Score:4, Funny)
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.
Re: (Score:2)
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 .....
Re: (Score:2)
Well, what is minimum usefulness required? (Score:3)
Re: (Score:2)
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
How much crap before Slashdot becomes useless? (Score:5, Insightful)
We've seen this same thing over and over with a different language. Does anyone care by now?
Next week:
How much Swift ... useful?
Re: (Score:2)
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 :)
Re: (Score:2)
How much Slashdot do we need to know in order to be called a geek?
Re: (Score:2)
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]
Data mining (Score:2)
That's what happens when a website's owner decides to use it for data mining instead of publishing actual articles anyone cares about.
Bare minimum (Score:5, Funny)
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?
Re: (Score:2)
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 (Score:2)
Re: (Score:2)
a basic working Python currency? (Score:2)
I'd say "not dead yet", "the lumberjack song", "spam", "Torremolinos!", and a couple movies.
Scope of question (Score:5, Insightful)
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].
Re: (Score:2)
I do my automation with ksh/bash scripts. They work on pretty much any *nix platform without requiring an additional language stack be installed.
Re: (Score:2)
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.
Re: (Score:2)
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"...
Re: (Score:3)
really helpful (Score:2)
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
Aptitude instead of existing knowledge (Score:2)
Did I call it or did I call it? (Score:5, Insightful)
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.
Re:Did I call it or did I call it? (Score:5, Insightful)
Here are the stories in question:-
How Much C++ Should You Know For an Entry-Level C++ Job? (May 27 2015) [slashdot.org]
How Much JavaScript Do You Need To Know For an Entry-Level Job? (4 June 2015) [slashdot.org]
Note the a gap of eight days between the stories in both cases. Note that the three stories were submitted respectively by Nerval's Lobster [slashdot.org], Nerval's Lobster and, er... Nerval's Lobster. Who happens to work for Slashdot.
Not that I'm suggesting that the fact Slashdot is now owned by the IT and engineering careers website Dice has anything to do with it being used to push out formulaic and self-serving "submissions" like this. *cough*
Seriously, this makes even the old Slashdot "whoops, a stupid editor 'accidentally' posted the same good-for-attracting-pageviews-and-discussion story twice just as it fell off the front page" cynicism look good.
Re: (Score:3)
Competition (Score:2)
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 love Python! (Score:2)
Re: (Score:2)
Obligatory xkcd (Score:2)
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)
The language isn't important (Score:2)
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
Common Sense (Score:2)
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.
Useful? (Score:2)
greasemonkey/tampermonkey script? (Score:2)
Re: (Score:2)
Re: (Score:2)
Start with 0s and 1s, and everything else derives from that. (except for functional languages, where you start with S and K)