Đã bao giờ bạn-một lập trình viên thắc mắc rằng : Mình phải trải qua các giai đoạn nào để có thể trở thành một good-programmer? Hay là bản thân mình đang có năng lực như thế nào? Biết-Không biết những gì? Cần biết những gì để phát triển hơn nữa?
Bạn-một người mới bắt đầu học lập trình có bao giờ ở trong tình huống mà không biết mình sẽ phải học cái gì tiếp theo?

Cùng tìm hiểu các giai đoạn phát triển của lập trình viên. Và cùng chia sẻ bạn đang ở giai đoạn nào trong sự phát triển của một lập trình viên nhé !
slide1

White Belt

Bạn không biết những gì mà bạn không biết !

  • Bạn biết chút cú pháp, và một vài từ khóa.
  • Bạn có thể phát hiện ra một tá các biết thể  “Hello World”.
  • Bạn không biết cách sử dụng Google để tìm câu trả lời cho câu hỏi của mình, thậm chí bạn cũng không biết rõ câu hỏi của mình là gì.
  • Bạn chưa phân biệt được sự khác biệt sửa “bad code” và “good code”. Điều đó có nghĩa là code của bạn là một bad code 😦

Yellow Belt

Bạn biết những gì bạn không biết, nhưng bạn biết bạn không biết rất nhiều !

  • Cú pháp của bạn đã được cải thiện, bạn biết thêm nhiều từ khóa.
  • Bạn đã thành công trong việc làm chạy một chương trình, không có việc debugging.
  • Bạn chưa thể viết một chương trình đầy đủ từ đầu tới cuối, nhưng bạn có thể làm được.
  • Bạn đã có thể tìm được loại các câu hỏi của bạn với Google.
  • Bạn đã dần biết được như thế nào là bad code.

Orange Belt

BẠN BIẾT CODE-FU! Bạn đã học được khá nhiều về tất cả mọi thứ vào thời điểm này.

  • Bạn đã học được hết những từ khóa cơ bản, và bạn hoàn toàn nắm được cú pháp.
  • Bạn có thể làm ra chương trình làm những gì bạn muốn !
  • You can Google any question you have.
  • Bạn có thể nhận biết bad code. And it’s everywhere.
  • People are idiots and terrible coders.

Purple Belt

Bạn thực tế là một master; nhận thức được tất cả về việc học tập. Có một vài điều bạn không biết, nhưng bạn đang leveling up all the time.

  • Có một vài “thủ thuật” trong ngôn ngữ. Ternary operators là bắt mắt, Regexes là tiện dụng. Có một loạt các công cụ bạn có thể làm trên mảng.
  • Công cụ của bạn chạy thành công, và nếu bạn có thời gian, bạn cố gắng để tối ưu hóa nó.
  • [Framework] là rất tuyệt, bạn nên thử nó – check it out !
  • Google không phải lúc nào cũng cho kết quả tốt. Bạn phải cẩn thận với nơi mà bạn đọc được thông tin bạn cần.
  • Bạn biết rằng bạn đã viết một số bad code.
  • Bạn đang viết một số good code vì người khác nói với bạn như vậy
  • Bạn tự hỏi tại sao mọi người không tối ưu hóa code của họ thường xuyên hơn

Brown Belt

Bạn có thể chuyển hóa “bò húc và mì gói”tối ưu từ 1 giây về  0 giây. =))))

  • Bạn có thể sử dụng mọi thủ thủ gọn gàng trong ngôn ngữ của bạn. Mỗi biến là ternary operator của một số loại sắp xếp. Tại sao sử dụng một phương pháp tìm và thay thế khi bạn chỉ có thể làm điều đó trong một Regex ?
  • Công cụ của bạn chạy; nhưng nếu bạn có thời gian bạn có thể làm một số test.
  • Bạn trừu tượng tất cả mọi thứ ở khắp mọi nơi mọi lúc. Tách biệt những thứ liên quan!
  • [Framework] is the best and anyone who says otherwise is wrong. That’s why you write plugins for it!
  • Bạn đã viết một số bài đăng trên blog, hoặc trả lời một số câu hỏi trên Stack Overflow.
  • Những người khác khen bạn về sự sáng tạo của bạn trong việc sử dụng các tính năng của ngôn ngữ của bạn
  • Bạn tự hỏi tại sao mọi người không tối ưu hóa mã của họ hơn; họ không quan tâm đến tối ưu?

Black Belt

You don’t care about the flashy tricks any more, it’s just about doing what makes sense.  You know what you don’t know, but you know you don’t know very much.

  • Neat Tricks are exactly that: neat tricks. You use “hacks” sparingly, because, just like Harrison Ford, you’ve gotten sick and you don’t have time for a long, convoluted solution.
  • [Framework] has some flaws. that’s why you’ve got [framework] or [framework].
  • You know what? None of those frameworks do the thing you need; that’s why you’ve been working on this new framework.
  • Your code  is documented, and readable.
  • Your code passes unit tests, and that’s more important than, “it runs.”
  • You abstract when necessary; you have crap to do.
  • You’ve answered a lot of Stack Overflow questions because you’ve found out there’s lots of ways to do the same thing.
  • There’s no such thing as good code. All code could be better.
  • You wonder why you don’t code as well as everyone else.

 

” I’m not entirely sure where I rank, but I am absolutely certain that I was an Orange belt for much longer than I thought. I think it’s very easy to reach Orange Belt status and think that you know how to program.

While a Brown belt knows most of the features of a language, the Black belt finally knows when to use them.  ” – Frank Taylor

Các nguồn tham khảo :
– Quora
– Frank Taylor
Advertisements