Gió Mây: Một Người Tự Do Trong Lập Trình (Phỏng Vấn Với Turing)
Tô Vận Phong: Một lập trình viên tự do (phỏng vấn bởi Turing Community) Bài phỏng vấn này được thực hiện vào ngày 30 tháng 8 năm 2013 tại một nhà hàng trong khuôn viên hội nghị SDCC2013 ở Bắc Kinh. Học sinh của cộng đồng Turing đã tổng hợp từ bản ghi âm dài gần 5 tiếng để tạo thành bài viết này, sau đó được đăng tải trên cộng đồng Turing.
Bản thảo đầu tiên đã được gửi cho tôi xem trước khi đăng. Tôi thấy nhiều đoạn quá口语化, có phần lặp lại và rườm rà. Dù có thể chấp nhận khi trò chuyện trực tiếp, nhưng dưới dạng văn bản thì khó đọc. Vì vậy tôi đã tiến hành chỉnh sửa - chủ yếu lược bỏ các từ ngữ miệng lưỡi thừa thãi, điều chỉnh nhẹ cấu trúc câu chuyện, các nội dung khác giữ nguyên bản gốc. Phiên bản đăng trên blog cá nhân của tôi là bản tôi đã sửa cuối cùng, chưa từng so sánh với phiên bản sau này của cộng đồng Turing nên không rõ biên tập có chỉnh sửa thêm hay không.
Tô Vận Phong: Một lập trình viên tự do
Thời đại của các “đồng đội nhỏ”
Ông ấy không biết tôi còn nhỏ, đến nhà tìm cụ già họ Ngô. Mẹ tôi tưởng là tìm bố tôi nên gọi bố tôi từ cơ quan về. Ông ấy đến để trả 10 nhân dân tệ phí đăng ký phần mềm cho tôi.
- Bạn bắt đầu lập trình từ khi nào?
Tôi tiếp xúc với máy tính từ năm học lớp một tiểu học. Vào đầu những năm 80, khi TV thậm chí còn chưa phổ biến, bố tôi đã mê lập trình. Nhà tôi mua một chiếc TV đen trắng 9 inch chỉ để nối máy tính, vì lúc đó máy tính chưa có màn hình. Chiếc TV ấy không dùng để xem chương trình vì cũng chẳng có gì hay ho. Máy tính dùng CPU Z80, chỉ có 16K bộ nhớ - thua xa Apple II. Chiếc máy ấy chỉ có thể viết những chương trình cực kỳ đơn giản. Với bố tôi, đây là món đồ chơi yêu thích.
Khi tôi mới đi học, bố tôi thường viết cho tôi những trò chơi đơn giản. Chương trình luyện tập tính toán 100 số đầu tiên của tôi cũng được bố thiết kế dưới dạng trò chơi. Ông viết game như một sở thích, dù bản thân thấy chúng không thú vị bằng tôi. Những trò chơi thời ấy đòi hỏi hiệu suất cao thường phải dùng hợp ngữ (assembly). Vì không có công cụ phát triển sẵn, bố tôi phải viết tay các đoạn hợp ngữ, tra cứu thủ công trong sách hướng dẫn để dịch sang mã máy, sau đó nạp vào máy qua đầu đọc băng từ. Chúng tôi dùng bút ghi chú vị trí từng đoạn chương trình trên vỏ hộp băng, khi chơi lại phải quay băng đến đúng vị trí rồi nối với máy tính đọc lại.
Tôi rất thích đọc sách từ nhỏ, bất cứ cuốn nào trong nhà đều lôi ra xem dù hiểu hay không. Những cuốn sách lập trình đặc biệt thu hút tôi vì thấy có thể giúp giải bài tập nhà trường. Mẹ tôi đang học đại học tại chức, trường bà mở lớp lập trình buổi tối dành cho người đi làm. Thấy tôi hứng thú, bà dẫn tôi theo lớp học. Tôi là học sinh nhỏ tuổi duy nhất trong lớp, đa số các bạn chỉ muốn lấy bằng cấp nên không tập trung. Tôi chăm chú nghe giảng, giáo viên rất hài lòng và cẩn thận chấm bài tập của tôi.
- Bạn học lập trình hệ thống từ khi nào?
Chính thức học lập trình hệ thống khi học lớp 7. Trường trung học chúng tôi mở phòng máy mới mua loạt máy học tập Zhonghua - bản sao Trung Quốc của Apple II. Trường không có nhiều giáo viên, duy nhất thầy dạy máy tính lại là bạn đại học của bố tôi. Thấy bố tôi rảnh rỗi, thầy ấy nhờ bố đến dạy thay. Như vậy bố tôi trở thành giáo viên lập trình của tôi.
Khóa học chỉ mở duy nhất một lớp khoảng 20-30 học sinh, hai tiết mỗi tuần trong phòng máy. Không khí học tập rất tốt, nhóm bạn thân học cùng đa số sau này đều trở thành lập trình viên chuyên nghiệp. Chúng tôi hình thành một nhóm nhỏ, có cùng ngôn ngữ chung. Từ khi nào không rõ, chúng tôi bắt đầu tự làm game vì đã chán các trò chơi sẵn có. Thời ấy thiếu tài liệu, nhưng chính sự thiếu thốn này lại thúc đẩy tinh thần sáng tạo - ai làm được điều gì hay lại mang ra so sánh, chia sẻ đoạn mã, thảo luận cách hoàn thiện.
Công cụ lúc ấy rất匮乏, không như hiện tại. Đôi khi phải tự tạo công cụ đi kèm, ví dụ như trên Apple II không có hợp ngữ tốt thì chúng tôi dùng BASIC tự viết một cái. Không có internet, sách lập trình trong hiệu sách cũng không nhiều như bây giờ. Vì không đủ tiền mua hết, chúng tôi mỗi người mua một vài cuốn rồi luân phiên mượn nhau đọc.
- Bạn có tự tạo ra phần mềm hoàn chỉnh nào thời nhỏ không?
Khi học trung học, tôi bắt đầu làm phần mềm đọc sách điện tử. Đầu tiên đăng lên BBS quay số, sau được tuyển chọn vào đĩa tổng hợp hàng năm của Tạp chí Máy tính. Tôi thấy nhiều phần mềm chia sẻ yêu cầu đăng ký nên học theo, thêm cửa sổ nhắc đăng ký sau vài phút sử dụng với phí 10 NDT, kèm theo địa chỉ liên hệ. Thật bất ngờ, có người gửi tiền đến tận nhà!
Tôi dùng sổ tay ghi lại người mua, gửi mã đăng ký qua thư thường. Trước thời internet bùng nổ, việc này khá phổ biến. Phần mềm bán được khoảng 100 bản, thu về 1000 NDT. Có một câu chuyện thú vị: Một ông lão về hưu thật sự tìm đến nhà tôi theo địa chỉ trong phần mềm. Ông hỏi cụ già họ Ngô, mẹ tôi tưởng là tìm bố tôi nên gọi bố từ cơ quan về. Sau khi hỏi rõ mới biết là tìm tôi - lúc đó đang học ở Trường Sa. Ông ấy đến để trả 10 NDT phí đăng ký.
Năm học thứ hai đại học, vài anh khóa trên nhận một dự án từ thư viện Phật Sơn, Quảng Đông. Tôi và thằng bạn thân (cùng học cấp ba) định kiếm chút tiền hè nên quyết định đi trước. Không liên hệ trước, chúng tôi trực tiếp lên tàu đến Phật Sơn ngay tháng 7. Yêu cầu của họ rất đơn giản: Thư viện vừa mua máy ghi đĩa CD và máy quét ảnh hiếm thấy thời bấy giờ, muốn kiếm thêm bằng cách quét ảnh hộ dân xung quanh thành album điện tử. Trưởng thư viện nói: “Hai cậu đến sớm vậy, nếu thấy một người làm được thì tôi còn việc khác cho thêm”. Vì vậy chúng tôi tiếp tục làm thêm hệ thống quản lý thư viện, mỗi người đảm nhận một phần. Dùng Delphi mới mẻ thời bấy giờ, hoàn thành trong hai tuần. Ngoài được lo ăn ở, chúng tôi còn nhận thêm vài trăm NDT. Dù họ hơi keo kiệt nhưng vẫn tốt hơn nhiều so với giáo viên trường học.
- Sau đại học bạn làm gì?
Năm cuối đại học, tôi đã làm việc bán thời gian cho một công ty game Bắc Kinh. Quen vài người bạn, tốt nghiệp xong định làm game nền tảng di động. Nokia vừa ra mắt chiếc điện thoại thông minh đầu tiên trên thị trường, nhà đầu tư cho rằng ứng dụng di động sẽ là xu hướng tương lai. Tôi tập trung phát triển engine game di động, chọn nền tảng Symbian.
Đại học không nghĩ đến việc gọi