Welcome to Hanoi Coding Dojo
Chào mừng các bạn đến với Coding Dojo Hà Nội
Buổi Coding Dojo tiếp theo sẽ được tổ chức vào thứ Bảy ngày 27 tháng 10 năm 2012 tại Không Gian Cộng Đồng
(Vietnamese version is at the end of the page / Phần tiếng Việt nằm phía cuối trang)
English
Introduction
Coding Dojo was first invented in Paris in 2004 by the XP (eXtreme Programming) community. The aim of these sessions is to enhance the coding skills of attendees by doing very small exercises in a funny atmosphere. Pretty much the same spirit as when you want to master a sport or martial art like Judo, you need to practice some basic exercises with some Judo masters before doing serious business like competitions. There are usually two styles of practicing in Coding Dojo:
- Kata: prepared by someone before the session and presented in front of the public or
- Randori: a more exploratory form of a Kata where the whole group participates in solving the problem.
All the code done during the sessions is available on github and released under the terms of the MIT license.
You can join our mailing-list: http://groups.google.com/group/hanoicodingdojo/
How to find us?
- Hanoi #CodingDojo Organizers: Prof. Serge Stinckwich, and Dương “Yang” ヤン Hà Nguyễn.
- Time: Every Saturday from 2:00 PM to 4:00 PM.
- Location: Community Space or Không Gian Cộng Đồng, 3th Floor, 20A, alleyway 98 Thai Ha, Dong Da Distr, Hanoi. Wikimapia.
Archives
- April, 16th 2011 - Session #1 (‘Tennis’ in Python - CPython): code, pictures, announcement
- April, 23rd 2011 - Session #2 (‘Roman Numbers’ in Pharo/Smalltalk + ‘Internet Voting’ in Python - CPython): code
- May, 04th 2011 - Session #3 (‘Prime Factors’ in Pharo/Smalltalk): code, pictures
- May, 07th 2011 - Session #4 (‘Prime Filter’ in Common Lisp - SBCL): code, report
- May, 14th 2011 - Session #5 (‘Tennis Kata without IF’ in Python - CPython): code
- May, 21st 2011 - Session #6 (‘nginstar Mikado Kata’ in Ruby - Ruby MRI) code, picture
- May, 28th 2011 - Session #7 (‘Fizzbuzz’in Python - CPython and Pharo/Smalltalk): code report
- June, 04th 2011 - Session #8 (‘Fizzbuzz’ in newLISP) code
- June, 11th 2011 - Session #9 (‘Internet Voting’ in newLISP) code
- June, 18th 2011 - Session #10 (‘TicTacToe’ in Pharo/Smalltalk) code
- June, 25th 2011 - Session #11 (‘TicTacToe’ with Cucumber and RSpec) code
- July, 02nd 2011 - Session #12 (‘Reload Countdown’ in Haskell - GHC) code
- July, 09th 2011 - Session #13 (‘Josephus on Nerd Planet’ in Ruby - Ruby MRI) code
- July, 16th 2011 - Session #14 (‘Reversi’ in Pascal - FPC) code
- July, 23rd 2011 - Session #15 (‘Pascal Unit Test, Mikado Kata’ in Pascal - FPC) code
- December, 31st 2011 - Session #16 (‘StringCalculator kata’ in Pharo/Smalltalk) code
- January, 7th 2012 - Session #17 (‘Mastermind’ in Python - CPython) code
- January, 14th 2012 - Session #18 (‘Poker Dice’ in C++ - G++) code
- January, 21st 2012 - Session #19 (‘Mastermind (part 2)’ in Clojure - Clojure) code
- February, 4th 2012 - Session #20 (‘Robozzle Kata’ in Python - CPython) code
- February, 11th 2012 - Session #21 (‘Binary Generator’ in Clojure - Clojure) code
- February, 18th 2012 - Session #22 (‘Roman Numerals’ in Java - Eclipse JDT) code
- February, 25th 2012 - Session #23 (‘TennisKata’ in C++ - G++) code
- March, 3rd 2012 - Session #24 (‘Magic Words’ with Mikado method in Smalltalk - Pharo 1.3) code
- March, 10th 2012 - Session #25 (‘Countdown Kata’ in Python, Smalltalk and Clojure) code
- March, 17th 2012 - Session #26 (‘Number to Speech’ in Clojure - Clojure) code
- March, 24th 2012 - Session #27 (‘Number to Speech’ in C++ - G++) code
- April 7th, 2012 - Session #28 (‘Brainfuck interpreter’ in Python - CPython) code
- April 14th, 2012 - Session #29 (‘Fizzbuzz in CPS’ in Clojure - Clojure) code
- April 28th, 2012 - Session #30 (‘Brainfuck interpreter without Ifs’ in Python - CPython) code
- May 28th, 2012 - Session #31 (‘DragonBall style Kata’ in Python - CPython) code
- June 2nd, 2012 - Session #32 (‘Robozzle’ in Python - CPython) Code lost
- June 6th, 2012 - Session #33 (‘BinaryGenerator-2’ in Clojure - Clojure) code
- Aug 18th, 2012 - Session #34 (‘Roman Numbers’ in Clojure - Clojure) code
- Aug 25th, 2012 - Session #35 (‘FizzBuzz’ in Java - Java) code
Tiếng Việt
Giới thiệu
Coding Dojo xuất hiện lần đầu tiên ở Paris vào năm 2004, được phát minh bởi cộng đồng XP (hay eXtreme Programming). Mục đích của Coding Dojo là nâng cao kỹ năng lập trình cho tất cả thành viên tham dự bằng cách giải quyết các vấn đề/bài toán nhỏ trong một không khí vui vẻ và thân mật. Giống như khi bạn muốn chơi tốt một môn thể thao hoặc võ thuật như là Judo vậy, bạn cũng cần phải tập luyện các bài tập cơ bản với các bậc thầy Judo trước khi đi vào các loại hình mang tính thực tế hơn (thi đấu chẳng hạn).
Coding Dojo thường có hai kiểu luyện tập:
- Prepared Kata: một thành viên chuẩn bị sẵn một vấn đề/bài toán và cách giải quyết vấn đề/bài toán đó bằng một ngôn ngữ lập trình rồi thuyết trình trước các thành viên khác, hoặc
- Randori Kata: một hình thức luyện tập tập thể mang tính “thám hiểm”, dựa trên lập trình đôi (pair-programming). Với Randori Kata, tất cả mọi người đều tham dự vào quá trình giải quyết bài toán.
Mã nguồn của tất cả các buổi Dojo đều được lưu trữ tại github dưới các điều khoản của giấy phép xuất bản MIT.
Bạn cũng có thể tham gia mailing-list của chúng tôi: Hanoi Coding Dojo @ Google Group
Tham gia Coding Dojo khi nào? Ở đâu?
- Nhóm tổ chức Coding Dojo Hà Nội: Giáo sư Serge Stinckwich, và bạn Nguyễn Hà Dương.
- Thời gian: từ 2:00 chiều đến 4:00 chiều thứ Bảy hàng tuần.
- Địa điểm: Community Space or Không Gian Cộng Đồng, tầng 03, số 20A, ngõ 98 Thái Hà,quận Đống Đa, Hà Nội. Wikimapia.
Lưu trữ
- 16/04/2011 - Session #1 (Tennis, dùng Python - CPython): code, ảnh, thông báo
- 23/04/2011 - Session #2 (Số La Mã, dùng Pharo/Smalltalk; và Bỏ phiếu Internet, dùng Python - CPython): code
- 30/04/2011 - Session #3 (Ước nguyên tố, dùng Pharo/Smalltalk): code, ảnh
- 07/05/2011 - Session #4 (Sàng số nguyên tố, dùng Common Lisp - SBCL): code, tổng kết
- 14/05/2011 - Session #5 (Tennis, không sử dụng “IF”, dùng Python - CPython): code
- 21/05/2011 - Session #6 (nginstar, Mikado Kata, dùng Ruby - Ruby MRI) code, ảnh
- 28/05/2011 - Session #7 (Fizzbuzz, dùng Python - CPython và Pharo/Smalltalk): code report
- 04/07/2011 - Session #8 (Fizzbuzz, dùng newLISP) code
- 11/06/2011 - Session #9 (Bỏ phiếu Internet, dùng newLISP) code
- 18/06/2011 - Session #10 (TicTacToe, dùng Pharo/Smalltalk) code
- 25/06/2011 - Session #11 (TicTacToe, dùng Cucumber và RSpec) code
- 02/07/2011 - Session #12 (Reload Countdown, dùng Haskell - GHC) code
- 09/07/2011 - Session #13 (Josephus trên hành tinh Ngộ chữ, dùng Ruby - Ruby MRI) code
- 16/07/2011 - Session #14 (Reversi, dùng Pascal - FPC) code
- 23/07/2011 - Session #15 (Pascal Unit Test, Mikado Kata, dùng Pascal - FPC) code
- 31/12/2011 - Session #16 (StringCalculator, dùng Pharo/Smalltalk) code
- 07/01/2012 - Session #17 (Mastermind, dùng Python - CPython) code
- 14/01/2012 - Session #18 (Poker Dice, dùng C++ - G++) code
- 21/01/2012 - Session #19 (Mastermind (part 2), dùng Clojure - Clojure) code
- 04/02/2012 - Session #20 (Robozzle Kata, dùng Python - CPython) code
- 11/02/2012 - Session #21 (Binary Generator, dùng Clojure - Clojure) code
- 18/02/2012 - Session #22 (Roman Numerals, dùng Java - Eclipse JDT) code
- 25/02/2012 - Session #23 (Tennis Kata, dùng C++ - G++) code
- 03/03/2012 - Session #24 (‘Magic Words’ với Mikado Kata, dùng Smalltalk - Pharo 1.3) code
- 10/03/2012 - Session #25 (‘Countdown Kata’ dùng Python, Smalltalk và Clojure) code
- 17/03/2012 - Session #26 (‘Number to Speech’ dùng Clojure - Clojure) code
- 24/03/2012 - Session #27 (‘Numver to Speech - Base-5’ dùng C++ - G++) code
- 07/04/2012 - Session #28 (‘Brainfuck interpreter’ dùng Python - CPython) code
- 14/04/2012 - Session #29 (‘Fizzbuzz in CPS’ dùng Clojure - Clojure) code
- 28/04/2012 - Session #30 (‘Brainfuck interpreter without Ifs’ dùng Python - CPython) code
- 26/05/2012 - Session #31 (‘DragonBall style Kata’ dùng Python - CPython) code
- 02/06/2012 - Session #32 (‘Robozzle’ dùng Python - CPython) Code lost
- 06/06/2012 - Session #33 (‘BinaryGenerator-2’ dùng Clojure - Clojure) code
- 18/08/2012 - Session #34 (‘Roman Numbers’ dùng Clojure - Clojure) code
- 25/08/2012 - Session #35 (‘FizzBuzz’ dùng Java - Java) code