🎓 Recommended Learning Roadmap
🌟 Phase 1: Foundation
Goal: Build programming mindset and basic skills
📚 Module 1: Overview & Learning Skills
Get familiar with programming, understand how computers work and develop self-learning skills.
- Content:
- Introduction to programming and programming languages
- Computer architecture, operating systems and basic networking
- Effective information search and self-learning skills
- Development environment setup
- Duration: 1-2 weeks
Get started → | Self-learning skills →
📚 Module 2: Basic Programming with Java
Learn your first programming language with Java - a popular language with clear syntax and good OOP support.
- Content:
- Basic syntax: variables, data types, operators
- Control structures: if-else, switch, loops
- Arrays and strings
- Functions/methods
- Duration: 3-4 weeks
- Prerequisites: Module 1
Learn Java basics →
📚 Module 3: Object-Oriented Programming (OOP)
Master OOP mindset - an important foundation of modern programming.
- Content:
- Class and Object
- Encapsulation, inheritance, polymorphism, abstraction
- Interface and Abstract class
- Exception handling
- Duration: 2-3 weeks
- Prerequisites: Module 2
Learn OOP →
🚀 Phase 2: Development
Goal: Build real applications with database and web
📚 Module 4: Database & SQL
Work with databases - an indispensable component in most applications.
- Content:
- Database design and relational model
- Data queries: SELECT, JOIN, Subquery
- Data manipulation: INSERT, UPDATE, DELETE
- Stored procedures, triggers, views
- Duration: 3-4 weeks
- Prerequisites: Module 3
Learn SQL →
📚 Module 5: Data Structures & Algorithms
Optimize code and solve complex problems efficiently.
- Content:
- Array, Linked List, Stack, Queue
- Tree, Graph, Hash Table
- Sorting and searching algorithms
- Algorithm complexity (Big O)
- Duration: 4-5 weeks
- Prerequisites: Module 2-3
Learn DSA →
📚 Module 6: Web Frontend Development
Build user interfaces for web applications.
- Content:
- HTML5: web page structure
- CSS3: styling and responsive design
- JavaScript: interaction and event handling
- DOM manipulation and AJAX
- Duration: 4-5 weeks
- Prerequisites: Module 2 (recommended)
Learn Web →
💼 Phase 3: Specialization
Goal: Dive deep into specific fields
📚 Module 7: Backend Development
Choose one of the popular backend directions:
Option A: Java Backend
Option B: PHP Backend
Duration: 5-6 weeks | Prerequisites: Module 4, 6
📚 Module 8: DevOps & Deployment
Deploy and operate applications in real environments.
- Content:
- Docker: containerization
- Git workflow and CI/CD
- Linux server basics
- Kubernetes (optional advanced)
- Duration: 3-4 weeks
- Prerequisites: Module 7
Learn DevOps →
🎨 Additional & Advanced Materials
Programming Languages
Expand knowledge with other languages serving specific purposes:
- C/C++ - System programming, games, embedded systems
- Python - Data Science, Machine Learning, automation
- Rust - Safe and high-performance system programming
Frontend Frameworks
Enhance frontend skills with modern frameworks:
- React.js - Most popular UI library from Facebook
- Vue.js - Easy to learn, flexible progressive framework
Important Note
Not necessary to learn everything
You do not need to learn all materials. Focus on the main roadmap (Module 1-8) first, then choose a specialization that fits your career goals.
Estimated time: 6-9 months (full-time study) or 12-18 months (part-time study)
💡 Advice For Learners
🎯 Effective learning principles
Learn in order
Follow the suggested roadmap. Each module builds on the knowledge from previous modules. Skipping basic steps will cause difficulties later.
Practice is the key
Spend at least 70% of time writing actual code. Reading materials only takes 30%. There are no shortcuts in programming - only consistent practice.
Do projects
After each module, build a small project combining what you've learned. This is the best way to consolidate and apply knowledge.
Don't chase new technologies
Focus on fundamentals first. Once you master the basics, learning new technologies will be much easier.
📚 Learning method
- Read and understand theory - Spend 20-30 minutes
- Practice immediately - Code along with examples
- Experiment and adjust - Change code, see what happens
- Do exercises - Apply newly learned knowledge
- Build small projects - Combine multiple concepts
🔄 When facing difficulties
- Re-read materials - Sometimes you miss important details
- Search on Google - Use the search skills you've learned
- Check code again - Debug step by step
- Ask the community - Stack Overflow, Reddit, Discord
- Rest and come back - Sometimes the brain needs time to process information
⏱️ Time management
- Full-time study: 6-8 hours/day, 5-6 days/week
- Part-time study: 2-3 hours/day, may extend study duration
Quality over quantity
2 hours of absolute focus is better than 5 hours of distracted study. Turn off notifications, find a quiet place and focus 100%.
If you have questions or need support during the learning process:
🤝 Contributing
This material is open source and always being improved. If you find errors, have new content suggestions or want to contribute:
- Fork the repository
- Create a new branch for your changes
- Submit a Pull Request
All contributions are greatly appreciated! 🙏
Wishing you effective study and success on your path to becoming a programmer! 🚀