How to be an uncommonly good web developer
Bài đăng này đã không được cập nhật trong 6 năm
Nguồn: How to be an uncommonly good web developer
Cần làm gì để trở thành một web developer giỏi?
Nếu bạn là new dev, đây là một câu hỏi không dễ trả lời.
Không chỉ là xem tutorial hướng dẫn code, đọc sách lập trình, làm mấy site portfolio, mà còn phải dựng website từ spec, keep deadline, và quan trọng nhất là đảm bảo "xếp" và khách hàng hài lòng!!!
Chưa kể đến là công nghệ thay đổi rất nhanh. Bạn nhận ra một là mình phải bắt kịp xu thế, hai là "out" trình vào năm sau.
Muốn biết bí kíp rồi chứ giề? Không phải lo.
Bạn sẽ tích lũy được kinh nghiệm trong quá trình làm việc. Tương tự như cách mà bạn đã học code, bạn sẽ biết cách để thực hiện những điều đó ở mức cao hơn khi làm việc.
Luôn có cách để trở thành một web developer giỏi. Và thậm chí là trở thành kẻ không thể thay thế. (À ừm thì rõ ràng là tôi không phải là người bảo đảm cho công việc của bạn, nhưng mà bạn hiểu ý tôi rồi đấy)
Công việc đầu tiên của tôi
Tôi là một web developer tự học, chưa từng kinh qua bất kỳ khóa học khoa học máy tính nào cả. Ấy vậy mà tôi đã làm trong cái ngành này được 7 năm rồi. Và tất nhiên là tôi đã phải vật lộn với việc học hành và cả hội chứng Impostor Sysdrome nữa.
Dù vậy tôi cũng tích lũy được kha khá kinh nghiệm và kỹ năng trong suốt quá trình đó. Rồi bạn sẽ thấy những gì tôi và bạn trải qua có đôi chút tương đồng.
Khi tôi bắt đầu làm công việc đầu tiên, với vị trí junior web dev, tôi rất hào hứng.
Nhưng thật lòng mà nói, 2 năm đầu tiên với tôi khá tệ hại.
Mỗi ngày tôi gặp phải một số việc mà bản thân không biết cách làm. Thậm chí nhiều khi tôi còn chẳng biết nên bắt đầu từ đâu!
Không ít lần tôi cảm thấy mình thật kém cỏi.
May là mọi thứ rồi cũng đâu vào đấy. Mentor và đồng nghiệp đã hướng dẫn và giúp đỡ tôi rất tận tình. Và bằng cách nào đó tôi vẫn luôn đảm bảo được deadline.
Dần dần, tôi không còn cảm thấy căng thẳng như trước.
Sau khoảng 4 đến 5 năm, tôi bắt đầu thấy tự tin vào khả năng của mình. Tôi biết 5 năm với bạn có thể khá là dài. Đặc biệt nếu bạn mới chỉ bắt đầu.
Hãy nhớ điều này:
Thành công không bao giờ xảy ra chỉ trong một đêm mà qua từng ngày, từng tuần, từng tháng, và từng năm cố gắng và không bỏ cuộc.
Tôi đã học được rất nhiều điều trong sự nghiệp của mình. Và tôi muốn giúp các bạn web dev đang gặp khó khăn khi mới chập chững vào nghề.
Có một số nguyên tắc mà tôi nghĩ nó sẽ giúp bạn nổi bật giữa đám đông. Áp dụng những nguyên tắc này có thể giúp bạn trở thành một tài sản cho cả công ty của bạn lẫn khách hàng.
Thậm chí kể cả bạn đang chỉ học lập trình, thì những nguyên tắc này vẫn cực kỳ hữu ích.
1. Học tập là cuộc đua đường trường chứ không phải cuộc thi nước rút
Nếu bạn đã có việc làm khi mới chỉ ngồi trên ghế nhà trường thì thật tuyệt. Nhưng hãy nhớ rằng đó mới chỉ là khởi đầu cho hành trình làm "coder" của bạn.
Web dev là một lĩnh vực rộng, và cũng như bất kỳ kỹ năng nào khác, thời gian là yếu tố cần thiết để làm chủ lĩnh vực này. Bạn còn cả một con đường dài phía trước, còn bây giờ điều bạn chưa biết còn rất nhiều.
Nhưng không sao cả. Bạn mới chỉ là một "beginner", khó mà mong chờ việc bạn "expert" mọi thứ ngay bây giờ được. Và cũng đừng ép buộc phải biết hết mọi thứ, điều đó cơ bản là không tưởng và chỉ khiến bản thân stress mà thôi.
Rõ ràng bạn NÊN muốn học tập và trở nên giỏi giang hơn ở lĩnh vực lập trình web. Nhưng phải giữ cái nhìn bao quát về tiến độ của bản thân và biết mình đang ở đâu.
Hãy nghĩ về sự nghiệp bạn có ở tương lai chứ không phải hiện tại, và đừng bỏ cuộc quá sớm.
2. Cố gắng tự mình giải quyết vấn đề trước khi cần tìm sự giúp đỡ
Trong những năm đầu của sự nghiệp, cảm giác phải khám phá những miền đất mới thật sự khiến ta lo âu. Tôi luôn thấy áp lực khi phải tìm giải pháp cho vấn đề mà mình không biết.
Biết khi nào nên hỏi
Trong tình huống đó, tôi có 2 lựa chọn. Một là báo cáo với sếp và nói: "Xin lỗi anh, em không biết làm kiểu gì. Anh chỉ em được không?"
Về trước mắt thì việc này giúp giảm bớt áp lực, nhưng về lâu về dài thì nó không tốt cho tôi. Vì một nhân viên mà không biết cách giải quyết vấn đề sẽ làm mất thời gian của người khác.
Lựa chọn khác là trước hết phải tự nghiên cứu nhiều hết sức có thể, cho đến khi mà thật sự không thể tìm hiểu được nữa.
Rồi sau đó tôi có thể đến gặp sếp và nói: "Xin lỗi anh, em không biết cách nào nữa. Nhưng em đã thử một số cách như này, và em nghĩ nó có thể liên quan ..."
Bạn thấy sự khác biệt rồi chứ?
Thay vì từ bỏ quá sớm và nhờ ai đó làm hộ phần việc của mình, tôi đã cố gắng hết khả năng của mình.
Và khi nhờ giúp đỡ, tôi đã cho họ thấy rằng tôi đã cố gắng tìm ra giải pháp.
Học cách tự tìm hiểu
Tự nghiên cứu và thử nghiệm sẽ giúp bạn học được những khái niệm mới. Điều này sẽ cho bạn 2 lợi ích:
Bạn học được những kỹ năng mới cần thiết cho công việc - về cơ bản là bạn được trả tiền để học. Bạn không làm mất thời gian của cấp trên và đồng nghiệp với những câu hỏi mà bạn tự có thể trả lời. Bạn là tài sản, chứ không phải là tiêu sản của công ty.
Tất nhiên ở một thái cực khác, bạn đã dành quá nhiều giờ, thậm chí nhiều ngày với một vấn đề trong khi bạn có thể có được câu trả lời nhanh chóng bằng cách tìm sự trợ giúp. Theo quan điểm này rõ ràng là không tốt vì bạn đã dành quá nhiều thời gian để giải quyết vấn đề.
Bạn phải biết dùng bao nhiêu thời gian để tự tìm hiểu, và khi nào thì nên nhờ trợ giúp. Nhưng đừng qua lo lắng, dần dần bạn sẽ tìm được con số thích hợp thôi.
3. Ham học hỏi
Khi mới vào nghề, tôi thường nhận được phản hồi tích cực rằng tôi học rất nhanh. Tôi luôn sẵn sàng thử bất cứ điều gì, cho dù không biết chính xác phải làm như thế nào. Và tôi thực sự tò mò muốn biết cách mọi thứ vận hành.
Ham học hỏi và tìm tòi là đặc tính của mọi kỹ sư. Đừng vùi lấp nó chỉ vì áp lực công việc. Hiểu được bản chất vấn đề luôn rất quan trọng.
Nếu bạn đang nghiên cứu một vấn đề gì đó, đừng dừng lại khi bạn tìm thấy đáp án trên Stack Overflow. Nếu bạn không bị ép deadline thì hãy dành thêm một vài phút để xem xét giải pháp và cách nó ảnh hưởng đến source code của bạn.
Cố tìm hiểu tại sao đoạn code trước đây của bạn lại không hiệu quả. Dù không hiểu hết thì cũng không sao, chỉ cần nắm được khái niệm là đủ. Thậm chí nếu lần này bạn không hiểu thì bạn cũng có hướng để giải quyết nếu gặp vấn đề tương tự lần sau.
4. Cầu tiến
Điều này không chỉ áp dụng cho web dev mà còn cho bất kỳ lĩnh vực nào của cuộc sống: nấu ăn, lái xe, các mối quan hệ.
Phân tích và học hỏi từ sai lầm
Khi bạn nhận thấy điều gì đó không như ý, hãy lùi lại và quan sát ở nhiều khía cạnh. Tự hỏi bạn muốn gì và tại sao nó không xảy ra?
Nếu code của bạn tạo bug, điều gì đã xảy ra, và làm thế nào để tránh trong tương lai? Hoặc nếu bạn tranh luận với đồng nghiệp khi đang cố gắng trình bày quan điểm, điều gì xảy ra lúc đó?
Hãy thử làm như sau:
- Phân tích tình huống
- Tìm ra vấn đề
- Nghĩ về những bước bạn có thể làm để tránh sự cố trong lần tiếp theo
Việc này sẽ tốn thời gian, và đôi khi chúng ta thật sự không có thời gian để ngồi lại và phân tích từng quyết định.
Nhưng liên tục vấp sai lầm mà không rút kinh nghiệm thì chắc chắn bạn sẽ lại mắc sai lầm.
Hãy nghĩ về điều này như thể bạn đang debug cuộc đời vậy. Nếu bạn tiếp tục mắc sai lầm thì tức là có điều gì đó bạn cần phải học để không mắc lại sai lầm đó nữa.
Ngay cả khi chỉ là những lỗi nhỏ, thì việc thực hành và duy trì tư duy không ngừng cải thiện sẽ giúp bạn gặt hái những thành quả trong cuộc đua trường kỳ.
5. Biết cách giải quyết vấn đề
Là một web developer thì một phần lớn công việc của bạn là giải quyết vấn đề. Dù bạn đang viết code mới hay là debug code cũ, mục tiêu cuối cùng là làm nó hoạt động như ý muốn.
Vậy làm cách nào để bạn nâng cao kỹ năng giải quyết vấn đề?
Đầu tiên, bạn phải hiểu chính xác cần làm gì, những phần nào có liên quan.
Tìm hiểu tại sao vấn đề này đang xảy ra, sau đó thì bạn có thể gỡ rối dễ dàng.
Sửa đèn
Để minh họa, giả sử đèn có sự cố và bạn phải sửa nó.
Để khắc phục sự cố, đầu tiên bạn phải xác định được hành động cần được ưu tiên. Trong trường hợp này, khả năng nếu bạn bật công tắc thì nó sẽ sáng lại chăng?
Nếu điều này không xảy ra, bạn cần lần lượt kiểm tra từng bước trong quy trình để xác định xem lỗi là gì. Sau đây là các bước bạn có thể thực hiện:
- Bước 1: kiểm tra nhà có điện hay không, và ổ cắm điện có hư hỏng hay không
- Bước 2: kiểm tra liệu đèn có được cắm vào ổ cắm =))
- Bước 3: kiểm tra dây rợ và công tắc đèn có hoạt động hay không
- Bước 4: bật công tắc và kiểm tra xem bóng đèn có hoạt động hay là bị hỏng
Bằng việc kiểm tra từng bước một, bạn có thể sử dụng phương pháp loại trừ để thu hẹp và xác định thủ phạm của vấn đề.
Debugging: góc sáng tối trong cuộc đời của một developer
Tìm và fix bug thì rõ ràng là phức tạp hơn so với việc sửa bóng đèn rồi, nhưng cơ bản thì quy trình là như nhau.
Thành thực mà nói thì debug và fix lỗi là công việc cực kỳ nhàm chán và dễ gây nản. Không ít lần tôi dành cả ngày, thậm chí cả tuần cho một bug. Đó là phần tệ nhất trong đời dev.
Tuy nhiên, ở phía ngược lại là khi tìm ra giải pháp, bạn sẽ cảm thấy cực kỳ "phê", ít nhất là trong khoảnh khắc đó, phần tuyệt vời nhất trong đời dev.
Đừng xem nhẹ kỹ năng mềm
Developer giỏi nhất không chỉ giỏi code, mà còn hiểu được cái nhìn toàn cảnh và biết cách làm việc với mọi người.
6. Khả năng thấu cảm
Thấu cảm liên quan đến nhận thức và hiểu được cảm xúc, nhu cầu và quan điểm của người khác. Tóm lại là đặt bản thân vào vị trí của họ.
Khi bạn làm việc với người khác, chắc chắn sẽ có xung đột hoặc bất đồng, nhưng hãy cố gắng tránh nó, tránh việc nhận định và phán xét người khác.
Cố gắng trò chuyện và tìm hiểu khó khăn vướng mắc của người khác. Có thể là họ bận hoặc quên trả lời email của bạn. Có thể họ đã có một cuộc họp tồi tệ và trong lúc căng thẳng đã trả lời bạn bằng một câu gọn lỏn.
Tôn trọng
Ngoài việc bỏ đi lòng nghi ngờ, thấu cảm còn là khả năng nhận thức và tôn trọng công việc và hoàn cảnh của người khác.
Giả sử đồng nghiệp đang làm việc miệt mài vì deadline đang đến gần, vậy thì đừng phiền họ với những việc không liên quan và không thực sự cấp bách.
7. Luôn luôn chủ động
Theo quan điểm của tôi, chủ động và bị động là sự khác biệt giữa người thành công và người bình thường.
Người bị động sẽ làm việc khi được yêu cầu, nhưng không bao giờ làm nhiều hơn. Nếu có gì bất ổn thì họ sẽ fix, nhưng họ chẳng nghĩ đến việc phòng tránh nó. Họ không có cái nhìn toàn cảnh hay cách hệ thống vận hành. Suy nghĩ của người bị động: "Nếu việc đó chẳng ảnh hưởng đến tôi thì đó không phải vấn đề của tôi." Đó là suy nghĩ rất thiển cận.
Ngược lại, người chủ động không chỉ hoàn thành công việc, mà còn cải tiến nó. Khi có lỗi xảy ra, họ sẽ phân tích và tìm hiểu tại sao, luôn tìm cách để công việc trở nên hiệu quả hơn. Họ thấy bức tranh toàn cảnh, và sẵn sàng bỏ công sức để cải thiện nó.
Lời kết
Cảm ơn vì đã đọc những chia sẻ của tôi. Nếu bạn là một web developer mới vào nghề, tôi thật sự hy vọng rằng bạn sẽ tìm thấy đôi điều hữu ích.
All rights reserved