Cộng tác và làm việc nhóm
Là một chuyên gia trong ngành web, bạn sẽ phải làm việc cùng người khác trong các dự án qua nhiều giai đoạn khác nhau — từ brainstorm ý tưởng, viết đề xuất, triển khai mã, và nhiều hơn nữa.
Trong các nhóm phát triển web, sự cộng tác (collaboration) thường diễn ra thông qua các công cụ như hệ thống kiểm soát phiên bản (version control) (ví dụ: Git và GitHub). Các lập trình viên thường làm việc trên các bản sao riêng của một dự án, xem xét mã của nhau, và thảo luận về các thay đổi thông qua bình luận. Quy trình làm việc như vậy giúp nhóm phát hiện lỗi sớm, duy trì chất lượng mã, và đảm bảo mọi người đều hiểu các thay đổi đang được thực hiện.
Bài viết này xem xét cách làm việc hiệu quả cùng người khác.
| Điều kiện tiên quyết: | Không có |
|---|---|
| Mục tiêu học tập: |
|
Làm việc cùng người khác
Là lập trình viên web, bạn sẽ phải dành nhiều thời gian làm việc với đồng nghiệp, dù bạn đang đi làm hay học tập. Đồng nghiệp hoặc bạn học của bạn có thể là sự hỗ trợ vô cùng quý giá cho việc học tập của bạn, như chúng tôi đã đề cập lần đầu trong Nghiên cứu và học tập, và bạn ít nhất nên đảm bảo rằng bạn hòa hợp với họ ngay từ đầu.
Điều quan trọng là đối xử với mọi người với sự đồng cảm và tôn trọng tương tự như bạn mong muốn được đối xử. Mỗi người có những yêu cầu khác nhau về cảm xúc, xã hội, v.v., nhưng ở mức cơ bản bạn nên lịch sự, tôn trọng và hợp tác trong tất cả các tương tác.
Tham gia mạng lưới cộng đồng
Ngành web có tinh thần cộng đồng mạnh mẽ, nghĩa là bạn sẽ thường xuyên tương tác với những người bên ngoài nhóm làm việc hoặc học tập trực tiếp của bạn để thảo luận về các chủ đề quan tâm hoặc giải quyết vấn đề. Ngành web có các không gian trực tuyến riêng, chẳng hạn như các diễn đàn (ví dụ: máy chủ Discord), kênh Slack, v.v. Nó cũng có nhiều sự kiện gặp mặt trực tiếp, từ các hội nghị lớn đến các buổi gặp mặt địa phương nhỏ hơn.
Bạn nên tham gia vào một số nhóm đó, chào hỏi, làm quen với mọi người, chia sẻ tài nguyên, đặt câu hỏi và đề nghị giúp đỡ. Việc làm quen với mọi người trong cộng đồng có nhiều lợi ích — bạn sẽ:
- Gặp các mối liên hệ hữu ích có thể trở thành bạn bè hoặc đồng nghiệp hay nhà tuyển dụng trong tương lai.
- Học các kỹ thuật và công nghệ mới và nhận được sự giúp đỡ với các vấn đề kỹ thuật của bạn.
- Thực hành giải thích cách mã hoạt động và trả lời câu hỏi của người khác.
- Tìm hiểu về tài nguyên, các buổi gặp mặt và tin tức ngành.
- Gặp các quảng cáo tuyển dụng.
- Tìm thông tin về các công ty mà các thành viên cộng đồng khác làm việc, điều này cũng có thể có lợi cho việc tìm hiểu thị trường việc làm và xác định nơi bạn muốn làm việc.
Dưới đây là một số ý tưởng ban đầu về cách tham gia vào một số mạng lưới cộng đồng:
- Nghiên cứu khu vực địa phương của bạn, xem có nhóm gặp mặt trực tiếp nào ở địa phương không, và tham gia một số. Bạn có thể tìm kiếm sự kiện bằng các trang web như Meetup.com hoặc Eventbrite.
- Xem các tài nguyên như confs.tech để tìm các hội nghị công nghệ quan tâm. Nếu chúng nằm ngoài ngân sách của bạn, hãy thử liên hệ với ban tổ chức để xem bạn có thể làm tình nguyện viên tại hội nghị không — bạn vẫn có thể tham dự và gặp gỡ nhiều người.
- Diễn đàn freeCodeCamp là một nơi tuyệt vời khác để đặt và trả lời câu hỏi.
- Xem máy chủ Discord Frontend Developers.
- Tham gia máy chủ Discord của MDN.
- Tham gia kênh IRC thân thiện hướng đến lập trình viên như Libera.Chat.
- Đối tác học tập của chúng tôi, Scrimba, cung cấp trải nghiệm cộng đồng và cộng tác mạnh mẽ qua máy chủ Discord của họ, nhằm giúp học viên có kinh nghiệm làm việc với người khác.
- Tìm các lập trình viên web trên mạng xã hội, xem họ đang nói gì và tham gia vào các cuộc trò chuyện.
Nếu bạn không chắc cách tham gia, bạn có thể bắt đầu bằng cách đọc các chủ đề hiện có và quan sát cách những người có kinh nghiệm tham gia vào các cuộc thảo luận.
Note: Hầu hết các cộng đồng đều xuất bản một tài liệu gọi là Quy tắc ứng xử (hay hướng dẫn tham gia) xác định kỳ vọng của họ về hành vi của những người tham gia vào dự án của họ. Các hướng dẫn này thường bao gồm định nghĩa về hành vi được coi là không được chấp nhận, hậu quả của hành vi không được chấp nhận, và cách báo cáo hành vi không được chấp nhận. Ví dụ, MDN được điều chỉnh bởi Hướng dẫn tham gia cộng đồng Mozilla rộng hơn.
Giúp đỡ người khác, đặt câu hỏi
Nếu một đồng nghiệp hoặc liên hệ trong mạng lưới đang gặp khó khăn, hãy đề nghị giúp đỡ họ. Các lập trình viên web cung cấp sự giúp đỡ có nhiều khả năng xây dựng mối quan hệ bền vững và nhận được sự giúp đỡ ngược lại.
- Nếu bạn đã có kinh nghiệm trong lĩnh vực họ đang gặp khó khăn, hãy chia sẻ kiến thức hoặc ví dụ mã với họ. Hành động giải thích điều gì đó sẽ cải thiện sự hiểu biết của chính bạn, giúp bạn học được nhiều hơn.
- Nếu bạn có ý tưởng về nơi họ có thể tìm thấy một số câu trả lời hữu ích, hãy giúp họ nghiên cứu.
- Ngay cả khi bạn không chắc câu trả lời là gì, hãy đề nghị nghỉ ngơi cùng họ và lắng nghe trong khi họ giải thích vấn đề. Bạn có thể có một số hiểu biết hữu ích, và hành động giải thích vấn đề có thể giúp họ tự tìm ra giải pháp (xem Nghỉ giải lao và kỹ thuật vịt cao su).
Luôn nghiêng về phía giúp đỡ đồng nghiệp ngay lập tức, thay vì chờ giáo viên hoặc lập trình viên cấp cao đến giúp mọi người. Những đồng nghiệp kém hơn sẽ nhận được sự giúp đỡ nhanh hơn, và những đồng nghiệp giỏi hơn sẽ trở thành người cố vấn (mentor) và trải nghiệm sự thỏa mãn mà điều đó mang lại.
Có một nghệ thuật trong việc đặt câu hỏi và trả lời câu hỏi. Điều cần thiết là thực hành đặt đúng câu hỏi để tìm hiểu những gì bạn cần biết, và giải thích những gì bạn đang làm khi người khác hỏi bạn. Nếu bạn không giỏi làm điều này, hãy hỏi đồng nghiệp xem bạn có thể thiết lập các buổi học với họ không, nơi họ đặt câu hỏi và bạn giải thích cách mã của bạn hoạt động, và ngược lại.
Đánh giá ngang hàng (peer reviews) cũng là một nơi tốt để thực hành điều này (xem bên dưới).
Xuất bản công việc của bạn
Nhìn chung, việc xuất bản công việc của bạn là rất có giá trị, bao gồm mã nguồn, bài học đã học, những gì thách thức, v.v. Đồng nghiệp của bạn sẽ thấy điều này rất hữu ích, và cộng đồng rộng lớn hơn cũng vậy.
Khi bạn tìm thấy một câu trả lời hữu ích, hãy viết về nó. Đặt mã của bạn trên một trang mạng xã hội về lập trình như GitHub hoặc GitLab, và viết suy nghĩ của bạn trên một blog. Chia sẻ các bài đăng của bạn qua mạng xã hội.
Không chỉ quá trình viết lách sẽ làm rõ các khái niệm cho bạn, mà bạn còn nhận được xác nhận và/hoặc phản hồi (feedback) từ cộng đồng. Nó có thể giúp bạn bắt đầu tạo dựng tên tuổi trong ngành.
Ngay cả khi bạn nghĩ những thành tích của mình là tầm thường, bạn có thể biết nhiều hơn bạn nghĩ, và sẽ luôn có ai đó ở giai đoạn trước trong hành trình làm chủ lập trình sẽ thấy công việc của bạn hữu ích.
Tham gia vào mã nguồn mở
Một cách khác để kết bạn và gây ảnh hưởng là tìm các dự án mã nguồn mở (open source) và đề xuất cập nhật để sửa các vấn đề trong công việc của người khác. Miễn là bạn lịch sự và tôn trọng, và giải thích các thay đổi và lý do đằng sau chúng, chủ dự án sẽ rất biết ơn đóng góp của bạn. Các bản cập nhật của bạn cũng sẽ cung cấp cho bạn kinh nghiệm và thực hành quý giá.
Ví dụ, mã nguồn của MDN có sẵn trên GitHub, và chúng tôi có nhiều vấn đề mà bạn có thể làm việc trên đó. Có rất nhiều Tài nguyên cộng đồng trên MDN mô tả dự án và đóng góp vào nó trông như thế nào.
Nếu bạn không chắc mã nguồn mở là gì và tại sao hoặc cách bắt đầu đóng góp, cả hai tài liệu sau đây đều thực sự hữu ích:
Làm việc nhóm và đánh giá ngang hàng
Bạn thường sẽ được yêu cầu làm việc trong một nhóm với các lập trình viên khác, với các thành viên nhóm khác nhau thực hiện các chức năng khác nhau trong nhóm. Chúng tôi sẽ xem xét các vai trò khác nhau bạn sẽ gặp và các chiến lược làm việc phổ biến trong Quy trình và tiến trình làm việc, nhưng hiện tại, hãy nghĩ về ý nghĩa của việc làm việc trong một nhóm:
- Cùng sở hữu dự án bạn đang làm việc — cả thành công lẫn thất bại.
- Làm việc cùng nhau để lên kế hoạch không chỉ những gì bạn sẽ làm, mà cả cách bạn sẽ làm việc cùng nhau để đạt được mục tiêu. Bạn sẽ sử dụng quy trình nào? Làm thế nào bạn sẽ đo lường thành công? Bạn có bao nhiêu thời gian; mục tiêu nào cần được đạt được, và khi nào?
- Giao tiếp thường xuyên và cởi mở để đảm bảo các vấn đề được phát hiện sớm, và mọi người đều biết chuyện gì đang xảy ra.
- Thể hiện sự đồng cảm với các thành viên nhóm khác mọi lúc, nhưng đặc biệt khi mọi thứ không diễn ra như kế hoạch và cần điều chỉnh.
- Giúp đỡ nhau để thành công.
Ngay cả khi bạn không thực hiện một dự án làm việc thực sự — bạn có thể đang thực hiện một dự án mô phỏng của đại học, hoặc làm việc trên dự án sở thích của riêng bạn — bạn nên thực hành chạy nó như một dự án phần mềm thực sự, với lịch trình, kế hoạch và trách nhiệm. Tìm hiểu về các chu kỳ phát triển phần mềm điển hình. Nắm vững một số kỹ năng và công cụ lập kế hoạch dự án cơ bản để có thể ước tính và lên kế hoạch công việc của bạn.
Cũng là một ý tưởng tốt để bắt đầu thực hiện đánh giá ngang hàng (peer reviews) — đồng nghiệp sẽ xem xét công việc của nhau và cung cấp phản hồi về cách cải thiện. Các lĩnh vực được xem xét có thể bao gồm chất lượng mã chung và tuân thủ hướng dẫn phong cách mã, hiệu suất, tuân thủ thực hành tốt nhất, khả năng sử dụng và chất lượng tài liệu. Bạn có thể hưởng lợi rất nhiều, dù bạn là người đánh giá hay người được đánh giá:
- Nếu bạn đang xem xét công việc của người khác, hãy cố gắng cung cấp sự cân bằng giữa khuyến khích và khen ngợi công việc tốt, và phản hồi mang tính xây dựng. Thực hành cách đưa ra phản hồi đó một cách xây dựng và tôn trọng. Ngay cả khi chúng có vẻ tầm thường, hãy luôn đặt ra một hoặc hai câu hỏi khi thảo luận hoặc đánh giá công việc của đồng nghiệp.
- Nếu công việc của bạn đang được đánh giá, hãy cố gắng không tiếp nhận lời phê bình một cách cá nhân, và tập trung vào những điểm tích cực và những gì bạn có thể học. Hãy giả định thiện chí tốt nhất từ người đánh giá của bạn — họ chỉ đang cố gắng giúp đỡ.
Học cách đón nhận thất bại
Một lý do phổ biến khiến học sinh và lập trình viên mới tránh né việc thử nghiệm và chấp nhận rủi ro (ví dụ: khi bắt đầu các dự án mới hoặc khám phá các ý tưởng mới) là nỗi sợ thất bại và cách nó có thể bị đồng nghiệp hoặc thành viên nhóm đánh giá. Bạn nên dành một chút thời gian suy ngẫm về những sai lầm và xác định những bài học họ cung cấp.
Thất bại thực sự chỉ là một bước nhỏ trên con đường dẫn đến thành công. Tất cả những lập trình viên thành công nhất đều đã thất bại nhiều lần, và không phải thất bại thực sự quan trọng, mà là cách bạn xử lý thất bại đó và những bài học bạn học được từ nó.
Dưới đây là một số mẹo thực tế để giúp tạo ra môi trường an toàn để học hỏi từ thất bại:
- Xác định một không gian/nhóm bạn bè an toàn nơi mọi người tự do đặt câu hỏi — hãy nhớ rằng không có "câu hỏi ngu ngốc", chỉ có những người không đặt câu hỏi. Nuôi dưỡng văn hóa nơi đồng nghiệp hỗ trợ lẫn nhau và thất bại không bị đánh giá khắt khe.
- Nhìn vào mạng lưới của bạn và cố gắng tìm các nhóm trực tuyến hoặc trực tiếp có thể cho bạn sự giúp đỡ và lời khuyên hoặc đang đối mặt với những vấn đề tương tự bạn đang gặp và có thể cung cấp hỗ trợ tinh thần hoặc thử nghiệm cùng nhau.
- (Đối với nhà giáo dục) Thiết lập các sơ đồ chấm điểm cho bài đánh giá của bạn để bạn vẫn có thể đạt được một số điểm hợp lý ngay cả khi bạn không có kết quả đúng miễn là quy trình được ghi lại tốt. Thưởng thêm điểm cho sự sáng tạo.
- Tổ chức các buổi trình bày hoặc gặp mặt một-một giữa dự án với đồng nghiệp và người cố vấn để nhận phản hồi và hiểu biết về những gì bạn đang làm sai và nhận lời khuyên về cách đi đúng hướng.
- Tổ chức các cuộc họp hồi tưởng để phân tích các dự án, nhìn lại những gì không diễn ra tốt, và thảo luận về cách cải thiện lần sau.