Skip to content

Programming Learning ResourcesFrom Basic To Advanced

Java, SQL, DSA, Web Development and many other technologies

Programming Resources

🌟 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

  1. Read and understand theory - Spend 20-30 minutes
  2. Practice immediately - Code along with examples
  3. Experiment and adjust - Change code, see what happens
  4. Do exercises - Apply newly learned knowledge
  5. Build small projects - Combine multiple concepts

🔄 When facing difficulties

  1. Re-read materials - Sometimes you miss important details
  2. Search on Google - Use the search skills you've learned
  3. Check code again - Debug step by step
  4. Ask the community - Stack Overflow, Reddit, Discord
  5. 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%.

📞 Contact & Support

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:

  1. Fork the repository
  2. Create a new branch for your changes
  3. Submit a Pull Request

All contributions are greatly appreciated! 🙏


Wishing you effective study and success on your path to becoming a programmer! 🚀

Released under the MIT License.