More Project Ideas:
- Github project-based-learning
- Github Build your own X
- Github Every Programmer Should Know
- Github Book of Secret knowledge
Youtube channels:
Exercises:
- Exercism, Hackinscience and Practicepython — these are all beginner friendly and difficulty levels are marked
- Adventofcode, Codewars, Python Morsels — includes more challenging exercises for intermediate to advanced level users
- Checkio, Codingame, Codecombat — gaming based challenges
Projects:
Find something that’d help to solve a real world problem for you. For example, I’m on Linux and use the terminal for many things. I wanted a cli tool to do simple calculations. There’s bc command, but it doesn’t accept direct string and you need to set scale and so on. So, I looked up how to write a cli in Python (I went with built-in argparse module) and made a tool that’d solve my small use case.
- Projects with solutions — algorithms, data structures, networking, security, databases, etc
- Project based learning — web applications, bots, data science, machine learning, etc
- Books:
- /r/learnpython: What do you automate with Python at home?
Intermediate:
- Pydon’ts — Write elegant Python code, make the best use of the core Python features
- Python Distilled — this pragmatic guide provides a concise narrative related to fundamental programming topics such as data abstraction, control flow, program structure, functions, objects, and modules
Advanced:
- Fluent Python — takes you through Python’s core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time
- Serious Python — deployment, scalability, testing, and more
- Practices of the Python Pro — learn to design professional-level, clean, easily maintainable software at scale, includes examples for software development best practices
- Intuitive Python — productive development for projects that last
DSA:
- Problem solving with algorithms and data structures — free interactive course
- Classic Computer Science Problems in Python — deepens your knowledge of problem solving techniques from the realm of computer science by challenging you with time-tested scenarios, exercises, and algorithms
- GitHub: Awesome algorithms — curated list of resources to learn and/or practice algorithms
See also:
- Python resources — site where I collate such resources