paint-brush
Điều gì phân biệt các nhà phát triển giỏi nhất với đám đông: 10 đặc điểm quan trọngtừ tác giả@trueseniordev
11,911 lượt đọc
11,911 lượt đọc

Điều gì phân biệt các nhà phát triển giỏi nhất với đám đông: 10 đặc điểm quan trọng

từ tác giả TrueSeniorDev10m2023/05/01
Read on Terminal Reader

dài quá đọc không nổi

Chúng tôi làm việc chăm chỉ để cải thiện công nghệ và kỹ năng mềm của mình. Nhưng chúng tôi coi những đặc điểm tính cách của mình là điều hiển nhiên - một phần cố định của con người chúng tôi. Cách suy nghĩ này có hại. Các đặc điểm của bạn thậm chí còn quan trọng hơn đối với sự nghiệp phát triển phần mềm thành công hơn là các kỹ năng của bạn. Và họ nằm dưới sự kiểm soát của bạn. Các nhà phát triển cấp cao thực sự thừa nhận điều đó và cố tình phát triển các đặc điểm của họ. Đây là siêu năng lực khiến họ nổi bật giữa đám đông và tăng tốc sự nghiệp.
featured image - Điều gì phân biệt các nhà phát triển giỏi nhất với đám đông: 10 đặc điểm quan trọng
TrueSeniorDev HackerNoon profile picture
  • Chúng tôi làm việc chăm chỉ để cải thiện công nghệ và kỹ năng mềm của mình. Nhưng đặc điểm tính cách của chúng tôi, suy nghĩ của chúng tôi - chúng tôi coi đó là điều hiển nhiên. Một phần bẩm sinh, cố định của con người chúng ta. Và do đó, chúng tôi để nó chạy tự động.


  • Cách suy nghĩ này có hại. Tư duy của bạn không chỉ quan trọng đối với sự nghiệp phát triển phần mềm thành công (thậm chí có thể hơn cả kỹ năng của bạn), mà nó còn nằm trong tầm kiểm soát của bạn.


  • Các nhà phát triển cấp cao thực sự thừa nhận rằng các đặc điểm của tính cách có thể uốn nắn được, họ tự nhận thức được suy nghĩ của mình và cố gắng cải thiện nó. Đây là siêu năng lực khiến họ nổi bật giữa đám đông và thăng tiến trong sự nghiệp.


  • Trong bài đăng này, tôi sẽ thảo luận về 10 đặc điểm quan trọng nhất của một nhà phát triển thành công, tại sao chúng lại quan trọng và chia sẻ một số mẹo về cách bạn có thể định hình chúng.

3 điều bạn cần để thành công với tư cách là nhà phát triển phần mềm

Phát triển phần mềm chuyên nghiệp là một bộ môn phức tạp đòi hỏi nhiều khả năng khác nhau để thành công. Chúng ta có thể nhóm chúng thành ba loại chính:

Kĩ năng công nghệ

Đây là nhóm rõ ràng nhất. Để trở thành một nhà phát triển thành công, bạn cần phải giỏi trong lĩnh vực của mình: ngôn ngữ lập trình và khuôn khổ, nguyên tắc mã sạch, kiến trúc, thử nghiệm, gỡ lỗi, v.v. Bạn cũng cần phải thành thạo với các công cụ của mình: kiểm soát phiên bản, dòng lệnh và IDE.


Tuy nhiên, chỉ riêng kỹ năng kỹ thuật sẽ không giúp bạn tiến xa trong một thiết lập chuyên nghiệp, dựa trên nhóm. Đó là lý do tại sao bạn cũng cần có kỹ năng mềm.

Các kĩ năng mềm

Để có thể làm việc trong các dự án thương mại lớn, bạn cần có một bộ kỹ năng mềm vững chắc: làm việc nhóm, giao tiếp, lập kế hoạch và quản lý dự án, làm việc từ xa, tự tổ chức, học tập, năng suất cá nhân, v.v.


Nhiều người trong chúng ta thấy những kỹ năng này kém thú vị hơn những kỹ năng kỹ thuật và do đó, chúng ta thường bỏ bê chúng - vì vậy chúng có thể đã tách các nhà phát triển chuyên nghiệp, vững chắc khỏi đám đông. Nhưng ít nhất chúng ta thừa nhận chúng.


Tuy nhiên, còn có một loại thứ ba, cũng quan trọng không kém nhưng nằm dưới tầm ngắm của hầu hết tất cả, ngay cả những nhà phát triển giỏi.

Tư duy

Tư duy cũng tương tự như các kỹ năng mềm, nhưng "kỹ năng" mà nó bao gồm là những đặc điểm cốt lõi, cơ bản hơn: sự tò mò, kiên nhẫn, đồng cảm, bền bỉ, khả năng thích ứng, v.v.


Ở một mức độ nào đó, chúng tôi biết những đặc điểm này rất quan trọng đối với sự nghiệp phát triển phần mềm thành công. Nhưng vì chúng dường như là một phần bẩm sinh, cố định trong tính cách của chúng ta nên chúng ta không cố gắng học chúng một cách có chủ ý giống như cách chúng ta học các kỹ thuật quản lý dự án hoặc năng suất cá nhân.


Điều này khiến chúng ta mù quáng trước một phần lớn và quan trọng trong bộ kỹ năng của mình và có thể ảnh hưởng xấu đến sự tiến bộ của chúng ta.


[Để có góc nhìn toàn diện hơn nữa về việc thăng tiến trong sự nghiệp của bạn với tư cách là một nhà phát triển chuyên nghiệp, hãy xem "Hướng dẫn dứt khoát để trở thành một Senior Dev ĐÚNG" của tôi trên GitHub]

Tại sao mù quáng trong suy nghĩ của bạn có thể gây nguy hiểm cho sự nghiệp của bạn

Phát triển phần mềm là một lĩnh vực phức tạp, đôi khi khó chịu và phát triển cực kỳ nhanh. Học hỏi, phát triển và duy trì sự phù hợp với tư cách là một nhà phát triển (và không bị kiệt sức trong quá trình này) đòi hỏi sự kết hợp cụ thể giữa các đặc điểm tính cách.


Đồng thời, đó là một trò chơi đồng đội 100%. Những hacker đơn độc không có chỗ đứng trong lĩnh vực phát triển phần mềm chuyên nghiệp, bất kể họ giỏi kỹ thuật đến đâu. Và hoạt động tốt trong một nhóm đòi hỏi một tập hợp các đặc điểm khác, dường như ngược lại.


Tư duy là một cái gì đó khác với kỹ năng. Hiểu các nguyên tắc phát triển Agile không giống như khả năng thích ứng và sẵn sàng thay đổi thường xuyên.


Và việc biết các kỹ thuật sửa lỗi không giống như việc có sự tò mò và kiên trì để thực sự tận hưởng việc theo đuổi vấn đề trong vài giờ mà không bị kiệt sức hay nản lòng.


Nhưng mặc dù những đặc điểm này có vẻ cố định và bẩm sinh đối với tính cách của chúng ta, nhưng chúng cũng có thể học được như các kỹ năng.


Nếu không hiểu những đặc điểm nào là quan trọng đối với một lập trình viên và cố tình mài giũa chúng theo thời gian, bạn sẽ không bao giờ phát huy hết tiềm năng của mình. Các nhà phát triển cấp cao thực sự biết điều này, tự nhận thức được suy nghĩ của họ và liên tục làm việc để cải thiện nó.


Đây là điểm khác biệt, siêu năng lực giúp phân biệt các nhà phát triển giỏi nhất với đám đông.


Ok, nhưng đặc điểm nào là quan trọng nhất? Hãy đi sâu hơn một chút vào các chi tiết.

10 đặc điểm của một Senior Developer thực sự

1. Tò mò

Nếu tôi phải tóm tắt trong một câu về phát triển phần mềm, tôi sẽ nói đó là về học tập. Bạn cần luôn cập nhật các công nghệ và quy trình phát triển phần mềm không ngừng phát triển.


Bạn cần tìm hiểu chi tiết sâu về các lĩnh vực kinh doanh phức tạp (một số lĩnh vực trong suốt sự nghiệp của bạn). Phân tích làm rõ yêu cầu là học. Nghiên cứu là học tập.


Tối ưu hóa hiệu suất và gỡ lỗi - nói cách khác, đi sâu vào hoạt động bên trong của mã - cũng là một kiểu học hỏi.


Phát triển phần mềm cũng là làm việc với con người (và con người).


Bạn sẽ làm việc trong các nhóm đa chức năng với nhiều nhóm người thuộc các chuyên môn và nền tảng khác nhau (ngày nay, trong thời đại làm việc từ xa, hầu hết có thể đến từ nhiều quốc gia và nền văn hóa).


Bạn sẽ phải hiểu "kinh doanh." Bạn sẽ phải hiểu và giải quyết các vấn đề và điểm đau của người dùng.


Nếu không có sự tò mò hợp lý, bạn sẽ không chỉ kém hiệu quả hơn trong tất cả những việc đó mà còn bị kiệt sức khá nhanh.

2. Sở thích giải quyết vấn đề

Phát triển phần mềm là một câu đố khổng lồ - vô số vấn đề cần giải quyết. Lý do bạn được thuê làm nhà phát triển là để giải quyết các vấn đề của công ty và khách hàng của bạn.


Để làm được điều này, bạn cần giải quyết các vấn đề về tổ chức (cách hoạt động như một nhóm, cách tổ chức công việc, sử dụng quy trình nào) và các vấn đề kỹ thuật (logic, kiến trúc, hiệu suất, v.v.).


Những vấn đề này bao gồm các vấn đề nhỏ hơn, lồng nhau, cho đến các vấn đề nguyên tử như cách thiết kế và đặt tên cho một chức năng hoặc kiểm tra đơn vị cụ thể.


Nếu bạn không thích giải những câu đố như vậy, nếu bạn không có sở trường phá vỡ và gỡ rối các vấn đề, thì sự nghiệp phát triển phần mềm của bạn sẽ là một cuộc đấu tranh.

3. Kiên nhẫn

Trở thành một nhà phát triển cấp cao thực sự đòi hỏi nhiều năm luyện tập có chủ ý. Bạn cũng sẽ gặp rất nhiều trở ngại trên đường đi. Phát triển sự nghiệp của bạn là phần thưởng nhưng cũng là một quá trình chậm chạp và đôi khi đau đớn.


Để đạt được sự xuất sắc và đứng đầu, bạn phải sẵn sàng cho sự cống hiến suốt đời. Và điều này đòi hỏi rất nhiều kiên nhẫn.


Sự kiên nhẫn cũng rất quan trọng đối với nhiều thứ liên quan đến công việc của chúng tôi: xử lý hỗ trợ kỹ thuật, làm việc với những người dùng không rành về công nghệ và đối phó với bộ máy quan liêu của tổ chức. Thêm vào đó, nó là một công cụ hỗ trợ giải quyết vấn đề tuyệt vời.


Và bạn sẽ không duy trì được công việc trong một ngành công nghệ phát triển nhanh, thay đổi liên tục như vậy nếu không có sự kiên nhẫn.

4. Grit (Với số lượng vừa phải)

Phát triển phần mềm đòi hỏi rất nhiều sự kiên trì. Săn bọ. Giải mã các API và thư viện tài liệu kém. Gỡ rối mã kế thừa. Theo dõi các tắc nghẽn hiệu suất. Thậm chí chỉ đơn giản là duy trì sự tập trung sâu trong thời gian dài.


Bạn sẽ gặp khó khăn, thất bại, bế tắc và thất vọng rất nhiều - bất kể bạn là người có thâm niên như thế nào. Và bạn sẽ cần rất nhiều gan góc để vượt qua và không bị kiệt sức.


Nhưng bạn cũng cần hiểu thế nào là lượng cát phù hợp. Đâu là điểm tuyệt vời giữa việc bạn đập đầu vào tường hàng giờ hàng ngày một cách vô ích so với việc liên tục gây rối cho nhóm của bạn bằng cách yêu cầu hỗ trợ ngay lập tức khi bạn gặp phải một va chạm dù là nhỏ nhất trên đường?

5. Trí tuệ cảm xúc

Phát triển phần mềm xoay quanh con người và các nhóm. Bạn sẽ làm việc rất chặt chẽ với các đồng nghiệp của mình ở cấp độ cá nhân: ghép nối các chương trình, cùng nhau gỡ lỗi và xem lại mã của họ.


Bạn cũng sẽ làm việc với họ theo cách thiết lập nhóm: động não, lập kế hoạch và đưa ra quyết định theo nhóm. Và sự hợp tác này rất lộn xộn: công việc của bạn sẽ chồng chéo hoặc xung đột, và bạn sẽ có những ý kiến khác nhau.


Bạn sẽ thương lượng lộ trình của mình với ban quản lý. Cuối cùng, để xây dựng một sản phẩm tuyệt vời, bạn sẽ phải đặt mình vào vị trí của người dùng.


Trên hết, tất cả những người này đều đến từ nhiều nền tảng khác nhau, cả kỹ thuật và phi kỹ thuật. Họ đam mê. Họ có ý kiến mạnh mẽ. Đôi khi họ có thể có những nhân vật khó khăn.


Và thành công của bạn với tư cách là nhà phát triển phụ thuộc vào mức độ bạn có thể xây dựng mối quan hệ với họ. Nếu không có trí tuệ cảm xúc cao, điều đó đơn giản là không thể.

6. Khả năng kiểm soát cái tôi của bạn

Phát triển phần mềm (và làm việc theo nhóm nói chung) là một hành động cân bằng. Một mặt, bạn được thuê vì chuyên môn của mình. Bạn được kỳ vọng là người có quan điểm mạnh mẽ và hướng dẫn những người ít hiểu biết về công nghệ hoặc có nhiều kinh nghiệm hơn.


Mặt khác, bạn sẽ làm việc với những đồng đội có kinh nghiệm và quan điểm ngang nhau, những người sẽ thách thức quan điểm của bạn và bạn sẽ phải cùng họ đưa ra quyết định nhóm.


Cái tôi của bạn thường sẽ bị tổn thương trong quá trình này. Bạn phải có khả năng kiểm soát nó - nhưng không bị thu hồi và thảnh thơi.


Bạn phải có chính kiến nhưng không quá khích. Có một quan điểm mạnh mẽ nhưng giữ nó một cách yếu ớt; hãy cởi mở để bị thuyết phục nếu không. Bạn phải sẵn sàng bảo vệ quan điểm của mình nhưng cũng phải biết khi nào nên buông tay, để không trở thành một kẻ hợm hĩnh, hợm hĩnh.


Bạn cần tôn trọng nhóm, doanh nghiệp và khách hàng. Có thể không đồng ý nhưng cam kết. Và nhẹ nhàng nhận phản hồi mang tính xây dựng (thậm chí hoàn toàn tiêu cực). Nếu không, bạn sẽ không thể làm việc nhóm hiệu quả.

7. Khả năng thích ứng

Mọi thứ trong phát triển phần mềm đang chuyển động rất nhanh. Công nghệ liên tục thay đổi. Các phương pháp mới trở nên phổ biến. Các công ty xoay trục.


Trong suốt sự nghiệp của mình, bạn cũng sẽ thay đổi các dự án, nhóm, công ty và lĩnh vực kinh doanh. Ngay cả một dự án đơn lẻ cũng là một hành động kiểm tra và điều chỉnh liên tục (đặc biệt là trong các phương pháp nhanh nhẹn). Và nhóm của bạn cũng sẽ liên tục tự tổ chức lại.


Hầu hết mọi người đều dị ứng với sự thay đổi. Thay đổi là khó. Nó không thoải mái. Thật là căng thẳng. Khả năng thích ứng và sẵn sàng thay đổi sẽ ngay lập tức khiến bạn trở nên khác biệt. Nó không chỉ cho phép bạn leo lên đỉnh của bậc thang thâm niên mà còn cho phép bạn ở lại đó trong một thời gian dài.

8. Độ tin cậy

Tôi đang lặp đi lặp lại điều đó một cách quảng cáo, nhưng phát triển phần mềm là một trò chơi đồng đội. Đồng nghiệp, người quản lý và công ty của bạn - tất cả họ đều tin tưởng vào bạn để thực hiện phần việc của mình.


Sẽ không ai coi bạn là một nhà phát triển cấp cao thực sự - bất kể chuyên môn công nghệ của bạn là gì - nếu họ không thể dựa vào bạn để đảm nhận công việc và thực hiện lời hứa của bạn mà không cần phải chịu sự quản lý vi mô.


Nó không có nghĩa là bạn không bao giờ có thể phạm sai lầm. Thất bại xảy ra. Và những công ty tốt nhất coi đó là những cơ hội học tập quý giá.


Nhưng để làm được điều này, bạn cần có khả năng nhặt bóng bị rơi, phục hồi một cách duyên dáng và được tin tưởng để học hỏi từ thất bại của mình và không lặp lại sai lầm đó trong tương lai.

9. Chủ nghĩa thực dụng

Phát triển phần mềm chuyên nghiệp là một nghệ thuật đánh đổi. Bạn liên tục cần phải thỏa hiệp giữa tốc độ phát triển và chất lượng. Cân bằng mới và đầy hứa hẹn với đã được chứng minh và ổn định.


Đi trên một ranh giới mong manh giữa kỹ thuật kém và kỹ thuật quá mức.


Để thành công trong việc phát triển phần mềm chuyên nghiệp, bạn cần phải rất thực dụng. Bạn cần hiểu rằng không có gì là trắng đen rõ ràng và không có nguyên tắc hay khuôn mẫu nào đúng trong mọi tình huống.


Bạn phải có trực giác tuyệt vời để cân bằng giữa các phương pháp, công nghệ và giải pháp khác nhau; cảm thấy thoải mái khi cắt góc nhưng có ý thức tốt về mức độ.

10. Triển vọng tích cực

Cuộc sống của bạn với tư cách là một lập trình viên không phải chỉ có nắng và cầu vồng. Bạn sẽ gặp những khách hàng khó chịu. Đối mặt với thời hạn chặt chẽ. Dự án của bạn có thể bị hủy bỏ. Bạn có thể không đồng ý với nhóm hoặc quản lý của mình nhưng vẫn phải cam kết và thực hiện.


Bạn cũng sẽ làm việc với mã xấu xí. (Vâng, mọi cơ sở mã đều có phần tốt và phần xấu, ngay cả ở các công ty hàng đầu như Google.)


Bạn sẽ cảm thấy mệt mỏi, thất vọng và khó chịu.


Nếu bạn để sự tiêu cực lấn át, nếu bạn bắt đầu chỉ trích và phàn nàn, bạn sẽ không chỉ làm mất động lực của bản thân mà còn giết chết tinh thần của cả nhóm - điều sẽ không thể tiến xa trong sự nghiệp của bạn.


Bạn cần phải thiên về những điều tích cực. Hãy lạc quan và vui vẻ. Luôn luôn tìm kiếm một lớp lót bạc. Hãy là người tập hợp đội của họ, tiêu diệt tâm trạng xấu và phục hồi tinh thần. Nó không chỉ giúp bạn được chú ý và thăng tiến mà còn giúp sự nghiệp của bạn trở nên thú vị và bền vững hơn.

Phần thưởng: Một số mẹo về cách định hình tư duy của bạn một cách có chủ ý

Tất nhiên, các kỹ năng có thể được đào tạo - cả kỹ năng mềm và kỹ thuật. Bạn có thể trở nên tốt hơn trong việc gỡ lỗi cũng như giao tiếp. Nhưng còn những đặc điểm dường như bẩm sinh như tính tò mò hoặc cái nhìn tích cực thì sao? Bạn thực sự có thể rèn luyện bản thân để trở nên lạc quan hơn hay tò mò hơn không?


Vâng, bạn có thể! Đây là một chủ đề rộng lớn, có giá trị trong nhiều cuốn sách ("Mindset" của Carol S. Dweck là một điểm khởi đầu tuyệt vời). Nhưng hãy để tôi chia sẻ nhanh một vài lời khuyên:


  • Thừa nhận rằng suy nghĩ của bạn không cố định và các đặc điểm của bạn có thể uốn nắn được.


  • Xây dựng sự tự nhận thức. Quan sát cách bạn phản ứng trong các tình huống khác nhau. Cố gắng hiểu điều gì khiến bạn cảm thấy theo một cách cụ thể (tò mò so với buồn chán, tích cực so với gắt gỏng, háo hức so với phòng thủ).


  • Nhìn lại hành vi của bạn từ quan điểm của một hoặc hai ngày. Ý kiến của bạn có thực sự thực dụng không, hay đó là cái tôi của bạn đang nói? Làm thế nào bạn có thể đã hành động khác nhau?


  • Chuẩn bị trước. Lên kế hoạch trước về cách bạn sẽ hành xử vào lần tới trong một tình huống tương tự và xác định tác nhân kích thích phù hợp sẽ nhắc bạn về kế hoạch của mình khi thời điểm đến.


  • Tiếp xúc với những tình huống sẽ cho phép bạn rèn luyện và củng cố những đặc điểm mong muốn. Tích cực tìm kiếm những cơ hội như vậy.


  • Tập trung vào một đặc điểm duy nhất trong một thời gian. Nó sẽ giúp bạn dễ dàng tìm thấy cơ hội để thực hiện nó và nâng cao nhận thức của bản thân về đặc điểm này.


  • điều chỉnh lại. Hãy ý thức và cân nhắc về cách bạn nói chuyện với chính mình. Ý tưởng không ngu ngốc, nó đáng ngạc nhiên. Cái rùng mình đó không phải là lo lắng, mà là phấn khích. Vấn đề không gây khó chịu, nó thú vị.


  • Tranh thủ sự giúp đỡ. Đừng ngại yêu cầu đồng nghiệp hoặc người quản lý của bạn phản hồi - hoặc thậm chí trở thành "đối tác chịu trách nhiệm" của bạn, người sẽ nắm bắt và chỉ ra hành vi không mong muốn của bạn.


Tôi cũng khuyến khích bạn tìm hiểu một chút về các thành kiến nhận thức và hình thành thói quen. Đây là một ngành học phát triển tốt, với khối lượng kiến thức khổng lồ và khá thú vị để khám phá.

dòng dưới cùng

Nếu bạn muốn trở thành một nhà phát triển cấp cao thực sự , bạn phải là một người hoàn thiện. Bạn phải có sự kết hợp phù hợp giữa kỹ năng công nghệ, kỹ năng mềm và đặc điểm tính cách, và bạn không thể bỏ qua bất kỳ phần nào trong bộ ba này.


Đặc điểm nhân vật là phần khó khăn nhất. Hầu hết các nhà phát triển bỏ qua chúng vì họ không tự nhận thức được chúng, không biết cái nào là quan trọng hoặc không tin rằng chúng có thể uốn nắn được.


Nhưng nếu bạn có thể khắc phục lối suy nghĩ sai lầm này - nếu bạn có thể thay đổi suy nghĩ của mình - thì bạn có thể biến nó thành một siêu năng lực giúp nâng tầm sự nghiệp của bạn và khiến bạn thực sự nổi bật.