This repository tracks my programming study journey toward becoming a software developer.
The goal is not only to complete exercises, but to build strong fundamentals through:
- reading official and book-based material
- writing code by hand
- solving exercises
- reviewing and refactoring code
- writing notes
- practicing Git and GitHub workflow
- building small projects over time
Current study path:
Python Crash Course
Exercism Python Track
Custom drills
Code review and refactoring
Small projects
The current Python phase focuses on:
- Python syntax
- variables
- strings
- numbers
- functions
- lists
- loops
- ranges
- slicing
- tuples
- basic testing with
assert - clean code habits
developer-learning/
├── python/
│ ├── python-crash-course/
│ │ ├── chapter-01-getting-started/
│ │ ├── chapter-02-variables-simple-data-types/
│ │ ├── chapter-03-introducing-lists-exercises/
│ │ └── chapter-04-working-with-lists/
│ │
│ ├── exercism/
│ │ └── python/
│ │
│ ├── drills/
│ │ ├── week-01/
│ │ └── week-02/
│ │
│ └── reviews/
│
├── README.md
└── .gitignore
For each topic, I follow this cycle:
read → type examples → solve exercises → test → review → refactor → commit
Read the relevant chapter, documentation, or exercise instructions.
Type examples manually instead of only copying them.
Write a separate Python file for each exercise when possible.
Run the files from the terminal.
Example:
python3 python/python-crash-course/chapter-04-working-with-lists/pizzas.pyFor simple practice tests:
python3 python/drills/week-01/test_week_01_drills.pyFor Exercism tests:
python3 -m pytest -o markers=task exercise_test.pyCheck:
- Does the code run?
- Are variable names clear?
- Is indentation correct?
- Are there unnecessary
print()calls? - Should a function use
returninstead? - Is there repeated logic?
- Can I explain every line?
Improve code after it works.
Commit meaningful progress.
git add .
git commit -m "Complete Chapter 4 loop exercises"
git pushThe main learning sources are:
- Python Crash Course
- Official Python Documentation
- Exercism Python Track
- Custom drills and review questions
Official Python documentation:
https://docs.python.org/3/
Exercism Python Track:
https://exercism.org/tracks/python
Python files should use lowercase letters and underscores.
Good:
simple_message.py
name_cases.py
exercise_3_1_names.py
counting_to_twenty.py
Avoid:
SimpleMessage.py
name-cases.py
Exercise 3.py
Basic style habits:
- use 4 spaces for indentation
- use clear variable names
- keep files organized
- avoid excessive blank lines
- use comments when they explain why something exists
- use
snake_casefor variables and functions - use uppercase names for constants
Examples:
favorite_language = "Python"
expected_bake_time = 40
EXPECTED_BAKE_TIME = 40Use constants when a value should stay fixed:
EXPECTED_BAKE_TIME = 40
MINUTES_IN_HOUR = 60Check project status:
git statusStage changes:
git add .Commit changes:
git commit -m "Describe the work completed"Push to GitHub:
git pushRecommended commit message examples:
git commit -m "Complete Chapter 3 list exercises"
git commit -m "Add Chapter 4 exercises README"
git commit -m "Refactor Week 1 drills"
git commit -m "Complete Currency Exchange exercise"Do not commit generated Python cache files.
Ignored examples:
__pycache__/
*.pyc
.DS_Store
.venv/
.env
If cache files appear, remove them:
find . -name "*.pyc" -delete
find . -name "__pycache__" -type d -exec rm -r {} +Weekly or chapter reviews are stored in:
python/reviews/
A review should include:
- what I studied
- exercises completed
- what I understand well
- what still feels weak
- bugs I fixed
- code I refactored
- questions for review
- next focus
The long-term goal is to build toward full-stack development.
Planned areas:
Python fundamentals
Django
PostgreSQL
JavaScript review
React
Testing
Git workflow
Small projects
Portfolio projects
Job preparation
Good progress means:
- code runs
- exercises are completed
- mistakes are reviewed
- code is cleaned up
- concepts can be explained
- GitHub is up to date
- weak areas are identified
- practice continues consistently
The goal is not speed.
The goal is clean, tested, explainable code.