- [Luyện tập các câu hỏi coding](#luyện-tập-các-câu-hỏi-coding)
- [Coding Problems](#coding-problems)
### Topics of Study
@ -453,12 +453,31 @@ Có thể thay thế thẻ ghi nhớ với [Anki](http://ankisrs.net/), đây l
Cơ sở dữ liệu thẻ ghi nhớ của tôi tuân theo chuẩn định dạng của Anki: https://ankiweb.net/shared/info/25173560 (cảm ơn [@xiewenya](https://github.com/xiewenya))
### 3. Xem đi xem lại và xem lại nữa
Tôi giữ một danh sách xem nhanh các mã của ASCII, OSI stack, định nghĩa về Big-O, và nhiều hơn nữa. Tôi đọc bất cứ khi nào rảnh rỗi.
Khi gặp vấn đề trong lúc code, nghỉ ngơi chừng nửa giờ và đọc lại các thẻ ghi nhớ.
### 3. Làm Câu Hỏi Phỏng Vấn Lập Trình Trong Khi Bạn Đang Học
ĐIỀU NÀY RẤT QUAN TRỌNG.
Bắt đầu làm câu hỏi phỏng vấn lập trình trong khi bạn đang học cấu trúc dữ liệu và thuật toán.
Bạn cần áp dụng những gì bạn đang học để giải quyết vấn đề, nếu không bạn sẽ quên. Tôi đã mắc phải lỗi này.
Một khi bạn đã học một chủ đề, và cảm thấy khá thoải mái với nó, ví dụ, **danh sách liên kết**:
1. Mở một trong những [sách phỏng vấn lập trình](#danh-mục-sách) (hoặc trang web về vấn đề lập trình, được liệt kê dưới đây)
1. Làm 2 hoặc 3 câu hỏi liên quan đến danh sách liên kết.
1. Chuyển sang chủ đề học tiếp theo.
1. Sau đó, quay lại và làm thêm 2 hoặc 3 vấn đề về danh sách liên kết.
1. Làm như vậy với mỗi chủ đề mới bạn học.
**Tiếp tục làm các vấn đề trong khi bạn đang học tất cả những điều này, không phải sau này.**
Bạn không được tuyển dụng vì kiến thức, mà là cách bạn áp dụng kiến thức.
Có rất nhiều nguồn lực cho điều này, được liệt kê dưới đây. Hãy tiếp tục.
### 4. Tập trung
Có rất nhiều thứ lấy đi sự tập trung của ta, việc này tốn rất nhiều thời gian. Tập trung và toàn tâm toàn ý rất khó.
@ -520,70 +539,70 @@ Bạn không cần phải ghi nhớ cặn kẽ từ giải thuật.
Hãy viết code trên bảng đen hoặc trên giấy. Đừng sử dụng máy tính. Chạy thử trên giấy với vài bộ dữ liệu mẫu, sau đó chạy thử thuật toán của bạn trên một máy tính.
## Coding Question Practice
## Luyện tập các câu hỏi coding
Why is this here? I'm not ready to interview.
Tại sao cái này lại ở đây? Tôi chưa sẵn sàng để phỏng vấn.
[Then go back and read this.](#3-do-coding-interview-questions-while-youre-learning)
Why you need to practice doing programming problems:
- Problem recognition, and where the right data structures and algorithms fit in
- Gathering requirements for the problem
- Talking your way through the problem like you will in the interview
- Coding on a whiteboard or paper, not a computer
- Coming up with time and space complexity for your solutions (see Big-O below)
- Testing your solutions
Lý do bạn cần thực hành giải các bài toán lập trình:
- Nhận biết vấn đề, và xác định cấu trúc dữ liệu và thuật toán phù hợp
- Thu thập yêu cầu cho vấn đề
- Trình bày quá trình giải quyết vấn đề như bạn sẽ làm trong buổi phỏng vấn
- Lập trình trên bảng trắng hoặc giấy, không phải máy tính
- Đưa ra độ phức tạp về thời gian và không gian cho các giải pháp của bạn (xem Big-O dưới đây)
- Kiểm tra các giải pháp của bạn
There is a great intro for methodical, communicative problem-solving in an interview. You'll get this from the programming
interview books, too, but I found this outstanding:
![bảng trắng sofa của tôi](https://d3j2pkmjtin6ou.cloudfront.net/art_board_sm_2.jpg)
**Coding question practice is not about memorizing answers to programming problems.**
**Việc luyện tập giải các bài toán lập trình không phải là việc học thuộc lòng các câu trả lời cho các vấn đề lập trình.**
## Coding Problems
## Các Bài Toán Lập Trình
Don't forget your key coding interview books [here](#interview-prep-books).
Đừng quên các sách phỏng vấn lập trình quan trọng của bạn [ở đây](#interview-prep-books).
Solving Problems:
- [How to Find a Solution](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
- [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)
iải quyết vấn đề:
- [Cách tìm ra một giải pháp](https://www.topcoder.com/thrive/articles/How%20To%20Find%20a%20Solution)
- [Cách phân tích một bài toán Topcoder](https://www.topcoder.com/thrive/articles/How%20To%20Dissect%20a%20Topcoder%20Problem%20Statement%20Content)