Hacker News new | ask | show | jobs
by brutus1213 1627 days ago
Do you really know deep python? Things like async.io? Frameworks for parallel processing such as Dask? How about even how to do deep learning with Python (Pytorch, Tensorflow). How about NumPy, Pandas, Scikit-learn? How about interop between Python and native code? I have a feeling that you can get more depth rather than breadth. I'm a breadth kind of person and wish I focused on depth early in my career.
1 comments

A lot of what you listed is frameworks and libraries. I think a person can comfortably say that they know a lot of Python even if they've never touched most of them. Knowing a language well is different from covering all the possible libraries, frameworks and use cases.

If someone wants to get a bit past beginner in Python, the two general directions are to learn more about how the language works internally (Fluent Python is a great book for it), or to learn more about how to write Python well (Effective Python is a great resource for best practices in Python).

I do have to respectfully disagree but would say it is a gray area in some cases. Knowing a language well is more than just understanding the basic abstractions given to you by the standard language. In the case of Python, ideas in the async libraries eventually went into the standard. If someone does not understand asynchronous programming, would you consider them an expert Python developer?

Here is another argument. Is someone really a fluent C++ programmer if they have no idea what Boost is? Or STL? You are right that this set of libraries has a grey area. For example, I'd consider someone an expert C++ developer even if they did not know CUDA.

So what is the gray area for Python? Does an expert Python developer need to know a specific web frameworks like Django? To your point, no. But IMHO they should understand at least one example well, and understand some concepts such as WSGI.

You're singling out the async example while I was referring to the 3rd party libraries you listed. Of course you're always understanding the language through some use case (web programming, data science, ML, whatever) and that will require to learn the relevant libraries but adding another use case or a different solution for the same use case doesn't necessarily teach you more about the language.

My point is that OP can stick to the use case they're already working on and still get better at Python (that's what the resources I pointed to help with).