Tác dụng của ReSharper đối với các cuộc phỏng vấn mã hóa [đã đóng]


18

Bất cứ ai đã sử dụng R # hoặc CodeRush đều biết bạn có thể kết hợp các cấu trúc đơn giản (và cấu trúc lại các cấu trúc phức tạp) nhanh như thế nào với một phím tắt đơn giản. Tuy nhiên, các plugin năng suất này có gây ra sự đánh giá sai về khả năng trong các cuộc phỏng vấn không?

Một phần của việc trở thành một người viết mã hiệu quả (và tạo ấn tượng tốt đầu tiên trong một cuộc phỏng vấn) là viết mã tốt - nhanh chóng.

Nếu tôi có hai ứng cử viên:

  1. Không sử dụng plugin. Cô ấy nghĩ về vấn đề này, ngồi xuống một IDE chứng khoán tại PC phỏng vấn trông giống hệt cô ấy và gõ mã trong một hoặc hai phút, như thường lệ. Làm xong. Vượt qua.

  2. Sử dụng plugin. Anh ta nghĩ về vấn đề này, ngồi xuống một IDE chứng khoán tại PC phỏng vấn và nhận ra "tab + +" không còn tự động viết một vòng lặp foreach, và tất cả các phím tắt đã biến mất. Sau đó, anh ta loay hoay quanh bàn phím chạm vào các phím nóng bình thường của mình và bật lên các cửa sổ lạ và trở nên bối rối. Anh ấy mất 3 phút để viết những gì bình thường sẽ mất 30 giây. Làm xong. Có vẻ như họ không biết cách của họ xung quanh IDE. Phải là người mới đối với IDE này và do đó không có nhiều kinh nghiệm với nó hoặc có thể là ngôn ngữ. Vượt qua, nhưng một dấu 'meh' bên cạnh tên của họ.

Theo kinh nghiệm của bạn, làm thế nào để bạn xử lý các plugin trong các cuộc phỏng vấn như người phỏng vấn hoặc người được phỏng vấn? Các thực hành tốt nhất để có được những gì ứng viên thực sự biết là gì? Có thể có những ứng cử viên không hiểu mã và sử dụng R # như một cái nạng. Cũng có thể có những ứng cử viên biết mã vào và ra và sử dụng R # vì nó chỉ đơn giản nhanh hơn các mẫu VS hoặc Eclipse tích hợp. Có phải tốt nhất là không sử dụng IDE nào không? Hãy để họ mang PC của riêng họ? Khác?


4
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì câu hỏi này là về cách phỏng vấn tốt , đây là chủ đề ngoài trung tâm trợ giúp . Tuy nhiên, câu hỏi này có một thành phần theo chủ đề, nghĩa là " làm thế nào các công cụ như ReSharper ảnh hưởng đến khả năng mã hóa của một người mà không có công cụ đó "), nhưng việc chỉnh sửa nó thành câu hỏi đó quá mạnh mẽ trong chỉnh sửa và sẽ làm mất hiệu lực các câu trả lời hiện có.
durron597

Nếu tôi phải viết mã demo trong một IDE tiêu chuẩn, nó sẽ chứa đầy các :wdấu ngẫu nhiên ở mọi nơi.
LindaJeanne

Câu trả lời:


31

Tôi là một ứng cử viên 2 trong một cuộc phỏng vấn gần đây . Tôi đã được cài đặt vanilla IDE trên PC với bàn phím không chuẩn và khung thử nghiệm không quen thuộc, và tôi được yêu cầu viết một ứng dụng Fizz-Buzz đơn giản với các bài kiểm tra đơn vị. Tôi gạt nó ra. Tôi phải trông giống như một người mới hoàn toàn, loạng choạng trong bóng tối cố gắng hack mã. Không cần phải nói, tôi đã không được cung cấp vị trí.

Điều tôi học được là tôi phụ thuộc rất nhiều vào các plugin của mình. Họ không nhận được mã được gõ nhanh hơn - họ thực sự định hình cách tôi nghĩ về mã và cách tôi đi về mã hóa. Ví dụ, tôi từng suy nghĩ rất kỹ về tên biến vì chúng có thể là một nỗi đau để thay đổi sau thực tế. Bây giờ, ngược lại, tôi chỉ đoán nửa chừng về cách tôi sẽ sử dụng biến, hack một số mã, để biến cho tôi biết nó dùng để làm gì, và sau đó nhấn Refactor-> Đổi tên để gọi nó là một cái gì đó phù hợp hơn .

Điều này làm cho tôi ứng cử viên ít khả năng? Theo một số cách, tôi nghĩ rằng nó làm . Một người có thể viết mã trong Notepad và biên dịch và chạy chính xác có những lợi thế nhất định so với người như tôi, người cần tất cả sự tốt đẹp của IDE mà anh ta có thể có được. Từ quan điểm đó, tôi hoàn toàn hiểu lý do tại sao bất kỳ công ty nào sẽ chọn không thuê một công cụ như tôi.

Mặt khác , tôi vẫn là một Nhà phát triển cao cấp tài năng và có khả năng. Tôi đã học được những gì làm việc cho tôi và tôi thực hành loại lười biếng giúp tôi làm việc hiệu quả, với những điểm yếu và hạn chế của riêng tôi. Nói tóm lại, tôi là kiểu lập trình viên thực sự có thể mang lại lợi ích cho một công ty như người đã khiến tôi quay lưng .

Thật thú vị, tôi đã có một cuộc phỏng vấn khác vài tuần trước. Theo kinh nghiệm trước đây của tôi, tôi đã hỏi về các công cụ hoặc ngân sách bổ sung để mua chúng. Khám phá ra rằng không có cho tôi thêm một lý do nào để từ chối lời đề nghị (khá hào phóng) mà họ đưa ra cho tôi .

Vì vậy, để diễn giải Groucho, " Tôi sẽ không tham gia bất kỳ công ty nào có người như tôi làm nhân viên. "

Không, trừ khi họ cho tôi sử dụng ReSharper.


2
Khi tôi phỏng vấn mọi người, tôi nhờ họ viết mã lên một tờ giấy trắng. Nó không cần phải đẹp, và nó không phải biên dịch, nhưng nó phải giống với ngôn ngữ đích. Tôi không tìm kiếm một sản phẩm làm việc; những gì tôi đang tìm kiếm là một mô hình suy nghĩ; người được phỏng vấn có thể nghĩ về các vấn đề và giải quyết chúng bằng cách sử dụng mã không?
Robert Harvey

BTW phải thật tuyệt khi có thể từ chối các ưu đãi hấp dẫn trong môi trường kinh tế hiện tại.
Robert Harvey

12

Hãy để họ ( ứng viên, nghĩa là ) sử dụng bất cứ thứ gì họ muốn. Cũ, xây dựng một Wal-Mart với một con dao quân đội Thụy Sĩ chỉ để cho thấy bạn có thể tiếp cận là quá cũ. Họ sẽ sử dụng bất cứ điều gì cần thiết trong công việc hàng ngày của họ (tốt, tôi chắc chắn hy vọng như vậy) vì vậy hãy để họ sử dụng bất cứ điều gì họ muốn trong một cuộc phỏng vấn. Kết quả cuối cùng là tất cả những gì quan trọng. Và tôi sẽ vui mừng hơn khi thuê một ứng viên biết công cụ nào có sẵn trên thị trường và làm thế nào để sử dụng chúng một cách hiệu quả, sau đó là người thực hiện tất cả bằng tay. Đây là một ngành công nghiệp giết người.

ps Ví dụ, hãy nghĩ về Vim (hoặc Emacs) - bạn có muốn sử dụng nó mà không có bất kỳ cài đặt tùy chỉnh, plugin, v.v. không?


+1 Bên cạnh đó, nếu nhiệm vụ mã hóa của bạn thực sự chỉ kiểm tra xem họ có biết về foreach không, tôi đặt câu hỏi rằng nó thực sự hữu ích như thế nào (thậm chí một thứ như FizzBuzz đang xem xét nhiều hơn thế). Tôi đã trò chuyện với ai đó từ cộng đồng Java và anh ấy nói rằng bạn có thể biết ai là người viết mã .net giỏi khi họ sử dụng Resharper. Không chắc chắn điều đó chính xác 100% - nhưng bạn có được điểm ...
FinnNk

1
Bắt một ứng viên viết mã trên bảng trắng khi phỏng vấn là RẤT tiết lộ khả năng lập trình của họ. Là một người phỏng vấn, bạn đang thực hiện một cuộc gọi phán xét về việc người này cần hỗ trợ bao nhiêu để thực hiện vai trò này.
Michael Shaw

8

Tôi cho rằng các công cụ như ReSharper thực sự làm cho bạn trở thành một ứng cử viên tốt hơn tất cả.

Đối với một người, một cái gì đó như ReSharper sẽ dạy cho bạn về các cấu trúc ngôn ngữ mà bạn có thể chưa biết, cũng như các cách tốt hơn để tổ chức mã của bạn để suy nghĩ về một vấn đề hoặc cấu trúc nó để dễ đọc. ReSharper, theo một nghĩa nào đó, giữ cho bạn sắc bén với các cách thực hành tốt nhất cho mã trượt, thay vì để bạn quay lại với những thói quen xấu hoặc lỗi thời, hoặc tệ hơn là sự lười biếng tồi tệ.

Một lập trình viên giỏi cần phải hiểu các cấu trúc cơ bản, nhưng không nhập chúng theo cách thủ công. Loại lười biếng tốt cho phép các công cụ thực hiện công việc borning và thay vào đó là dành thời gian tiết kiệm để suy nghĩ về vấn đề. Điều này làm cho một nhà phát triển tốt hơn tổng thể.

Tôi đã hoàn thành lý luận bằng cách tuyên bố rằng nếu quá trình phỏng vấn thiên về gậy và dao đá, thì về cơ bản nó đã bị phá vỡ.


1

Đó là một trong những lý do tôi yêu cầu mọi người viết mã ở bảng trắng, không phải trong IDE. Nó san bằng sân chơi. Và mọi người thường nói "trời ơi, người chia sẻ lại xử lý việc này cho tôi thường xuyên". Heck, đoạn mã tích hợp xử lý các vòng lặp và như vậy, mà bảng trắng không thể cung cấp cho bạn. Trong trường hợp đó có nội dung như "Tôi hy vọng dấu câu ở ngay đó; Tôi là một người R #" có lẽ là tất cả những gì bạn cần để giữ cho tôi không giữ một số vấn đề cú pháp chống lại bạn.

Tôi cần một số khả năng để viết mã dễ hiểu trên bảng trắng để chúng tôi có thể có một cuộc họp trong đó chúng tôi tìm ra cách chúng tôi sẽ làm mọi thứ. Và tất nhiên, tôi muốn xem bạn đã bao giờ thực sự viết mã trong cuộc sống của mình hay chưa. Các cuộc phỏng vấn của bạn có thể thay đổi.


Tôi hoàn toàn hiểu lý do tại sao bạn muốn làm toàn bộ điều Whiteboard - tôi tưởng tượng nó sẽ loại bỏ rất nhiều ứng cử viên nghèo - nhưng nó cũng sẽ loại bỏ một số tài năng tuyệt vời. Tất nhiên, đó không phải là vấn đề miễn là bạn có một nhóm các bảng trắng tốt.
Kramii phục hồi Monica

2
@Kramii: Bạn biết đấy, tài năng "tuyệt vời" có thể giải thích chính họ và mã của họ bằng bảng trắng. Vì vậy, tôi thực sự không thể thấy lý do tại sao nó sẽ loại bỏ chúng.
Spoike

1

Câu hỏi tuyệt vời BTW - Tôi thường suy nghĩ về điều này.

Nắm vững các công cụ là một kỹ năng là trung tâm để trở thành một nhà phát triển giỏi. Tôi luôn cảm thấy chuông báo thức reo khi một nhà phát triển tuyên bố anh ta thích mã hóa trong notepad hơn là sử dụng IDE. Nó cho thấy anh ta quan tâm đến quá trình hơn sản phẩm.

Nó giống như thích làm đất bằng cuốc so với máy kéo - tốt nếu bạn là người làm vườn có sở thích, nhưng không thể làm nông dân công nghiệp trong nền kinh tế cạnh tranh.

Tuy nhiên, chúng tôi trở nên phụ thuộc vào các công cụ của chúng tôi. Mọi người dường như phát hoảng về cách chúng ta sẽ đối phó trong tình huống giả định nơi các công cụ của chúng ta đột nhiên bị lấy đi. Có cùng lập luận về việc cho phép máy tính vào các kỳ thi.

Thực tế là các công cụ ngày càng tốt hơn và rẻ hơn và rẻ hơn mỗi năm và không có lý do gì bạn cho rằng bạn sẽ không có chúng. Và các công cụ rất tuyệt vời khi làm những việc lặp đi lặp lại với chất lượng cao - điều đó có nghĩa là chúng ta có thể tập trung toàn bộ lực lượng của những người đồng tính đáng kinh ngạc vào những phần khó khăn (và thú vị).

ReSharper là một bổ sung tuyệt vời cho Visual Studio. Công ty hiện tại của tôi đã không có ReSharper khi tôi được phỏng vấn - nhưng tôi rất truyền bá về nó trong cuộc phỏng vấn của tôi rằng họ đã mua cho tôi một bản sao khi tôi chấp nhận vị trí cũng như một cho nhà phát triển đã phỏng vấn tôi. Nó hiện đang được triển khai trên toàn công ty. Công cụ tốt trả tiền cho chính họ trong thời gian không.

Vì vậy, để trả lời câu hỏi: sự phụ thuộc của bạn vào các công cụ có thể khiến đánh giá sai về khả năng của bạn trong một cuộc phỏng vấn, nhưng họ sẽ luôn đưa ra đánh giá chính xác về khả năng của người phỏng vấn. Nếu một công ty không nhận ra giá trị của hỗ trợ công cụ trong cuộc phỏng vấn của bạn - bạn phải cho họ thấy ánh sáng. Và nếu họ vẫn không nhìn thấy nó, thì tôi sẽ rất lo lắng về việc chấp nhận một vị trí ở đó.


Tôi rất rõ ràng trong các cuộc phỏng vấn về các công cụ tôi đã từng làm việc và những gì tôi mong đợi từ công ty. Bạn có tin rằng một số công ty vẫn chỉ cung cấp một màn hình cho mỗi nhà phát triển? Tôi không có vấn đề gì khi nói với người phỏng vấn "Tôi đang chạy với tốc độ một nửa vì các công cụ mà tôi dựa vào không có ở đây", đặc biệt là khi tôi sử dụng một tổ hợp phím và nó không hoạt động. Ngay cả trong một IDE vanilla trên danh nghĩa, tôi tùy chỉnh mọi thứ, bởi vì tay tôi biết mọi thứ ở đâu và tôi không thể bị làm phiền khi đào tạo lại. Đối với một bàn phím Dvorak hoặc viết bình luận bằng tiếng Đức, hoặc bất kỳ khuyết tật nào khác mà họ muốn đưa cho tôi.

@moz - Hoàn toàn đồng ý bạn nên nói với nhà tuyển dụng rằng họ sẽ không tận dụng tối đa bạn mà không đầu tư vào công cụ. Tôi sẽ tiến thêm một bước và khiến họ cam kết có được các công cụ phù hợp. Có lẽ họ sẽ không vui khi làm việc với họ nếu họ không làm thế. Mỗi khi bạn tự cấu trúc lại một cái gì đó, bạn sẽ chửi rủa họ vì không định giá đủ thời gian của bạn. Làm việc ở đâu đó tầm thường cũng có thể ảnh hưởng đến khả năng kiếm tiền trong tương lai của bạn. Sẽ thú vị nếu bạn thực hiện bất kỳ lập trình cặp nào nếu hai nhà phát triển có cấu hình phím tắt khác nhau. Tôi cố gắng giữ với cấu hình tiêu chuẩn càng nhiều càng tốt.
sheikhjabootie
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.