Yêu cầu một mẫu mã của công ty tại một cuộc phỏng vấn [đóng]


69

Yêu cầu người tìm việc hiển thị một số mã là một cách làm khá phổ biến đối với một công ty phần mềm. Tuy nhiên, liệu có thể chấp nhận được khi ứng viên yêu cầu người phỏng vấn chỉ cho anh ta một đoạn mã nhỏ mà anh ta nghĩ là được viết tốt?


14
Tôi muốn hỏi về các tiêu chuẩn mã hóa, đánh giá mã, v.v.
user16764

5
Công ty có vượt qua "bài kiểm tra Joel" không: joelonsoftware.com/articles/fog0000000043.html
Martin York

2
@LokiAstari bài kiểm tra joel không liên quan trực tiếp đến văn hóa mã hóa (chỉ môi trường làm việc).
Simon Bergot

8
@ user16764 giống như đặt câu hỏi lý thuyết cho ứng viên: đó là bước đầu tiên tốt, nhưng nó không thực sự cho bạn thấy cách anh ấy áp dụng kiến ​​thức này.
Simon Bergot

2
lập trình viên.stackexchange.com/questions/160922 / 21 Tương tự như câu hỏi này.
Ẩn danh

Câu trả lời:


69

Tôi luôn yêu cầu xem một số mã, vì một số lý do:

  • Tôi muốn biết những gì tôi đang nhận được vào. Tất nhiên không có công ty phần mềm nào là hoàn hảo và tôi không mong đợi mọi người sẽ làm nổi bật sự tuyệt vời mọi lúc (vì tôi cũng vậy), nhưng nếu tôi yêu cầu mã tốt nhất của công ty, và tất cả những gì họ có thể chỉ cho tôi là mớ hỗn độn spaghetti, tôi biết tôi đang ở trong thời kỳ khốn khổ, tháo gỡ những sợi tóc và chiến đấu với các khoản nợ kỹ thuật để hoàn thành mọi việc. Nhìn vào mã tốt nhất mà một công ty có thể chỉ ra là thiết lập giới hạn trên của loại chất lượng nào có thể có ở đó; ngay cả khi không chắc rằng tất cả mã của họ trông giống như vậy, bạn vẫn biết đó là thứ họ cố gắng đạt được.
  • Nhìn vào các mẫu mã cho tôi biết rất nhiều về văn hóa mã hóa của một công ty. Họ có sử dụng ý kiến ​​tài liệu? Có phải họ nghiêng về một phong cách hướng đối tượng, họ có khuynh hướng lập trình chức năng không? Họ bảo thủ hay tiến bộ? Họ có coi trọng việc đặt tên nhất quán, định dạng và thụt lề thích hợp và mã gọn gàng nói chung không? Là mã dễ theo dõi? Làm thế nào để họ cấu trúc dự án của họ? Làm thế nào để họ tiếp cận những điều quan trọng - kiểm tra tự động, xử lý lỗi, v.v.? Làm thế nào phòng thủ là phong cách mã hóa của họ?
  • Xem mã hiện tại của họ sẽ cho phép bạn đánh giá xem bạn có thể sống theo tiêu chuẩn của họ hay không .
  • Việc một công ty sẵn sàng chia sẻ các mẫu mã một mình là một dấu hiệu tốt về nguyên tắc. Điều đó có nghĩa là họ cung cấp cho tôi, người nộp đơn, một số niềm tin , vì cơ sở mã của họ là một trong những tài sản quý giá nhất của họ. Điều đó cũng có nghĩa là họ không xấu hổ về mã của họ, rằng họ tự tin rằng việc cho tôi xem mã sẽ giúp tôi hứng thú khi làm việc với họ.
  • Nếu họ sẽ không hiển thị cho bạn bất kỳ mẫu mã nào, thì đó không phải là cờ đỏ, nhưng thật khôn ngoan khi cả hai hỏi tại sao họ sẽ không chia sẻ (rất có thể, đơn giản là họ không thể vì lý do pháp lý), cũng như giải thích lý do tại sao bạn muốn xem một số. Tôi không nghĩ việc thể hiện sự quan tâm đến mã của họ sẽ được coi là một dấu hiệu tiêu cực, miễn là bạn hỏi một cách lịch sự và tích cực.

Và sau đó là một số tác dụng phụ khác:

Các công ty, những người đồng ý cho bạn xem mã, không có khả năng gửi cho tôi một tarball các tệp nguồn chứa phiên bản mới nhất của toàn bộ cơ sở mã của họ, vì lý do rõ ràng. Nếu họ chỉ cho tôi bất kỳ mã nào, họ sẽ làm như vậy dưới dạng một cuộc biểu tình nhỏ, điều đó thật tuyệt: điều đó có nghĩa là tôi có thể nói chuyện với một trong những đồng nghiệp tiềm năng của mình, điều đó cho phép tôi đặt thêm câu hỏi về văn hóa, quy trình mã hóa của họ, và codebase, và lý tưởng nhất, nó sẽ giúp bắt đầu một cuộc thảo luận chuyên nghiệp, trong đó tôi có thể vừa thể hiện các kỹ năng và kiến ​​thức vừa tìm hiểu thêm về môi trường làm việc. Điều đó cũng có nghĩa là tôi có thể xem xét các công cụ họ sử dụng, điều này cũng khá sâu sắc - ví dụ, nếu dự án mà họ chỉ cho tôi dựa nhiều vào một IDE cụ thể, điều này có nghĩa là mọi người đều sử dụng nó, có thể tốt hoặc xấu. Và cuối cùng,


1
Nếu nhà tuyển dụng tiềm năng cho bạn thấy mã rõ ràng là xấu, hãy nhớ rằng đó có thể là cơ hội để dẫn dắt họ cải thiện mã và quy trình của họ. Như người xưa thường nói "Tôi chỉ có thể làm hỏng hoàn hảo nhưng tôi có thể sửa chữa bị hỏng!". Ngoài ra, hãy nhớ mã được hiển thị cho hoặc bởi một ứng cử viên có thể phải chịu sự nghiêm ngặt và xem xét nhiều hơn so với mã khác.
akton

@akton Đó là thái độ của tôi đối với mã xấu. Tuy nhiên, thật vô ích khi bạn đơn độc trong nhiệm vụ "sửa mã lộn xộn". Yêu cầu xem một số mã tốt có thể giúp cảm nhận nếu nhóm tương lai của bạn đánh giá cao những thứ như RẮN
Simon Bergot

1
"Tôi luôn yêu cầu được xem một số mã" Làm thế nào sau khi bạn thực sự được hiển thị mã? Bạn đang yêu cầu họ chuẩn bị một cái gì đó trước hoặc gửi cho bạn một cái gì đó sau đó? Bất kể bạn nhìn nó như thế nào, nó có vẻ không thực tế.
Burhan Ali

1
@BurhanAli: Tôi chỉ hỏi thôi. Nhiều người từ chối cho tôi xem bất kỳ, và thường thì họ cho tôi lý do chính đáng, điều đó tốt. Những người đồng ý cho tôi một tour du lịch có giám sát; Tôi nghi ngờ bất cứ ai sẽ gửi cho tôi một bộ nguồn hoàn chỉnh để xem qua, nhưng nhấp vào xung quanh dự án trong một IDE trong khi tôi xem thường được chấp nhận.
tdammers

Trong rất nhiều trường hợp, tôi nghĩ rằng mã mà tôi thực sự muốn xem sẽ được coi là đóng như một lợi thế cạnh tranh. Đó sẽ là mã quan trọng nhất đối với tôi ... tuy nhiên, nếu họ đồng ý cho bạn xem mã và nó có thể là dấu hiệu họ không hiểu mã tốt. Nếu tôi là khách hàng tiềm năng, có lẽ tôi không cho bạn thấy bất kỳ mã nội bộ không tầm thường nào. Chỉ cần tôi mặc dù.
Giàn khoan

14

Tuy nhiên, liệu có thể chấp nhận được khi ứng viên yêu cầu người phỏng vấn chỉ cho anh ta một đoạn mã nhỏ mà anh ta nghĩ là được viết tốt?

Tôi cho rằng rơi vào toàn bộ 'các cuộc phỏng vấn là hai câu thần chú hai chiều, nhưng tôi không mong đợi nhận được bất kỳ. Mối quan tâm về sở hữu trí tuệ là vấn đề rõ ràng nhất sau khi thực tế là không có máy tính trong phòng phỏng vấn và việc đưa bạn đến một nơi thật khó xử.

Hơn nữa, họ sẽ đến cherry chọn mã đẹp nhất, có ý nghĩa nhất mà họ có thể. Mã tốt nhất không thực sự là một vấn đề, tồi tệ nhất là. Đó là lý do tương tự mà việc lấy mẫu mã từ các ứng cử viên bên cạnh vô dụng.


10
Nó vẫn hữu ích để xem nếu họ có thể chọn mã tốt để hiển thị cho bạn. Phần khó chịu nhất khi xử lý mã xấu thường là không ai nhận ra nó là xấu và cần được sửa.
JGweissman

5
Ngoài ra, ý tưởng của người phỏng vấn về mã tốt có thể không phải là ý tưởng của bạn về mã tốt. Tôi nghĩ sẽ hữu ích khi phát hiện ra điều đó sớm hơn là sau này.
Eric King

1
Thật đáng buồn khi tôi đã cố gắng sử dụng phương pháp "phỏng vấn là hai chiều", hầu hết các nhà tuyển dụng đều tỏ ra khó chịu. Tôi chưa bao giờ được hiển thị mã. Một điều khác tôi đã yêu cầu là mô hình dữ liệu, nhưng cũng không có may mắn.
Antonio2011a

12

ứng viên có thể chấp nhận yêu cầu người phỏng vấn chỉ cho anh ta một đoạn mã nhỏ mà anh ta nghĩ là được viết tốt không?

Bạn có thể hỏi bất cứ điều gì bạn muốn, nhưng:

  • Bạn có thể sẽ không nhận được nó.

  • Nếu bạn có được nó, nó sẽ không cho bạn biết bất cứ điều gì hữu ích. Nếu 10% mã của họ là đẹp và phần còn lại là spaghetti, bạn vẫn sẽ giao dịch chủ yếu với spaghetti.

  • Bạn sẽ giống như một chiếc quần thông minh. Đó không phải là một trợ giúp lớn nếu cuối cùng bạn quyết định bạn muốn làm việc ở đó.

  • Thật lãng phí thời gian phỏng vấn quý giá.

  • Có nhiều cách tốt hơn để tìm hiểu những gì bạn muốn biết. Đặt câu hỏi như:

    • Các chỉ số quan trọng nhất của chất lượng mã là gì?
    • Tôi sẽ chủ yếu duy trì mã hiện có hoặc viết mã mới?
    • Bạn có thể giải thích ngắn gọn về cách hệ thống của bạn hoạt động?
    • Bạn có tài liệu tiêu chuẩn mã hóa không, và mọi người có tuân theo nó không?

Điểm tốt ! Đáng buồn hỏi một câu hỏi như "các chỉ số quan trọng nhất của chất lượng mã là gì?", Có thể được coi là một chiếc quần thông minh. (Theo quan điểm của tôi, đây là một câu hỏi hợp lý, nhưng rất nhiều nhà tuyển dụng không muốn cảm thấy như họ đang bị một cấp dưới tiềm năng hỏi thăm).
Antonio2011a

2
@ Antonio2011a Sẽ ổn nếu bạn hỏi đúng - có lẽ "bạn đang tìm kiếm số liệu chất lượng mã nào ở đây?" chỉ cần làm rõ rằng bạn muốn tìm hiểu thêm về cách họ làm việc. Bạn đang tìm hiểu về họ, không quản lý một bài kiểm tra. Có thể hoạt động ngay cả khi yêu cầu mã: "Tôi có thể xem mã của bạn trông như thế nào không?" thay vì "Tôi muốn một mẫu về những gì bạn cho là mã tốt."
Caleb

3

Vâng, nó phụ thuộc. Tôi luôn thích biết nơi tôi sẽ làm việc.

Tôi thấy một cuộc phỏng vấn việc làm là hai chiều. Công ty tìm hiểu về bạn và bạn tìm hiểu về công ty. Yêu cầu mã có thể hơi nhiều, nhưng đặt câu hỏi liên quan đến phát triển sẽ ổn.

Ví dụ: tôi sẽ không chấp nhận một công việc mà công ty không sử dụng các kỹ thuật nhanh hoặc TDD hoặc không có kế hoạch để nắm lấy và khuyến khích các thực hành đó. Tôi cũng đánh giá cao khi một công ty tự hào về sản phẩm và mã của họ - khi có vẻ như người phỏng vấn đang chờ bạn hỏi để xem nó để anh ta có cớ để giải thích tất cả những điều hay ho họ làm.


Đã đồng ý. Tôi cố gắng đi sâu vào các công cụ họ sử dụng? Do quản lý trả tiền cho các công cụ bổ sung (các thành phần, tiện ích) mà nhiều nơi không có. Thái độ đối với các công cụ nguồn mở luôn luôn là một công cụ tốt.
ozz

2

Haha, đó là một câu hỏi vui Tôi sẽ không bị xúc phạm nếu ai đó hỏi tôi một mẫu mã khi họ đang phỏng vấn, nhưng tôi có lẽ cũng không cho họ xem bất kỳ mã nào, trừ khi họ đã hỏi trước và tôi có thời gian để lên kế hoạch cẩn thận.

Tôi chắc chắn hiểu ý định hỏi một câu hỏi như vậy mặc dù. Là một người tìm việc, tôi đã yêu cầu Joel Test cho một người phỏng vấn trước đây. Họ không biết nó là gì, nhưng họ rất vui được trả lời.

Ở một số nơi, việc hỏi những loại câu hỏi đó có thể cải thiện cơ hội của bạn trong khi nó có thể làm tổn thương cơ hội của bạn ở nơi khác. Vẻ đẹp của cuộc sống là nếu nó cải thiện cơ hội của bạn, thì đó là nơi bạn muốn làm việc. Nếu nó làm tổn thương cơ hội của bạn, thì dù sao bạn cũng sẽ không muốn công việc đó.

Tôi thấy không có gì để mất bằng cách hỏi một cách lịch sự và có thể giải thích lý do tại sao bạn muốn xem nó.


"Vẻ đẹp của cuộc sống là nếu nó cải thiện cơ hội của bạn, thì đó là nơi bạn muốn làm việc." +1
Spidey

2

Tôi đã hỏi câu hỏi này tại hai cuộc phỏng vấn của tôi, nơi họ tuyên bố rằng họ có các nhà phát triển cấp cao di chuyển đến asp.net mvc3 hoặc 4 hoặc khi họ nói rằng họ muốn mã nhận xét nặng nề. Tôi đã từ chối ở cả hai lần do thiếu kiến ​​thức của họ về tiêu chuẩn mã thực tế. Tiêu chuẩn duy nhất tôi tìm thấy là nếu nó hoạt động sao chép và dán nó và nó sẽ hoạt động. Tôi sẽ không hỏi câu hỏi này nếu tôi đang làm một dự án mới hoặc phải viết đoạn mã độc lập với những người khác trong nhóm. Tôi chắc chắn sẽ thấy mã nếu tôi được thuê để sửa một phần mềm hoặc chức năng hiện có và tôi sẽ không nói có trừ khi tôi biết câu trả lời. Giả sử bạn không hỏi và họ nói bạn có thể vui lòng sửa ngày tháng để bắt đầu từ ngày hôm nay. Khi bạn nhìn vào mã kế thừa, bạn sẽ thấy không có jquery hay jquery ui mà là một công cụ chọn ngày được tùy chỉnh có tất cả các ngày được lưu trong tệp xml và mỗi đêm một công việc định kỳ chạy để cập nhật các tháng trong tương lai. Điều đó sẽ bắt đầu đau đầu vì mã để đạt được điều này ít hơn các từ trong ví dụ này. Nếu bạn đang làm việc trên mã của họ yêu cầu xem nó. Không hỏi giống như trích dẫn cho một công việc với niềm tin rằng khách hàng nói rằng nó nhỏ. Anh ta có thể sở hữu 20 mẫu đất và làm vườn trên 1 mẫu đất của anh ta là nhỏ đối với anh ta nhưng người làm vườn không thể tính 50 quid chỉ vì tất cả các công việc nhỏ của anh ta bắt đầu từ 50.


1

Tôi có xu hướng làm việc cho các công ty nơi ít nhất một phần công việc của họ là nguồn mở, vì vậy việc tìm mẫu mã là chuyện nhỏ. Tôi tìm ra người làm việc tại công ty, sau đó tìm ra cách xử lý trực tuyến của họ. Vì mọi người có xu hướng sử dụng cùng một tên màn hình, lặp đi lặp lại, thật dễ dàng tìm thấy nơi họ đã cam kết mã, cho dù họ ở trên Github, Bitbucket hay ở nơi nào khác hoàn toàn.

Công ty hiện tại của tôi có rất nhiều mã được lưu trữ trên Github, vì vậy thật dễ dàng để xem họ làm việc với cái gì, cơ sở mã của họ lớn như thế nào và dường như không còn được quan tâm nữa.

Tôi sẽ không bao giờ yêu cầu một mẫu, đơn giản vì họ sẽ cho bạn thấy mã tốt nhất mà họ có. Đây không phải là mã bạn sẽ làm việc với. Có lẽ nó được đặt trong một cái chuông trong một căn phòng khóa kín. Bạn sẽ làm việc với mã lộn xộn mà nhiều người đã phải sử dụng.


0

Điều này là tuyệt vời nếu bạn có thể nhận được nó. Đôi khi không thể thực hiện được nếu không có thỏa thuận loại NDA, nhưng luôn luôn tốt để thử. Để tăng tỷ lệ cược của bạn, hãy cho người phỏng vấn của bạn biết bạn muốn điều này trước (một vài ngày) để họ có thể có một cái gì đó trong tâm trí để cho bạn thấy.

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.