Nâng cao kỹ năng mềm cho dân kỹ thuật


Công nghệ thông tin là một trong những ngành phát triển mạnh nhất hiện nay. Nhu cầu nhân lực hàng năm đối với ngành công nghệ thông tin nói chung và kỹ sư lập trình nói riêng là cực kỳ lớn. Không những trên thế giới mà ở cả Việt Nam, hàng năm có hàng triệu việc làm mới được tuyển dụng không chỉ ở những tập đoàn lớn xuyên quốc gia như Google, Facebook, hay ở những công ty phần mềm nhỏ chuyên làm các dự án outsource. Tuy nhiên, đây cũng là một trong những ngành có tính cạnh tranh cao nhất. Lập trình viên có ở mọi cấp độ, tỷ lệ đào thải cũng cực kỳ cao. Vậy đâu là sự khác biệt giữa một lập trình viên có công việc tuyệt vời và một lập trình viên thường thường?

Nếu để ý kỹ, ta thấy một vấn đề rất dễ dàng nhận ra là có rất ít sự khác biệt trong đào tạo, hầu như đa phần các lập trình viên đều theo học những chương trình giống nhau, sở hữu các kỹ năng kỹ thuật cần thiết để thực hiện công việc ban đầu khá giống nhau. Tuy nhiên, theo thời gian một số lập trình viên trở nên vượt trội và có được những công việc tốt, ngược lại số còn lại vẫn dẫm chân tại chỗ thậm chí có nguy cơ đào thải cao? Vậy đâu là sự khác biệt? Tại VTCC, các kỹ sư trẻ và giàu nhiệt huyết không chỉ cùng nhau chia sẻ kiến thức chuyên môn mà còn trao đổi về các kỹ năng mềm thiết yếu. Các kỹ năng này cần thiết và giúp các lập trình viên thành công. 

Kỹ năng đầu tiên là đặt câu hỏi đúng. Việc đặt câu hỏi đúng cho một vấn đề là yếu tố quan trọng nhất để giải quyết vấn đề. Một lập trình viên giỏi không thể áp dụng thuật toán tìm kiếm tuần tự trên một bộ dữ liệu đã được sắp xếp. Việc đặt câu hỏi ngay từ đầu rằng: “Dữ liệu phân bố thế nào? Có trường hợp ngoại lệ không? Dùng thuật toán nào tốt?” trong trường hợp này sẽ làm vấn đề trở lên rõ ràng, dễ giải quyết và tối ưu nhất có thể. Đặt câu hỏi đúng còn giúp cho chúng ta tìm được những vấn đề mới, cải tiến phù hợp cho từng bài toán. Việc đặt câu hỏi cũng là một bước không thể thiếu trong quá trình khảo sát nhu cầu và phân tích thiết kế hệ thống. Việc đặt các câu hỏi giá trị, tìm hiểu tại sao lại phải xây dựng một cái gì đó, hoặc khách hàng thực sự đang cố gắng đạt được điều gì, yêu cầu về chức năng như thế nào là một kỹ năng vô giá. Ngoài ra, lập trình viên xuất sắc không chỉ dừng lại ở việc hỏi đúng câu hỏi; mà còn cần thực sự lắng nghe câu trả lời cho những câu hỏi đó và hiểu được ẩn ý đằng sau mỗi câu trả lời.

Kỹ năng thứ 2 đó là kỹ năng giao tiếp. Kỹ năng giao tiếp thường được liệt kê trong yêu cầu công việc của rất nhiều vị trí việc làm. Đặc biệt trong một thế giới phát triển phần mềm yêu cầu nhiều sự tương tác như hiện nay với các quy trình phát triển Agile, DevOps thì việc có kỹ năng giao tiếp tốt là chìa khóa cho sự thành công của lập trình viên. Các thành viên trong nhóm phát triển phải có khả năng tương tác và hợp tác với nhau trong chu trình phát triển và vận hành phần mềm. Các kiến trúc sư thiết kế hệ thống phần mềm cần có khả năng tương tác với tổ chức, khách hàng để tìm hiểu nhu cầu và bảo trì sản phẩm thường xuyên, trợ giúp hoặc hỗ trợ khách hàng trong những trường hợp lỗi xảy ra. Giao tiếp có thể được chia thành giao tiếp bằng lời nói và bằng văn bản, bao gồm khả năng viết tài liệu cho người dùng, viết email cho quản lý hoặc nói chuyện với mọi người trên Slack mà không gây phiền nhiễu.

Thứ 3 là khả năng thích ứng vì công nghệ thông tin là ngành công nghiệp có tốc độ chuyển đổi rất nhanh. Luôn luôn có những nền tảng, mô hình hoặc cách thức mới để làm việc. Thậm chí công nghệ liên tục phát triển qua từng tháng. Có thể một lập trình viên mới tháng trước đang phải tìm hiểu big data là gì, machine learning hay học máy là gì, tháng sau đã phải biết đến blockchain hay các công nghệ khác. 6 tháng trước vừa mới làm quen với Agile thì 6 tháng sau đã phải vật lộn với DevOps. Trong công nghệ thông tin, mọi thứ đều chuyển đổi rất nhanh. Ngoài ra các doanh nghiệp chắc chắn sẽ thay đổi suy nghĩ về mọi thứ. Cởi mở là một phần của khả năng thích ứng. Nghĩa là chấm dứt các tranh cãi về việc nên dùng Tab hay Space hoặc Kotlin có tốt hơn Java hay không. Điều này là không cần thiết đối với một lập trình viên. Một bộ công cụ hoặc phương pháp có thể tốt với người ngày hoặc dự án này, nhưng lại không tốt với người khác hoặc dự án khác, vì vậy, cởi mở và lắng nghe mọi người là điều quan trọng. Công nghệ là công cụ hữu ích nếu được sử dụng phù hợp. Một lập trình viên khăng khăng ngôn ngữ lập trình C là tốt nhất, nhanh nhất, hiệu suất cao nhất sẽ khá khó khăn trong việc hoàn thành deadline cho một dự án xây dựng ứng dụng quản lý thông thường. “Thịt gà dùng dao mổ trâu” chỉ làm cho vấn đề trở lên phức tạp hơn.

Thứ 4, biết lựa chọn ưu tiên cần thiết cũng là một kỹ năng sẽ ngày càng trở nên quan trọng hơn. Ở một mức lập trình viên thông thường bạn có thể được cho biết phải làm gì và khi nào nên làm tuy nhiên cần phải biết nên học công nghệ nào, dùng nhiều thời gian cho việc gì, đến mức độ cao hơn bạn có thể được giao một số nhiệm vụ khác nhau cùng một lúc – tất cả đều được doanh nghiệp xem là ưu tiên hàng đầu, và bạn cần biết tập trung thời gian của mình cho nhiệm vụ nào, vào lúc nào; và đến mức Team Leader hay PM bạn cần cân bằng các nguồn lực trong nhóm cho các dự án. Đâu là ưu tiên cao nhất, đâu là ưu tiên cần phân bổ nhiều nguồn lực nhất. Việc xác định dự án nào cần được giải quyết trước tiên là một kỹ năng quan trọng cần có. Kỹ năng quản lý thời gian đi đôi với việc này.

Cuối cùng, các kỹ năng công nghệ là các kỹ năng rất quan trọng. Đây là kỹ năng bắt buộc đối với mọi kỹ sư lập trình. Nếu không nắm được chút nào và không có bất cứ kỹ năng nghề nghiệp nào mọi thứ đều trở nên vô nghĩa. Tuy nhiên, nó quá phổ biến và chênh lệch không quá lớn do đó các kỹ năng mềm mới là những yếu tố để tách biệt các kỹ sư phần mềm xuất sắc và phần còn lại. Đa phần các kỹ năng công nghệ sẽ bão hòa cho tới một thời điểm nào đó trong con đường sự nghiệp. Một lập trình viên 10 năm làm PHP có thể không quá vượt trội so với một lập trình viên khác với 3 năm kinh nghiệm với nhiều kỹ năng mềm hơn, đặc biệt là sự am hiểu về thuật toán và giải quyết vấn đề. Sự khác biệt về kỹ năng công nghệ ở đây là khả năng học các công nghệ mới và sử dụng chúng một cách nhanh nhất có thể. Đây là đặc điểm của tuyệt đại đa số các kỹ sư lập trình xuất sắc. Thêm vào đó, nếu bạn thực hiện các hoạt động phi kỹ thuật quá tốt, bạn thực sự có thể bị chuyển sang các vai trò phi kỹ thuật như quản trị, giới thiệu sản phẩm hoặc tương tự.

Qua năm kỹ năng trên, lập trình viên có thể cải thiện các kỹ năng của mình bằng cách thực sự chia sẻ kiến thức và kinh nghiệm của mình với người khác. Bằng cách dạy cho người khác những gì bạn biết, bạn sẽ thực sự rèn luyện và tạo lợi thế cho mình. Hãy chia sẻ bất cứ khi nào có thể. Điều này sẽ giúp bạn rèn luyện tốt hơn và có nhiều lợi thế hơn trong sự nghiệp.

Tác giả: Viettel Đà Nẵng

Viettel Đà Nẵng luôn coi khách hàng là những cá thể riêng biệt, có nhu cầu được lắng nghe, chia sẻ, được đáp ứng, phục vụ một cách tốt nhất và được đối xử công bằng. Bởi vậy, Viettel luôn nỗ lực ở mức cao nhất để khách hàng luôn được “nói theo cách của bạn”, nói theo phong cách của riêng mình. Đối với chúng tôi, sự hài lòng và tin cậy của Qúy khách hàng chính là khởi nguồn cho sự thịnh vượng và phát triển bền vững.

Có thể bạn quan tâm

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *