Code toàn bug #1

Tớ là 1 trong 6 đứa nữ của K65 ngành Khoa học máy tính. Cả lớp 120 mạng. 6 trên 120, làm tròn lên là 5%. Mẹ tớ nói tớ chọn ngành này là tự sát. Tớ cãi: "Mẹ nhầm rồi, con đi săn."

Mẹ tớ tưởng tớ đùa.

Anh thì ngồi đầu lớp, hàng thứ hai từ trên xuống. GPA 3.9 từ năm nhất. Tóc gọn, kính gọng đen, mặt lúc nào cũng có cái vibe "tao đang nghĩ về độ phức tạp O(log n)". Cả lớp gọi anh là Thầy Vũ – tên là Vũ thật, "Thầy" là vì đám con trai copy code của anh thường xuyên hơn copy code của giảng viên.

Tớ chưa bao giờ copy code của Thầy Vũ. Tớ là đứa duy nhất trong 6 đứa nữ không xin code. Không phải vì tớ giỏi. Mà vì tớ ngại. Crush thì không xin được, đó là luật.

Buổi học Cấu trúc dữ liệu hôm đó tớ đến muộn 7 phút. Cả giảng đường kín. Còn đúng một chỗ trống. Cạnh Thầy Vũ.

Tớ ngồi xuống. Tớ chào. Anh gật. Tớ mở laptop. Tớ mở VS Code. Tớ mở slide. Tớ làm bộ chăm chú.

Tớ không tiếp thu được một chữ nào trong 90 phút đó.

Sau buổi học, vì tự ti vì 90 phút không tiếp thu được gì, tớ cần một lý do để học lại. Tớ cần một lý do để có ai đó giảng lại. Tớ cần Thầy Vũ.

Tớ về phòng trọ. Tớ mở bài tập. Tớ làm xong trong 30 phút. Rồi tớ xoá đúng một dấu chấm phẩy.

Tin nhắn Messenger:

Tớ: anh ơi code của tớ không chạy huhu

 

Anh trả lời sau 4 phút.

Vũ: gửi code

 

Tớ gửi.

Vũ: dòng 23 thiếu ; Vũ: lần sau bật ESLint

Tớ: eslint là gì

Vũ: :))

 

Tớ đọc lại tin nhắn :)) đó khoảng 14 lần trước khi ngủ.

2: BUG ĐẾM ĐƯỢC

Tớ không biết một con bug có thể trở thành ngôn ngữ giao tiếp.

Tuần sau, tớ "vô tình" để biến chưa khai báo. Anh trả lời trong 3 phút. Tuần sau nữa, tớ để vòng for chạy ngược chiều. Anh trả lời trong 5 phút, kèm câu: "em sống được đến năm 2 là phép màu."

Tớ cười một mình trong phòng trọ như đứa não vá.

Đến lúc tớ bắt đầu sáng tạo. Tớ ép kiểu sai. Tớ truyền tham trị thay vì tham chiếu. Tớ infinite loop khi cố tránh infinite loop. Có lần tớ tạo hẳn một hàm findLove() không return – chỉ để xem anh có nói gì không.

Anh nhắn lại:

Vũ: function gì mà ko return Vũ: fix đi Vũ: mai có deadline

 

Tớ cứng họng. Tớ "à vâng". Tớ tự cười tớ ngu.

Đến đây tớ tưởng đời chỉ có vậy. Mãi mãi crush. Mãi mãi tạo bug.

Cho đến một ngày tháng Ba, anh nhắn tớ trước.

Vũ: code anh không chạy. xem giúp

Tớ gần như ngã khỏi ghế.

Tớ xem code. Đó là một đoạn 200 dòng. Sạch. Đẹp. Comment đầy đủ. Tớ đọc đi đọc lại. Không có lỗi.

Tớ chạy thử. Chạy ngon.

Tớ nhắn lại:

Tớ: anh ơi cái này chạy bình thường mà

Vũ: thế hả Vũ: tự nhiên không chạy Vũ: chắc do máy

Tớ: :))

 

Tớ đọc lại tin nhắn :)) đó khoảng 28 lần trước khi ngủ.

3: COMPILE THÀNH CÔNG

Khoá luận, đồ án, học quân sự ở Xuân Hoà, đi cà phê làm bài tập, mượn tai nghe của nhau ở thư viện, share dây sạc khi laptop sắp tắt, cãi nhau về tabs với spaces (anh 4 spaces, tớ 2 spaces, cuối cùng dùng Prettier nên không phải cãi nữa), kể nhau nghe những cái khó của ngành mà bố mẹ ở quê không bao giờ hiểu.

Năm thứ ba, tớ và anh chung nhóm đồ án Kỹ thuật phần mềm. Bốn đứa nhóm. Hai đứa kia thuộc dạng "có tên trong slide là đủ". Còn lại tớ và anh.

Cảnh kinh điển: ba giờ sáng, quán cà phê 24/7 cạnh Bách Khoa, hai cốc bạc xỉu nguội, một bịch khoai tây Lay's vị nghêu, hai laptop dán đầy sticker. Anh code backend. Tớ code frontend. Anh chửi PostgreSQL. Tớ chửi React. Hai đứa chửi hai phía nhưng vẫn ngồi chung bàn.

Đến 5 giờ sáng, app chạy được. Demo thành công trong đầu. Tớ giơ tay high-five. Anh đập tay. Tớ rút tay xuống. Anh không rút tay. Anh nắm lấy tay tớ.

Anh không buông tay. Không nắm chặt, chỉ là không rút.

Tớ nhìn xuống tay. Anh cũng nhìn xuống tay. Như hai đứa đang cùng debug một đoạn code rất ngắn mà không ai dám chạy.

"Cái… cái bug đầu tiên của em ấy."

"Hả?"

"Dấu chấm phẩy."

"…sao cơ?"

Anh hít vào. Anh không nhìn tớ. Anh nhìn cốc bạc xỉu đã nguội lạnh cạnh laptop.

"Anh biết em cố tình. Từ tin nhắn thứ hai luôn."

Tớ nín thở. Mặt tớ thì tớ không cảm nhận được, nhưng tai tớ nóng như đang chạy GPU full tải.

"…sao anh vẫn trả lời?"

"Vì…" Anh ngắt giữa câu. Anh xoay xoay con chuột laptop, kiểu mấy đứa con trai khi không biết để tay đâu. "Vì anh thấy… vui."

"Vui?"

"Ừ. Vui."

Tớ không biết nói gì. Tớ chỉ nghe được tiếng quạt laptop chạy ù ù. Tớ thề là tiếng quạt 5h sáng nó to gấp ba lần ban ngày.

"Còn cái code 200 dòng của anh hôm đó?" tớ hỏi nhỏ. "Cái mà 'tự nhiên không chạy' ấy?"

Anh im.

"…chạy bình thường đúng không?"

"…ừ."

"Em biết."

"Em biết mà vẫn…"

"Anh trả lời mà vẫn…"

Cả hai cùng im. Cùng nhìn xuống. Quán cà phê 5 giờ sáng, chỉ có tiếng tủ lạnh kêu rì rì ngoài quầy, và tiếng tim tớ đập đều như cron job chạy mỗi giây.

Anh nói tiếp, rất nhỏ, gần như là tự thanh minh với chính mình:

"Anh định nói từ lâu rồi. Mà cứ sợ…"

"Sợ gì?"

"Sợ em chỉ nhắn anh vì cần fix code thôi."

Tớ bật cười. Tớ không định cười. Cười xong tớ thấy mắt mình cay.

"Thế nên anh viết 200 dòng không lỗi để em sửa giúp à?"

"Ý anh là em sẽ hiểu cơ. Em là dev mà."

"Em ngu lắm anh ơi."

"…anh biết."

Tớ đấm vai anh. Anh không né. Tớ đấm lại. Anh vẫn không né. Tớ định đấm cái thứ ba thì tay tớ dừng lại giữa không khí, vì tớ nhận ra tớ đang khóc.

Anh cũng nhận ra. Anh kéo tớ lại. Anh không nói gì nữa. Anh không biết nói gì nữa.

Cô chủ quán đi ra, không nhìn hai đứa, đặt thêm hai cốc bạc xỉu mà không ai gọi. Bà đi vào trong, đóng cửa bếp lại. Để hai đứa yên.

4: PRODUCTION

Năm tư đẹp như cái demo cuối kỳ chạy ngon ngay từ lần build đầu tiên.

Tớ và anh đi học cùng nhau, đi ăn cùng nhau, đi học bù cùng nhau. Anh dạy tớ thuật toán. Tớ dạy anh ăn bún đậu mắm tôm – anh ăn được đúng nửa miếng đậu rồi xin nước. Anh đưa tớ về phòng trọ mỗi tối. Tớ đứng ban công nhìn anh đi bộ ra cổng. Anh quay lại vẫy. Tớ chụp ảnh.

Tớ có khoảng 800 tấm ảnh anh đi bộ ra cổng quay lại vẫy.

Anh apply học bổng thạc sĩ ở NUS – Đại học Quốc gia Singapore. Đợt một, không đỗ. Đợt hai, đỗ. Toàn phần. Hai năm.

Anh hỏi tớ trước khi nhận: "Em nghĩ sao?"

Tớ nói: "Anh đi đi. Đời người có mấy lần được học NUS toàn phần."

Anh nói: "Hai năm thôi mà. Anh về."

Tớ gật. Tớ tin. Tớ tiễn anh ra sân bay Nội Bài. Tớ chụp thêm 47 tấm ảnh anh ở sân bay. Tớ cười khi anh quay lại vẫy lần cuối ở cổng an ninh.

Đêm đó tớ về phòng trọ, ngồi bệt xuống sàn, khóc. Không phải vì buồn. Chỉ vì xa.

5: TIMEOUT

Tháng đầu tiên, anh nhắn 8 tiếng một lần. Video call thứ Bảy.

Tháng thứ ba, anh nhắn 24 tiếng một lần. Video call cách tuần.

Tháng thứ năm, anh quên video call. Tớ không nhắc. Anh xin lỗi sau ba ngày.

Tháng thứ bảy, tớ nhắn anh trước. Anh trả lời sau 18 tiếng. Tin nhắn dài hai dòng. Không hỏi gì lại.

Tháng thứ chín, tớ nhắn:

Tớ: anh ơi Tớ: mọi thứ ổn không

 

Anh không trả lời.

Một tuần sau:

Tớ: anh

 

Không trả lời.

Hai tuần sau, tớ gõ tin nhắn cuối:

Tớ: nếu anh không nhắn lại trong 7 ngày tớ hiểu

 

Đúng 7 ngày sau, không có gì. Tớ hiểu.

Tớ không block. Tớ không xoá tin nhắn. Tớ không khóc nữa – tớ đã khóc đủ trong ba tháng. Tớ chỉ archive cuộc trò chuyện, như cách người ta archive một repository không còn maintain. #6: 404

Năm năm sau.

Tớ là backend dev cho một fintech ở Sài Gòn. Lương ổn. Yêu một anh PM, hiền, không biết code, không bao giờ tạo bug để bắt chuyện vì anh ấy đủ tự tin để chỉ cần mở miệng.

Một chiều thứ Bảy, tớ ngồi cà phê với hội bạn đại học. Một đứa khoe ảnh đi Singapore cuối tuần. Trong album có một bữa tiệc cưới. Trong tiệc cưới có Vũ. Đứng cạnh một cô gái Singapore. Cô gái mặc váy trắng.

Đứa bạn không biết tớ với Vũ từng yêu nhau – nó học khoa khác, vào hội bạn sau này. Mấy đứa khác đều giả vờ không biết. Cả bàn im lặng đúng 4 giây. Đủ để tớ nhận ra mọi đứa đều biết. Đủ để tớ giả vờ không nhận ra.

Tớ nhìn ảnh. Tớ cười. Tớ nói: "Đẹp đôi nhỉ."

Tớ về nhà. Tớ mở Messenger. Tớ unarchive cuộc trò chuyện với Vũ. Tin nhắn cuối cùng vẫn là dòng tớ gửi 5 năm trước:

Tớ: nếu anh không nhắn lại trong 7 ngày tớ hiểu

 

Tớ định xoá cuộc trò chuyện. Tớ không xoá được.

Tớ chỉ gõ một tin nhắn cuối, không gửi:

Tớ: em vẫn để bug đó. Anh không fix nữa.

 

Tớ tắt máy. Tớ đi ngủ. Sáng hôm sau tớ vẫn dậy lúc 7 giờ. Tớ vẫn đi làm. Tớ vẫn fix bug của người khác trong production. Cuộc đời vẫn chạy. Lỗi không throw exception. Chỉ là một con bug âm thầm, return về null, không ai bắt.

Sau này có đứa em khoá dưới hỏi tớ: "Chị ơi, làm dev có khi nào gặp bug không fix được không?"

Tớ cười.

"Có. Bug nào không fix được, mình học cách sống chung. Mình gọi nó là feature."

Đứa em cười theo. Nó tưởng tớ đang đùa.

RELATED POSTS
Share the Post: