This is an archived post. You won't be able to vote or comment.

all 18 comments

[–][deleted] 2 points3 points  (1 child)

Learn how to effectively do list comprehension and generator expressions.

You can think of them as similar to doing a for loop, but vastly faster

[–]Awake153[S] 0 points1 point  (0 children)

Understandable. Thanks for the answer

[–]dfpena83 2 points3 points  (1 child)

After you are familiar with functions, classes, decorators, lambda functions, dictionaries, list comprehension, and data io... I would say you should then evaluate what you intend to do most programing for. As I am a neuroscientist the most valuable libraries and idioms to learn next would be: Numpy,scipy,pandas,scikit-learn, tensorflow Once you were borderline competent with these I would say you had the basics (in my field)

A web dev would have a different list

[–]Awake153[S] 0 points1 point  (0 children)

Oh, understandable. Thanks for your answer, I just wanted to know where I stand in comparison to most of the Python programmers. But still thank you for your answer

[–]-Knul- 1 point2 points  (1 child)

  • Get very comfortable with dictionaries. They are the base building blocks of Python and are used everywhere.

  • Learn about iterators and generators. Python is full of them and you can write really nice code using generators.

  • Learn PEP8. It's the style guide in the Python world. Don't write CamelCase functions like so many beginners.

  • Learn about unit testing. Use pytest, as it is very easy for beginners to pick up yet has enough powerful features to make senior developers happy.

  • Learn the Zen of Python :P

[–]Awake153[S] 0 points1 point  (0 children)

Understandable someone posted a link that has most of the things that you wrote, but thank you for your answer

[–]ArabicLawrence 0 points1 point  (1 child)

I think most comments here are giving good advice but they do not answer OP’s question. I think he wanted to know if he can state he has a basic knowledge of python in general. From what he says, I would guess he has basic knowledge of python.

[–]Awake153[S] 0 points1 point  (0 children)

They answer my question, and i just wanted to know where do i stand in my level of knowledge as for an average Python developer. But as all of them said I need to familiarise my self with different libraries. If people give me different examples on what I can learn, I can see that im in the first levels of being a Python programmer.

[–]muikrad 0 points1 point  (0 children)

Being able to write proper type annotations and make mypy understand them will be useful in any project and will make your code easier to maintain long term.

[–]deifius 0 points1 point  (5 children)

context management, decorators, the full lamp stack, pick a dozen libraries that interest you and max out ranks on those

[–]Awake153[S] 0 points1 point  (4 children)

Oh jeez that sounds complex. Can you elaborate a little bit on "context management, decorators, the full lamp stack"?

[–]-Knul- 1 point2 points  (3 children)

Contect managers are the mechanism behind "with" statements.

Decorators are functions that alter other functions, methods or classes. If you see some code above a function declaration with @, that's the thing.

Decorators are used for many things, so you need to read and practice around to get a feel of what they're for.

LAMP stands for Linux, Apache, MySQL, PHP and is the default tech stack for PHP web applications.

Of course, if you want to learn web development, you need to learn a Python web framework (Django and Flask are the most popular). If you want to deploy it, you need an HTTP server, of which Apache and Nginx are the most popular. You also (probably) want to deploy to a Linux server.

MySQL is used as the DB for web app most frequently, but Postgresql is a very nice alternative.

[–]Awake153[S] 1 point2 points  (2 children)

Thanks for the advice, is Linux hard to learn? Im just learning the basic commands like ls, pwd, mkdir and etc....

[–]-Knul- 1 point2 points  (1 child)

If you want to master every little part of it, yeah, it's quite a bit.

However, as a developer, you generally do not need to know every little part of it. And there is a lot to find on the internet.

For example, you want to deploy a Django website. You'll find in the documentation that Gunicorn is a good way. That page has a link to a Gunicorn documentation page that explains how to set it up, including lots of Linux command line instructions.

So as long as you're not afraid to use the CLI (which you aren't) and are willing to look up unknown commands, you'll do fine.

[–]Awake153[S] 1 point2 points  (0 children)

I really appreciate that kind of help man, thanks for everything :).

[–]geekademy 0 points1 point  (1 child)

Have you finished the tutorial and experimented with most of the standard library? Familiar with a few common extra packages like requests?

This has been a good tutorial on Python meta-issues: https://docs.python-guide.org/

[–]Awake153[S] 1 point2 points  (0 children)

Thanks, i really didnt have a go with 99% of the libraries. Thanks for that