# 🗺️ Lộ Trình Học Code

## 📖 Summary

#### 🌟 WHY (Tại sao cần học lộ trình này?)

Viết code chạy được là chưa đủ. Để trở thành một kỹ sư phần mềm xuất sắc, bạn cần tư duy thuật toán tối ưu, khả năng xử lý dữ liệu linh hoạt và kỹ năng đảm bảo chất lượng phần mềm tự động. Lộ trình này sinh ra để lấp đầy khoảng trống giữa việc "biết code" và "làm ra sản phẩm chất lượng cao".

#### 🚀 WHAT (Chúng ta sẽ học gì?)

Đây là một hành trình toàn diện đi qua 3 trụ cột chính:

1. **Tư duy thuật toán**: Rèn luyện não bộ với các bài toán Arrays, Hashing và Two Pointers.
2. **Xử lý dữ liệu hiện đại**: Làm chủ Functional Programming với Map, Filter, Reduce.
3. **Automation Testing**: Chinh phục tháp kiểm thử từ Unit Test, Integration Test đến UI/Browser Test.

#### 🛠️ HOW (Học như thế nào?)

Chúng ta sẽ không học lý thuyết suông. Mỗi module đều đi kèm với bài tập thực chiến:

* **Coding**: Giải quyết các bài toán LeetCode kinh điển.
* **Testing**: Viết test script thực tế cho API và Web App sử dụng các công cụ hàng đầu công nghiệp như **TestNG, Jest, Rest-Assured, Selenium và Playwright**.

***

### 🎯 Module 1: Arrays & Hashing (Mảng & Băm)

*Trọng tâm: Hash Maps, Vòng lặp, và Logic cơ bản.*

* [ ] **1. Two Sum**
* [ ] **2. Valid Anagram**
* [ ] **3. Ransom Note**
* [ ] **4. Majority Element**
* [ ] **5. Contains Duplicate**
* [ ] **6. Move Zeroes**
* [ ] **7. Missing Number**
* [ ] **8. Squares of a Sorted Array**

### 🧩 Module 2: Two Pointers & Strings (Con trỏ & Chuỗi)

*Trọng tâm: Thao tác con trỏ và xử lý văn bản.*

* [ ] **9. Valid Palindrome**
* [ ] **10. Longest Palindrome**
* [ ] **11. Roman to Integer**
* [ ] **12. Backspace String Compare**
* [ ] **13. Longest Common Prefix**
* [ ] **14. Palindrome Number**

### 🧊 Module 3: Array, List( Filter, Map, Reduce)

*Trọng tâm: Array, List, Filter, Map, Reduce.*

* [ ] **Filter**
* [ ] **Map**
* [ ] **Reduce**

### 🧪 Module 4: Unit Test

*Trọng tâm: Unit Test*

* [ ] **TestNG**
* [ ] **Jest**

### 🔗 Module 5: Integration Test

*Trọng tâm: Resful API Testing*

* [ ] **Rest-Assured**
* [ ] **Axios**

### 🌍 Module 6: Browser Testing

*Trọng tâm: Selenium, Playwright*

* [ ] **Selenium**
* [ ] **Playwright**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://testingvn.gitbook.io/programming-skils/lo-trinh-hoc-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
