Một bài viết cũ rích từ năm 1996 của bác Lôi Quân, nhà sáng lập của Xiaomi

Lời người dịch

Sau thời gian bí ý tưởng quá, tôi lại giở thói ngựa quen đường cũ đi chôm chỉa các bài viết trên mạng xong dịch bừa như mọi khi. Trong bài dịch bừa lần trước của tôi, trong đó có nhắc khá nhiều đến cái tên Lôi Quân cho nên lần này tôi cũng chôm một bài của ông bác này để dịch. Thông tin về ông bác này thì chắc có đầy trên mạng rồi nên tôi chỉ nói sơ qua thôi. Lôi Quân là một trong những nhân vật khá nói tiếng trong giới công nghệ Trung Hoa, ông được biết đến rộng rãi với vai trò là CEO kiêm nhà sáng lập của công ty Xiaomi. Ngoài ra ông cũng các giữ vị trí quan trọng như giám đốc R&D, chủ tịch trong công ty Kingsoft hay còn gọi Kim Sơn, công ty tạo ra Kiếm Hiệp Tình Duyên hay còn được biết đến với cái tên Võ Lâm Truyền Kỳ ở Việt Nam.
Hôm nay tôi xin được phép dịch một bài viết khá cũ của bác Lôi Quân vào tận năm 1996, lúc này thì Xiaomi có lẻ vẫn chưa ra đời. Tuy cũ nhưng bài viết này được chia sẽ rộng rãi trên mạng của Trung Quốc đến tận bây giờ, nhiều câu nói trong bài viết này trở thành những câu khẩu hiệu của các lập trình viên Trung Quốc. Đây là đường dẫn đến bài viết gốc (kèm lời chia sẽ của bác Lôi Quân vào năm 2008 khi bác ấy chia sẽ lại bài viết cũ trên blog cá nhân):

Mười năm làm lập trình viên của tôi

Ngày 31 tháng 10 năm 2008.
Những ngày gần đây, tôi có thảo luận với các đồng nghiệp ở UCWEB với chủ đề là "làm sao để mọi thứ trở ở UCWEB trở nên hoàn hảo hơn". Trong đó tôi có nói rằng "Chúng ta đang có rất nhiều nền tảng mới trên di động, điều đó có nghĩa rằng chúng ta cần rất, rất nhiều lập trình viên giỏi để có thể thực hiện công việc. Nhưng làm thế nào để định nghĩa một lập trình viên giỏi? Theo tôi có hai yếu tố đó chính là lòng đam mê với công việc lập trình, kế đến có lại sự cầu toàn trong công việc. Chỉ có những người như vậy thì mới có thể làm ra những sản phẩm tốt.".
Nói xong thì tôi chợt nhớ đến những ngày tôi ngồi viết chương trình từ năm 1987 đến năm 1996, đó là những ngày nắng đẹp thật sự. Vài năm trước, tôi có cơ hội tìm lại được mấy bài viết cũ của mình trên West-Point Programmer's BBS, đọc lại quả thật thấy cảm khái vô cùng. Xin chân thành cảm ơn Tony Low, quản trị viên của diễn đàn năm đó, người đã sưu tập các bài viết của tôi và giữ chúng đến tận hôm nay.
Đăng lại bài này để kỷ niệm một lần nửa mười năm lập trình của tôi.

Cuộc sống lập trình của tôi

Tháng 5, năm 1996 tại West-Point Programmer's BBS
Nếu nói về cuộc đời lập trình của tôi thì có lẻ đây sẽ là một câu chuyện dài.
Từ thuở thiếu thời, tôi không có sẵn đam mê dành cho cái việc viết mã này. Đương nhiên tôi cũng chẳng hề nghĩ về việc sẽ sống với cái nghề lập trình trong những năm tháng học phổ thông.
Tôi có những kết nối đầu tiên với ngành máy tính là khi tôi chuẩn bị kết thúc chương trình phổ thông của mình. Tôi có một thằng bạn nối khố khá thân. Cậu ta chọn cho mình nghành khoa học máy tính để học. Tôi lúc đó vì chưa có định hướng gì và cũng muốn có bạn, có bè nên cứ thế mà tôi chọn luôn ngành khoa học máy tính. Cứ thế mà câu chuyện về lập trình và tôi được bắt đầu.
Sau một thời gian tìm tòi, học tập ban đầu, tôi nhận ra rằng tôi cũng khá thích cái nghề lập trình này. Năm 1987, tôi bắt đầu học ở khoa máy tính của Đại Học Vũ Hán. Ở đó, tôi chỉ bắt đầu được học chuyên ngành ở học kì hai năm nhất. Sau khi đủ điều kiện sử dụng máy tính, tôi đã tìm ra một thế giới tuyệt vời bên trong đó, nơi tôi đắm mình vào. Lúc đó tôi nhớ rằng mình sử dụng một chiếc máy tính chạy bằng Motorola 68000 (tương đương với Intel 8088), bộ nhớ 540K trên hệ điều hành UNIX. Đương nhiên không chỉ có tôi mà đến tận tám người cùng sử dụng chiếc máy đó. Đến khi trở thành sinh viên năm hai thì tôi bắt đầu học nhiều hơn về lập trình máy tính. Trong học kỳ đó tôi cũng có cơ hội được phụ việc cho các giáo sư ở trong các phòng lab của trường. Trong giai đoạn đó tôi đã viết RI hay còn gọi là RAMinit, một dụng cụ nhỏ gọn dùng để xóa bộ nhớ. Có lẻ tôi là một trong những người đầu tiên viết Shareware (1) thì phải.
Trải qua thêm một học kì tiếp theo, tôi có được những liên hệ đầu tiên tới các công ty bên ngoài. Cho đến khi kỳ nghỉ hè của năm hai tức là đâu đó khoảng tháng tám năm 1989, tôi cùng một số người bạn của mình bắt đầu thành lập một nhóm tên là Yellow Rose. Nhóm của chúng tôi đã xây dựng phần mềm thương mại đầu tiên mang tên BITLOK 0.99. Sau đó, tôi bắt đầu thành lập công ty của riêng mình với tiếp tục xây dựng các phần mềm khác. Đến sau khi tốt nghiệp đại học, tôi được phân công vào làm việc trong một viên nghiên cứu. Nhưng thú thật là tôi không quá thích thú với bầu không khí cũng như môi trường ở đó. Cho nên tôi quyết định gia nhập Kingsoft vào đầu năm 1992 và bắt đầu sự nghiệp lập trình viên chuyên nghiệp của mình. Cứ thế mà tôi dần phát triển sự nghiệp của mình đến vị trí giám đốc bộ phận R&D của Kingsoft. Trong thời gian đó tôi vẫn luôn là một lần trình viên hàng đầu.

Cảm giác khi lập trình

Lập trình viên sống trong vương quốc riêng của họ
Trong lần đầu tiếp xúc với máy tính, tôi đã thấy được vẻ đẹp của thế giới bên trong máy tính. Máy tính thật sự ít phức tạp hơn con người. Nếu bạn viết một chương trình tốt chạy trên máy tính thì có thể coi như bạn có được một mối quan hệ tốt với máy tính rồi. Đồng thời bạn có thể chỉ đạo máy tính thực thi những việc mà bạn muốn. Thời điểm đó bạn có toàn quyền kiểm soát mọi thứ. Mỗi khi bạn ngồi trước máy tính của mình, khoảnh khắc đó như thể bạn đang khám phá vương quốc của chính bạn. Những ngày đó cứ như là thiên đường vậy. Thế giới máy tính thật sự rộng lớn và đương nhiên các lập trình viên thì sống trong thế giới tưởng tượng đầy rộng lớn đó. Ở đó bạn có thể tưởng tượng, cảm nhận mọi thứ chính xác đến từng byte, từng bit.
Tôi yêu lập trình và tôi tin chắc rằng mình sẽ làm công việc này đến hết đời mình
Nhiều người cho rằng các lập trình viên chỉ cần làm việc đến năm ba mươi lăm tuổi là hầu như sẽ giải nghệ và đổi sang một môi trường khác. Công việc lập trình là việc của những người trẻ tuổi, khi đến một mốc độ tuổi nhất định thì hầu như sẽ không còn bất kỳ lập trình viên nào nửa. Khi tôi bắt đầu tiếp xúc với những kiến thức đầu tiên, tôi cảm nhận rằng lập trình thật sự rất khó khăn với hầu hết mọi người. Tôi nghĩ rằng có lẻ mình nên đổi sang một công việc khác khi bước sang tuổi ba mươi. Nhưng sau này khi lớn lên một tí, tôi lại có những cách nghĩ khác. Độ tuổi đôi mươi là thời gian mà thường người ta chỉ mới tốt nghiệp, hơn hai mươi lăm tuổi một chút thì tay nghề bắt đầu hoàn thiện, sau đó có thể sẽ trãi qua đủ thứ chuyện trên đời. Đến năm ba mươi lăm tuổi thì gần như mọi thứ đã đi vào ổn định. Nếu theo trường hợp như vậy thì đúng là không nhất thiết phải tiếp tục theo con đường lập trình.
Máy tính du nhập vào Trung Quốc không phải gần đây nhưng có lẻ chỉ được phổ cập rộng rãi và bùng nổ bắt đầu từ năm 1985. Do vậy mà những người viết phần mềm lâu nhất đến bây giờ chắc cũng khoảng chừng hơn mười năm (tôi không biết có ai như vậy ở đây không). Do sự ngắn ngủi về tuổi đời của ngành công nghiệp máy tính ở Trung Quốc nên có thể lực lượng chủ yếu là những người trẻ. Nhưng điều đó không có nghĩa là những lập trình viên có tuổi rồi sẽ tàn úa như những hồng phấn giai nhân. Tôi biết rằng có rất nhiều kỹ sư chủ lực ở Hoa Kỳ đang ở trong độ tuổi từ ba mươi tới bốn mươi. Nói một chút về họ nhé. Lúc đầu thì tôi nghĩ rằng không gì là không thể cả. Hơn nửa chúng tôi còn rất thông minh, đặc biệt phù hợp cho việc phát triển phần mềm và đương nhiên giỏi hơn người nước ngoài. Nhưng khi được tiếp xúc với họ thì tôi mới nhận ra rằng họ quá xuất chúng với hơn mười năm kinh nghiệm phát triển. Mặc dù những người trẻ đã làm được những điều đáng kinh ngạc. Nhưng phần lớn các sản phẩm tuyệt vời đều đến từ những lập trình viên xuất chúng và có bề dày kinh nghiệm này.
Nhìn lại thì từ khi tôi tốt nghiệp đến giờ, lập trình không chỉ là sở thích mà còn là công việc cả đời. Cả một ngày dài mà không viết gì đó, thật sự buồn chán vô cùng.
Chỉ có thể cảm nhận được nếu đặt toàn tâm, toàn ý vào chương trình
Viết một chương trình thật sự cần vận dụng trí não khá nhiều và khá mệt mỏi. Nhưng tôi có thể khẳng định rằng tôi có sẽ làm việc này cả đời dù rằng tôi không hề có ý định dùng toàn bộ cuộc đời của mình cho việc này. Dùng cả đời cho việc lập trình là một việc vừa dễ dàng nhưng cũng vừa khó khăn. Nếu bạn chẳng muốn làm gì cả, chỉ làm vài việc cho công việc được giao thì không hề khó, dù rằng đó sẽ là một ngày tầm thường và vô vị. Nhưng nếu bạn nghiêm túc và đặt toàn tâm, toàn ý vào việc viết chương trình trong vòng mười năm thì điều đó quả thật là không hề dễ dàng. Nhiều bằng hữu của tôi cũng đã "rửa tay gác kiếm" rồi. Đôi lần tôi tự hỏi "mình đang làm gì với máy tính thế này? Không phải thế giới bên ngoài Windows cũng rất tuyệt vời sao?". Nhưng khi đối mặt lại với chiếc máy tính tôi liền tỉnh ngộ rằng viết chương trình vẫn là việc tôi am hiểu nhất và thích thú nhất.

Lập trình viên cấp cao không phải là mục tiêu để theo đuổi

Có những người học lập trình và xem việc trở thành một lập trình viên cấp cao là mục tiêu theo đuổi, thậm chí còn là mục tiêu phấn đấu cả đời. Riêng tôi thì sau khi được làm việc trong những dự án thương mại lớn thật sự, tôi có một chút hoang mang và nghi ngờ về suy nghĩ này. Theo tôi một người sẽ trở thành một lập trình viên giỏi nếu cậu ta có được tinh thần tốt, lòng kiên trì và tìm cho mình được những cơ hội để tiếp xúc, học hỏi những công nghệ phát triển phần mềm mới. Lúc mới bắt đầu thì ai học nhiều hơn thì thường sẽ có kỹ năng tốt hơn. Đến giai đoạn sau này thì khi hầu như mọi người đều đạt được trình độ cao như nhau thì việc ai viết tốt hơn thường sẽ dựa vào sự cẩn thận, dẻo dai và sự thông minh. Có trong tay ít nhiều những thứ đó, bạn sẽ sớm đạt được điều mình muốn.
Trở thành lập trình viên cao cấp thật sự không quá khó
Trở thành lập trình viên cao cấp cũng chính là ước mơ của tôi thời còn đi học, tôi muốn rằng trình độ của mình sẽ được công nhận bởi mọi người. Nhưng sau này tôi nhận ra rằng việc trở thành lập trình viên cao cấp đến mấy đôi khi cũng sẽ là vô dụng. Mấu chốt chủ yếu nằm ở việc bạn có thể tạo ra những ý tưởng và sản phẩm hay không, công sức làm việc của bạn có được xã hội công nhận hay không và những thành quả đó có thể quy đổi thành của cải cho xã hội được không. Một lần nửa thì với tôi việc trở thành một lập trình viên cấp cao không phải là một mục tiêu để theo đuổi.

Lập trình không chỉ là công nghệ mà còn là nghệ thuật

Một số người cho rằng lập trình chỉ là một dạng kỹ năng, loại kỹ năng có thể thành thục được. Một số khác thì lại cho rằng lập trình là sáng tạo nghệ thuật. Hai luồng ý kiến trên gần như luôn có sự tranh cãi tương đối kịch liệt. Về vấn đề này, tôi nghĩ rằng chúng ta có thể thử đổi qua một ngành nghề khác với cùng một câu chuyện. Những người thợ đá hoặc thợ nề rõ ràng là một nghề thiên hoàn toàn về kỹ năng, gần như không hề dính dáng gì đến nghệ thuật cả. Nhưng cũng chính những người thợ nề này đã xây dựng nên Lạc Sơn Đại Phật, hang Mạc Cao Đôn Hoàng... Có thể nói rằng chính họ đã để lại cho chúng ta những di sản văn hóa vô giá.
Ngành công nghiệp phần mềm hiện đại thì đã phát triển ở quy mô đáng kể, để hoàn thành cũng như vận hành một dự án đòi hỏi một lực lượng nhân sự tương đối lớn. Trong một dự án lớn thì thường các lập trình viên chỉ có thể tiếp cận với một mô-đun, công việc thường là viết mã nên khả năng phát huy không cao. Nhất là ở những dự án lớn, các lập trình viên hầu như chỉ có thể hiểu được các chi tiết gói gọn trong quy mô mô-đun mà họ đang làm việc, ngoài ra còn bị hạn chể bởi các quy chuẩn của môi trường làm việc. Do đó rất khó để họ có thể cảm nhận được mình đang "sáng tạo nghệ thuật", thay vào đó họ sẽ nghĩ thiên về hướng lao động nhiều hơn. Đôi khi xen lẫn bên trong còn có sự lo lắng hoang mang vô định rằng dự án, sản phẩm mình đang dốc sức tham gia có thật sự mang lại ý nghĩa gì hay không? Có cạnh tranh được với các sản phẩm cùng loại trên thị trường không? Liệu rằng nó có bị lỗi thời bởi sự phát triển của phần cứng và phần mềm trong tương lai hay không?
Theo suy nghĩ của tôi thì việc lập trình có phần nào đó giống việc của những người thợ điêu khắc hơn. Một công việc liên quan đến sáng tạo và cũng đòi hỏi nhiều công sức. Nhưng tóm lại thì không hề đơn giản để tạo ra một phần mềm tốt.
Theo tôi hai ý kiến ở trên đều có phần nào phiến diện. Với tôi thì lập trình có cả hai thứ kể trên. Lập trình không chỉ là công nghệ, đó còn là nghệ thuật. Lập trình là hoạt động kỹ thuật, có thể thực hiện trên quy mô lớn như những công ty và nhà máy. Nhưng đồng thời cũng là một thứ nghệ thuật, thứ nghệ thuật có thể tạo ra nhiều tạo vật khiến con người ta mê mẫn.
____________________

Chú thích:

Shareware: là loại phần mềm độc quyền ban đầu được chia sẻ bởi chủ sở hữu để dùng thử trong một thời gian (free trial) với ít hoặc không có chi phí với chức năng thường hạn chế hoặc tài liệu không đầy đủ nhưng có thể được nâng cấp khi thanh toán. Shareware thường được cung cấp dưới dạng tải xuống từ một website hoặc trên đĩa CD. Khi hết thời gian dùng thử mà muốn dùng tiếp thì phải trả tiền để mua bản quyền. Đây là một mô hình kinh doanh trong phân phối phần mềm. (Theo Wikipedia )

Kết từ người dịch

Đây là một bài viết khá cũ đến từ năm 1996, khi bác Lôi Quân còn rất trẻ, 27 tuổi. Khi đó chưa có những Joyo.com, UCWeb hay là Xiaomi. Có lẻ thế nên những chia sẻ của tác giả vẫn mang hơn hướng "lập trình viên" khá nhiều. Dù đã qua hơn 25 năm và ngành công nghệ của thế giới nói chung, Trung Quốc nói riêng đã có vô vàn đổi thay. Nhưng bài viết vẫn còn rất nhiều giá trị, bằng chứng là những định nghĩa, câu nói trong bài viết vẫn còn được các lập trình viên Trung Quốc chia sẽ đến tận hôm nay. Chỉ có một nhắn nhủ nho nhỏ là khi đọc bài này hãy nhớ rằng nó được viết ra năm 1996. Nên sẽ có những việc như "chưa thấy ai làm lập trình đến mười năm" hay những suy tư về "cột mốc ba mươi lăm tuổi", có thể làm các bạn đọc của thấy hơi khó hiểu. Nhưng dù sao thì tôi cũng khá thích bài này, nó cũng ngắn, chôm chỉa dễ nên nhờ anh Baidu dịch lại để chia sẻ cho mọi người.
Ngoài bài này thì còn một số bài viết khác như bài phỏng vấn bác Lôi Quân về nhóm Yellow Roses, hoặc bài viết về phong trào suy thoái cùng làn sống sa thải của ngành công nghệ thông tin ở Trung Quốc trong năm 2022. Nếu các bạn thích mình sẽ dịch tiếp (hoặc cũng sẽ tự dịch nếu như bí ý tưởng quá).