Lập trình đôi: Phương pháp giúp boost khả năng lập trình hiệu quả

0 0 0

Người đăng: Hoàng Quang

Theo Viblo Asia

image.png

(Hình mang tính chất minh họa thôi các bạn nhé. dân IT chúng ta ôm keyboard chứ không ôm nhau 😎)

Các bạn đã bao giờ nghe đến thuật ngữ lập trình đôi (pair programming) chưa?

Trước hết các bạn hãy thử xem xét tình huống sau: Bạn đang học lập trình. Bạn có 1 người bạn, có thể là bạn học ở trên trường hoặc là bạn bè bình thường, cũng đang học lập trình. Bất kể là trình độ lập trình của 2 bạn còn yếu, hay 2 bạn đã khá vững tay rồi, hoặc là 1 trong 2 người lập trình tốt hơn người còn lại, và 2 bạn đang muốn cải thiện khả năng lập trình của mình. Lúc này chúng ta nên làm gì? Nếu trong học hành truyền thống, chúng ta gọi việc 2 hay nhiều người ngồi học cùng nhau là học nhóm, thì trong lập trình, ta có 1 khái niệm gần tương tự như vậy, gọi là lập trình đôi Đây là một kỹ thuật phát triển phần mềm trong đó hai lập trình viên làm việc cùng nhau trên cùng 1 đoạn code. 2 người có thể ngồi cạnh nhau, làm việc trên cùng 1 chiếc máy tính hoặc ngồi cách nhau cả nghìn cây số và làm việc cùng nhau qua hình thức online. Một người đóng vai trò là "người lái" (driver), trực tiếp lập trình, trong khi người kia là "người quan sát" (observer), theo dõi những dòng code, đưa ra ý kiến, và xác định các lỗi tiềm ẩn. 2 vai trò này thường xuyên được hoán đổi giữa 2 người. Hiện tại ngay trong team mình, bọn mình cũng khá thường xuyên áp dụng lập trình đôi trong quá trình xây dựng các pipeline để triển khai các mô hình Deep Learning, và việc này giúp cho bọn mình tăng hiệu suất làm việc rất nhiều Kỹ thuật này được áp dụng rất nhiều trong môi trường làm việc thực tế ở các công ty, nhưng trong môi trường học thuật, mà cụ thể là ở các trường đại học cũng như là cao đẳng thì kỹ thuật này vẫn còn khá là xa lạ và ít được sử dụng bởi các bạn sinh viên. Nếu có 1 project nào đó yêu cầu làm việc nhóm, thường là mỗi bạn trong nhóm sẽ đảm nhận 1 module, rồi đến cuối mọi người sẽ ghép các module lại với nhau. Vậy so với cách tiếp cận mạnh ai nấy chơi này, lập trình đôi mang lại những lợi ích gì?

🔥Lợi ích 1: Cải thiện chất lượng của code

Việc 2 người cùng làm việc trên 1 đoạn code sẽ giúp phát hiện lỗi sớm hơn. 2 cái đầu thì luôn tốt hơn 1 cái đầu. Việc có thêm 1 đôi mắt nhìn vào những dòng code sẽ giúp phát hiện lỗi sớm hơn, tốt hơn cũng như có thêm phương án để xử lý lỗi. Tất cả những điều này sẽ giúp cho chất lượng của những dòng code được nâng cao. Ngoài ra, việc hợp tác giữa 2 lập trình viên cũng thường dẫn đến các giải pháp sáng tạo và hiệu quả hơn cho các vấn đề, do cùng 1 vấn đề sẽ được xem xét và phân tích từ các góc nhìn khác nhau. Các giải pháp để xử lý lỗi sẽ được cả 2 đưa ra thảo luận và đánh giá trước, thay vì chỉ được xem xét sau khi quá trình lập trình đã hoàn tất

🔥Lợi ích 2: Chia sẻ kiến thức và học hỏi lẫn nhau

Trong quá trình lập trình đôi, 2 người có thể học hỏi kiến thức và kinh nghiệm của nhau. Kể cả khi 1 trong 1 người có kỹ năng lập trình tốt hơn người còn lại thì họ cũng có thể học hỏi những thứ nhất định từ người đó. Mình sẽ lấy 1 ví dụ khi mình lập trình đôi cùng 1 bạn đồng nghiệp mới ra trường người Ấn Độ ở công ty hiện tại. Bạn ấy lập trình chưa được vững tay lắm, nhưng bù lại bạn ấy biết khá nhiều thư viện thú vị và hữu ích, giúp làm giảm những bước phải làm thủ công. Nếu mình ngồi code 1 mình thì sẽ có rất nhiều hàm mình phải tự thiết kế, trong khi nếu bạn ấy ngồi code 1 mình thì bạn ấy sẽ mất nhiều thời gian để code. Còn khi bọn mình kết hợp lại với nhau thì task được giải quyết gọn gàng, mình biết được thêm các thư viện thú vị, còn bạn ấy học được cách viết code cho mô hình AI

🔥Lợi ích 3: Giúp cải thiện khả năng giao tiếp và kỹ năng làm việc nhóm

1 trong số các điểm yếu cố hữu của sinh viên IT khi vừa mới ra trường là khả năng giao tiếp và kỹ năng làm việc nhóm. Nguyên nhân là do trong suốt những năm tháng ngồi trên giảng đường, các bạn sinh viên chủ yếu là làm việc độc lập, ít phải phối hợp hay cộng tác với người khác. Việc phải thường xuyên trao đổi, thảo luận với partner trong quá trình lập trình đôi sẽ giúp các bạn cải thiện cả 2 nhược điểm trên

🔥Lợi ích 4: Tăng cường sự tập trung và năng suất

Khi lập trình 1 mình, chúng ta thường bị phân tâm bởi những thứ xung quanh. Ví dụ như ngồi code được 1 lúc thì lại quay sang lướt facebook, đá qua tiktok, xem review phim trên Youtube. Khi lập trình đôi, cả 2 sẽ tự nhiên kỷ luật hơn, cùng nhau tập trung hơn vào đoạn code, từ đó dẫn đến năng suất cao hơn Ngoài ra, lập trình đôi cũng giúp cho công việc ngồi gõ code trở nên bớt nhàm chán và đơn điệu hơn, từ đó giúp cho chúng ta có động lực và tập trung hơn Sau khi đã nói về những lợi ích của lập trình đôi, giờ chúng ta hãy cùng nói về việc, làm cách nào để có thể thực hiện lập trình đôi 1 cách hiệu quả nhất

💥Yêu cầu 1: Giao tiếp thường xuyên

Có 1 sai lầm phổ biến cho những cặp mới thực hành lập trình đôi, đó là ông ngồi gõ code thì không nói gì, trong khi ông quan sát thì nói liên tục. Điều này là không nên. Kể cả khi bạn là driver - người chịu trách nhiệm gõ code, thì mỗi khi các bạn code, các bạn cũng nên nói về ý tưởng và suy nghĩ của bạn, từ đó giúp cho người còn lại không phải đoán ý của bạn. Hãy cố gắng đừng để quá trình lập trình đôi diễn ra trong im lặng

💥Yêu cầu 2: Cân bằng thời gian lập trình giữa 2 người

Đừng bao giờ để thời gian lập trình của 2 người quá lệch nhau, kể cả khi 1 trong 2 người lập trình kém hơn người còn lại. 1 quan niệm sai lầm của những người mới thực hiện lập trình đôi là ông nào code giỏi hơn thì sẽ code nhiều hơn. Điều này hoàn toàn không đúng. Quá trình lập trình đôi, ngoài việc giúp làm tăng tốc độ và hiệu quả của công việc, nó còn có mục đích là giúp cải thiện khả năng lập trình của cả 2 người, đặc biệt là người kém hơn. Vì sao lại vậy? Vì nếu người lập trình kém có thể cải thiện khả năng lập trình của họ, thì những lần sau khi lập trình đôi, tốc độ và hiệu quả làm việc của cả 2 người sẽ tăng theo. Bạn cứ thử nghĩ mà xem, 2 người chạy cùng nhau nhanh hơn hay là 1 người cõng người còn lại chạy nhanh hơn?

💥Yêu cầu 3: Giảm bớt cái tôi của bản thân

Khi lập trình 1 mình, bạn là bố thiên hạ, là mẹ thiên nhiên, bạn được toàn quyền quyết định xem code cái gì, code như thế nào. Nhưng khi lập trình đôi, mọi quyết định đưa ra đều cần phải có sự đồng thuận đến từ cả 2 bên. Nếu 1 trong 2, hoặc cả 2 người có cái tôi quá cao, không chấp nhận lắng nghe ý kiến của người khác, thì việc lập trình đôi sẽ phản tác dụng. Do đó việc hạ bớt tông giọng, hạ bớt cái tôi cũng như biết lắng nghe là những yêu cầu tiên quyết để đảm bảo quá trình lập trình đôi diễn ra hiệu quả

💥Yêu cầu 4: Giữ bầu không khí vui vẻ

Trong quá trình lập trình đôi, không khí làm việc quan trọng không kém gì kỹ năng chuyên môn. Để giúp cho bầu không khí làm việc luôn tích cực, cả 2 người nên cố gắng hỗ trợ và động viên lẫn nhau. Đồng thời, đối với người quan sát, nên tránh việc bắt những lỗi nhỏ vụn vặn, ví dụ như là thiếu dấu chấm phẩy quá thường xuyên mà hãy để cho partner của mình có thời gian tự nhận ra và sửa những lỗi đơn giản

Mình hi vọng những chia sẻ trên có ích với các bạn đang học lập trình và muốn cải thiện khả năng code của mình 😎

Bình luận

Bài viết tương tự

- vừa được xem lúc

Con đường mình trở thành Software Engineer ở Singapore

Chào các bạn, lại là mình đây . Goodbye 1 năm với cuộc sống chỉ là Work from Home, chúc cho các bạn đọc của mình 1 năm mới với nhiều điều tuyệt vời mới mẻ, sức khoẻ dồi dào và nhiều thành công .

0 0 40

- vừa được xem lúc

Nếu biết trước mình là lập trình viên, thì quay lại thời học sinh mình sẽ chuẩn bị gì ?

Nếu biết trước mình là lập trình viên, thì quay lại thời học sinh mình sẽ chuẩn bị gì . Do dạo gần đây khá nhiều những người quen của mình, cô chú bác có con còn học cấp ba muốn định hướng sau này cho

0 0 37

- vừa được xem lúc

Những sai lầm mình gặp phải khi làm Dev

Hello các bạn lại là mình đây,. Lâu lắm mới lại được ngồi viết blog, ngồi chia sẻ với các bạn những gì mình học được trong quãng thời gian vừa qua.

0 0 30

- vừa được xem lúc

Pet project - những lợi ích và câu chuyện bản thân

Pet project (hay side project), một từ mà dân code chúng ta ít nhiều cũng đã nghe qua hoặc đã từng làm dăm ba cái để rèn luyện kỹ năng hay tiếp cận những công nghệ mới. Chủ đề này có lẽ đã được anh Ho

0 0 67

- vừa được xem lúc

Có cần cưng chiều params trong function quá không ? Liệu bạn có quá hửng hờ cô nàng unit test không?

[GÓC DEV GÀ]. [Lưu ý: Đây là bài viết dành cho các bạn mới học mới làm dev, nên các anh chị cũng hoan hỷ, vui vẻ đọc coi như giải trí thôi nhá ].

0 0 33

- vừa được xem lúc

Những sai lầm tôi mắc phải khi là một lập trình viên mới bắt đầu (P1)

Hãy để tôi làm rõ một điều đầu tiên. Nếu bạn là một lập trình viên mới bắt đầu, bài viết này không nhằm mục đích khiến bạn cảm thấy tồi tệ về những sai lầm mà bạn có thể mắc phải mà là để giúp bạn nhậ

0 0 23