Con đường trưởng thành tại công ty lớn trong 10 năm
Lời giới thiệu: Tác giả bài viết có nhiều kinh nghiệm làm việc, từng làm việc tại công ty lớn 12 năm. Kết hợp những đường vòng bản thân từng đi qua và các đặc điểm của những người làm kỹ thuật xuất sắc mà mình từng tiếp xúc, tác giả đã tổng hợp một số kinh nghiệm và phẩm chất có ý nghĩa định hướng phổ quát đối với sự trưởng thành cá nhân.
Địa chỉ bài gốc: https://mp.weixin.qq.com/s/vIIRxznpRr5yd6IVyNUW2w
Gần đây, có vài bạn trẻ trò chuyện với tôi về sự mơ hồ của bản thân. Có người băn khoăn về trưởng thành kỹ thuật, có người về thăng tiến, có người về lựa chọn nghề nghiệp. Tôi rất vui vì họ sẵn lòng nghe một người từng trải như tôi chia sẻ kinh nghiệm.
Sau khi tốt nghiệp, tôi vào làm tại một công ty lớn và đã làm việc ở đó 12 năm. Những điều tôi nói đều xuất phát từ tình hình thực tế của bản thân hoặc những người xung quanh. Đặc biệt, tôi sẽ kết hợp 【những đường vòng bản thân từng đi qua】 và 【đặc điểm của những người làm kỹ thuật xuất sắc mà tôi từng thấy】 để đưa ra lời khuyên.
Tôi cho rằng những nội dung này có ý nghĩa định hướng phổ quát, nên quyết định tổng hợp và chia sẻ. Tôi tin rằng dù bạn làm ở công ty lớn hay công ty nhỏ, nếu tin vào những lời khuyên này thì sớm hay muộn chúng cũng sẽ giúp ích cho bạn.
Tôi đã làm việc 12 năm và đi qua một số đường vòng, vì vậy tôi muốn nói về việc “một người làm kỹ thuật cần chú ý điều gì trong 10 năm phát triển”. Nội dung được chia thành hai phần:
- Con đường kỹ thuật 10 năm nên đi như thế nào
- Một số lựa chọn quan trọng
01 Con đường kỹ thuật 10 năm nên đi như thế nào
【1-2 năm】=> Từ “người mới” đến “người chuyên nghiệp”
Sinh viên mới tốt nghiệp khi bắt đầu đi làm sẽ gặp đủ loại không thích nghi. Chẳng hạn, code đã viết xong bị trả về nhiều lần, khi thảo luận vấn đề kỹ thuật với các senior trong team thì có hàng loạt dấu hỏi, không dám đặt câu hỏi hay phản biện, gặp vấn đề thì một mình cố chấp giải quyết đến cùng, v.v.
Nói đơn giản, dù cặm cụi làm việc ngày đêm, cuối cùng bạn vẫn không thể bắt đầu công việc một cách suôn sẻ.
Một số điểm quan trọng nhất trong giai đoạn này:
【Quan sát nhiều, bắt chước nhiều】: Chẳng hạn khi viết code, đừng chỉ quan tâm chức năng có đúng hay không như khi làm bài tập trong sách ở trường, mà còn phải quan tâm đến thiết kế module, xử lý exception, tính dễ đọc của code, v.v. Trước khi hiểu tinh túy của những nội dung này, bạn cũng nên bắt chước theo mẫu trước; dần dần bạn sẽ hiểu rõ hơn code trong thế giới thực được viết như thế nào và vì sao phải viết như vậy.
Khi xây dựng technical solution cũng tương tự. Có thể bạn chưa hiểu yêu cầu của tài liệu kỹ thuật, nhưng trước hết có thể tham khảo các tài liệu hiện có để viết theo.
【Mặt dày hơn một chút】: Không hiểu thì hỏi, mọi người đều hiểu bạn là người mới. Các solution bạn làm cũng có thể chủ động nhờ các senior review nhiều hơn, đừng sợ bị chê cười.
【Chú ý phương thức làm việc】: Chẳng hạn khi phát hiện không thể hoàn thành requirement đúng thời gian dự kiến thì phải nhanh chóng báo rủi ro; kịp thời báo cáo nội dung công việc (ví dụ weekly report); sau cuộc họp phải xác nhận kết luận và các todo; đã cam kết thời hạn thì phải cố gắng hoàn thành; nghiêm túc tuân thủ yêu cầu của công ty (ví dụ quy chuẩn release, quy chuẩn phân quyền, v.v.).
Thông thường, sau 2 năm làm việc, bạn nên trở thành một người chuyên nghiệp. Người quản lý có thể tin tưởng giao bất kỳ công việc nào cho bạn mà không xảy ra “sự cố” (ví dụ một requirement quan trọng phải lên production vào ngày mai nhưng đột nhiên được báo là không thể lên).
【3-4 năm】=> Từ “người chuyên nghiệp” đến “mũi nhọn”
Sau hai năm làm việc, mức độ hiểu biết về business và hệ thống hiện tại đã đạt đến một mức nhất định. Người làm kỹ thuật sẽ bắt đầu đảm nhận những thách thức kỹ thuật khó hơn.
Ví dụ cần nâng performance lên một mức nhất định, cần refactor một module quan trọng, hoặc có một project quan trọng cần phối hợp nhiều team cùng hoàn thành.
Có thể thấy những vấn đề kỹ thuật trên đã khó hơn rất nhiều so với một requirement thông thường. Giải quyết chúng cần năng lực kỹ thuật nhất định, đồng thời cũng cần năng lực phối hợp cao hơn.
Một số điểm quan trọng nhất trong giai đoạn này:
【Nâng cao năng lực kỹ thuật】: Dù là nội dung kỹ thuật trong hay ngoài công ty, bạn đều phải chủ động học hỏi nhiều hơn. Về cơ bản, các bài toán kỹ thuật trong giai đoạn này đều tập trung vào performance, stability và scalability, và trong industry đều đã có methodology tương đối hoàn chỉnh cho những nội dung này.
【Tinh thần làm chủ】: Ngoài việc thiết kế và triển khai technical solution cho bài toán kỹ thuật, phía sau còn có một loạt công việc khác. Ví dụ theo dõi hiệu quả sau khi release, mức độ hiểu biết về việc cải tạo upstream và downstream của project trọng điểm cũng như các rủi ro, kế hoạch tiếp theo cho toàn bộ hoạt động cải tiến kỹ thuật (ý tưởng tối ưu phase 2, phase 3), v.v.
Sau bốn năm làm việc, về cơ bản bạn đã trở thành vị trí kỹ thuật số một hoặc số hai trong team. Ngay cả khi không trực tiếp triển khai nhiều bài toán kỹ thuật, bạn vẫn là người quyết định solution. Bạn biết cách nghiên cứu, so sánh các solution, và cân nhắc toàn bộ lifecycle của hoạt động cải tiến kỹ thuật.
【5-7 năm】=> Từ “mũi nhọn” đến “chuyên gia”
Mũi nhọn kỹ thuật tập trung vào việc giải quyết một bài toán kỹ thuật cụ thể hoặc một project trọng điểm. Hướng phát triển tiếp theo là có thể đảm nhận toàn bộ một “mảng business”, hay còn gọi là “chuyên gia kỹ thuật trong lĩnh vực”.
Muốn đảm nhận toàn bộ một “mảng business” cần 【hiểu sâu về lĩnh vực business, đồng thời dựa trên sự hiểu biết đó để hoạch định hướng phát triển kỹ thuật】.
Lấy thanh toán làm ví dụ. Một chức năng thanh toán đơn giản thực ra rất dễ hoàn thành, chỉ cần xử lý tốt việc gọi API của hai hệ thống (NetUnion và UnionPay) trong các tình huống thành công, thất bại và exception là được. Nhưng trong nhiều bối cảnh, thanh toán không đơn giản như vậy.
Ví dụ, thanh toán là một thao tác nhạy cảm với người dùng, rất coi trọng user experience; làm thế nào để cân bằng trải nghiệm với sự không ổn định của API? API thanh toán còn phát sinh chi phí; chi phí của API đồng bộ và bất đồng bộ khác nhau, vậy làm thế nào để giảm chi phí? API thanh toán thường còn có hạn mức, v.v. Đằng sau hàng loạt vấn đề này liên quan đến nhiều thiết kế kỹ thuật, bao gồm asynchronous, thiết kế compensation, thiết kế dòng tiền, thiết kế eventual consistency, v.v.
Một số điểm quan trọng nhất trong giai đoạn này:
【Hiểu sâu về industry và xu hướng】: Theo sát mọi thay đổi trong industry (cách làm mới, thay đổi chính sách, chiến lược của đối thủ, ảnh hưởng của các yếu tố bên ngoài như công nghệ, v.v.) và tăng cường trao đổi với các đồng nghiệp business.
【Tìm hiểu sâu về solution trong industry】: Đối chiếu đầy đủ với các solution kỹ thuật hiện có trong và ngoài nước, học hỏi và thử nghiệm chuyên sâu, đánh giá chi phí xây dựng và vận hành, đồng thời lập kế hoạch dựa trên xu hướng business.
【8-10 năm】=> Từ “chuyên gia” đến “TL”
Thực ra trong nhiều trường hợp, nếu có thể trở thành chuyên gia thì về cơ bản bạn cũng đã đảm nhận vai trò TL. Tuy nhiên, điều đó không có nghĩa là bạn đang thực hiện trách nhiệm của TL.
Chuyên gia tuy đã có thể “hoạch định hướng phát triển kỹ thuật phù hợp với sự phát triển của business”, nhưng làm thế nào để triển khai? Rõ ràng, không thể hoàn thành việc xây dựng chỉ bằng sức lực của một người. Vì vậy, TL ở đây không nhấn mạnh chức danh “lãnh đạo”, mà nhấn mạnh 【triển khai quy hoạch kỹ thuật bằng cách tập hợp sức mạnh của một team】.
Vì vậy, TL ở đây cần có các năng lực như 【đào tạo kỹ thuật cho team】【phân bổ resource hợp lý】【xác định mức độ ưu tiên công việc】【khích lệ và thưởng phạt】.
Một số điểm quan trọng nhất trong giai đoạn này:
【Học về management】: Management ở đây đương nhiên không phải PUA, mà là cách kết hợp mục tiêu cá nhân với mục tiêu của team trong bối cảnh thực tế mỗi người đều có những mong muốn riêng, từ đó tạo động lực phát triển về phía trước.
【Luôn bám rễ trong kỹ thuật】: Nhiều khi sau khi trọng tâm công việc nghiêng về management, người ta sẽ sao nhãng kỹ thuật. Nhưng sự thật là một lãnh đạo xuất sắc luôn là một người làm kỹ thuật xuất sắc. Cùng tham gia thảo luận technical solution và đưa ra hướng dẫn, không ngừng mở rộng độ rộng kỹ thuật, duy trì sự tò mò với kỹ thuật, đó là những yếu tố then chốt giúp một lãnh đạo kỹ thuật luôn có sức quy tụ.
02 Một số lựa chọn quan trọng
Tiếp theo, hãy nói về một số lựa chọn quan trọng mà chúng ta có thể gặp trong 10 năm. Đây đều là những bài học thực tế được đổi bằng mồ hôi và nước mắt.
Tôi có nên chuyển vị trí không?
Các công ty lớn đều có cơ chế chuyển vị trí. Chuyển vị trí có thể giúp nhân viên tìm kiếm hướng đi mình hứng thú, đồng thời cũng giúp các team mới tuyển được những người có thể bắt tay làm việc ngay.
Chuyển vị trí thoạt nhìn chỉ là thay đổi nội bộ công ty, nhưng bạn cần quyết định một cách thận trọng.
Bản thân tôi đã chuyển vị trí nhiều lần. Dù vẫn ở cùng một công ty, chuyển vị trí tương đương với đổi việc. Dù là tích lũy trong lĩnh vực, nội dung công việc, quan hệ tin tưởng hay quan hệ phối hợp, tất cả đều bắt đầu lại từ con số 0.
Lời khuyên của tôi về việc chuyển vị trí là: Nếu bạn muốn mở rộng độ rộng kỹ thuật, tức là chuyển vị trí với suy nghĩ nâng cao năng lực kỹ thuật, tôi cho rằng có thể chuyển. Nhưng nếu bạn muốn thăng tiến thì không khuyến nghị chuyển vị trí. Thăng tiến cần sự tích lũy liên tục trong một lĩnh vực và xây dựng cảm giác tin tưởng trong một team.
Đương nhiên, chuyển vị trí có thể còn vì những lý do khác như lý do gia đình, lý do sức khỏe, v.v. Tôi sẽ không bàn sâu về những trường hợp này.
Tôi có nên chuyển việc không?
Chuyển việc cũng giống chuyển vị trí, thường do nhiều yếu tố tạo thành, không thể đánh đồng mọi trường hợp. Tôi chỉ nói về một vài tình huống:
【Thăng tiến thất bại】: Hãy tự hỏi lòng mình, nếu bạn thấy bản thân quả thực chưa đủ năng lực thì cứ nghiêm túc tiếp tục nỗ lực. Nếu bạn cho rằng hội đồng đánh giá có thành kiến, có thể thử đi phỏng vấn bên ngoài để thị trường cho bạn câu trả lời.
【Giới hạn trưởng thành】: Cảm thấy công việc đang làm không có thách thức và không thể trưởng thành. Bạn có thể trao đổi với quản lý; có thể bạn chưa nhìn thấy thách thức trong đó, cũng có thể quản lý chưa nhận ra “tham vọng” của bạn.
【Không phù hợp với môi trường】: Thường xuất hiện khi mới gia nhập hoặc khi lãnh đạo thay đổi; cảm giác không thích nghi trong trường hợp này là bình thường. Lời khuyên của tôi là, nếu một môi trường “việc ra việc, người ra người” thì có thể ở lại, cố gắng thích nghi; sự không thích nghi này chỉ do phương thức làm việc khác nhau. Nhưng nếu môi trường đó “nhắm vào người chứ không nhắm vào việc”, thì hãy rời đi.
Nên tìm công việc như thế nào khi chuyển việc?
Khi chuyển việc, chúng ta thường phỏng vấn cùng lúc ở vài công ty. Khi thị trường thuận lợi, thường có thể nhận được offer từ nhiều nơi, vậy nên lựa chọn thế nào?
Khi cân nhắc một offer, thường có vài yếu tố: 【thương hiệu công ty】【lương thưởng】【cấp bậc chức danh】【nền tảng kỹ thuật】. Mỗi người đều có mong muốn riêng, nên không có đúng sai trong bất kỳ lựa chọn nào.
Một lời khuyên của tôi là: Bạn cần chú ý đến không gian phát triển của vị trí mới; không gian đó phải có khả năng đáp ứng kỳ vọng của bạn.
Ví dụ, nếu bạn muốn trở thành architect, vị trí mới có đủ thách thức kỹ thuật để giúp bạn nâng cao năng lực kỹ thuật hay không, hay chỉ khiến bạn phải bươn chải đối phó với requirement?
Ví dụ, nếu bạn muốn phát triển theo hướng quản lý kỹ thuật, vị trí mới có cơ hội quản lý người khác không? Có đủ vấn đề cần xây dựng team để giải quyết không?
Ví dụ, nếu bạn muốn bén rễ và phát triển lâu dài trong một lĩnh vực nào đó (ví dụ thương mại điện tử, game), vị trí mới có tiếp tục thuộc lĩnh vực đó không, và bạn có thể gặp nhiều vấn đề hơn trong lĩnh vực này không?
Đương nhiên, nếu mức lương thực sự cao đến mức không thể từ chối thì có thể bỏ qua những tham khảo trên!
Lời kết
Trên đây là những đúc kết của tôi về con đường trưởng thành 10 năm của người làm kỹ thuật trong ngành Internet. Hy vọng những điều này có thể giúp bạn khi bối rối hoặc đứng trước các lựa chọn quan trọng. Nếu những lời ít ỏi của tôi có thể giúp ích cho bạn dù chỉ một chút vào một thời điểm nào đó trong tương lai, đó sẽ là niềm vinh hạnh lớn lao của tôi.
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
