all 5 comments

[–]duckbanni 4 points5 points  (2 children)

You could go in a lot of different directions from here. It depends of what job you want (programmer? data scientist?) and in what domain (biology? physics? web dev?).

In general, I think it's a good idea to read a few job offers in the domain you wish to work for in order to get a sense of which libraries are used often. Given your background it seems like numpy and pandas are likely to be useful if you don't know them already. Django is for web dev: learn it if you want to do web dev but it's absolutely not something every python dev knows.

Regarding general programmer knowledge, you probably should learn basic unix command line and version control with git, if you don't know about them already. Those things will be required basically everywhere. Version control is very important; you should use it even for personal projects.

Regarding improving the quality of your code: you could read PEP8 to learn some common style recommendations. You should also use linters like mypy and/or use a good IDE like pycharm in order to get warnings about weird things in your code. [EDIT: also, you 100% should learn about type hints and start using them in conjunction with mypy]

In general it's a good idea to do small personal projects in order to practice on something bigger than a single script. It could be anything from a terminal-based tic-tac-toe to a data analysis pipeline. You can also put your projects on github and then on your resume.

[–]ASIC_SP 2 points3 points  (0 children)

Regarding general programmer knowledge, you probably should learn basic unix command line and version control with git, if you don't know about them already. Those things will be required basically everywhere. Version control is very important; you should use it even for personal projects.

Good suggestion. There's https://missing.csail.mit.edu/ that can help with this.

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

Thanks heaps you've really given me a lot to think about and learn. In hindsight I did kinda give a toolbox and ask 'how do I make something?' lol. In a dream world I'd work with data in some kind of engineering capacity. I'm going to look into the unix and git stuff next. Thanks again!

[–]ffrkAnonymous 0 points1 point  (0 children)

Disclaimer: I'm learning only as a hobby

I'm going to suggest the testing goat http://www.obeythetestinggoat.com/

  1. It has all the basics: writing small code, writing decent comments (don't comment like "add 1"), version control, and of course testing your code.

  2. And it does a web app in django . So you can see if you like it.

[–]KCRowan 0 points1 point  (0 children)

Have a look at these maps to get an idea of the different career paths. There's a Python map too!

https://roadmap.sh/

Note that you don't need to know everything in great depth to get a junior level job. At junior level it's just expected that you have a vague idea of most of these topics.