I recently run into a team lead question regarding how to grow a backend Python Developer in her team. Since I also iterated around this topic with my team I already had few ideas in mind.
Few disclaimers before we start. First, I believe that the developer also has a share in the process and should express her interest and aspirations. The team lead or tech lead can direct and light blind spots but does not hold all the responsibility. It is also ok to dive into an idea are a tool that is not required at the moment. They might come in handy in the future and they can inspire you. Second, my view is limited to the areas I work in. Different organizations or products have different needs and focus. Third, build habits to constantly learn and grow – read blogs and books, listen to podcasts, take online or offline courses, watch videos, whatever works for you as long as you keep moving.
Consider the links below as appetizers. Each subject below has many additional resources besides the ones that I posted. Most likely I’m just not familiar with them, please feel free to add them and I’ll update the post. Some subjects are so broad and product dependent, e.g. cloud so I didn’t add links at all. Additionally, when using a specific product \ service \ package read the documentation and make it your superpower. Know Python standard library well (e.g itertools, functools, collections, pathlib, etc), it can save you a lot of time, effort, and bugs.
General ideas and concepts
- Clean code – book, book summary
- Design patterns – refactoring book, refactoring guru, python design patterns GitHub repo
- Distributed design patterns – Patterns of Distributed Systems
- SOLID principles – SOLID coding in Python
- Deployment – CI\CD, docker, Kubernetes
- Version control – git guide
- Databases – Using Databases with Python, databases tutorials
- Secure Development – Python cheat sheet by Snyk, OWASP
- Webservices – flask, Django, FastAPI
- Testing – Unit Testing in Python — The Basics
- Packaging – Python Packaging User Guide,
- Data analysis – pandas, NumPy, sci-kit-learn
- Visualization – plotly, matlpotlib
- Concurrency – Speed Up Your Python Program With Concurrency
- Debugging – debugging with PDB, Python debugging in VS Code
- Dependency management – Comparison of Pip, Pipenv and Poetry dependency management tools
- Type annotation – Type Annotations in Python
- Python 3.10 – What’s New in Python 3.10?, Why you can’t switch to Python 3.10 just yet
- Podcast.__init__ – The weekly podcast about Python and its use in machine learning and data science.
- The real python podcast
- Top 8 Python Podcasts You Should Be Listening to
- Python 3 module of the week
- Lazy programmer – courses on Udemy mainly AI and ML using Python
- cloudonaut – podcast and blog about AWS