Vòng luẩn quẩn & Quy trình lập trình
Cách đây 20 năm khi tôi đang học lớp 8, có một người THẦY đã dạy tôi về vòng luẩn quẩn…
Vòng luẩn quẩn là cái gì?
Trước tiên, hãy bỏ ra 5 phút suy nghĩ: Theo bạn nó là cái gì?
Vòng luẩn quẩn là một thứ rất kinh khủng. Nó giam hãm con người, chỉ còn một bước chân nữa là tới thành công nhưng lại quay đầu và restart?
Thực tế rất dễ hiểu: Khi người ta cố làm một việc gì đó mà chưa thành công, mà lại không muốn thay đổi thói quen của mình. Hoặc giả là không biết cách thay đổi thói quen của mình.
Nó tồn tại như một cái lồng vô hình, trói buộc người đang cố gắng không thể chạm tới thành công.
Quy trình học
Vòng luẩn quẩn thất bại:
Mỗi lần thi ai chẳng muốn điểm 8-10. Và đây thường là cách họ cố gắng để đạt được nó:
- Cố gắng học, Mệt mỏi
- Thiểu năng não,
- Kết quả thấp, Buồn,
- Lặp lại.
Kết quả là cả đời cứ kêt quả thấp và buồn.
Quy trình học thành công:
Ngay khi hiểu ra quy luật đó, tôi đã thay đổi cách học của mình, thành:
- Tập thể dục, Khoẻ, Bớt chơi
- Tự đọc sách, Tự làm bài
- Học khá hơn, Hưng phấn
- Lặp lại.
Và số điểm 5 đó đã nhảy lên số 8, rồi 9, và 10 một cách nhanh chóng. Và rồi cái từ “Học Sinh Giỏi” nó cũng không còn quan trọng với tôi nữa. Mà nó là từ TÔI LÀM ĐƯỢC!.
Không những thế tôi còn được cả sức khoẻ, niềm vui, và sự kính nể của học sinh toàn trường. Đó chính là con đường đã đưa tôi đi du học ở Úc, rồi mang những khám phá đó về ứng dụng cho chính bản thân ở VN.
Nhưng thưa các bạn, tôi không phải là thành công vì đi Úc, mà tôi ĐÃ THÀNH CÔNG khi thay đổi được vòng luẩn quẩn của mình hồi lớp 8.
Quy trình lập trình
Vòng luẩn quẩn thất bại:
Một người lập trình bình thường sẽ không bao giờ nghĩ mình đang làm ẩu. Nhưng trên thực tế… làm ẩu chính là nguyên nhân cho mọi sự thất bại, và đây là cái vòng luẩn quẩn của nó:
Không ghi chú => Coder sai logic code => Tester báo Lỗi => Mệt mỏi => Coder sửa lỗi => Không ghi chú => Sai logic code => Tester báo lỗi khác => Chán nản => Coder sửa lại => Không ghi chú => Sai logic code => Lỗi to hơn => Sửa nữa => Lỗi triền miên => Sửa triền miên => Tuyệt vọng => Dự án sập.
Nếu bạn đang ở giai đoạn chỉ sửa lỗi đã hết ngày rồi thì tôi rất nghi ngờ bạn đang ở vòng số 1 và dự án sẽ sập! Lý do lại chủ yếu không liên quan đến tay nghề của bạn, mà lại là:
- Chính coder đã quá chủ quan là sẽ có tester kiểm tra lại việc của mình, vì thế khi code có thể chểnh mảng.
- Các bạn đang trễ vì giữ tester và coder để hoàn thành được việc của nhau thì đã “quá muộn” rồi. Việc nó chồng chất lên nhau. Chưa kể những lỗi do user thông báo nữa.
- Do thiếu nghỉ ngơi nên đầu óc mệt mỏi, thiếu minh mẫn lên gõ nhầm.
- Nghiên cứu chưa kỹ yêu cầu nên đã làm sai.
Quy trình lập trình thành công:
Vậy tại sao tôi lại có những 5-sao cho các dự án của mình? Bởi vì đây là quy trình của tôi:
Tương tác với người yêu cầu => Kế hoạch code theo tiến trình => Phân nhỏ đoạn code => Lập trình theo tiêu chuẩn => Ghi chú code => Git commit => Nghỉ ngơi, tập luyện => Khoẻ => Lỗi nhỏ => Báo lỗi cụ thể => Bình tĩnh => Sửa lỗi => Ghi chú code => => Git commit => Nghỉ ngơi, tập luyện => Tỉnh táo => Lập trình tính năng mới => … => Dự án hoàn thành đúng deadline.
Còn làm việc theo quy trình 2 thì rất bạn sẽ cần bổ sung 10 việc sau:
- Lên kế hoạch cho từng công đoạn một qua Trello, có sự kiểm duyệt của chủ đầu tư.
- Nghiên cứu yêu cầu kỹ lưỡng, không mù quáng làm mà chưa hiểu hết ý tưởng.
- Luôn chủ động tìm vấn đề và giải pháp để tạo thẻ nhiệm vụ cho chính mình.
- Khi code theo tiêu chuẩn của framework về đặt tên, cách dòng, thụt đầu dòng, chia đoạn, ghi chút inline.
- Tự test cẩn thận sau khi làm cho đúng yêu cầu, không cần tester.
- Nghỉ ngơi điều độ cho đầu óc tỉnh táo. Tập luyện thể dục để sức khoẻ tốt, sáng suốt hơn khi code.
- Cứ 8 tiếng làm việc thì nghĩ 7 tiếng, code 1 tiếng.
- Code theo logic minh bạch, ngắn nhất có thể.
- Git commit và push ngay sau mỗi lần hoàn thiện một tính năng hay sửa lỗi.
- Sử dụng chính git để tìm lại lỗi hoặc undo lại bản trước lỗi trong trường hợp khẩn cấp.
Và đây là những thành quả tôi tự đánh giá và có được:
- Người khác viết 100 dòng, tôi chỉ viết 10 dòng thôi, và trong đó 2 dòng là comment.
- Tỉ lệ tôi phải fix bug do người khác báo thường chỉ là 5% tổng số function dự án. Còn bạn?
- Code giao diện và function cho 1 website WP 5 trang hoàn chỉnh trong tròn 3 ngày x 8h = 24h làm việc.
- Giá lẻ cho 1 giờ làm việc là $55, giá sỉ là $25.
- Trung bình mỗi dòng code của tôi là $5. Thậm chí có những dòng sửa 1 ký tự với giá $50.
- Kỷ lục fix bug của tôi là 20s, từ lúc chủ đầu tư nói yêu cầu tới lúc yêu cầu đó đã hiện lên website.
Nếu bạn có những thành quả tương tự tôi, xin chúc mừng, và rất hy vọng bạn sẽ liên hệ và kết bạn với tôi. Còn nếu bạn chưa, thì thay vì nghi ngờ, bạn hãy thử thay đổi quy trình của mình xem có tiến triển gì không nhé 😉
Sự thay đổi:
Ai cũng có cái vòng luẩn quẩn mà không hề hay biết. Và khi có cơ hội để bứt phá nó ra, thì người khôn ngoan sẽ biết nắm bắt lấy nó để bứt phá, để lột xác, và để level up chính chuyên môn của mình. Tôi đã khôn ngoan khi biến được sự chia sẻ 5p của người Thầy đó thành hành động ngay lập tức và nhiều năm sau.
Không phải tự nhiên tôi lại trở thành một CHUYÊN GIA WEB. Nếu tôi vẫn giữ cách làm việc cổ hủ, lạc hậu, và “tuỳ hứng” như những người khác thì tôi vẫn mãi chỉ là Junior, hoặc may mắn hơn là Senior Developer!
Nếu bạn không trân trọng và chỉ biết đố kỵ với những cái người khác đã gặt hái được, thì bạn vẫ sẽ là BẠN của NGÀY HÔM QUA, và HÔM NAY. Còn cái ước mơ nhỏ bé của NGÀY MAI nó vẫn cứ “gần chạm” vì bạn sẽ lại restart chính mình.
Muốn thành công:
- Hãy biết thay đổi ngay từ những thứ NHỎ NHẤT!
- Hãy biết trân trọng chính cái tên của mình.
- Hãy thả mình trôi theo quy trình mới thay vì chống lại nó.
Cám ơn các bạn đã đọc.