
Câu hỏi “WHAT THE HECK??” LOL
– Đa phần các bạn tôi phỏng vấn vào công ty hoặc các bạn thực tập sẽ có suy nghĩ như vậy.
– Theo tôi 2 thứ đó là phần tất yếu & là kĩ năng quan trong của lập trình viên. Nếu như không biết, thì thôi khỏi nói > BẠN ĐÃ TỤT HẬU RỒI.
– Khi tôi vào đại học được học C++, Algorithm and data structure, về sau được học UML. Thầy/cô đều dạy Pseudocode, flow chart, diagram. NHƯNG có một điều tôi thấy nó quá nhàm chán và làm theo qua môn, đối phó.
Nhưng khi vào thực tập, anh trainer hỏi nhóm tôi về 3 thứ đó, cả ba trả lời không biết & anh ấy nói rằng: “Hãy vẽ thứ đó khi giải quyết một vấn đề!”
Kinh khủng thay do những thói quen từ xưa xưa, chúng tôi cắm đầu viết code luôn. SỰ THẬT ĐÁNG BUỒN: chúng tôi luôn bị tắc (dù task đó khá đơn giản), suy nghĩ không thông. Cứ như vậy trong một tháng không làm theo bước đó, các bạn biết không? Chúng tôi thu được con số 0 tròn trĩnh, chả biết thứ gì. Chúng tôi chợt nhận ra đã thiếu sót thứ gì, đúng là CÁ KHÔNG ĂN MUỐI CÁ ƯƠN.
– Tôi, Kiên, An bắt đầu viết những đoạn pseudocode, diagram đầu tiên. Có thể nói rằng chúng tôi đã giải quyết được bài toán đó ở một cách chập nhận được.

Lặp đi lặp lại, ngày qua ngày, chúng tôi đều bắt đầu quen tay hơn.
Khó khăn à, nhiều ấy chứ, do chúng tôi quen tay code luôn nên mất thời gian thích nghi với cách tiếp cận “MỚI” này.
– BÂY GIỜ & Ở ĐÂY, chúng tôi luôn thực hiện nó & là style của chúng tôi nói riêng và công ty nói chung.
– Task tích hợp hệ thống tôi & Kiên nhận, chúng tôi dùng khá nhiều thời gian để vẽ diagram & pseudocode, review nhiều lần mới được kết quả như mong muốn.
– Cách làm như nào ư, rất đơn giản, 1 quyển vở 5k, 1 cây bút và thực hiện những nét viết đầu tiên.
Ví dụ ” Hello Java ” ROFL, just kidding.
– Bắt đầu các em ơi.
Một task khá là “đơn giản”:
Đồng bộ hóa danh sách user từ hệ thống B vào hệ thống A: |
nếu A -> B trùng: giữ nguyên nếu A có, B không: thêm vào B nếu B có, A không: Xóa B nếu user trên B là GUEST thì không làm gì |
– Tôi sẽ giải quyết như sau, vẽ 2 quả trứng. BÙM tôi đã có sơ đồ:

Pseudocode |
– lấy danh sách User A |
– lấy danh sách User B |
– Cho 2 thứ đó giao với nhau, ta được hình tròn & eclip |
– Tự nội suy phần mầu hồng là gì |
– Chấm đỏ là GUEST |
– Thêm right pink vào B (dùng một list để lưu right pink) |
– Ktra chấm đỏ thì bỏ qua |
– Xóa left pink (dùng một list để lưu left pink) |
OMG vấn đề được giải quyết |
– Các ngôn ngữ như C#, JS, Java Python đều có Collections, thao tác giao list, lấy phần dôi, đã hỗ trợ sẵn chỉ cần google.
– Nhưng để làm như trên cần thời gian dùi mài kinh sử viết Pseudocode & chart hết 3 quyển hồng hà đó LOL

– Tôi giao task đó cho bạn fresher làm, mất 3 ngày vẫn tắc, các bạn biết lỗi ở đâu rồi đó. Không làm 2 bước trên mặc dù tôi & Kiên đã chỉ. Nhìn code đó 3 sau 3 ngày cậu ấy làm mà tôi ngao ngán, có làm 1 tuần thì cũng vẫn vậy, 3 lớp lồng nhau, vài cái biến đếm tính số user, flag các kiểu.
– Nhiều trường hợp funny nữa: một task chỉ cần làm trong 30p, 1h, 2h là có kết quả, nhưng làm mất 3 ngày, 5 ngày.
– Tôi và Kiên đã quán triệt rằng: “thực hiện hay không tùy chú, muốn nói chuyện với anh thì hãy vẽ đi!!”.
CLICK TO OPEN TREASURE /klik/ /to͞o/ /ōpən/ /ˈtreZHər/
Trần Mạnh Chung