19 Jan, 2021
Kĩ năng mềm
Một sinh viên hỏi tôi trong một email: “Có bao nhiêu “kĩ năng mềm” và làm sao em phát triển được chúng? Kĩ năng nào là quan trọng nhất cho người phát triển phần mềm? Có các trường dạy kĩ năng mềm hay có bằng cấp về kĩ năng mềm không? Xin thầy cho lời khuyên.”
Đáp: “Kĩ năng mềm” hay “kĩ năng liên con người” là sự thành thạo mà mọi người áp dụng khi tương tác lẫn nhau. Có nhiều “kĩ năng mềm” như kĩ năng trao đổi, kĩ năng giải quyết xung đột, kĩ năng thương lượng, kĩ năng tư duy chiến lược, kĩ năng xây dựng tổ, kĩ năng bán hàng v.v. Về căn bản, “kĩ năng mềm” không phải là cái gì đó bạn có thể học trong thời gian ngắn mà phát triển qua thời gian trong cuộc đời. Có vài kĩ năng mềm bạn học trong trường như kĩ năng trao đổi, kĩ năng trình bày, kĩ năng làm việc theo tổ, kĩ năng quản lí thời gian, kĩ năng giải quyết vấn đề giúp cải tiến tương tác của bạn với người khác, nâng cao hiệu năng học tập của bạn và giúp thăng tiến nghề nghiệp của bạn.
Người phát triển phần mềm giỏi phải phát triển một số kĩ năng mềm vì chúng là quan trọng vì phần lớn công việc phần mềm đều được thực hiện trong tổ. Đóng góp cá nhân của bạn cho tổ là quan trọng cho thành công của dự án và cho công ti. Khi bạn đi lên vị trí cao hơn như kĩ sư yêu cầu hay người phân tích doanh nghiệp, bạn sẽ phải làm việc với khách hàng. Khả năng trao đổi trực diện, kĩ năng trình bày, kĩ năng lắng nghe và kĩ năng thương lượng trở thành mấu chốt cho thành công nghề nghiệp của bạn. Khi bạn lên tới vị trí người quản lí dự án, kĩ năng quản lí thời gian của bạn, kĩ năng liên con người, kĩ năng lãnh đạo, kĩ năng giải quyết xung đột và kĩ năng ra quyết định trở thành quan trọng hơn cho thành công của dự án. Điều đã được gợi ý là khi người ta đi lên trong nghề nghiệp, kĩ năng mềm trở nên quan trọng về dài hạn hơn là kĩ năng kĩ thuật. Bởi lí do này, kĩ năng mềm đang được các công ti phần mềm tìm kiếm bên cạnh phẩm chất kĩ thuật.
Có nhiều lớp đào tạo “kĩ năng mềm”. Một số dạy các kĩ năng mềm tổng quát và một số hội tụ vào kĩ năng chuyên sâu như thương lượng hay trình bày. Tuy nhiên, không có bằng cấp “kĩ năng mềm” hay một lĩnh vực đặc thù của nghiên cứu về kĩ năng mềm. Lời khuyên của tôi cho người phát triển phần mềm là trước hết hội tụ vào kĩ năng kĩ thuật, rồi học làm chủ tốt về ngoại ngữ. Tôi nghĩ tiếng Anh là chọn lựa tốt bởi vì bạn có thể dùng tiếng Anh gần như mọi nơi và nó cũng là ngôn ngữ chung nhất dùng trong công nghiệp phần mềm. Bằng việc có cả kĩ năng kĩ thuật và kĩ năng trao đổi trong tiếng nước ngoài, bạn có thể tiến lên trong nghề nghiệp của mình nhanh hơn những người khác. Với xu hướng toàn cầu hoá, phần lớn những người phát triển phần mềm sẽ không làm việc ở một chỗ mà phải đi tới nhiều chỗ cho nên có kĩ năng ngoại ngữ là điều cần thiết. Tôi tin vài năm nữa kể từ bây giờ, chỉ có kĩ năng kĩ thuật sẽ KHÔNG đủ nhưng mọi người phát triển phần mềm cũng phải có kĩ năng trao đổi, đặc biệt khả năng nói ít nhất một tiếng nước ngoài.
—-English version—-
Soft-skills
A student asked me in an email: “How many “Soft-skills” are there and how do you develop them? Which one is the most important for a software developer? Are there schools that teach soft-skills or is there a degree in soft-skills? Please advise.”
Answer: “Soft Skills” or “Interpersonal skills” are proficiencies that people apply when interact with each others. There are many “Soft-skills” such as communication skills, conflict resolution skills, negotiation skills, strategic thinking skills, team building skills, selling skills etc. Basically, “Soft-skills” are not something you can learn in a short time but develop overtime in life. There are few soft-skills that you learn in school such as communication skills, presentation skills, teamwork skills, time management skills, problem solving skills that help improve yourinteractions with others, enhance your study performance and help advance your career.
A good software developer must develop some soft skills as they are important because most software works are done in team. Your individual contribution to the team is important to the success of the project and the company. As you move up to a higher positions such as Requirements engineer or Business analyst, you will have to work with customers. The ability to communicate face-to-face, the presentation skills, the listening skills and negotiation skills are becoming critical to your career success. As you move up to project manager position, your time management skills, interpersonal skills, leadership skills, conflict resolution skills and decision making skills are becoming more important to the success of the project. It has been suggested that as people move up in their career, soft skills are becoming more important over the long term than technical skills. For this reason, soft skills are being sought out by software companies in addition to technical qualifications.
There are many “soft-skills” training classes. Some teach general soft-skills and some focus on specific skill such as negotiation or presentation. However, there is no “soft-skills” degree or a particular field of study in soft-skills. My advice for software developer is first focus on the technical skills, then learn to have good command of a foreign language. I think English is a good choice because you can use English almost everywhere and it is also the most common language using in the software industry. By having both technical skills and communication skills in a foreign language, you can advance your career faster than others. With the globalization trends, most software developers will not work in one place but have to travel to many places so having a foreign language skill is a necessity. I believe few years from now, having only technical skills will NOT be enough but every software developer must also have communication skills, especially the ability to speak at least one foreign language.