Với tư cách là một programer, khi đề cập đến những người mà tôi sẽ làm việc cùng, tôi thường để ý về những kỹ năng non-technical của họ nhiều hơn là khả năng làm việc. Trong thực tế, tất cả các kỹ năng trong bài viết này đều góp phần làm cho việc coding tốt hơn giúp cho các dự án kỹ thuật được cải thiện. Phần lớn trong số chúng thực sự hữu ích cho những công việc kể cả ngoài lập trình, nhưng tôi sẽ tập trung vào lý do tại sao chúng lại đặc biệt hữu dụng cho những ai đã và đang là một programer.

 

Hiểu người dùng

Để xây dựng được một sản phẩm tốt, bạn phải đặt vị trí của mình vào vị trí của người dùng. Họ có thể sử dụng sản phẩm của bạn như thế nào? Những tính năng, đặc điểm nào sẽ trở nên hữu ích đối với họ? Sản phẩm của bạn có thể giúp họ hay cải thiện được cuộc sống của họ như thế nào? Sản phẩm của bạn có ý nghĩ gì?

Sự đồng cảm cần thiết cho mỗi mảnh ghép, thứ mà làm nên một sản phẩm, chương trình của bạn. Nếu chúng không được bảo mật an toàn thì nhiều khả năng thông tin người dùng của bạn sẽ bị sử dụng bất hợp pháp bởi một bên thứ ba nào đó. Nếu họ không thể truy cập thì là do bạn đang hạn chế số lượng người truy cập vào dự án của bạn. Nếu chúng chạy chậm hoặc cần một dung lượng lớn băng thông để chạy, người dùng sẽ rời đi và những người ở khu vực có tốc độ internet chậm hoặc người dùng sử dụng điện thoại sẽ không thể chạy được ứng dụng của bạn.Trông nó có có vẻ giống việc mỗi ngày một công ty sẽ sản xuất ra ngoài một sản phẩm với thuật toán độc hại, giống như YouTube algorithm radicalizing the alt-right Amazon creating a sexist hiring algorithm (which they didn’t end up using), or AI misgendering black women. Hãy nghĩ về tất cả mọi người xung quoanh khi bạn viết những dòng code của mình!

Ngoài ra, sự đồng cảm thực sự hữu dụng đối với từng thành viên trong một nhóm và cả những người cố vấn. Hãy đặt bản thân vào vị trí người điều hành bạn hoặc vị trí của các developer khác. Tại sao họ lại đưa ra quyết định như vậy? Bạn có thể làm được gì để giúp đỡ họ? Có sự đồng cảm, bạn sẽ cải thiện được khả năng của bản thân và giúp đỡ được team của mình một cách tốt hơn. Nếu bạn là một nhà tuyển dụng, bạn có thể giữ lại nhân viên của mình lâu hơn và họ sẽ là những người lao động nhiệt huyết, tận tâm nếu bạn thể hiện được sự đồng cảm của bản thân mình.

Có sự kiên nhẫn với các programer khác, đặc biệt là những người đang học hỏi những điều mới. Tự nhắc nhở bản thân điều gì đó thực sự khó đối với bạn để học tập và cảm nhận điều đó. Họ có thể cảm thấy tương tự. Trở nên thô lỗ với họ, giảm dần tiến trình của họ, hoặc quá tỉ mỉ, chú trọng những tiểu tiết sẽ chỉ gây ra bất lợi và làm cho tiến trình trở nên khó khăn, vất vả hơn đối với họ.

Lời nói và hành động của bạn ảnh hưởng trực tiếp đến kết quả. Bạn có thể sử dụng điều này để thay đổi một người nào đó theo hướng tích cực hoặc tiêu cực khi bạn nói chuyện trực tiếp hay là thảo luận trực tuyến. Bạn có thể nghĩ rằng “không thể nào”, nhưng thực sự bạn có thể gây ra tác động rất tiêu cực đến cuộc sống của một ai đó. Tùy thuộc vào cách bạn hành động như thế nào để xin lỗi nếu lỡ làm tổn thương người nào đó và rút lại những điều mà bạn gây ra.

Giải quyết vấn đề

Khi tôi dạy một ai đó code, tôi thấy rất nhiều người phải vật lộn để giải quyết các vấn đề khi code. Khả năng để chia một vấn đề nào đó thành những cái nhỏ hơn, sau đó giải quyết tất cả những vấn đề nhỏ đó là cả một quá trình luyện tập. Biết giải quyết vấn đề một cách trơn tru có thể giúp bạn trở thành một lập trình viên giỏi hơn rất nhiều.

Ngoài ra, đối với đa số các vấn đề sẽ có nhiều hơn 1 cách giải quyết. Phần lớn công việc của chúng tôi – các nhà phát triển phần mềm là nghĩ ra nhiều giải pháp khác nhau và chọn một giải pháp tối ưu nhất. Đó có phải là một cách nhanh hơn để triển khai? Hoặc là nó có chạy hiệu quả hơn không? Hay là nó sẽ rẻ hơn chứ? Tất cả những câu hỏi này đều là câu hỏi quan trọng và việc chọn một giải pháp đúng đắn là một thử thách khó khăn trong việc phát triển phần mềm.

Cộng tác

Rất có thể bạn sẽ làm việc cùng những người khác với tư cách là một lập trình viên. Bạn sẽ làm việc với các developer khác, với những doanh nhân, người quản lý, các cộng tác viên, các bên liên quan và vô số những người khác khi bạn là một freelancer hoặc doanh nghiệp. Học cách làm việc hiệu quả hơn với những người khác nhau và học cách phán đoán tính cách của họ.

Có rất nhiều thứ đóng góp để làm nên một mối cộng tác tốt. Điều đầu tiên phải hiểu là một người không thể làm tất cả mọi việc hoặc ít nhất là làm tốt mọi thứ. Mỗi người khác nhau có một kỹ năng khác nhau, những quan điểm và kinh nghiệm về cuộc sống khác nhau, kết hợp những điều này sẽ tốt hơn là làm việc một cách độc lập. Đừng bao giờ cảm thấy như bạn phải “gánh team” hoặc phải làm tất cả mọi thứ thay cho mọi người trong team. Bạn có thể hoàn thành công việc tốt hơn nếu bạn cho phép người khác đóng góp.

Yêu cầu người khác giúp đỡ và sẵn sàng giúp đỡ những người khác. Bạn không cần phải là chuyên gia về mọi thứ, và mỗi người khác nhau sẽ là những chuyên gia trong mỗi thứ khác nhau. Tin tưởng vào những người khác, và nếu bạn đang mắc kẹt ở một vấn đề nào đó bạn có thể yêu cầu sự giúp đỡ của mọi người để bạn không bị mắc kẹt quá lâu. Khi có ai đó cần sự giúp đỡ của bạn, hãy sẵn lòng giúp đỡ họ. Bạn có thể học được rất nhiều bằng cách giải thích điều gì đó thật tốt và bạn có thể củng cố kiến thức của mình qua mỗi topic. Nếu bạn đang ở vị trí quản lý, hãy đảm bảo dành cho mọi người tất cả thời gian bạn có thể để cố vấn và hợp tác một cách hiệu quả!

Khi làm chung dự án, không nên tranh cãi hoặc loại bỏ quan điểm của mọi người ngay lập tức. Họ sẽ có thể ít hứng thú để đóng góp vào dự án trong những ngày tới nếu quan điểm của họ không có giá trị hoặc không được để ý tới. Chủ động lắng nghe khi mọi người chia sẻ ý tưởng — thay vì ngay lập tức phản ứng và cho là ý tưởng của mình tốt hơn hẳn, tại sao bạn không cho là ý tưởng của mọi người cũng rất hay và cũng có thể triển khai được.

Sau khi bạn triển khai những ý tưởng của họ, hãy cho họ sự tin tưởng vào những điều đó. Hãy nhớ là không có gì có thể khiến họ thụt lùi hơn nữa nếu ý tưởng của họ không được để tâm bởi các thành viên khác.

Giao tiếp

Khi bạn làm việc với những người khác, cho dù những người đó là đồng nghiệp, khách hàng, những người sử dụng dự án của bạn, người quản lý của bạn hay người bạn quản lý, giao tiếp tốt là điều rất quan trọng. Cung cấp những thông tin trung thực nhất về mọi thứ đang diễn ra, dự án đang tiến triển tới đâu và ý kiến của bạn về mọi thứ. Mọi người sẽ ít tiếp nhận phản hồi nếu bạn thô lỗ hoặc thiếu chuyên nghiệp.

Một ví dụ thực tế về cuộc sống của tôi: có ai đó đã đọc một bài viết trên blog của tôi và viết một bức thư rất dài chế giễu giọng điệu của tôi. Tôi thường sử dụng rất nhiều dấu chấm than và cố gắng phát âm thật chuẩn trong bài viết của mình. Và có lẽ, tôi sẽ để ý hơn tới vấn đề này và sửa sai ngay lập tức nếu như những dòng thư ấy được viết một cách lịch sự hơn.

Khi thực sự cảm thấy mọi thứ đang không được tốt cho lắm, hãy trung thực. Trung thực khi bạn cần lùi deadline hoặc làm một điều gì đó không tốt trong công việc. Bạn sẽ có cơ hội tốt hơn để thay đổi điều đó và tạo nên môi trường tốt hơn cho bản thân nếu bạn lên tiếng.

Bao quát

Tôi từng làm người dạy leo núi và là người hướng dẫn ở trại hè, phần lớn tôi gặp nữ sinh trung học. Họ là một trong số những người tôi muốn việc cùng, nhưng thật buồn là học sinh trung học không thường xuyên chấp nhận những sự khác biệt hay những gì đại loại như thế. Chúng tôi thường tổ chức một trò chơi nào đó nơi mà chúng tôi đứng thành vòng tròn lớn và khi một người quản trò nói rằng ai đó bị loại, thì người đó sẽ phải rời trò chơi vì những tính cách hoặc những khả năng mà họ không thể có. Những người trong vòng tròn sẽ tiếp tục trò chơi còn những người bị loại sẽ đứng bên ngoài và quan sát từ xa.

Những hoạt động kiểu này cực kỳ hiệu quả trong việc chỉ ra cho họ thấy cảm giác của việc bị loại khỏi cuộc chơi vì những khả năng họ không có sẽ như thế nào và cho tới nay tôi vẫn nghĩ lại về những ngày đó. Là người lớn, chúng ta loại người khác ra khỏi “vòng chơi” vì những đặc điểm mà họ không có, nhưng khi chúng ta cho phép họ quay trở lại và đóng góp cho sản phẩm đang làm thì sản phẩm của chúng ta sẽ thêm đa dạng trong trải nghiệm và tốt hơn. Đã có nhiều nghiên cứu về những đội có thành viên với những tính cách đa dạng sẽ thể hiện tốt hơn, nhưng từ quan điểm cá nhân, hãy nghĩ về việc bị đứng ngoài và cố gắng làm cho “vòng tròn” trở nên lớn hơn, chứ không phải nhỏ hơn. Đã có rất nhiều người sử dụng bị loại ra khỏi “vòng tròn” đó trong ngành công nghệ. Tôi có thể nói với bạn từ kinh nghiệm của cá nhân tôi là sẽ thực sự khó khăn cho một người như bạn khi tham gia vào một team với tư cách là người đã có nhiều kinh nghiệm với nữ lập trình viên – chiếm 5% – trong suốt thời gian làm việc của tôi.

Điều này cũng liên kết với sự đồng cảm —  hãy đảm bảo rằng bạn sẽ làm sản phẩm của bạn sẽ cho một lượng lớn người dùng. Không chỉ là những người có điều kiện tốt mới có thể sử dụng. Bằng cách này, bạn có thể tiếp cận được với nhiều người hơn.

Kiên nhẫn

Người đầu tiên mà bạn cần phải kiên nhẫn đó chính là bản thân bạn. Lập trình rất khó và đôi lúc bạn sẽ gặp phải lỗi bugs hoặc những vấn đề khó khắc phục. Nếu code lúc nào cũng dễ dàng, bạn sẽ không thể thử thách được bản thân và sẽ không thể phát triển như một programer. Hãy kiên trì để tiếp tục hoàn thành công việc và không bỏ cuộc khi nó trở nên khó khăn. Nhưng bạn cũng cần phải nghỉ ngơi để bớt mệt mỏi khi giải quyết những vấn đề đó hoặc để bạn có một cái nhìn khác hiệu quả hơn khi bạn quay trở lại.

Ngoài ra, hãy kiên nhẫn với cả những người xung quoanh. Mọi thứ đều cần phải có một khoảng thời gian để tìm hiểu và không có ai hoàn hảo cả. Sai lầm và thất bại là những kinh nghiệm quan trọng trong quá trình học hỏi, vì vậy hãy chấp nhận điều đó thay vì cứ đứng mãi trong một môi trường an toàn, không chấp nhận rủi ro. Bạn cần phải hiểu rằng mỗi người khác nhau có thế mạnh về 1 thứ khác nhau.

Sáng tạo

Điều làm tôi muốn trở thành một programer là tôi có thể sử dụng óc sáng tạo của mình để xây dựng những thứ hữu ích đối với mọi người. Bạn có thể suy nghĩ vượt ra khỏi khuôn khổ để tạo ra những điều thực sự thú vị.

Có ý tưởng sáng tạo rất quan trọng khi muốn tạo ra được những tính năng, giao diện và ứng dụng mới. Có môt ai đó đã mua giấy phép cho sản phẩm mà tôi đã xây dựng cho một công ty, phần lớn là vì thấy giao diện và trang web danh mục đầu tư của tôi có sức hút và sáng tạo.

Thêm vào đó, rất nhiều điều đòi hỏi sự sáng tạo để giải quyết. Có nhiều giải pháp cho hầu hết các vấn đề về lập trình và việc đưa ra các cách giải quyết sáng tạo, tối ưu để hoàn thành nó cũng rất nhiều.

Khiêm tốn

Bạn có thể học được rất nhiều thứ từ những lập trình viên khác —  một người không thể biết tất cả trong thế giới code. Hãy tiếp thu những lời chỉ trích mang tính xây dựng hơn là bảo thủ. Bạn có thể cải thiện công việc của mình. Bị mắc kẹt trong các lỗi của bạn sẽ không thể khiến bạn phát triển và bạn không thể lúc nào cũng đúng. Vì vậy bạn nên tiếp thu ý tưởng của người khác.

Tự tin

Mặt khác, hãy trở nên tự tin hơn. Tôi thừa nhận đây là điều khó khăn nhất đối với tôi vì tôi là một người khá rụt rè và đây nên là điều đầu tiên tôi cần cải thiện, nó sẽ đánh giá hiệu suất làm việc của tôi trong quá trình làm viêc. Sau khi nhận thấy điều đó, tôi có thể viết lại toàn bộ bài đăng trên blog về chủ để này một mình. Tôi rút ra một điều “tin tưởng vào khả năng của bản thân là điều rất quan trọng”.

Hãy tự tin rằng bạn bạn có thể thực hiện dự án nào đó. Đừng tự mình nhận những dự án dễ dàng hơn hoặc nghi ngờ bản thân khi được giao một điều gì khó khăn. Cố gắng giải quyết những phần mình có thể càng nhiều càng tốt, sau đó hãy nhờ sự giúp đỡ khi phải đối mặt với phần khó nhất.

Ngoài ra, đừng nghĩ rằng cần phải tra cứu mọi thứ trong lần đầu tiên. Hãy tin tưởng bản thân để thử làm điều gì đó trước khi tra google. Bạn chả mất gì khi làm vậy cả và bạn sẽ ngạc nhiên bởi những thứ bạn biết.

Một điều nữa là tôi luôn dõi theo những thứ mà tôi đã thành công. Tôi có một file trên máy tính của mình để lưu những điều tuyệt vời mà tôi đã làm được và những điều thực sự thú vị khi mọi người nói về tôi. Khi có một ngày khó khăn hoặc những lúc nghi ngờ bản thân mình, tôi sẽ trở lại đối mặt với nó và thường cảm thấy tự tin hơn với những gì mình đang làm.

Khả năng thích ứng

Lập trình vẫn là một thế giới mới và nó đang phát triển không ngừng. Có khả năng thích ứng khi mọi thứ thay đổi rất quan trọng. Khi một khuôn khổ mới, thư viện hoặc ngôn ngữ mới xuất hiện, điều rất quan trọng để có thể học được nó là thích ứng. Ngành công nghiệp của chúng ta trông sẽ khác hẳn nếu chúng ta vẫn code ở Fortran,  vì vậy chúng ta cần phát triển và thích nghi khi mọi thứ thay đổi.

Ngoài ra, các mục tiêu của bài viết và các tính năng của dự án cũng sẽ thay đổi thường xuyên, đặc biệt khi làm việc với khách hàng. Khi điều đó xảy ra chúng ta lại cần phải thích ứng và kết hợp các yêu cầu đó (một lần nữa với lý do như trên).

Tham gia của mọi người

Sự tham gia, đóng góp rất quan trọng khi lập trình — hội nghị, bài đăng trên blog, truyền thông xã hội và những buổi gặp mặt rất quan trọng cho việc học hỏi và phát triển. Ngoài ra, những phần mềm có mã nguồn mở và cộng đồng xung quoanh chúng ta chính là những mạch máu của ngành công nghiệp này. Khả năng kết nối mạng và kết nối mọi người với nhau rất quan trọng đối với giáo dục, liên quan đến trải nghiệm của bạn và tìm kiếm những cơ hội mới.

Ngay cả khi bạn là một người hướng nội và không thích giao lưu nhiều với mọi người trong xã hội. Có rất nhiều các cộng đồng trực tuyến nơi mà bạn cũng có thể học được rất nhiều. Và ngay cả bên trong các công ty, có một nhóm với những thành viên có mối liên kết với nhau sẽ giúp mọi người làm việc tốt hơn.

Chốt

Những ký năng này được gọi là “kỹ năng mềm” nhưng tôi cảm thấy nó như một thứ không thể thiếu. Những kỹ năng này giúp ích rất nhiều khi bạn viết code hay ngay cả khi bạn làm một ngành nghề khác. Nó quan trọng hơn rất nhiều so với việc bạn biết một ngôn ngữ, thư viện hay một khuôn mẫu cụ thể nào đó và những kỹ năng mềm này sẽ đi xa hơn nữa ngay cả khi vượt ra khỏi bên ngoài thế giới công nghệ.

Những kỹ năng này thực sự quan trọng khi làm việc với tư cách là một lập trình viên. Điều đó đang được đề cập — không một ai hoàn hảo và mọi người đều có chỗ để phát triển. Vì vậy hãy tiếp tục tiến lên phía trước, cố gắng hoàn thành các bước nhỏ để cải thiện những kỹ năng ngoài lập trình này và tôi cũng sẽ làm như vậy!