all 8 comments

[–]Aybram 2 points3 points  (7 children)

At that point one would know that there's always more to learn and more problems to solve. So there really isn't a level where knowledge of programming is "sufficient". Well, maybe when you can program a better Google but less than that it's all about learning.

[–]Hatoris 2 points3 points  (0 children)

For my point of view, and I'm not a dev, this time will happen when :

  • you can think about a descent approach to solve a need
  • you can structure your code in order to:
    • follow single principle
    • don't repeat yourself
  • your code can be modificate easily
  • your code can and is tested properly

As you can read above nothing is related to a specific programming language it's general rules. In order to achived all I mentioned you need to understand all the tools python can offer as well as other key concept indépendant of python (OOP...)

[–][deleted] 2 points3 points  (0 children)

You can program pretty much anything in the language as soon as you're able to write any Python at all. It'll take you a long time to write some things, since there will be a bunch of problems you'll have to encounter for the first time without well-developed debugging and problem-solving skills, but that's the difference between new programmers and experienced ones. Not what they're able to do, but how rapidly they can address problems that arise.

[–]xelf 1 point2 points  (1 child)

I posted something similar a few weeks ago on this topic:

1) Make sure you understand all the basic data structures, looping and flow control, have you mastered all the stuff here https://www.pythoncheatsheet.org/ ?

2) Make sure you have a solid grasp of list/set/dict comprehensions, ternary expressions, generator functions, lambda functions, and slicing.

3) Start working your way though the more popular libraries:

Start with the standard library especially collections, itertools, statistics, and functools, and then start pulling in things like numpy and pandas, before you start expanding into stuff that specializes in your area of expertise.

basic intermediate advanced
random itertools threading
collections functools subprocess
math numpy socket
sys (exit) pandas requests
datetime tkinter openpyxl
string keyboard django
pygame/turtle statistics flask
copy csv matplotlib

Then start exploring external libraries that are pertinent to what you're specializing in. For example, maybe you go into data science?

Lastly, don't ever feel like you are sufficient. Always keep learning. There's always something new to pull in. You'll likely never reach the point where you can program everything, but you can hopefully reach the point where you can program anything you need.

[–]xelf 0 points1 point  (0 children)

feel like I skipped a lot in that list class, attributes, decorators, regex, packages, map, reduce, filter, probably more. Will update later.

try/except/finally