Điều gì tạo nên một web developer thực sự giỏi?
Nếu bạn đang làm công việc lập trình đầu tiên, chắc nhanh chóng nhận ra: không hề dễ dàng.
Xem tutorial code, đọc sách lập trình, làm portfolio site là một chuyện. Xây website từ spec, gặp deadline, và quan trọng nhất: làm hài lòng sếp và khách hàng – là chuyện hoàn toàn khác.
Thêm vào đó, công nghệ thay đổi nhanh. Bạn có thể cảm thấy phải theo kịp xu hướng để tránh lỗi thời năm sau.
Muốn biết bí mật? Đừng sợ.
Khi tiếp tục làm việc, bạn tích lũy kinh nghiệm. Cũng như đã học code, bạn cũng có thể học cách làm việc ở trình độ cao.
Có thể học cách trở thành web developer giỏi. Thậm chí trở thành web developer không thể thiếu. (Tuy nhiên không đảm bảo an toàn việc làm, nhưng bạn hiểu ý tôi.)
Tôi là web developer tự học, không học khoa học máy tính chính quy. Đã trong ngành ~7 năm, trải qua độ dốc học tập và hội chứng kẻ giả (impostor syndrome).
Nhưng cũng tích lũy nhiều kinh nghiệm và kỹ năng quý giá. Bạn có thể thấy điểm tương đồng với hành trình của mình:
Công việc đầu tiên
Khi mới bắt đầu junior web dev, tôi cực kỳ phấn khích.
Thực lòng mà nói: 2 năm đầu tôi sợ hãi.
Mỗi ngày phải làm việc chưa từng biết cách làm. Thường không biết bắt đầu từ đâu!
Cảm thấy vô năng nhiều lúc.
May mắn có sếp và đồng nghiệp hỗ trợ, chỉ dẫn. Và tôi cứ thế meet deadline.
Theo thời gian, stress giảm dần.
Sau 4-5 năm, thực sự tự tin vào kỹ năng. 5 năm nghe có vẻ lâu. Đặc biệt nếu bạn mới bắt đầu.
Chỉ nhớ một điều:
Thành công không bao giờ đến ngay lập tức. Nhưng thường đến sau nhiều ngày, tuần, tháng, năm nỗ lực không bỏ cuộc.
Tôi cảm thấy học được nhiều trong sự nghiệp ngắn. Muốn giúp newbie web developer đã cố gắng vươn tới việc làm hiện tại.
Có vài nguyên tắc giúp bạn nổi bật. Áp dụng chúng giúp bạn trở thành tài sản cho công ty và khách hàng.
Dù chưa đi làm, vẫn áp dụng được hầu hết nguyên tắc cho quá trình học tập.
Muốn thành web developer xuất sắc? Đọc tiếp!
1: Hiểu rằng thành thạo bất cứ thứ gì là cuộc đua marathon, không phải sprint.
Nếu xin việc ngay sau bootcamp hoặc đại học – tuyệt vời! Chỉ cần biết: bạn ở đầu hành trình coding.
Web development lĩnh vực rộng, như mọi kỹ năng, mất lâu mới thực sự giỏi. Con đường dài phía trước, và lúc này còn rất nhiều điều bạn không biết.
Nhưng không sao! Bạn là beginner. Không ai kỳ vọng bạn chuyên gia ngay bây giờ.
Khi tôi lớp 5-6, chị gái ôn SAT (kỳ thi chuẩn hóa Mỹ để xét tuyển đại học). Làm em gái, tôi cũng muốn thử, làm vài câu practice.
Tự nhiên, làm không tốt. Không nghĩ đúng một câu nào. Tôi kiểu người cầu tiến từ nhỏ, nên nản chí, giận dữ vì không đạt điểm tuyệt đối.
Chắc không ai trong các bạn ném bục khi không giải được bài code. Nhưng theo cách tương tự, đừng kỳ vọng mình phải biết mọi thứ ngay lập tức.
Đó là phi thực tế, và gây stress lớn.
Rõ ràng bạn nên muốn học và tiến bộ.
Nhưng hãy giữ góc nhìn tổng quan về tiến trình, thực tế về vị trí hiện tại.
Tư duy dài hạn cho sự nghiệp, không chỉ ngắn hạn cho khoảnh khắc này.
2: Cố gắng hết sức tự giải quyết trước, rồi mới nhờ giúp đỡ.
Những năm đầu, cảm giác khám phá vùng đất chưa khai phá gây lo âu. Cảm thấy áp lực phải giải quyết việc chưa biết.
Khi đó, có 2 lựa chọn. Quay lại sếp: "Xin lỗi, em không biết làm. Anh/chị làm giúp em được không?"
Có thể giảm áp lực ngắn hạn, nhưng hại dài hạn. Nhân viên không biết tìm giải pháp sẽ tốn thời gian người khác.
Lựa chọn 2: tự research càng nhiều càng tốt trước. Cuối cùng chạm đến giới hạn hiểu được.
Rồi mới đến sếp: "Xin lỗi, em không giải quyết được. Nhưng em đã thử thế này, và nghĩ có liên quan đến kia..."
Thấy khác biệt không?
Thay vì bỏ sớm nhờ người làm hộ, mình làm hết sức mình.
Và khi nhờ giúp, thể hiện đã tự làm việc.
Research và test tự thân giúp học cách tự học khái niệm mới. Lợi ích kép:
- Học skill mới trên công việc – về cơ bản được trả lương để học.
- Không tốn thời gian sếp/đồng nghiệp với câu hỏi tự giải quyết được. Bạn là tài sản, không phải gánh nặng.
Tuy nhiên, cực đoan kia: mất vài giờ thậm chí vài ngày bám vào vấn đề, trong khi hỏi giúp có thể giải quyết nhanh. Cũng không tốt – lúc đó tốn quá nhiều thời gian.
Bạn tự tìm ra cân bằng: thử bao nhiêu là đủ, khi nào nên hỏi. Qua kinh nghiệm, sẽ tìm được điểm cân bằng.
3: Luôn tò mò.
Khởi đầu công việc, thường nhận feedback tích cực: tôi hứng thú hấp thu kiến thức như bọt biển.
Sẵn sàng thử bất cứ điều gì, даже chưa biết cách làm. Và thực sự tò mò muốn hiểu mọi thứ hoạt động như thế nào.
Khát khao hiểu "cách thức hoạt động" là cốt lõi của mọi engineer. Hãy để sự tò mò nuôi dưỡng khát khao đó.
Đừng tắt nó chỉ để xong việc. Hiểu tại sao cực kỳ quan trọng.
Nghiên cứu cách làm gì đó, đừng dừng lại khi tìm thấy câu trả lời trên Stack Overflow.
Nếu không gấp deadline, dành vài phút xem giải pháp và cách nó fit vào code của bạn.
Cố gắng hiểu tại sao code cũ không chạy, tại sao giờ chạy được. Không hiểu 100% cũng không sao. Chỉ nắm vững concept.
Dù không hiểu hoàn toàn lần này, lần sau gặp vấn đề tương tự bạn sẽ trang bị tốt hơn.
4: Luôn cải tiến.
Áp dụng không chỉ web dev, mà mọi lĩnh vực: nấu ăn, lái xe, thậm chí mối quan hệ.
Khi thấy chuyện gì không suôn sẻ, lùi lại nhìn toàn cảnh. Hỏi mình: mình muốn gì, tại sao không xảy ra?
Code làm hỏng web: chuyện gì xảy ra, làm sao tránh lần sau?
Cãi nhau với đồng nghiệp khi giải thích: chuyện gì xảy ra? Có lời nào làm leo thang thay vì xích mát không?
Hãy làm:
- Quay lại phân tích tình huống không tối ưu.
- Tìm ra nguyên nhân.
- Đưa ra hành động cụ thể tránh lặp lại.
Mất thời gian, đôi khi thực sự không có thời gian phân tích mọi quyết định.
Nhưng lướt qua lỗi sai và xung đột mà không học bài sẽ đảm bảo bạn lặp lại sai lầm.
Khó khăn vì khi chuyện xấu qua, bản năng là không muốn ngẫm nghĩ lại.
Hãy nghĩ như debug cuộc sống. Nếu lặp lại chính xác lỗi code, rất kém hiệu quả. Có điều gì đó cần học để không tái diễn.
Dù chỉ lỗi nhỏ, thực hành tự nhận thức và tự cải tiến sẽ mang lại kết quả dài hạn.
5: Trở nên giỏi giải quyết vấn đề.
Là web developer, phần lớn công việc là giải quyết vấn đề. Viết code mới hay debug code cũ – mục tiêu cuối: làm nó chạy như ý.
Làm sao giỏi giải quyết vấn đề trong code?
Đầu tiên, hiểu chính xác nó phải làm gì, và mọi phần liên quan. Sau đó mới xác định được vấn đề ở đâu và sửa.
Sửa cái đèn
Ví dụ minh họa: sửa cái đèn không sáng.
Để troubleshoot, trước tiên xác định hành vi tối ưu: bật công tắc "on" → bóng đèn sáng.
Nếu không xảy ra, kiểm tra từng bước quy trình tìm chỗ lỗi.
Danh sách kiểm tra:
- Bước 1: Điện từ lưới qua ổ cắm. Kiểm tra điện nhà có, ổ cắm hoạt động.
- Bước 2: Đèn cắm vào ổ cho điện chạy qua. Kiểm tra đèn đã cắm.
- Bước 3: Điện chạy qua dây và công tắc đèn. Kiểm tra dây và công tắc hoạt động.
- Bước 4: Bật công tắc → điện đến bóng đèn → sáng. Kiểm tra bóng đèn hoạt động, không hỏng.
Bằng cách test từng bước, dùng loại trừ để thu hẹp và xác định nguyên nhân.
Tìm và sửa bug code phức tạp hơn test bóng đèn, nhưng quy trình giống hệt.
Thực lòng: debug code và troubleshoot lỗi có thể cực kỳ frustrating. Có lần tôi mất cả ngày thậm chí tuần kẹt ở một vấn đề. Đây là phần tệ nhất làm web developer.
Tuy nhiên, mặt trái: khi cuối cùng tìm ra giải pháp, cảm giác tuyệt vời. Gần như cảm thấy toàn năng, dù chỉ khoảnh khắc. Cảm giác phấn khích đó chắc chắn là phần tốt nhất làm web developer.
Đừng bỏ qua kỹ năng phi kỹ thuật.
Hai lời khuyên cuối sẽ chuyển chủ đề hoàn toàn. Có khía cạnh khác của web developer professional hoàn toàn không liên quan code.
Gọi là soft skills hay people skills.
Dù làm việc với code, cuối cùng làm việc với con người. Website/app chúng ta build dành cho con người. Bất kỳ công việc nào, bạn làm việc với khách hàng, client, đồng nghiệp – đều là con người.
Web developer giỏi nhất không chỉ code tốt. Họ cũng rất giỏi hiểu bức tranh toàn cảnh, và làm việc với người.
Tôi cá nhân nghĩ 2 nguyên tắc cuối giúp bạn tách mình khỏi đám đông. Chúng không dễ thành thạo vì đòi hỏi tư duy phức tạp khác.
Nhiều web developer không xem trọng phát triển kỹ năng phi kỹ thuật.
Đây là nơi bạn bắt đầu trở nên độc đáo hữu ích.
6: Nuôi dưỡng sự đồng cảm (empathy).
Empathy = nhận thức và hiểu cảm xúc, nhu cầu, góc nhìn của người khác. Tóm lại: khả năng đặt mình vào vị trí họ.
Khi chồng/vợ cãi nhau, ban đầu cả hai đều cảm thấy đối đầu. Tôi có thể cảm thấy mình đúng 100% – nhưng thực tế không bao giờ vậy! Coi nói chuyện thẳng thắn, dù đau đớn và khó khăn.
Cuối cùng nhận ra: tất cả do hiểu lầm hoặc một người ngày xui. Cả hai cuối cùng thấy được góc nhìn của người kia.
Không phải đúng/sai hay "thắng" tranh cãi. Là đồng cảm và cùng chung trang.
Tương tự, làm việc với người sẽ không tránh khỏi xung đột, bất đồng.
Nhưng hãy tránh vội kết luận và phán xét người khác. Hầu như điều họ làm/nói không căm thù cá nhân.
Hãy nói chuyện, tìm hiểu họ đang ở đâu. Có thể họ bận rộn quên không reply email. Có thể họ vừa gặp meeting khủng khiếp và vô tình tỏ ra ngắn gọn do stress.
Bên cạnh cho người khác lợi ích của sự nghi ngờ, empathy tại công việc còn bao gồm: nhận thức và tôn trọng workload và tình huống của người khác.
Ví dụ: đồng nghiệp đang deadlin gần, làm như điên. Đừng phiền họ với việc không liên quan, không gấp khi họ đang crunch time.
Nhưng có thể hỏi thăm "xong chưa, thế nào?" khi mọi thứ đã落ち着下来.
Liên quan: quan tâm văn hóa nơi làm việc, khuyến nghị blog Ask a Manager – rất hay về nên/làm gì tại workplace.
7: Chủ động (proactive), không bị động (reactive).
Theo tôi, proactive vs reactive là phẩm chất phân biệt người thành công và người bình thường.
Nhân viên reactive: làm việc được giao, không làm thêm. Có lỗi → sửa, nhưng không suy nghĩ trước để ngăn chặn tái diễn.
Không xem xét bức tranh toàn cảnh hoặc cách các phần hệ thống interlock. Mindset mặc định: "Không ảnh hưởng tôi → không phải việc tôi".
Tư duy ngắn hạn. Không làm việc tệ, nhưng bỏ lỡ nhiều cơ hội có thể làm.
Ngược lại, nhân viên proactive: không chỉ hoàn thành việc giao rồi tan tành. Cũng làm cải tiến nhỏ dần dần.
Có lỗi → phân tích chuyện gì xảy ra → thay đổi để không tái diễn. Luôn suy nghĩ cách làm quy trình hiệu quả hơn.
Tóm lại: người chủ động làm việc ở hiện tại để cải thiện tương lai.
Họ thấy bức tranh toàn cảnh, và sẵn sàng nỗ lực cải thiện nó.
Nghe hay phải không?
Để học kỹ năng proactive: thử sai, quan sát nhiều. Nhưng một khi nắm được, lợi ích lan tỏa mọi lĩnh vực cuộc sống.
Kết thúc
Cảm ơn đã đọc tips trở thành web developer giỏi! Nếu bạn newbie, thực sự hy vọng một số tips hữu ích.
Nếu có câu hỏi hay comment, đừng ngần ngại để lại bên dưới.