Sự kiện là khi công nghệ thay đổi thì ngôn ngữ lập trình cũng đổi cho nên ngôn ngữ lập trình chỉ có khoảng thời gian sống ngắn ngủi trong vài năm. Là kĩ sư phần mềm, bạn học ngôn ngữ lập trình như công cụ nhưng kĩ năng của bạn phải là về qui trình doanh nghiệp, kiến trúc hệ thống, thiết kế hệ thống, quản lí dự án, quản lí mối quan hệ v.v. Tuy nhiên, theo ý kiến tôi, kĩ năng quan trọng nhất bạn cần trong việc làm thay đổi thế giới sẽ là ngôn ngữ nói, không phải ngôn ngữ lập trình.
Thế giới chúng ta sống hôm nay đang thay đổi nhanh chóng và trở thành cộng đồng toàn cầu. Để sống còn và thành công mọi người làm phần mềm sẽ cần nói ít nhất một ngoại ngữ và tôi nghĩ nó nên là tiếng Anh. Tôi chắc chắn rằng không phải mọi người đều đồng ý với tôi, vì một số trong các bạn đã học tiếng Pháp, tiếng Nhật, tiếng Trung Quốc hay tiếng Tây ban nha nhưng trong thế giới kinh doanh, nếu bạn có thể nói tiếng Anh lưu loát, bạn có thể làm việc được gần như ở mọi nơi. Tôi biết nhiều người trong các bạn có thể đọc và viết tiếng Anh tốt nhưng bạn cần thực hành nói nữa.
Ngày nay có nhiều cơ hội để làm việc với công ti phần mềm nước ngoài hay để cung cấp dịch vụ khoán ngoài cho công ti nước ngoài và hầu hết các việc này đều yêu cầu tiếng Anh, đặc biệt trao đổi bằng tiếng Anh. Để thành công là người làm phần mềm, bạn cần cả kĩ năng kĩ thuật và trao đổi bởi vì bạn sẽ làm việc chặt chẽ với khách hàng và tổ của mình ở các nước khác. Tiếng Anh nhanh chóng trở thành ngôn ngữ của kinh doanh toàn cầu, chẳng thành vấn đề bạn làm kinh doanh ở đâu. Nghe tiếng Anh thành rất thông dụng ở các văn phòng toàn châu Âu và Ấn Độ, và việc nó được dùng ở châu Á (Trung Quốc, Nhật Bản, và Hàn Quốc) cũng đang tăng trưởng nhanh chóng.
Tôi đã giảng bài ở nhiều nước và tôi toàn dùng tiếng Anh và sinh viên của tôi ở Trung Quốc, Nhật Bản, Hàn Quốc, Malaysia, Ấn Độ không cần phiên dịch. Tôi thấy rằng nhiều lớp ở Viện khoa học và công nghệ tiên tiến Hàn Quốc – Korea Advanced Institute in Science and Technology (KAIST) được dạy bằng tiếng Anh, cùng điều này đã xảy ra ở Viện Công nghệ Ấn Độ – Indian Institute of Technology (ITT), và đại học Thanh Hoa – Tsinghua University, Bắc Kinh. Dường như là với miền phần mềm, nhiều lớp đang dùng tiếng Anh làm ngôn ngữ dạy chính bây giờ.
Tôi biết rằng một số các bạn thích đọc bản dịch hơn là bài báo nguyên gốc tiếng Anh. Điều đó dễ dàng hơn nhiều và thuận tiện hơn đấy, nhưng tôi phải lưu ý bạn rằng một số thuật ngữ có thể không dịch tốt, đặc biệt các thuật ngữ công nghệ. Tôi ưa thích giữ thuật ngữ nguyên góc trong ngoặc tròn, chẳng hạn: “Băng thông” (Broadband) hay để thuật ngữ tiếng Anh một mình như “Internet” vì mọi người đều biết nó là gì. Trong môi trường phần mềm, hầu hết các từ khoá và tên hàm thư viện đều dựa trên từ tiếng Anh. Thuật ngữ kĩ thuật cũng trong tiếng Anh và đại đa số các hướng dẫn và thảo luận cũng được tiến hành trong tiếng Anh. Khi bạn viết chú thích và làm tài liệu cho mã của mình, bạn có lẽ cần làm nó trong tiếng Anh nữa vì nó được hiểu bởi những người bảo trì mã đó sau khi nó được đưa ra. Có thể là những người này không ở cùng nước bạn.
Ngày nay, toàn cầu hoá tác động tới mọi nước và người phát triển phần mềm không đơn thuần viết mã mà làm việc trong tổ. Nhiều dự án được phát triển 24 giờ và 7 ngày một tuần với nhiều tổ làm việc từ các nước khác nhau, các tổ làm việc toàn cầu này phải dùng ngôn ngữ chung để thảo luận và chia sẻ thông tin và rất có có thể là họ dùng tiếng Anh. Để trả lời câu hỏi về ngôn ngữ trong nghề phần mềm, tôi nghĩ điều bạn cần là kĩ năng trao đổi, kĩ năng tham gia, kĩ năng tạo điều kiện, kĩ năng viết, loại “kĩ năng mềm” để chia sẻ, ảnh hưởng, và hướng dẫn nỗ lực phát triển.
Tôi tin kĩ năng mềm của người ta có thể là phần quan trọng của nghề kĩ thuật, đặc biệt những người làm việc mặt đối mặt với khách hàng như kĩ sư lấy yêu cầu, người phân tích nghiệp vụ và người quản lí dự án. Tôi cũng nghĩ mọi công ti phần mềm phải huấn luyện nhân viên của họ dùng các kĩ năng mềm này để cải tiến mối quan hệ khách hàng và trao đổi tổ. Ngày nay, kĩ năng mềm đang được những người sử dụng lao động toàn cầu tìm kiếm bên cạnh các phẩm chất kĩ thuật phần mềm. Đôi khi, kĩ năng mềm còn quan trọng hơn kĩ năng kĩ thuật. Việc tiếp thị và bán hàng là ví dụ nơi khả năng giải quyết với con người có hiệu quả và kết thúc một thương vụ có thể xác định sự thành công chuyên nghiệp của người phần mềm còn hơn các kĩ năng kĩ thuật đơn thuần của người đó.
Nền kinh tế toàn cầu làm cho nhu cầu này còn quan trọng hơn bao giờ, cho nên với những người có thể hoàn thành các yêu cầu này, cơ hội chưa bao giờ lớn hơn thế này. Với những người trong các bạn vẫn đang thử quyết định cần học tiếp ngôn ngữ nào, lời khuyên của tôi sẽ là học tiếng Anh và nói tiếng Anh nhanh chóng như khả năng bạn có thể làm được.
Some of you have asked me about what programming language (Java, C++ or Pascal) is important for a software career. The fact is as technology changes so are programming languages so programming languages only have a short life span for few years. As software engineer, you learn programming language as a tool but your skills must be on the business process, system architecture, system design, project management, relationship management etc. However, in my opinion the most important skill that you need in this changing world would be spoken language, not programming language.
The world we live today is changing quickly and becoming a global business community. To survive and succeed every software people will need to speak at least one foreign language and I think it should be English. I am sure that not everybody agrees with me, since some of you have studied French, Japanese, Chinese or Spanish but in the business world, if you can speak English fluently, you could work almost everywhere. I know many of you could read and write English well but you do need to practice speaking it too. Today there are many opportunities to work for foreign software companies or to provide outsourcing service to foreign companies and most of these jobs require English language, especially communication in English. To succeed as a software person, you need both technical and communication skills because you will work closely with your customers and their teams in other countries. English is rapidly becoming the language of global business, no matter where you do business. It is very common to hear English spoken in offices throughout Europe and India, and its use in Asia (China, Japan, and Korea) is also growing fast. I have lectured in many countries and all I used is English and my students in China, Japan, S. Korea, Malaysia, India do not need translation. I found out that many classes in Korea Advanced Institute in Science and Technology (KAIST) are taught in English, the same happened at Indian Institute of Technology (ITT), and TsinghuaUniversity, Beijing. It seems that for the software area, many classes are using English as the main teaching language now.
I know that some of you prefer reading the translation rather than the original articles in English. It is much easier and more comfortable but I would caution you that certain terms may not translate well, especially technology terms. I would prefer to keep the original term in parentheses, for example: “Bang thong” (Broadband) or leave the English term alone such as “Internet” since everybody knows what it is. In software environment, most keywords and library function names are based on English words. The technical terminology is also in English and the majority of instruction and discussion is also conducted in English. As you commenting and documenting your code, you probably do it in English too as it is understood by people who will maintain that code after it is released. It is possible that these people are not in the same country as you.
Today, globalization impacts every country and software developers are not merely writing code but work in teams. Many projects are developed 24 hours and 7 days a week with several teams working from different countries, these global working teams must use a common language to discuss and share information and it is very likely that they use English. To answer the question about language in a software career, I think what you needs are communication skills, presentation skills, engaging skills, facilitating skills, writing skills, the kind of “Soft Skills” to share, influence, and guide the development efforts. I believe a person’s soft skill can be an important part of the technical career, particularly those who are dealing with customers face-to-face such as Requirements Engineer, Business Analyst and Project Manager. I also think every software companies must train their staff to use these soft skills to improve customer relationship and teamwork communication. Today, soft skills are increasingly sought out by global employers in addition to standard software technical qualifications. Sometime, soft skills are more important than technical skills. The marketing and sales is an example where the ability to deal with people effectively and to close a deal can determine the professional success of a software people more than his or her mere technical skills. The global economy makes this need more important than ever, so for those who can fulfill these requirements, the opportunity has never been greater. For those of you who are still trying to decide which language to learn next, my advice would be learn English and speak English as quick as you can.