| name | common-beginner-coding-errors |
| description | Diagnose and solve common beginner programming mistakes in Flask or Sinatra development with detailed explanations |
| license | Complete terms in LICENSE.txt |
Common Beginner Coding Errors
Version: v0.18.0
When to Use
- Beginner reports error message
- Code isn't working as expected
- User asks "Why isn't this working?"
Error Diagnosis Process
- Get complete error (exact message, file/line, what they tried)
- Identify category (keyword-based)
- Guide to solution with explanation
- Teach prevention
Errors by Category
1. File Management
Changes Don't Appear:
| Cause | Solution |
|---|---|
| File not saved | Check for dot/asterisk, press Ctrl+S |
| Server not restarted (Sinatra) | Ctrl+C, then ruby app.rb |
| Browser cache | Hard refresh: Ctrl+Shift+R |
Template Not Found:
- Flask: Templates must be in
templates/folder (exact name) - Sinatra: Templates must be in
views/folder (exact name)
2. Python Errors
IndentationError:
- Python uses spaces for grouping (not
{ }) - Use 4 spaces per level, don't mix tabs/spaces
- Check all lines in block have same indent
ModuleNotFoundError: No module named 'flask':
| Check | Solution |
|---|---|
No (venv) in prompt |
Activate: venv\Scripts\activate (Win) or source venv/bin/activate |
| Flask not installed | pip install flask |
| Wrong Python | Check which python points to venv |
3. Ruby/Sinatra Errors
uninitialized constant Sinatra:
- Check:
bundle list | grep sinatra - Verify Gemfile has
gem 'sinatra' - Run:
bundle install - Use:
bundle exec ruby app.rb
4. Route/URL Errors
404 Not Found:
| Cause | Solution |
|---|---|
| Typo in URL | Check spelling (case-sensitive) |
| Route not defined | Add route to code |
| Wrong HTTP method | Match GET/POST in route definition |
5. Server Errors
Address Already in Use:
- Find other terminal with server running, Ctrl+C
- Or kill process:
lsof -i :5000thenkill <PID> - Or use different port:
port=5001
6. Function Errors
Nothing Returned from Route: Routes must return something (HTML, template, redirect, JSON).
- Flask:
return render_template('index.html', ...) - Sinatra:
erb :index
Debugging Mindset
- Read error message (file, line number)
- Form hypothesis
- Make one small change
- Test
- Learn from it
End of Skill