python-programming
python-programming copied to clipboard
π¨π½βπ»π Software Engineering with Python β’ Developer Roadmap from Junior to Senior
Software Engineering with Python
Learn and code every day! Take notes.
Learn to ask GOOD questions.
Learn to prioritize tasks. Focus on 1 thing!
Build something, anything. Build projects that bring some benefit to you or the people around you.
Take small steps, but every day, consistency is very important.
Contents:
- Important Skills
- Computer Science Basics
- Start Learning Python
- Discover some Python libraries
- Databases: SQL, NoSQL
- Web Development
- **Advanced Python
Important Skills
- Algorithms and data structures
- Programming mindset - analytical, problem-solving mindset
- Know your programming language
Computer Science Basics
- Harvard CS50 - Scratch, C, Arrays, Algorithms, Memory, Data structures, Python, SQL, HTML, CSS, JavaScript, Flask
-
Optional
Crash Course Computer Science
Start Learning Python
Learn the basics, watch a couple of tutorials, read articles, and then build projects using Python. Learn by building. Start from building console applications, then learn how to build desktop apps, then web apps.
- 11 Beginner Tips for Learning Python Programming
- freeCodeCamp.org - Python beginning
- freeCodeCamp.org - Python intermediate
- 30-Days-Of-Python
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python
- Corey Schafer, focus MORE on this!
- Readings:
- Easy practical Python
- w3schools.com
- programiz.com
- *pythontutorial.net - Python Basics and Python Advanced sections
- **python-course.eu - only Python Tutorial section
- **realpython.com
- OOP in Python:
- Books:
Problem solving & Practical tasks
- https://github.com/Rustam-Z/cpp-programming
- https://github.com/darkprinx/break-the-ice-with-python
Discover some Python libraries
- Learn TKinter
- Learn web scraping using beautiful-soup or *Selenium
- File handling: txt,
json
,csv
,yaml
- Working with paths with
pathlib
and OS withos
- Sending HTTP requests and receiving HTTP responses with
requests
- Building CLI with
argparse
- Working with data
collections
,itertools
Databases: SQL, NoSQL
- SQL
-
sqlite
,sqlalchemy
- Relationships: One-to-One, One-to-Many, Many-to-Many
- Data normalization
Web Development
- Understand how the Internet works, OSI & TCP/IP models, DNS, HTTP, REST API.
- HTML, CSS, JavaScript
- Learn Django or Flask
- Mozilla Developer Network, Django
- Django girls
- "Flask Web Development" Miguel Grinberg
- "Building REST APIs with Flask" Kunal Relan
- See how others build projects using Django, then build your own app.
- Books:
- "Django for beginners" by Vincent W.
- "Django for APIs" by Vincent W.
- "Django 3 by Examples"
Advanced Python
Check https://github.com/Rustam-Z/senior-python-developer.
On a high level:
- Clean code:
- PEP 8 - Style Guide for Python Code
- clean-code-python
- testdriven.io
- "Clean code in Python" book
- LinkedIn Learning: Clean coding practices
-
typing
-
dataclasses
- Clean design:
- Design principles: KISS, DRY, SOLID
- Design patterns
- Concurrency, parallelism, asynchronicity programming:
- Testing:
-
unittest
,pytest
- "Python testing with PyTest" book
-
- Advanced topics:
- Books:
- "Fluent Python"
- "Python Cookbook"
- "Learning Python"
- "Effective Python"
- "Advanced Guide to Python 3"
- "Mastering Object-Oriented Python"
- "Expert Python Programming" 2021
- "High-performance Python"
- "Practices of the Python Pro", "The Python workshop", "Python Workout"