Tôi có nên chấp nhận một công việc nếu cần lập trình cặp? [đóng cửa]


28

Tôi đã được mời làm một công việc thú vị, nhưng có một sự cảnh báo lớn đối với tôi: họ sử dụng lập trình cặp.

Tôi ghét ý tưởng lập trình cặp và có lẽ tôi không phù hợp với nó: Tôi thích thường xuyên tạm dừng, tôi ghét phải xem ai đó lập trình (tôi sẽ liên tục chọc cặp đó để tự viết mã), tôi phải đầy đủ điều khiển máy tôi đang làm việc, tôi thích làm việc nghe nhạc và về cơ bản tôi không thích bị ràng buộc với người khác. Tôi thậm chí không phải là một người xã hội.

Tuy nhiên, tôi chưa bao giờ thực sự làm việc với lập trình cặp thực sự (ngoài vài lần trong một thời gian ngắn để giúp đỡ người khác hoặc cùng nhau giải quyết một nhiệm vụ phức tạp) ... vậy lập trình cặp có thực sự tệ đến vậy không? Và đưa ra thái độ của tôi, tôi nên từ chối công việc hay tôi nên rời bỏ công việc hiện tại và thử lại?


Đối với những người hỏi về nó: Tôi đang tìm kiếm một công việc mà thiết kế và phát triển chính thức được sử dụng, vì tôi ghét công việc hiện tại của mình, nơi chúng tôi đang "mã hóa trong tự nhiên". Công ty rất quan tâm đến hồ sơ kỹ thuật của tôi nên họ khăng khăng ngay cả khi tôi chỉ định tôi không bao giờ làm việc với lập trình cặp và tôi có lẽ sẽ không thích nó (ngoài việc là một lập trình viên cô đơn không thể chấp nhận được, tôi không thích và tin vào khái niệm lập trình cặp).


8
Chà, cá nhân bạn thậm chí không có chút hứng thú với nó, vì vậy tôi không nghĩ bạn nên làm điều đó trừ khi bạn muốn thử nó ở trường đại học cũ.
Paul Nathan

1
Tôi thấy một sự thỏa hiệp giữa tổng lập trình cặp và lập trình solo là một sự pha trộn tốt đẹp. Bạn nhận được lợi ích của một đôi mắt thứ hai nhưng cũng có được một số không gian và không gian để hít thở nửa còn lại của thời gian.
Chris

CNTT hữu ích khi bạn chưa quen với ngôn ngữ mã hóa đó ... bạn có thể nhận trợ giúp ngay lập tức .. bạn không cần đợi ppl trả lời Trên SO: P
GoodSp33d

4
@Lorenzo, cuối cùng bạn đã quyết định điều gì, và nó diễn ra như thế nào?
Stewol

5
@Benjol: Tôi đã thử trong vài tuần (tôi có thể giữ công việc hiện tại của mình ở chế độ chờ) và sau đó tôi nhận ra rằng tôi thực sự ghét lập trình cặp, vì vậy tôi đã quay lại công việc cũ của mình.
Wizard79

Câu trả lời:


16

Dựa trên những nhận xét khác nhau của bạn ở đây, bạn dường như có một quan điểm / khuynh hướng tương tự với bản thân tôi về chủ đề này. Và tôi đã có kinh nghiệm "Lập trình cặp". Và tôi chắc chắn sẽ không tham gia vào một công ty yêu cầu tôi cắn một con bọ cạp. :)

Những gì tôi muốn giới thiệu là: Đi với ruột của bạn.

Nếu công ty buộc bạn phải lập trình Ghép đôi và bạn biết bạn không muốn, đừng tham gia.

Nếu họ sẽ cho bạn cơ hội để chứng tỏ rằng bạn có thể tạo ra công việc tốt hơn nhanh hơn bất kỳ hai nhà phát triển hiện tại nào của họ kết hợp, hãy tiếp tục và chứng minh điều đó.

Trước khi bạn quyết định chắc chắn, tôi chắc chắn đồng ý với khuyến nghị mà bạn yêu cầu nói chuyện với các nhà phát triển hiện có ở đó và cảm nhận họ như mọi người. (Có lẽ tôi khuyên bạn nên cho bất kỳ công việc mới nào, bất kể phương pháp được sử dụng.)


30

Đoán xem - không ai thích lập trình cặp lúc đầu .

Khi tôi lần đầu tiên thử lập trình cặp, tôi đã phản đối ý tưởng này và tôi đã có vô số ý kiến ​​phản đối tương tự như của bạn. Tôi không thích xem người khác viết mã, tôi thích nghe nhạc, tôi cảm thấy mình sẽ nhanh chóng làm việc hơn, tôi không muốn dừng lại và giải thích bản thân liên tục, v.v.

Sau đó, tôi đã thử nó. Và đoán xem? Nó vẫn mút . Chúng tôi đã gặp phải tất cả các vấn đề - tôi muốn làm việc nhiều giờ với người khác, chúng tôi có các cài đặt bàn phím và phím tắt khác nhau , bàn của chúng tôi không hoạt động tốt cho lập trình cặp, v.v.

Điều này diễn ra trong khoảng một tuần. Trong tuần đó, chúng tôi đã viết lại toàn bộ hệ thống đăng nhập cũ cho một ứng dụng phân tán. Chúng tôi đã phải tìm hiểu làm thế nào một số vấn đề phân luồng khó khăn nghiêm trọng hoạt động, tìm ra cách hoạt động của các bồn rửa chén, thay đổi hàng tấn mã tấn để làm việc với mô-đun đăng nhập mới của chúng tôi và thực hiện một số mã hóa bận rộn nhất mà tôi phải làm sự nghiệp của tôi. Sau một tuần, chúng tôi đã triển khai nó .. và mọi thứ chỉ hoạt động . Không một lỗi nào . Không phải một .

Đó là khi tôi nghĩ rằng có thể có một cái gì đó vô nghĩa đối với lập trình cặp này. Chúng tôi bắt đầu làm nhiều chương trình cặp hơn. Chúng tôi thậm chí bắt đầu buộc mọi người phải làm việc theo cặp. Nó rung chuyển. Tôi có lẽ đã học được nhiều hơn trong một tháng làm điều đó hơn tôi đã làm trong 2 năm trước . Các vấn đề khác đã không biến mất. Đôi khi bạn sẽ bị mắc kẹt với một cặp mà bạn không thích. Điều đó sẽ xảy ra. Đôi khi bạn sẽ vật lộn để tìm giờ làm việc chồng chéo. Đôi khi bạn sẽ muốn tự làm việc. Nhưng những lợi thế của lập trình cặp chỉ là không thể tin được.

Kể từ đó, tôi đã luôn cố gắng thực hiện càng nhiều chương trình cặp càng tốt. Đó đơn giản là cách học tốt nhất. Công ty này buộc mọi người phải lập trình cặp? Tôi phải ký vào đâu đây? Dường như với tôi họ thực sự giác ngộ và bạn sẽ ở trong một môi trường làm việc thực sự căng thẳng. Tuyệt vời.

Đã nói rằng, hãy chắc chắn rằng các cặp được xoay thường xuyên. Bạn không muốn bị mắc kẹt khi phát triển với một nhà phát triển khác trong nhiều tháng - bạn sẽ mất trí. Chúng ta đều là con người. Ngoài ra, kiểm tra xem điều này đã được thực hành trong một thời gian. Nếu không, đó không phải là ngày tận thế, nhưng nếu đó là một thực tế được chấp nhận thì đó là một ánh sáng xanh khổng lồ.

Tin tôi đi, bạn muốn làm việc cho một công ty như thế.


5
Tôi sẽ đề nghị OP sẽ chỉ thành công ở một công ty như thế này nếu anh ta mở ra rằng anh ta không thực sự giỏi lập trình như anh ta nghĩ, và sau đó muốn tìm hiểu làm thế nào để tốt hơn.
dash-tom-bang

5
Về cơ bản họ nói với tôi câu chuyện chính xác của bạn. Mọi người ở đó rất ủng hộ và tôi thừa nhận rằng mã hóa theo cách đó - và cải thiện kỹ năng của bạn. Nhưng điều đó đã khiến tôi phát điên. Tôi không thể sống với tất cả các giới hạn đối với "tự do cá nhân" và "không gian sống" của mình (chọn thời gian, nghe nhạc, cấu hình bàn phím, bảng màu trong IDE, v.v.), vì vậy sau vài tuần tôi bỏ cuộc.
Wizard79

6
"Sau một tuần, chúng tôi đã triển khai nó .. và mọi thứ chỉ hoạt động. Không phải là một lỗi. Không phải là một lỗi.": Tôi chưa gặp phải sự khác biệt đáng kể về số lượng lỗi giữa việc sử dụng lập trình cặp và không sử dụng nó. Thảo luận về các điểm quan trọng với các đồng nghiệp của bạn và sau đó tự viết mã có thể có hiệu quả. Lập trình cặp là không có viên đạn bạc.
Giorgio

Gần đây tôi đã hoàn thành dự án đầu tiên của mình bằng cách sử dụng lập trình cặp với một nhà phát triển cao cấp hơn trong nhóm. Chúng tôi đã chia sẻ việc thí điểm và hợp tác thử nghiệm các nhiệm vụ phức tạp khá đồng đều và cả hai chúng tôi đã học được một vài điều từ nhau. Chúng tôi đã chia cho các nhiệm vụ tầm thường, trần tục hoặc "nồi hơi".
Dib

2
"Đoán xem - không ai thích lập trình cặp lúc đầu.": Đoán xem - tôi không thích nó sau khi thực hiện nó trong hai năm liên tiếp. Tôi rời công ty đó và trong công ty / nhóm mới của tôi không ai muốn làm lập trình cặp và tất cả chúng tôi đều rất hạnh phúc và làm việc hiệu quả hơn nhiều. Theo kinh nghiệm của tôi, lập trình cặp chỉ tốt cho đào tạo người mới bắt đầu, cho vi mô hoặc cho những người không thể tự làm việc.
Giorgio

18

Lập trình cặp là một công cụ tuyệt vời! Nó có thể hiệu quả hơn - hai cái đầu tốt hơn một - và một cách tuyệt vời để học các kỹ thuật mới. Tất nhiên, cũng có những lợi ích khác. Nhưng, nếu bạn không mua nó, thì bạn sẽ không nhận được gì từ nó. Với thái độ của bạn, có vẻ như bạn hoàn toàn không phù hợp với nó và nó có thể sẽ lãng phí thời gian. Có vẻ như tâm trí của bạn đã được tạo ra trước khi bạn thậm chí cho nó một shot.


7
Hai cái đầu cũng đắt gấp đôi, và đó là nhược điểm lớn =) Nhưng điều này liên quan đến công ty không phải bạn
Thomas Bonini

7
-1 Lập trình cặp có tuyệt vời không? Đó là điều tồi tệ nhất từng xảy ra trong cuộc đời làm việc của tôi!

4
Lập trình cặp nên được sử dụng trên các nhiệm vụ khó khăn. Đó là khi bạn tiết kiệm tiền và thời gian. Nếu không thì thật lãng phí. Tôi thích nó mặc dù.
Joe Phillips

3
Tôi nghĩ rằng nó cũng nên được sử dụng như một công cụ cố vấn cho "nhà kính" để giúp họ cho đến khi họ hiểu được mã hóa trong thế giới thực.
Muad'Dib

3
@Kop: Tôi không đồng ý. Mục tiêu của lập trình cặp chính xác là hai đầu cùng nhau tạo ra phần mềm tốt hơn so với hai đầu giống nhau, trong khi bắt đầu đắt như vậy. (Tất nhiên, đó là, nếu bạn không đạt được mục tiêu đó, thì nó không xứng đáng).
Sergio Acosta

10

Chúng ta hãy xem xét điều này từ một POV khác: do khuynh hướng của bạn, bạn có khả năng đang làm mất lòng tin đối với nhà tuyển dụng. Họ chắc chắn không muốn thuê một người "ghét" một trong những thực tiễn phát triển của họ. Bạn đã thông báo cho họ về quan điểm của bạn trong một môi trường hợp tác chặt chẽ như vậy? Nếu không, bạn có khả năng nói sai về bản thân.

Là một người sử dụng lao động, tôi sẽ khá nản lòng khi thuê một người biết, đến, rằng họ sẽ không hài lòng với các hoạt động phát triển mà chúng tôi đã áp dụng. Đó là một công thức cho sự bất mãn và thất vọng cho mọi người liên quan.


Chỉnh sửa Cho rằng họ hiểu bạn đến từ đâu (và sẵn sàng đưa bạn vào, như bạn đã đề cập trong nhận xét của mình), tại sao không thảo luận về cảm giác của bạn với một vài nhà phát triển trong công ty? Có thể họ sẽ có thể giải quyết bất kỳ mối quan tâm hoặc thành kiến ​​nào của bạn đối với PP. Điều quan trọng nữa là họ phải biết rằng bạn không mặn mà lắm với ý tưởng này vì bạn sẽ làm việc với họ toàn thời gian.

Nó cũng sẽ cung cấp cho bạn một cơ hội để tìm hiểu điều gì đó về những người bạn sẽ làm việc rất chặt chẽ.

Nếu mọi người ở trên tàu, tôi chắc chắn sẽ ủng hộ PP vì những lý do tương tự được đề cập trong các câu trả lời ở đây. Bạn có trách nhiệm ngay lập tức cho những gì bạn đang viết; một cặp mắt khác về mã của bạn có thể sẽ bắt gặp các khiếm khuyết hoặc các điểm rắc rối mà bạn có thể bỏ lỡ; bạn có được sự tiếp xúc tuyệt vời với quan điểm của người khác về mã hóa (và có thể cung cấp trải nghiệm của riêng bạn); và kết quả cuối cùng thường rất tốt hơn nhiều so với bạn mong đợi.

Tôi đánh giá cao sự thiên vị của bạn đối với PP; có những lúc tôi không muốn gì hơn là ngồi trước máy tính đập vào một vấn đề và PP trở nên bực bội (tôi cũng là một người hướng nội, điều đó có nghĩa là PP khiến tôi cảm thấy kiệt sức hơn vào cuối ngày) bởi vì ai đó luôn ở đó Điều này nói rằng, kết quả, theo kinh nghiệm của tôi, nói cho chính họ và tôi dễ hòa đồng hơn với nó một cách thường xuyên.


Tôi đã nói về nó với nhà tuyển dụng, và họ yêu cầu tôi thử.
Wizard79

2
@Lorenzo, tuyệt vời. Điều quan trọng là bạn phải thể hiện chính xác bản thân mình cho một nhà tuyển dụng và nếu họ sẵn sàng để bạn thử, thì đó là điều cần xem xét.
bedwyr

đó là lý do tại sao tôi đã không từ chối công việc, tuy nhiên việc rời bỏ công việc hiện tại vì một điều gì đó có lẽ tôi sẽ không thích làm tôi sợ hãi ...
Wizard79

8

Tôi đã thử lập trình cặp và ghét nó. Tôi chia sẻ gần như tất cả những nghi ngờ và lo lắng mà bạn đã bày tỏ chống lại nó. Tôi đã từ chức vì lý do này rất.

Lời khuyên cá nhân của tôi là luôn chống lại cặp đôi, và đưa ra thái độ của bạn, tôi khuyên bạn không nên thử.


4
+1 cho sự trung thực. :) Nó không dành cho tất cả mọi người, thực sự.
dash-tom-bang

2
@Wizard: Một số người thích lập trình cặp, tôi thì không. Tôi thích thảo luận về cấu trúc của mã trước, sau đó thực hiện mã hóa, sau đó thực hiện đánh giá mã. Điều này đặt một bộ lọc giữa tôi và các đồng nghiệp của tôi để chúng tôi chỉ trao đổi thông tin liên quan.
Giorgio

1
@Wizard: Tôi thấy với lập trình cặp bạn thảo luận về quá nhiều chi tiết không đáng kể: có rất nhiều tiếng ồn làm chậm quá trình suy nghĩ của bạn và khiến bạn kém hiệu quả hơn. Những người khác thấy nó kích thích và thích những phản hồi không có cấu trúc nhưng liên tục mà họ nhận được. Một số người nói tôi là người theo chủ nghĩa cá nhân, tôi phản đối rằng bạn có thể làm việc theo đội và vẫn được cấu trúc, giống như một đội bóng đá chiếm toàn bộ sân chơi thay vì đi tất cả nơi có bóng. Dù sao, tôi nghĩ đó là vấn đề làm thế nào mỗi lập trình viên làm việc và không phải tất cả các lập trình viên làm việc theo cùng một cách.
Giorgio

5

Tôi ghét ý tưởng lập trình cặp

...

Tôi chưa bao giờ thực sự làm việc với lập trình cặp

Bạn phải làm rõ điều đó trước.

Bạn không thể nói rằng bạn không thích một cái gì đó mà không thử nó. Tôi không thích nước sốt cà chua cho đến khi tôi thực sự nếm nó.


2
Sốt cà chua chỉ là súp cà chua không có gia vị ... Hoặc sốt cà chua không có đường và giấm. :)
greyfade

5
Tôi chưa bao giờ thử nó nhưng tôi biết ý tưởng và khái niệm về lập trình cặp và không thích nó. Bạn không thực sự phải bị bọ cạp cắn để biết bạn sẽ không thích điều đó!
Wizard79

1
Làm sao bạn biết điều đó? Bạn có thể thích bị bọ cạp cắn! ;)
Peter Boughton

Tôi chắc chắn rằng tất cả các bạn hiểu thông điệp

2
Pierre, có một sự khác biệt giữa sự hiểu biết và sự đồng ý, và chỉ vì bạn ngoại suy không chính xác cách thức nước sốt cà chua không có nghĩa là Lorenzo đang làm điều tương tự với Lập trình cặp. : P Chắc chắn, anh ta thể, chỉ có thể phụ thuộc vào những người anh ta làm việc với anh ta mà anh ta cảm thấy như vậy, nhưng chắc chắn có thể xác định liệu đó có phải là trường hợp không thực sự trải nghiệm lập trình cặp 'thật' hay không.
Peter Boughton

5

Bạn có vẻ như bạn chắc chắn không có tâm lý để làm lập trình cặp, nhưng thực tế là bạn đã hỏi câu hỏi sẽ khiến tôi tin rằng bạn đang giữ một tâm trí cởi mở với nó.

Tại sao không thẳng thắn với nhà tuyển dụng và cho anh ấy biết cảm giác của bạn. Nếu họ vẫn nghĩ bạn là ứng cử viên mà họ muốn thì bạn có thể đề nghị dùng thử 2 tuần (hoặc bất kỳ khoảng thời gian nào hoạt động) để xem cảm giác thân mật của bạn có hợp lệ hay không. Nếu nhà tuyển dụng từ chối, có vẻ như bạn không thực sự muốn công việc bắt đầu, vì vậy đó không phải là mất mát lớn. Nếu nhà tuyển dụng đồng ý thì ít nhất bạn sẽ biết chắc chắn cách này hay cách khác cho công việc tiếp theo.


1
Vâng, tuy nhiên vấn đề là tôi có một công việc lâu dài toàn thời gian trong công ty lớn nhất của Ý, vì vậy tôi sẽ không rời bỏ công việc đó "chỉ để thử" ngay cả khi công việc hiện tại bị mất ...
Wizard79

3
Không, tôi cũng không muốn làm điều đó.
Walter

4

Gần đây tôi đã đi đến một khóa rút mã lập trình cặp. Tôi không sử dụng nó trong công việc và rất mới với nó. Tôi giống như bạn theo nghĩa là tôi muốn có quyền điều khiển máy của chính mình. Một số lập trình viên đã lập trình cặp rất nhiều nhấn mạnh rằng lập trình cặp cải thiện đáng kể các kỹ năng mã hóa của một người vì bạn nhận được phản hồi liên tục, mã của bạn đang được xem xét một cách nhất quán và bạn sẽ ít viết mã hacky hơn. Tôi đồng ý với thực tế rằng đó là một thay đổi đáng kể cho một người chưa bao giờ lập trình cặp trước đó. Tuy nhiên, thật khó để có một ý kiến ​​mạnh mẽ về vấn đề này trừ khi bạn thử nó trong một khoảng thời gian dài.


2
Khi tôi phải hỗ trợ đồng nghiệp, hoặc thậm chí ở bên cạnh anh ta trong vài phút, tôi phải giữ kín miệng, nếu không tôi sẽ bắt đầu chỉ trích từng dòng mã ...
Wizard79

@Lorenzo vậy bạn có thể đưa ra lời chỉ trích nhưng không nhận được không?
dash-tom-bang

@ dash-tom-bang: thực ra tôi chỉ tránh đưa ra lời chỉ trích, hoặc tôi sẽ chỉ trích mọi dòng mã ...
Wizard79

2
Nếu đạt được những lời chỉ trích của bạn sẽ làm cho mã tốt hơn đáng kể, bạn nên cung cấp cho họ. Nếu đề xuất của những lời chỉ trích của bạn không có tác động tích cực thì bạn nên tìm hiểu lý do tại sao bạn cảm thấy bắt buộc phải thực hiện chúng.
dash-tom-bang

3

Tôi hơi bị bệnh. Tôi ghét ý tưởng của bất cứ ai chạm vào chuột và bàn phím của tôi. Tôi ghét ý tưởng chạm vào chuột và bàn phím của người khác. Tôi đi một quãng đường dài quanh chu vi của khu phức hợp văn phòng thay vì đi qua sân để đến quán ăn chỉ để tôi không phải chạm vào bất kỳ tay nắm cửa nào.

Mặt khác, tôi thích khái niệm lập trình theo cặp. Tôi có thể học được điều gì đó thú vị. Hoặc tôi có thể hướng dẫn. Dù bằng cách nào, nó sẽ là một kinh nghiệm tốt.

Đề xuất của tôi (cho bản thân tôi): làm lập trình cặp từ xa. Sử dụng Office Live Meet và chia sẻ màn hình của bạn. Dude ở lại bàn của anh ấy, tôi ở lại của tôi.


Tại sao không chỉ mang theo chuột và bàn phím của riêng bạn? Hoặc để hai móc nối với cùng một máy?
Alex Feinman

1
@Alex, có thể. Nhưng tôi thường cảm thấy toàn bộ không gian làm việc đã bị ô nhiễm. Đừng hỏi tôi tại sao. Nếu bạn có thể giải thích sự điên rồ, nó sẽ không điên rồ.
Anthony Pegram

3
Reaaaaaly cáp USB dài? :)
Alex Feinman

1
Nhưng điều này vẫn đòi hỏi hai người phải liên tục đồng bộ, điều mà tôi thực sự không thích.
Wizard79

2

Có cách nào bạn có thể thực hiện một số lập trình cặp một cách độc lập, để có cảm giác tốt hơn về nó không? Dường như có những người thích lập trình cặp và những người không, và trước khi làm một công việc sử dụng lập trình cặp, bạn thực sự muốn có cảm giác bạn có thể làm được.

Thay phiên, bạn có thể nói chuyện với người quản lý tuyển dụng, hoặc ai đó ở vị trí tương tự, và nói chuyện này qua. Họ có thể đã sử dụng cho một người không lập trình cặp. Họ có thể có kinh nghiệm với những người cảm thấy tiêu cực về lập trình cặp. Nói với người quản lý lý do tại sao bạn không thoải mái với lập trình cặp, nhưng nhấn mạnh rằng bạn không có kinh nghiệm và rất quan tâm đến công việc.

Ngay bây giờ, bạn đang ở vị trí đàm phán tốt nhất có thể với công ty: họ đã đề nghị và bạn chưa chấp nhận. Công ty có mối quan tâm đến việc thuê bạn, và rất khó có thể bỏ rơi bạn chỉ vì bạn cần nói chuyện với ai đó trong công ty trước.


0

Nếu bạn đã biết công nghệ, bạn sẽ ghét nó. Nhưng nếu bạn không biết công nghệ, bạn sẽ học nó bằng PP. Nếu bạn không biết điều đó và bạn không làm PP, thì bạn sẽ chỉ ngồi đó và không làm gì cả.

Trường hợp xấu nhất có thể là nếu cả hai bên đều biết điều đó và nó biến thành một cuộc đua hoặc một cuộc thi đầy giận dữ.


2
Xin chào oregon111, thật tuyệt khi bạn đang cố gắng trả lời các câu hỏi, nhưng bạn đã chọn một thẻ xấu để trả lời các câu hỏi trong: thẻ [công việc] thường chứa rất nhiều câu hỏi xấu mà chúng tôi chưa có được để đóng. Thay vì cố gắng trả lời các câu hỏi đã chết trong một thẻ cụ thể, hãy xem xét việc xem xét các câu hỏi mới nhất đến và xem câu hỏi nào bạn có thể trả lời.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.