NỘI DUNG BÀI VIẾT
Làm người đã khó, làm chó… à nhầm làm lập trình viên còn khó hơn. Chỉ cần tưởng tượng một anh gầy nhom, mắt thâm quầng, tóc tai quần áo rũ rượi sau hàng chục giờ code đi lảo đảo, vừa ngồi vào bàn thì to tiếng với Tester…
Bugs, bugs, rất nhiều bugs chờ fix, trong khi PM thì hò cả ngày, cả buổi, từ sáng đến lúc tan ca. Nhìn em khác gì mấy tấm hình đăng face của Chí Phèo không? À không, ít ra Chì phèo còn được chửi, còn em thì mắng chửi được ai ngoài cái màn hình đỏ lòm.
Thôi thì, hôm nay cũng chỉ dám kể vào đây những đặc điểm nhận dạng của lập trình viên.
1. Thức khuya, dậy muộn
Đúng rồi, chính nó, một anh lập trình viên có thể thức dậy lúc 8 – 9h sáng, vội vội vàng vàng đến công ty mà vẫn muộn nhưng tại sao anh ta vẫn chọn thức khuya để code thay vì ngủ từ 10h tối để sáng hôm sau dậy từ 6h, nhâm nhi một tách cà phê và đến công ty một cách sảng khoái, sức khỏe lại được bảo vệ?
Khi được hỏi câu này thì hàng loạt các câu trả lời được đưa ra, chung quy lại tất cả đều thừa nhận rằng làm việc ban đêm hiệu quả hơn ban ngày.
Nhiều anh bạn của tôi thường gào lên mỗi ngày rằng buổi sáng họ chẳng làm được gì cả, code toàn bugs. Và rồi khi đêm đến, họ code như cái máy, nếu đó là một hôm OT để chạy dự án thì âm thanh nghe thấy chỉ có thể là sự pha trộn của tiếng gõ bàn phím, những cú click chuột, tiếng ghế xuay kẹt kẹt và tiếng thở dài của sếp.
Khó mà lý giải được tại sao lại như vậy, đồng hồ sinh học của lập trình viên không hề khác với người bình thường và họ cũng hiểu rằng làm việc ban đêm là có hại nhiều chứ không có lợi cho sức khỏe. Nhưng chắc chắn một điều, sự tập trung vào ban đêm là cực cao, khi mà những vấn đề bên ngoài không ảnh hưởng đến tâm trí của họ, năng suất công việc có thể tăng từ 2 thậm chí đến 3 lần.
Nếu có một lập trình viên nào đó có thể làm việc hiệu quả ngày đêm như nhau thì chắc hẳn người này có khả năng tập trung cực cao trong công việc. Nhưng con người mà, ai chẳng có tính tò mò và bị sao nhãng bởi một thứ gì đó có vẻ thú vị xung quanh là khó tránh khỏi.
Lại nhắc đến OT, ON (làm thêm giờ), đâu phải dự án nào cũng êm xuôi mà chỉ cần code mỗi ngày là xong. Gần như mọi dự án đều cần thêm thời gian làm, vì sao ư?
Những con bug khổng lồ, khách hàng đổi ý, nhân sự thay đổi hay đơn giản là sếp không ưng… Thời gian cần thêm ở đâu khi mà deadline đếm từng ngày, không gắng mà cày cuốc ban đêm thì chỉ có 1 chữ “TOANG”. Đấy khổ chưa? ai bảo sướng nữa đi.
2. Tâm bất biến giữa đời vạn biến
Bạn không nghe nhầm đâu, công việc này sẽ biến bạn thành một con người trầm ổn, kiên nhẫn và dịu dàng, được đắm mình trong không khí ấm áp của một gia đình. Tại sao?
Đúng vậy, bạn cần nghe theo chỉ đạo của PM, PM trong dự án khác gì cha mẹ bạn đâu chứ. Tester thì đóng vai bà hàng xóm lắm mồm, cứ có lỗi gì là y như rằng… mối quan hệ giữa dev và tester rất ít khi là êm đềm. Design thì giống một bà chị, design một đống rồi bạn cứ ngoan ngoãn mà làm theo thôi.
Lần đầu tiên tôi đi phỏng vấn là ứng tuyển vào vị trí back-end một dự án NodeJS. Lần ấy tôi pass và được giao làm front-end kiêm viết doc? Một lần khác tôi được giao làm database cho dự án. Trong khi tôi ứng tuyển vị trí code giao diện. Đời không như là mơ, nếu không học cái mới liên tục theo yêu cầu của dự án thì chắc chắn không có một vị trí nào cho bạn cả. Bạn phải là một đứa trẻ ngoan, rất ngoan, một đứa trẻ biết học những điều mới mẻ.
Một lập trình viên đơn giản cần thích nghi để thay đổi, linh hoạt trong các tình huống, bạn sẽ dần trở lên “tâm bất biến giữa đời vạn biến”. Lặng lẽ code theo yêu cầu từ bố mẹ (PM), bà hàng xóm (tester), chị gái (designer) và khách hàng trong vai khách hàng nữa.
3. Đương đầu với thử thách
Vấn đề này thì ai cũng dễ nhận ra thôi. Bug to bug nhỏ, bug đeo bám dai dẳng, gần như là không thể thoát được nó. Vừa fix xong bug này lại lòi ra vài bug khác, như Hercules đánh nhau với rồng chín đầu, cứ chặt một đầu nó lại mọc ra 2 cái khác.
Vấn đề về bug không phải của riêng ai. Việc không tạo ra bugs là bất khả thi, bugs khiến ta đau đầu, cáu gắt và mệt mỏi. Khi ta tạo ra bugs thì phải cắn răng mà fix, khi đồng đội tạo ra bugs thì cuối cùng cũng là cắn răng mà fix cùng.
Nói chung là lỡ có bug rồi thì cứ cắn răng mà fix thôi chứ kêu ai. Làm lập trình viên là sống chung với bugs, ăn nghĩ về nó, làm cũng vì nó, ngủ đôi khi còn vì nó mà mơ thấy ác mộng.
4. Sống chan hòa
Làm quần quật cả ngày đêm, đau khổ đối diện với những con bugs không đầu không cuối. Bên tai luôn văng vẳng tiếng Tester báo cáo lỗi chỗ này, bug chỗ nọ, có vấn đề chỗ kia. Lúc đó nghĩ thầm: “soi gì soi khỏe thế, sinh ra chỉ biết soi thôi à?”.
Không những bị Tester đẩy vào chân tường, Lập trình viên còn nhận được những bài ca đầy “tình thương” của PM, đại loại như: “Ngày xưa chú không đi học ạ?”, “Ai dạy chú code thế này?”, “Chú làm thế này mai nghỉ đi”,…
Nhiều lúc cay cú quá, nếu ở nhà thì sẽ là cái bàn phím gãy đôi, con chuột bay qua cửa sổ và màn hình bốc khói. Còn đây là công ty, lần này ta hơi “hèn”, ta tha không đấm PM, cũng không hạ thủ tester.
Thực ra công việc của tester là tìm lỗi nhiều nhất có thể, tester là người đảm bảo kết quả của dự án hoàn hảo nhất, ít lỗi nhất có thể. Nếu tester không tìm ra được lỗi, nghĩa là họ không hoàn thành công việc. Dự án vì thế có thể không đạt kết quả dẫn đến người chịu hậu quả lại chính là bạn.
PM là người đứng mũi chịu sào cho dự án, là người chịu trách nhiệm về tiến độ và chất lượng của dự án. Việc trở nên tức giận khi mọi thứ không vận hành trơn tru là có thể hiểu được. Code sai là việc của dev, test thiếu là việc của tester, design xấu là việc của designer .
Hiểu được những điều này, cũng là khi ta biết yêu thương con người, yêu thương đồng loại. Sự nhân văn trong nghề nghiệp chính là khoảnh khắc ta nhận ra được tình yêu giản dị đó.
5. Không người yêu
Cái thiếu nhất của một lập trình viên, không phải người tình mà là thời gian. Làm việc quần quật, OT/ON liên miên, không có thời gian để quen ai khác.
Câu chuyện tiếp theo là do không có người yêu nên chỉ tập trung vào công việc. Càng làm nhiều sự nghiệp càng lên hương. Một vòng luẩn quẩn ám ảnh các developer.
Nhưng thà luẩn quẩn trong cái vòng nhiều tiền, còn hơn luẩn quẩn giữa việc phải chọn lựa tập trung vào yêu đương hay công việc. Nỗi cô đơn có lẽ sẽ vơi đi ít nhiều khi hàng tháng tiếng ting ting reo lên đều đặn.
Nhưng mặt khác, những người anh em cũng nên điều chỉnh quỹ thời gian của mình để cân bằng cuộc sống. Tốt hơn hết vẫn là có người đồng hành trong đời này. Đủ nắng hoa sẽ nở, đủ cố gắng yêu thương sẽ đong đầy.
Tổng kết về đặc điểm nhận dạng của lập trình viên
Những câu chuyện rõ như ban ngày về cuộc sống lập trình viên nhưng vẫn luôn nằm trong góc khuất. Chẳng mấy ai có thời gian để kể lể, để giãi bày vì cái sự trầm ổn trong tính cách của dân dev.
Hôm nay thay lời những người anh em, mình đã chia sẻ, có lẽ là chưa hết nhưng cũng được đôi ba phần, để mọi người có thể cảm nhận.
Còn điều gì nữa, bạn hãy để lại comment ở đây nha!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.