All Programming All The Time
Learning programming effectively often boils down to structured approaches that build retention, problem-solving habits, and a resilient mindset.
- programming fundamentals
- start solving problems early
- ask good questions
- read documentation
- read other people’s code
- debugging
- planning
- build your first real project
- basic project management
- keep a coding journal
- Spaced Repetition – Janki:
Further reading
- Tutorials (Processing.org)
- Ultimate Guide to the Processing Language Part I: The Fundamentals
- Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels
- Hey newbie, as you learn to code, please re-invent the wheel a lot!
- The Mindset of Dealing with “Bad Code”
- Radical Detachment in the AI Era: Reinventing How We Build Software
- How to build a successful on-call culture: A guide for engineering teams
- How I Teach
- Programming Your Brain: The Art of Learning in Three Steps
- The Secret to Writing Code From Scratch: Start by Writing Pseudocode
- How to write Pseudocode: A beginner’s guide
Resources
- Build Your Own X — Step-by-step guides to recreate popular tech (Redis, Git, Docker, etc.) from scratch.
- Build Your Own X From Scratch Books — Books/guides on building compilers, databases, web servers, etc., bottom-up (code examples are simple/agnostic-friendly).
- Free Programming Books (By Subject) — Curated free books on CS/programming topics (e.g., algorithms, design patterns) not tied to one language.
- The Pragmatic Programmer — Timeless tips for better coding practices and mindset.
- Code Complete — Comprehensive guide to software construction principles.
- Programming Pearls — Algorithmic thinking and problem-solving gems.
- Structure and Interpretation of Computer Programs (SICP) — Classic on fundamental programming concepts (uses Scheme but ideas transfer).
- Project-based Learning — Curated projects across languages/topics (use to practice concepts agnostically).
- Approaching Algorithms and Data Structures in a Language-Agnostic Way — Guide to learning algos/DS via pseudocode and transferable skills.
Books
- Structure and Interpretation of Computer Programs (SICP)
- Computer Systems: A Programmer’s Perspective (CS:APP)
- Designing Data-Intensive Applications (DDIA)
- The Pragmatic Programmer
- Clean Code
- Code Complete
- The Mythical Man-Month
- Refactoring
- Design Patterns: Elements of Reusable Object-Oriented Software