Bài viết dành cho tất cả developers, coders, programmers đang tìm kiếm cơ hội thăng tiến nhanh chóng sau vài năm làm việc trong ngành (hoặc bạn chỉ mới bắt đầu nhưng muốn đốt cháy giai đoạn). Bài viết này đặc biệt dành cho những ai có mong muốn được công nhận là Senior Developer và nổi trội trong lĩnh vực này. Sau khi đọc bài viết này, bạn sẽ định hình được những lựa chọn tốt nhất cho con đường thăng tiến của mình và trở thành một Senior Developer. Wow! Mong bạn sẽ sớm toại nguyện. Bây giờ thì tìm hiểu tiếp nhé.

Senior Developer là gì?

Là khi bạn có thể code 10 ngôn ngữ lập trình khác nhau và việc tạo phiên bản jarvis cho riêng mình cũng không giúp bạn trở thành Senior Developer được (dù bạn rất giỏi). Bởi vì Senior Developer luôn mang lợi ích cho những người xung quanh. Đó là người khiến mọi người cảm thấy tốt hơn, là người có tầm nhìn sâu rộng, chuyển giao và tạo thành quả ổn định. Bạn có thể biết mọi phương pháp lập trình trên thế giới, nhưng nếu bạn không thể tương tác với team, hoặc không thể đóng góp giá trị thực cho khách hàng thì bạn không phải là Senior Developer. Còn đây là vấn đề chính: bạn mang lại giá trị gì cho công ty của mình? Nếu bạn thuộc một trong số ít những người có thể mang lại giá trị cốt yếu cho công ty của mình, bạn chính là một Senior Developer. Senior Developer không phải là một vị trí, mà là khả năng ứng dụng kinh nghiệm của bạn để tạo ra lợi tức cho nhà đầu tư.

Hmmm hiểu rồi. Tôi phải làm gì đây?

Đây chính là phần mà tất cả mọi người đều trông đợi đây. Hãy bắt đầu phân tích và ngẫm xem mình phải làm gì. Làm theo những gợi ý bên dưới và dành chút thời gian thảo luận nhé. Nếu bạn có thể chủ động thực hiện những kỹ năng sau đây, bạn sẽ vượt xa mọi người đấy. Tôi gọi đây là Developer’s Edge: luôn có những người giàu kinh nghiệm hơn bạn trong lĩnh vực nào đấy, nhưng bạn có thể làm việc tốt hơn hiệu quả hơn khi trau dồi những kỹ năng khác nhau khiến bạn nổi bật hơn. Điều này không chỉ khiến bạn trở thành developer giỏi hơn mà còn tăng niềm vui khi mang lại giá trị chân chính cho mọi người. Một khía cạnh thường bị bỏ sót trong việc học hỏi là bạn cần chuyên biệt và tập trung vào duy nhất một thứ. Tuy nhiên, cuộc sống không như vậy, luôn đòi hỏi nhiều hơn một kỹ năng. Đặc biệt trong lĩnh vực công nghệ khi mọi thứ luôn đổi mới mỗi ngày (ai biết kỹ sư học về máy móc sẽ làm gì trong 5 năm?), bạn cần có những kỹ năng đa dạng để tương thích với mọi trường hợp.

Dưới đây là 6 kỹ năng cơ bản cần có để trở thành một Senior Developer.

1. Kỹ năng chuyên môn

Đây luôn là kỹ năng đầu tiên mọi người sẽ nhắc tới. Hi vọng với quan điểm này bạn sẽ tin tưởng dù chỉ một chút của vấn đề. Đừng vội nghĩ rằng tôi phán bừa, bạn sẽ cần kỹ năng này và không thể cho qua được. Tuy nhiên, bạn có thể thành thạo những thứ mà bạn dồn tâm sức vào. Senior Developer luôn đặt ra câu hỏi TẠI SAO về một vấn đề kỹ thuật nào đó. Tại sao vấn đề này tồn tại? Tại sao framework kia lại có? Library sẽ giải quyết những vấn đề gì? Là một Developer, bạn cần tư duy tốt về các công cụ và ý tưởng cho chu kỳ phát triển và lựa chọn công cụ có tác động tích tực tối đa cho dự án.

Thay vì tập trung release tính năng mới của testing framework, người ta tập trung vào điểm mạnh và yếu của testing framework đó khi xử lý vấn đề cho công ty. Họ hỏi  những câu như “có thể cải thiện được gì trong quy trình vận chuyển liên tục cho sản phẩm tốt hơn?”. Họ cũng hiểu mọi thứ được kết nối như thế nào. Để bắt đầu, mindmap là công cụ hữu ích có thể tương thích, là công cụ quan trọng có thể đẩy mạnh giúp bạn lên level kế tiếp. Sơ đồ mindmap giúp não bộ liên kết giữa các ý tưởng khác nhau và các công nghệ.

Nếu bạn bước ra từ một khóa học code, hoặc bạn không có bằng khoa học máy tính, bạn cần bắt đầu học về cấu trúc dữ liệu, thuật toán và các chủ đề khoa học máy tính khác. Tại sao? Vì dù cho framework và kỹ thuật thay đổi, nguyên tắc cơ bản trong khoa học máy tính vẫn như vậy.

Sau khi hiểu những vấn đề về level cao hơn, bạn có thể thấy rằng hầu hết các vấn đề phần mềm và thực tiễn tốt nhìn chung sẽ không đổi trong những ngôn ngữ khác nhau và thời gian khác nhau.

Cuối cùng, đọc bài viết này sẽ biết tập hợp những kỹ năng từ một quan điểm kỹ thuật tuyệt đối.

2. Kỹ năng đội nhóm

Đây luôn là kỹ năng bị bỏ qua. Bạn làm việc nhóm như thế nào? Bạn có ngoan cố với những reviews về pull request, và tham gia vào văn hóa xấu? Hoặc bạn thận trọng, liên kết và hỗ trợ thành viên trong team? Senior Developer không có cái tôi lớn. Họ biết họ giỏi và không cần chứng minh cho người khác biết. Họ viết những dòng code đơn giản và ngắn gọn hơn là code để khoe ra kỹ năng của mình mà người khác lại không đọc được. Họ sẵn sàng giúp đỡ mọi người, và hỏi khi người khác không biết.

Nếu bạn là người có thể nhận bất kỳ dự án nào, hoặc gia nhập bất kỳ team nào, bạn có thể tương tác với bất kỳ thành viên nào và khiến mọi người làm việc hòa hợp cùng nhau, bạn cừ hơn người khác rất nhiều rồi đấy. Bạn cũng khiến công việc của quản lý, giám đốc, chuyên gia scrum, và CTO dễ dàng hơn nhiều. Họ là những người điều hành và quan trọng hơn, mang lại giá trị to lớn cho công ty.

3. Kỹ năng người dùng, kỹ năng khách hàng

Bạn có thể nói chuyện với khách hàng hay người dùng và có thể thấy họ cần gì? Khi họ gợi ý điều gì, bạn có hiểu vấn đề cần đối mặt là gì không? Một Senior Developer là người có thể đối mặt một mình với khách hàng và có thể lắng nghe, sau đó đưa lời khuyên cho các bước tiếp theo để giải quyết. Họ rất giỏi tạo dựng mối quan hệ. Họ không hề dễ dụ, nhưng họ không áp đặt quan điểm lên khách hàng. Họ hiểu mục tiêu không được này thì được kia, cả khách và developer đều có được sau khi tương tác.

Cuối cùng, bạn cần có khả năng năng giải thích những khái niệm rắc rối về lập trình cho những người không rành kỹ thuật. Bắt đầu phát triển kỹ năng này với việc xem những hướng dẫn qua những chủ đề phức tạp. Dù họ hướng dẫn những chủ đề khó , bạn vẫn quan sát được sự tương đồng.

4. Kỹ năng phát triển

Senior Developer luôn luôn học hỏi mỗi ngày, họ không ngồi trước máy tính 14 tiếng mỗi ngày để đọc báo, cách đó hiệu quả hơn nhiều. Họ luôn tìm cách bắt chuyện với developer khác, đặt câu hỏi, tìm hiểu các chủ đề mới. Họ không tập trung vào mỗi một kỹ năng. Bạn có thể giỏi nhất trên thế giới trong một vấn đề, nhưng nếu bạn không biết đủ rộng về vấn đề đang giải quyết, bạn sẽ không thể là số một lâu đâu.

Họ có tinh thần cầu tiến (trí thông minh có thể rèn luyện được). Họ hiểu việc học hết mọi thứ là không thể và lựa chọn dành thời gian để tận hưởng những thứ xứng đáng.

Họ không nói “ Tôi ghét library này!”, hầu hết những người này họ không thích vì họ không thực sự hiểu về nó. Ví dụ, không nói “Tôi ghét jQuery. Developer quèn mới dùng nó thôi” và nghe thật khoa trương. Senior Developers nói “ jQuery là công cụ trong phát triển web và javascript”. Quan điểm của họ có thể linh động bởi vì họ muốn học hỏi từ người khác và họ thử nhiều quan điểm trước khi quyết định nói “ghét” thứ gì.

5. Kỹ năng bán hàng/ phỏng vấn.

Senior Developers có khả năng thử sức trong vai trò senior vì họ có hể giao tiếp and quảng cáo bản thân cho những người có quyền quyết định. Bạn có thể thấy những gì mà nhà tuyển dụng hay công ty cần, và bạn có thể cho thấy sự tự tin của mình, bạn là người có thể giải quyết được sự việc. Bạn tự tin nhưng vẫn khiêm nhường. Senior developers cũng đủ tự tin để đảm nhiệm những vấn đề đó dưới áp lực lớn. Họ cũng biết là nếu không bao giờ hỏi thì sẽ chẳng có câu trả lời, do đó họ yêu cầu về chiêu thị, hoặc những vai trò thách thức họ để chứng minh họ là lựa chọn hoàn toàn đúng cho vị trí này. Dù doanh thu và đàm phán có vẻ khó nhằn, nhưng đó là kỹ năng quan trọng mà bạn cần đạt được.

6. Kỹ năng cộng đồng.

Senior developers góp phần cây dựng cộng đồng developers. Du với những buổi nói chuyện về kỹ thuật, về cuộc hẹn, cống hiến mã nguồn mở hoặc viết báo. Họ sẵn sàng chia sẻ thông tin về ngành thay vì chỉ trong một chiếc hộp kín làm công việc của riêng mình, họ ra ngoài, giao tiếp với mọi người phá vỡ những giới hạn của bản thân. Giống như đi du lịch: tiếp xúc càng nhiều nền văn hóa, bạn càng hiểu rõ về sự tương đồng và khác nhau giữa người với người, bạn sẽ càng thích du lịch hơn.

Kết Luận

Nếu bạn từng học code và đang tìm bước tiến tiếp theo trong công việc, bạn cần thay đổi suy nghĩ. Làm sao bạn có thể nổi bật hơn đây? Làm sao để phát triển? Làm sao bạn giúp được người khác giải quyết vấn đề mang lại lợi ích? Bạn là một senior developer không phải để làm những chuyện dễ dàng. Bạn làm những chuyện đòi hỏi nâng tầm và thách thức trí tuệ. Bạn học hỏi và thích ứng mỗi ngày như khi bạn lần đầu thử viết code. Mỗi bước đi không đáng là bao, nhưng trong suốt quãng đời, một bước nhỏ góp lại thành nhiều bước đi lớn nên đừng bao giờ ngừng đọc và học hỏi, và biết cách tận dụng thời gian của mình và biết điều gì không nên.

Related