Hãy
học ngoại ngữ
Klaus
Marquardt
Lập
trình viên cần giao tiếp rất nhiều.
Trong
đời lập trình viên, có những lúc phần lớn giao tiếp
dường như chỉ là với máy tính – chính xác hơn là với
các chương trình thi hành trên máy tính đó. Kiểu giao
tiếp này là khả năng biểu đạt để máy tính hiểu
được ý tưởng của mình. Hiện tượng này thật kỳ
thú: chương trình là sự hiện thực của ý tưởng mà
dường như không có vật chất tham dự vào đó.
Lập
trình viên cần lưu loát về ngôn ngữ máy, dẫu đó là
thực hay ảo, cần thành thạo với những khái quát liên
quan đến ngôn ngữ thông qua công cụ phát triển. Biết
nhiều cách khái quát khác nhau là điều quan trọng, bằng
không sẽ gặp vướng mắc khi diễn đạt ý tưởng. Lập
trình viên giỏi cần có khả năng đứng ngoài công việc
thường nhật, có ý thức trong việc dùng các ngôn ngữ
khác nhau để biểu đạt mục đích khác nhau. Thành quả
ắt đến với họ.
Ngoài
giao tiếp với máy, lập trình viên cần giao tiếp với
đồng nghiệp. Các dự án lớn hiện nay đòi hỏi nhiều
nỗ lực giao tiếp xã hội hơn là đơn thuần ứng dụng
nghệ thuật lập trình. Khả năng hiểu và diễn đạt
được những điều vượt quá khả năng lĩnh hội của
máy là rất quan trọng. Hầu hết các lập trình viên kỳ
tài đều dùng lưu loát ngôn ngữ mẹ đẻ, ngoại ngữ
cũng vậy. Đây không đơn thuần là sự truyền thông qua
lại: Sử dụng tốt một ngôn ngữ còn đưa đến tư duy
trong sáng, phẩm chất không thể thiếu khi khái quát vấn
đề. Mà khả năng khái quát lại là linh hồn của lập
trình.
Ngoài
giao tế với máy, với bản thân, và với đồng nghiệp,
một dự án còn có nhiều người liên quan, phần lớn
trong số họ không có hoặc có nền tảng kỹ thuật khác
biệt. Họ sống trong lĩnh vực kiểm thử, quản lý chất
lượng, và cài đặt; trong lĩnh vực tiếp thị và bán
hàng; họ là người dùng bình thường, làm việc ở cơ
quan hay tại nhà. Bạn cần hiểu họ cũng như những mối
quan tâm của họ. Điều này là bất khả nếu bạn không
nói được ngôn ngữ của họ – ngôn ngữ trong thế giới
của họ, ở lĩnh vực chuyên môn của họ. Trong lúc bạn
tưởng rằng cuộc đối thoại với họ đã diễn ra tốt
đẹp, thì có thể họ không nghĩ như vậy.
Khi
trò chuyện với kế toán viên, bạn cần có kiến thức
cơ bản về kế toán trung tâm chi phí (cost-center), vốn
ràng buộc (tied capital), vốn sử dụng (capital employed),
v.v... Nếu bạn trao đổi với nhân viên tiếp thị hay
luật sư, bạn phải quen thuộc với một số biệt ngữ
(tức tư duy) của họ. Thành viên trong đội ngũ thực
hiện dự án, tốt nhất là lập trình viên, cần làm chủ
được tất cả những ngôn ngữ chuyên ngành này. Lập
trình viên là người chịu trách nhiệm cuối cùng trong
việc đưa ý tưởng đi vào cuộc sống thông qua công cụ
máy tính.
Và
dĩ nhiên, cuộc đời không đơn thuần là những dự án
phần mềm. Theo Charlemagne, biết thêm một ngôn
ngữ là có thêm một tâm hồn.
Khi giao tế vượt khỏi biên giới công nghiệp phần mềm,
bạn sẽ hiểu rõ giá trị của việc học ngoại ngữ. Để
biết khi nào cần phải im lặng lắng nghe. Để hiểu rằng
ngôn ngữ cao cả nhất chính là không lời.
Nơi nào người không
thể lên tiếng, nơi ấy người phải im lặng.
–
Ludwig Wittgenstein
Nguồn
Marquardt
K. (2010) Learn
Foreign Languages,
97 Things Every Programmer Should Know, Henney K. (ed), O'Reilly,
Sebastopol, CA.
Không có nhận xét nào:
Đăng nhận xét