4.9 KiB
Some random recommendations
After our twenty days of python together you should have a solid understanding of the world of programming. The foundation of all essential concepts should be clear enough to understand code when it is in front of you. A blank slate could still pose a challenge but for that, here are some links and recommendations.
IDE
Maybe try out some other IDE to see if you like the workflow or layout better. I'm a big fan of vim, especially with some good plugins. It's not an easy editor to learn but the payoff is pretty great. For the more normal people I would recommend having a look at the following editors, in no particular order.
Don't hop around too much though. If you're a bit bored with pycharm it could be refreshing to see your code through a different window.
Syntax
Start paying attention to the style guides that pop up in your IDE and follow up on them by reading the actual rules. It can be good way to discover some do's and don't and help you to make your code more readable. I would also recommend you start browsing online for some coding project in a field of your interests. The bigger the project, the higher the chance it follows a specific style. By reading and trying to understand their code, you'll start to build a better feel how to annotate, structure and make your code more readable. As this is a very subjective topic I can only point you to projects I like.
Concepts
We touched on most of the elementary concepts but we did go over them quite quickly. Take your time to review all base concepts with small exercises and try to chain them together into bigger projects. Some python specific new concepts I would highly advise you to look into are the following.
- decorators
- getters and setters
- concurrency
- threading vs async vs multiprocessing
- design patterns
- memory management in python
- virtual environments
If you're interested in creating web applications I would start out with bottle, work your way up to flask and maybe move over to django. You'll definitely need to learn SQL at some point but you can make your life easier by using sqlalchemy.
If you want to dive deep into data science you'll need get comfortable with numpy, pandas and matplotlib. The easiest way to get comfortable with all of those is probably jupyter notebook which is an IDE that you use in your browser. It's quite different from the pycharm you're used to but it's a very good tool to do data analysis.
If robotics is your thing you might want to give micropython a go. I've never used it myself but I've heard good things about it.
Books
These are some books I've actually read and enjoyed.
- mastering python design patterns
- fluent python
- design patterns
- learn python the hard way
- automate the boring stuff
Linux
If you enjoyed the experience of the computers at the school you should give linux a go at home! You used a debian machine with GNOME as a graphical interface. If you're really motivated you could read through my introduction to linux course. It's a work in progress and all feedback is welcome.