How Much Python Do You Need To Know To Be Useful?
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?
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.
Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
How much of a summary do you need to read to know you should skip that one?
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.
Bye!
We've seen this same thing over and over with a different language. Does anyone care by now?
Next week:
How much Swift ... useful?
Yeah, fuck python. I never touch the stuff. A colleague was doing some python and I learned that they make you indent four spaces or a tab and you can't mix it in your file. This is done instead of using braces to control the scope of code. All I can say is fuck that, the author was trying to be sneaky to get people to write properly formatted code. If you can't properly format your code to begin with you shouldn't be coding, it's like consistency 101. Python is a 'nanny language'.
The answer is no.
Guido van Rossum himself isn't qualified for an entry-level Python position.
That's why we need more H1-Bs!
The answer has to be 0 right?
Close: you just need to know about Hy. Get the good parts of Python without the whitespace bullshit. You have to be willing to use a lisp dialect, but I'd rather do that than use pure Python any day.
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].
An internal system operation returned the error "The operation completed successfully.".
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).
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.
Have you actually written code in Python and found the whitespace handling to be an issue? When I first heard about whitespace being significant I didn't like it, but I've never had a problem in practice.
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 code, but it's not unreasonable of me to assume otherwise.)
However, if you can write thoroughly competent C++ code, then I'm willing to bet that only a minimal amount of additional education will be necessary for you to write competent Java or VB code.
I do believe that a programmer should use the "right tool for the job" and I don't believe in language zealotry, but I do believe that competence in certain languages is a good measure of overall programming competency. VB alone does not carry that weight. Don't pretend otherwise.
Please excuse this off-topic queue-jumping reply to your comment, but there are times when someone makes a very insightful observation that really, really should have gone in a more prominent position.
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.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
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.
Since it isn't even remotely irritating to myself and (likely) hundreds of thousand of others it wasn't a bad call for us. If it was a "bad call" for you, I suggest you can chalk that up to your pig-headedness combined with your lack of understanding the important of using decent code development tools.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
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.
Required reading for internet skeptics
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.