5 ms·
Cool and overall sane, so lemme just pitch in from my perch on the critical side: *Advanced* > Can use advanced Python libraries like numpy, pandas, matplotli
by drbig 3y ago
Cool and overall sane, so lemme just pitch in from my perch on the critical side:
*Advanced*
> Can use advanced Python libraries like numpy, pandas, matplotlib.
You're a data scientist and this is not "Python".
> Can use regular expressions for pattern matching in strings.
Not Python really again.
> Understands and uses Python's memory management and optimization techniques.
Wait, like thinking about how a `list()` looks like from the (false) C-level perspective? Can you fix my CPU transistors while you're at it? (yes, /s)
*Experts*
> Can use Python's C API to extend Python with C/C++ code.
Do you mean whatever FFI Python has? Otherwise this is like asking your mechanic to also make it a plane, and a submarine. After all these are all just vehicles.
> Understands and uses Python's garbage collection system.
Ref counting? Wait what?
> Have a good understanding of Python's internals, such as bytecode, the Python interpreter's execution model, and how Python's data types are implemented at the C level.
Submarine :D
My perch also lets me see here the aspects I usually don't care about. Thank you!
- iamwpj 3y agoI feel similar. No matter how good at Python I get, I doubt I'll ever write an C interface, I just don't need that. I've used pandas and some of these randomly, but TBH I'd rather write a dataclass with static typing rather than re-construct data in pandas. Does that bump me down to a lesser skilled programmer? I guess it's easy to pick on any rubric, but I found the implication of this one be unhelpful. I like the training materials that focus on continual development instead -- I don't recall any off the top of my head, but they provide a contextual learning path, like if you've mastered list comprehension now take a look at decorators.
- dragonwriter 3y ago> > Can use advanced Python libraries like numpy, pandas, matplotlib. > You're a data scientist and this is not "Python". Pandas and matplotlib, are a weaker case, maybe, but numpy is fairly broadly used (math being a core part of computing) library outside of just data science. E.g., this tutorial on building a roguelike in Python has two direct dependencies, tcod (a library specifically to support roguelikes) and numpy: https://rogueliketutorials.com/tutorials/tcod/v2/part-0/ https://rogueliketutorials.com/tutorials/tcod/v2/part-0/
- drbig 3y agoAnd I have learnt the basics (and some of the Advanced, as per the article) of Python before numpy even existed. Mixing external libraries, however useful!, with the language itself is not good. "Batteries included" would be very fine here - it comes with the language and that was one of the original (selling? nah, _utility_) points of Python (and now with the external stuff that has morphed... to its life-line really; so never underestimate the ecosystem!).
- selcuka 3y ago> but numpy is fairly broadly used (math being a core part of computing) library outside of just data science. True, but Python can still do maths without numpy. Also I don't think "building a roguelike" is a typical example of a real-world programming task.
- kstrauser 3y agoI'm probably guilty of (poorly) re-implementing bits of Numpy in various places. If I'm whipping out a little tool to show some timings, I'm likely to write a simple standard deviation function instead of dragging along Numpy for just that one thing. Lots of backend/platform engineering uses math, but not always enough to justify adding such a huge dependency.
- boerseth 3y agoThe entry about numpy, pandas, and matplotlib also seems ranked way highly, if you ask me. I was using those to great effect as a young physics student almost a decade ago, long before I knew what a decorator or context-manager was. Yes I was probably googling a lot, but then again I still am.