The growth stages of a programmer ?

Dẫn nhập

Tôi đã viết khá nhiều bài về kỹ thuật trong lập trình và thường mỗi bài viết tôi đều gom góp từ những kinh nghiệm cũng như hiểu biết của bản thân, và dĩ nhiên nó phải đủ "sâu" để viết ra được một bài viết và sẵn sàng trả lời mọi feedback từ người đọc. Điều đó làm tôi dần cạn kiệt ý tưởng để viết ra một bài viết chất lượng về công nghệ, hay nói cách khác, bản thân tôi đang trở nên thụt lùi và không học hỏi kịp với xu hướng hiện tại. Thế nhưng, trong lúc lang thang tìm ý tưởng mới để viết bài thì vô tình đọc được một bản dịch khá hay về các giai đoạn phát triển của nghề lập trình viên, từ lúc bạn bắt đầu tiếp cận với nó cho đến khi là một nhà "kiến trúc" phần mềm được gọi là expert. Và dĩ nhiên, tôi chia sẻ ngay sau đây.

Các giai đoạn nào?

Thử tưởng tượng Lập trình viên cũng được phong đai như trong võ thuật thì ý tưởng đó cũng hay và đáng suy ngẫm chứ :man_detective:

Đai trắng

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

Đai vàng

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.

Đai cam

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 !
  • Bạn có thể tra Google để tìm ra những điều bạn muốn
  • Bạn có thể nhận biết bad code. And it’s everywhere.
  • Bạn biết rằng con người là những kẻ ngốc và kém cỏi về lập trình

Đai tím

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

Đai nâu

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 là tốt nhất và hễ ai nói khác đều là sai. Đó là lý do bạn bắt đầu viết các plugin cho nó.
  • 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?

Đai đen

Bạn không còn quan tâm đến các thủ thuật hào nhoáng nhiều hơn, vì chúng chỉ đem lại những thứ có ý nghĩa. Bạn biết những thứ bạn không biết, và bạn biết rất nhiều.

  • Bạn sử dụng các thủ thuật một cách gọn gàng hơn.
  • Bạn biết rằng Framework cũng có rất nhiều sai sót. Đó là lý do bạn bắt đầu sửa đổi chúng thậm chí là viết lại.
  • Bạn biết rằng không có Framework nào thực hiện chính xác những điều bạn muốn, đó là lý do bạn bắt đầu viết Framework theo ý mình.
  • Code của bạn được giải thích rõ ràng và dễ dàng đọc hiểu.
  • Code của bạn pass được các bài Unit Test và điều đó quan trọng hơn là nó chỉ chạy được.
  • Bạn chỉ trừu tượng hóa khi cần thiết.
  • Bạn đã trả lời được rất nhiều câu hỏi trên Stack Over Flow.
  • Không có mã sạch hoàn toàn. Tất cả chỉ được làm tốt hơn.
  • Bạn tự hỏi vì sao bạn không code tốt như những người khác làm?

Kết luận

Các bạn có thể tìm nguồn tại đây , blog cá nhân của một Lập Trình Viên. Các bạn tìm thấy mình ở đâu trong bài viết này?