# 51: Học cách nói “hello, world”

Paul Lee, biệt danh, hay được biết đến với cái tên Hoppy, nổi tiếng là một chuyên gia về các vấn đề lập trình. Tôi thật sự cần sự giúp đỡ. Chính vì thế tôi đã tìm đến nơi làm việc của Hoppy để nhờ vả, liệu anh ta có thể kiểm tra một số đoạn code của tôi không?

Chắc chắn rồi Hoppy đáp. Mời anh ngồi. Tôi cẩn thận để không làm rơi những lon Coca rỗng được xếp ngay ngắn thành một cái tháp ở sau anh ta.

  • Đoạn code nào?
  • Nó ở trong file trong một cái function. Tôi nói.
  • Nào chúng ta hãy cùng nhau xem đoạn chương trình này nào. Anh ta tạo một bản copy của file K&R và đẩy cái bàn phím về phía tôi.

Cái IDE của anh ở đâu? Hoppy không có một cái IDE nào cả mà thay vào đó là vài cái editor cái mà tôi không thể làm việc cùng. Anh ta lấy lại cái bàn phím. Chỉ sau một vài cú nhấp phím và chúng tôi đã mở được file — nó là một file khá lớn đấy — và tìm kiếm cái function cần thiết — Đây hẳn là một function lớn. Anh ta nhanh chóng cuộn xuống tới khối lệnh điều kiện mà tôi muốn hỏi anh ta.

Cụ thể thì khoảng lệnh này thực sự thực hiện điều gì khi biến X nhận giá trị âm? Tôi hỏi. Tất nhiên là nó sai.

Tôi đã dành cả buổi sáng để tìm cách ép X nhận giá trị số nguyên âm, nhưng rắc rối chính là đây là một chức năng phức tạp trong một file lớn của một dự án lớn, việc phải thực hiện chu trình recompile và rerunning đã khiến tôi vô cùng nản chí. Liệu một chuyên gia như Hoppy có thể giúp tôi tìm được câu trả lời?

Anh ấy thừa nhận rằng anh ta cũng không chắc chắn. Thật bất ngờ anh ta không hề làm việc trên file K&R đó. Thay vào đó anh ta copy đoạn ấy vào một editor khác, tỉnh chỉnh nó, và biến nó thành một function hoàn chỉnh. Chỉ một lúc sau, anh ta đã hoàn thành một hàm điều khiển chạy mãi mãi dùng để nhập dữ liệu từ của màn hình, sau đó truyền dữ liệu cho hàm cần kiểm tra, và cuối cùng là xuất ra màn hình kết quả trả về. Anh ta lưu file vừa tạo với tên “tryit.c”. Tất cả công việc này tôi đều có thể tự làm đấy nhưng có thể là không nhanh như anh ta. Tuy nhiên bước tiếp theo của anh ta đơn giản đến lạ kỳ và có chút khác lạ so với cách làm việc của tôi:

$ cc tryit.c && ./a.out

Nhìn xem! Chương trình của anh ta thật sự vừa được tạo ra chỉ mới đây thôi đã và đang vận hành. Chúng tôi cùng nhau thử nhập một vài giá trị và kiểm chứng sự hoài nghi của tôi (vậy tôi đã đúng về một số thứ) và rồi anh ta nhanh chóng kiểm tra những vùng lệnh lân cận trong file K&R. Tôi cảm ơn Hoppy và rời đi, một lần nữa cẩn thận để không làm đổ cái tháp lon Coca của anh ta.

Về đến phòng làm việc của mình, tôi tắt IDE. Tôi đã trở nên quá quen với làm việc với các dự án lớn cùng với với một sản phẩm lớn và tôi bắt đầu nghĩ rằng đó chính là những gì mà tôi nên thực hiện. Với một mục đích rõ ràng thì máy tính cũng có thể giải quyết những tác vụ nhỏ. Sau đó, tôi khởi động một editor và bắt đầu gõ.

#include <stdio.h> 

int main()
{
    printf("Hello, World\n"); 
    return 0;
}