Tag Archives: kata; coding dojo; cocodojo; số la mã; roman numeral

Coding Dojo dễ hay khó?

Bộ mặt thật của Coding Dojo

Lập trình viên dày dạn thì cho rằng coding dojo là trò chơi cho mấy anh lính mới vào nghề, còn những bạn mới thì lại nghĩ rằng ở đây luyện những thứ  cao siêu. Vậy coding dojo thực sự là gì và có dành cho bạn?
Một buổi Coding Dojo

Một buổi Coding Dojo

Sự thực thì coding dojo là một sân chơi cho tất cả mọi người. Trong một coding dojo, tất cả mọi người tham gia vượt qua một thử thách lập trình [1]. Thử thách này thường là những bài rất nhỏ, những đoạn mã rất ngắn mà hầu hết mọi người, kể cả những người mới học lập trình đều có thể viết được. Hãy xem một trong những kata rất hay được dùng là FizzBuzz. Trong kata này chúng ta sẽ viết mã để hiển thị các số tự nhiên từ 1 tới 100 theo quy tắc sau:
  • Nếu số chia hết cho 3 và 5 thì in ra chữ FizzBuzz
  • Nếu số chỉ chia hết cho 3 thì in ra chữ Fizz
  • Nếu số chỉ chia hết cho 5 thì in ra chữ Buzz

Thử thách này thật đơn giản đúng không? Và không chỉ có thế mà bạn có thể không cần phải hoàn thành chúng, vì thử thách chỉ đơn giản là một đối tượng để cho chúng ta thực hành với mã mà thôi. Do đó việc lo sợ mình không làm được là điều không đáng có.

Vậy thì những lập trình viên lâu năm làm gì? Nghe có vẻ đây đúng là nơi dành cho những “tay mơ”? Bạn đừng coi thường việc viết những đoạn mã này! Theo bạn thì đâu là những thứ căn bản nhất của lập trình và thiết kế? Đó có phải là viết mã sạch cho dễ đọc? Và để thực hành điều này thì đâu cần những thứ to tát quá đúng không? Và ở đây chúng ta có rất nhiều quy tắc khác nhau như không dùng if, không dùng lặp, hàm không dài quá ba dòng, v.v sẽ giúp bạn có đủ khó khăn và luyện tập [quy tắc].
Coding Dojo là một loại thực hành có chủ ý, người tham gia vào hoạt động này chú ý tới từng kỹ năng cụ thể của mình. Trong thực hành có chủ ý người ta chia các kỹ năng thành những phần nhỏ và luyện tập, nó khác với thực hành chung chung là chúng ta cứ làm mọi thứ và không quan tâm tới việc cải tiến một thành phần nào đó cụ thể. Đó chính là sự khác biệt giữa một lập trình viên xuất sắc và một lập trình viên giỏi.
Chúng ta chỉ có một vài thử thách ngắn và nhỏ để thực hành, nhưng mỗi người tới coding dojo lại chủ ý để cải tiến một kỹ năng nào đó rất riêng, do đó một lập trình viên dày dạn học những thứ khác từ một “tay mơ”.
Thêm vào đó, cách tốt nhất để chúng ta có thể nhìn nhận lại kiến thức và kỹ năng của mình là phải học lại từ đầu, và làm điều này dễ nhất là học với một người mới.
Vậy thì bạn còn thắc mắc tại sao một lập trình viên dạy dạn kinh nghiệm nên đến coding dojo nữa không? Nếu vẫn còn thắc mắc mời bạn hãy gửi cho chúng tôi hoặc vào nhóm CocoDojo để mọi người cùng thảo luận.
Tác giả:  Phạm Anh Đới

Thợ lành nghề #17: Gọi bảo kê (SMCRemote – phần 7)

craftmanship

Dự kiến chuyện tệ hại nhất sau khi “đụng” với Jasmine, Alphonse học được cách dùng mới cho điều kiện cách if – và khám phá bên trong ngoại diện bình thường của người hướng dẫn mới hàm chứa một … read more

Thợ lành nghề #16: Lịch thiệp quá mức (SMCRemote – phần 6)

craftmanship

Khi chàng đã nhũn xuống vì hổ thẹn, một đô nặng cân về chuyện thái độ giúp Alphonse hoàn thành mã nguồn – và nàng Jasmine mới này làm chàng cực kỳ khó chịu. Tác giả: Robert C. Martin Người … read more

Thợ lành nghề #15: Ếch là Bê (SMCRemote – phần 5)

craftmanship

Từ chuyện tay học việc nhiệt tình của chúng ta dọn dẹp tệp tin Jasmine yêu cầu, dẫn đến tình trạng quá thái trong lúc anh chàng hình dung một cuộc đối thoại tưởng tượng – với chính anh ta. … read more

Lập trình Cặp: chúng ta giúp nhau thành công

pair

Tóm tắt Lập trình Cặp (Pair-Programming) là cách hai lập trình viên cùng làm việc trên chỉ một máy tính, một người lái (driver), một người làm hoa tiêu (navigator), thú vị hơn bạn tưởng tượng nhiều. Việc hoán đổi … read more

[XP] Mã kiểm thử đơn vị đầu tiên

tdd

Khi tạo kiểm thử ngay đầu tiên, trước khi viết mã, bạn sẽ thấy việc viết mã dễ dàng và nhanh hơn. Tổng thời gian để viết kiểm thử, và mã để vượt qua kiểm thử xấp xỉ thời gian … read more

[XP] Không bao giờ thêm chức năng sớm

Extra Stuff Eearly

Giữ cho hệ thống gọn gàng với những chức năng được thêm vào mà bạn đoán chúng sẽ được sử dụng sau này. Chỉ có 10% chức năng bổ sung được sử dụng, do đó, bạn đang lãng phí 90% … read more

Thợ lành nghề #12: Ba dòng mã xấu xí (SMCRemote – phần 2)

craftmanship

Tác giả: Robert C. Martin Người dịch: Hoàng Ngọc Diêu | Biên tập: Phạm Anh Đới Ngày 18 Tháng 3 năm 2003 Tôi nghỉ giải lao trên đài quan sát. Khi lớp chắn bằng nước đá đi xuyên qua vùng phân … read more

Thợ lành nghề #11: Dùng hàm main để làm gì? (SMCRemote – phần 1)

Tho Lanh Nghe

Tác giả: Robert C. Martin Người dịch: Hoàng Ngọc Diêu | Biên tập: Phạm Anh Đới Bạn có thể tải mã nguồn của bài viết trước ở đây. Ngày 18 tháng 2 năm 2003 Trong đầu tôi cứ cân nhắc mãi mớ … read more