Tôi đã thất bại FizzBuzz, bạn sẽ thuê tôi chứ? [đóng cửa]


27

Tôi là một nhà phát triển có bằng CS và có kinh nghiệm làm việc về phát triển một số ngôn ngữ trong gần 3 năm.

Hôm nay tôi đã có một cuộc phỏng vấn, nói chung nó diễn ra khá tốt, tôi đã chuẩn bị cho hầu hết các câu hỏi và cảm thấy sẵn sàng cho mọi thứ. Vào cuối cuộc phỏng vấn, họ đã đưa cho tôi MỘT câu hỏi lập trình ... một vấn đề như FizzBuzz (không có phần in số). Tôi tin rằng tôi đã phạm quá nhiều sai lầm và do đó đã "thất bại". Là tất cả hy vọng đã mất cho tôi?

Đây là mã của tôi:

  void FizzBuzz()
  {
    for(int i = 0; i <= 100; i++)
    {
      bool isThree = i % 3;
      bool isFive = i % 5;

     if (isThree)
     {
         print "Fizz\n";
     }
     else if(isFive)
     {
         print "Buzz\n";
     }
     else
     {
         print "FizzBuzz\n";
     }
  }
 }

Như bạn có thể thấy tôi đã làm rối các bool nên có cú pháp i% 3 == 0; Nếu tôi nhớ đúng câu hỏi, tôi cũng đặt một câu hỏi khác thay vì câu trả lời khác bằng isThree && isFive. Tôi đã khá căng thẳng, nhưng đó không phải là lý do để bỏ lỡ một vấn đề đơn giản.

Vì vậy, câu hỏi là, làm thế nào quan trọng là có thể tạo ra mã làm việc tại chỗ so với các yếu tố khác, chẳng hạn như kinh nghiệm và tính cách? Ví dụ, mã trên sẽ là một công cụ thỏa thuận?


31
Tôi nghĩ rằng thực tế là bạn đã sử dụng toán tử mô đun là đủ tốt
Ryathal

9
bạn cũng không in ra số khi nó không phải là bội số của 3 hay 5. Thực tế là bạn đã không đề cập đến việc đăng câu hỏi này cũng sẽ khiến bạn rất nghi ngờ.
whatsisname

13
Làm thế nào bất cứ ai có thể trả lời này thay mặt cho người phỏng vấn của bạn?
pdr

5
Lời khuyên tiếp theo - thực hiện các vấn đề về trình độ dự án 1-10 và bạn sẽ xử lý nhiều câu hỏi loại tiêu chuẩn sẽ được hỏi về bạn như là "bạn có thể lập trình - viết mã này"

20
Tôi không nghĩ rằng tôi đã thuê một người thất bại trong việc viết FizzBuzz, nhưng IMHO bạn đã thất bại trong việc viết cú pháp hoàn hảo trên bảng trắng, đó là một điều khác.
Michael Shaw

Câu trả lời:


44

Quan điểm của FizzBuzz là cho thấy rằng bạn thực sự biết cách lập trình , chứ không phải bạn đã ghi nhớ tất cả các quy tắc cú pháp tốt hơn của ngôn ngữ mà bạn được yêu cầu lập trình (mặc dù điều đó quan trọng, nếu họ muốn biết có kinh nghiệm như thế nào bạn đang ở trong ngôn ngữ)

Nếu bạn gặp vấn đề này trong môi trường phỏng vấn và có thể cho thấy rằng bạn hiểu các lỗi mà bạn đã gây ra, tôi sẽ nói bạn đã vượt qua.


Đồng ý, đã không cố gắng ám chỉ đó là tôi ghi nhớ câu trả lời. Đó là tôi cảm thấy tôi là một lập trình viên khá có khả năng nhưng cảm thấy như chỉ có một vấn đề lập trình và không làm tốt về nó là một sự phản ánh thực sự xấu về khả năng của tôi. Họ cũng không nói gì về vấn đề này. Tôi đã không nhận ra lỗi của mình cho đến khi tôi vào xe và bắt đầu lái xe về nhà. Sau đó, đó là một OMG whyyy !! phản ứng.
ja_programmer

Họ đã cho bạn câu hỏi FizzBuzz trước? Nếu họ không kết thúc cuộc phỏng vấn ngay lập tức, bạn đã vượt qua. Người phỏng vấn xem xét các yếu tố khác bên cạnh một bài kiểm tra mã hóa đơn giản; nhà tuyển dụng tốt muốn những người biết suy nghĩ chín chắn và giải quyết vấn đề.
Robert Harvey

Họ dành phần lớn thời gian để hỏi tôi về sơ yếu lý lịch của tôi, hỏi về các công nghệ khác nhau mà tôi đã sử dụng và cách tôi sử dụng chúng. Và sau đó họ hỏi tôi vấn đề lập trình. Sau đó, họ hỏi tôi những câu hỏi về bản thân mình. Sau đó tôi hỏi một số câu hỏi và tôi bắt tay họ và rời đi.
ja_programmer

4
Những người phỏng vấn giỏi sẽ chấm dứt cuộc phỏng vấn khi không còn quan tâm đến việc thuê bạn, điều đáng lẽ đã xảy ra ngay sau FizzBuzz nếu bạn thất bại trong bài kiểm tra. Điều đó không có nghĩa là họ vẫn sẽ thuê bạn, nhưng điều đó có nghĩa là bạn đã không thất bại trong cuộc phỏng vấn.
Robert Harvey

4
@RobertHarvey - không phải ai cũng sẽ cắt cuộc phỏng vấn ngay lúc đó. Với ứng cử viên gần đây của tôi đã thất bại FizzBuzz, tôi tiếp tục cuộc phỏng vấn trong một nỗ lực để xem liệu anh ta có thể cứu vãn mọi thứ. Nói cách khác, tôi sẵn sàng bỏ lỡ bài tập do căng thẳng của cuộc phỏng vấn.

26

Vâng

Hầu hết những người tôi đã phỏng vấn đã thất bại trong phần bài tập mã về cú pháp nhỏ hoặc logic hơi tắt cuối cùng là những người tuyển dụng tốt hơn.

Làm cho ý tưởng cốt lõi của logic trở nên thẳng thắn (mà bạn đã làm) và chuyển đổi nó thành một cái gì đó đàng hoàng và súc tích từ quan điểm mã (mà tôi nghĩ rằng bạn hầu hết đã làm) đối với tôi hoàn toàn quan trọng hơn là làm cho nó hoàn hảo.

Tôi mua một IDE để kiểm tra cú pháp không thuê một nhà phát triển cho nó và bạn sẽ nhận ra những lỗi khác trong giây lát của lần gỡ lỗi đầu tiên.

Bạn đã đi từ yêu cầu ban đầu đến lần thử đầu tiên khá trực tiếp và không làm điều gì ghê gớm. Điều đó có giá trị hơn trong nhiều môi trường sau đó là sự hoàn hảo khi không có phản hồi. Nếu nhà tuyển dụng treo lên những chi tiết bạn bỏ lỡ thì đó có thể là dấu hiệu của môi trường sắp tới.

Nếu tác vụ là biến thể số in, thiếu chi tiết sẽ trông hơi tệ, nhưng nó sẽ không đủ sức nặng để thay đổi quyết định của tôi nếu tôi thích bạn cho vị trí khác.

[Chỉnh sửa] Như Alex chỉ ra, cũng có khía cạnh phản ứng và bình tĩnh. Cá nhân tôi cố gắng giải quyết vấn đề đó trước khi đến với các bài tập thực tế bằng cách cố gắng đưa người được phỏng vấn vào một cái gì đó ngoài kinh nghiệm của họ nhưng một số người có thể chọn kết hợp cả hai. Thỉnh thoảng tôi tình cờ gặp một người chỉ có kiến ​​thức trong sách giáo khoa và họ lướt qua các vấn đề lý thuyết và lý lịch nhưng nghiêm túc bị treo lên về nơi bắt đầu với bài tập thực hành. Một số thậm chí không thể tìm ra nơi để bắt đầu.

Những cá nhân này chính xác là những gì tôi muốn loại bỏ với bài tập này.

Vì vậy, trừ khi bạn mất 20 phút để làm cho người phỏng vấn làm rõ yêu cầu, tôi tưởng tượng giải pháp của bạn ít nhiều là nỗ lực đầu tiên của bạn với một vài sửa chữa khi bạn đi. Nếu bạn có những gì bạn đặt ở trên dưới 5 phút, bạn cho thấy bạn có thể nghĩ đủ cho tiêu chuẩn của tôi.


2
Bill, tôi chỉ muốn nói cảm ơn rất nhiều cho các phản hồi chi tiết. Thật tuyệt khi có được một số quan điểm khác. Thật là bực bội khi mắc lỗi về một thứ gì đó quá đơn giản và biết rằng bạn tốt hơn thế.
ja_programmer

1
Chỉ cần để tôi xác nhận những gì Bill vừa nói. Loại thử nghiệm này được thiết kế chủ yếu để xem mọi người phản ứng thế nào dưới áp lực. Bạn KHÔNG được mong đợi trở thành một lập trình viên hoàn hảo khi làm việc trong những điều kiện này. Bạn đang mong đợi ... làm việc. Có thật không. Bạn chỉ cần cố gắng giữ bình tĩnh và đối mặt với vấn đề tốt nhất có thể. Đó chính xác là những gì bạn đã làm.
AlexB Bôngi

Không chỉ là không in số mà còn không nhận ra rằng ở vô số 15 bạn không in Fizz hoặc Buzz mà là FizzBuzz. Nó không cho thấy sự phá vỡ tốt của vấn đề. Khi nào in "FizzBuzz" là yếu tố quan trọng nhất của câu đố này.
Pieter B

Tôi không sử dụng ví dụ cụ thể này vì nhiều nhà hợp đồng có ứng cử viên của họ ghi nhớ nó, nhưng theo kinh nghiệm của tôi, những người mắc lỗi "oh duh" trong các bài tập này thường trở thành đồng nghiệp tốt hơn. Logic của anh ấy bắt đầu từ đúng nơi, và không có một đống tào lao nào nữa, điều đó tốt. Anh ấy đã bỏ lỡ một cái gì đó bạn sẽ thấy trong lần biên dịch đầu tiên. Tôi thà để anh chàng đó nhận sai 3 lần trong 15 phút thì tốt hơn anh chàng mất 30 phút để bắt đầu.
Hóa đơn

@Bill - Bạn thấy câu trả lời nào cho vấn đề này? Tôi chỉ không hiểu làm thế nào bất cứ ai chưa có một lớp lập trình không thể biết ít nhất là tôi đặt. Tôi đã viết rằng có thể trong một phút đến một phút rưỡi và lý do duy nhất mất quá nhiều thời gian là vì tôi đã nói và viết trên bảng trắng cùng một lúc.
ja_programmer

15

Đoạn mã trên có lẽ sẽ là một công cụ đối phó với tôi nếu tôi không có điều gì khác để tiếp tục. Nếu họ theo phong cách phỏng vấn của Microsoft, thì người đưa ra câu hỏi này cho bạn có thể sẽ chặn bạn - và người ta thường làm tất cả.

Điều gây khó khăn cho tôi là người phỏng vấn đã không hỏi bạn về mã này. Một người phỏng vấn giỏi đã nhìn thấy đủ mã của riêng họ để biết rằng mọi người mắc lỗi - đặc biệt là khi vội vàng. Thông thường họ nói, "Bây giờ bạn có thấy điều gì sai với mã này không?" "Không? Vâng, hãy kiểm tra nó". Bạn đưa ra một số bộ kết quả và sau đó chạy nó thông qua chức năng. Sau đó, bạn nói, "Ôi chết tiệt, điều đó đã không làm việc." "Ok, làm thế nào bạn sẽ sửa nó ..." và như vậy. Nếu bạn sống sót qua hộp thoại đó, nó thực sự khá ấn tượng và thể hiện khả năng suy nghĩ nghiêm túc, đưa ra các trường hợp thử nghiệm và gỡ lỗi mã của riêng bạn.

Cũng lưu ý, họ thường không tìm kiếm "mã làm việc". Ai sản xuất rằng đầu tiên thử dù sao? Nhưng chính xác về mặt logic với xử lý lỗi và bộ kiểm tra tốt là một mục tiêu tốt.

Ngoài ra, điều này có thể làm bạn ngạc nhiên, nhưng bạn đang cạnh tranh với nhiều người thậm chí không thể bắt đầu trên fizzbuzz. Chúng ta có xu hướng cho rằng mọi người khác đang đi ngang qua cây b + trong giấc ngủ của họ .... nhưng thực tế, họ thậm chí không thể tìm ra bội số của 3 và 5 và sử dụng toán tử mô đun. Bạn có thể ngạc nhiên thú vị về việc bạn đã làm tốt hơn nhiều so với các ứng cử viên khác.

Lời khuyên của tôi, chỉ cần chải nó đi. Tôi đã phỏng vấn tại các công ty phần mềm lớn gần đây (Microsoft, Amazon, v.v.), và đây là lần đầu tiên tôi trải qua quá trình phỏng vấn kỹ lưỡng như vậy. Tôi đã tự đánh lừa mình tại một cuộc phỏng vấn tại chỗ của Microsoft phần lớn là do căng thẳng, nhưng đồng thời, tôi chỉ không biết những gì mong đợi hoặc chính xác những gì họ đang tìm kiếm. Tôi đóng đinh một vấn đề con đường ngắn nhất chỉ để thổi một số vấn đề thực sự đơn giản. Tôi đã bật các giá trị ra khỏi đầu sai của ngăn xếp, quên trong một int atoi(char* value)triển khaiint val = value[i] - '0';sẽ cho tôi giá trị nguyên của ký tự và một số lỗi ngớ ngẩn khác. Tôi rất vui vì phần lớn cuộc phỏng vấn, nhưng vẫn hiểu tại sao tôi không nhận được lời đề nghị. Tôi phải nhận ra rằng đây không phải là một sự phản ánh về khả năng của tôi vì nó là một chỉ số mà tôi chỉ cần tiếp tục thử nó cho đến khi tôi có thể làm chủ được thần kinh của mình. Cuối cùng, tôi đóng đinh một số cuộc phỏng vấn với những câu hỏi khó hơn nhiều và đạt được công việc mơ ước của mình. Nó thực sự là - đối với hầu hết những người thực sự biết những gì họ đang làm - chỉ là vấn đề tìm ra những gì người phỏng vấn muốn, tự tin vào bản thân và đưa nó cho họ. Nó sẽ mất một lúc.


Tôi đồng ý rằng mã cũng sẽ là một công cụ giảm giá đối với tôi (Tôi đã ở một số Vị trí lãnh đạo nơi tôi cần xem lại mã). Tôi mong họ hỏi tôi một số vấn đề về lập trình và làm những gì tôi nghĩ là cách tiếp cận "truyền thống" để giúp tôi vượt qua vấn đề nếu cần. Giống như bạn đã đề cập "Xem bất cứ điều gì sai với mã này" sẽ khiến tôi thất vọng ngay lập tức. Tôi không mong đợi FizzBuzz và nghĩ rằng đây là một bài tập về tốc độ. Và tôi đã rất lo lắng, đêm qua không ngủ nhiều. Vui mừng khi biết bạn có công việc mơ ước của bạn. Ill tiếp tục phỏng vấn để có được của tôi quá!
ja_programmer

@ja_programmer fizzbuzz cũng là một bài tập về tốc độ. Bạn phải hoàn thành nó trong vòng chưa đầy 2 phút. Họ không kiểm tra khả năng giải quyết vấn đề của bạn, chỉ là khả năng đơn giản của bạn để viết mã đơn giản một cách nhanh chóng. Ngoài ra tôi đã được hỏi "Bạn có thấy vấn đề gì với mã này không?" khi mã hoàn toàn chính xác và họ chỉ đang cố gắng đánh giá sự tự tin của tôi hoặc làm tôi bực mình - vẫn chưa quyết định.
Jonathan Henson

Điểm tốt, họ có thể nói rằng nếu nó là chính xác. Tuy nhiên, tôi nghĩ rằng trong trường hợp này, tôi cần một cú đánh đúng vào đầu mà "bất kỳ vấn đề nào với mã này" sẽ có được. Nếu tôi đã trải qua một trường hợp thử nghiệm đơn giản như một người bình thường, tôi sẽ nhận thấy rằng logic của tôi không chính xác. Ngoài ra, như câu hỏi của bạn, tôi sẽ đi với một chút của cả hai;)
ja_programmer

2
+1 cho No? Well let's test it. Tôi yêu cầu các ứng viên viết buzz fizz trong các cuộc phỏng vấn. Tôi cũng nhận được chúng để viết một bài kiểm tra đơn vị. Đôi khi buzz fizz của họ thất bại, nhưng thử nghiệm đơn vị của họ phát hiện ra điều này, dẫn đến họ khắc phục nó - điều này là tốt. Những kẻ bị từ chối là những người viết ra một giải pháp thất bại và sau đó viết một bài kiểm tra mà không phát hiện ra điều này. Tôi hỏi họ, bạn có hài lòng với bài kiểm tra này không, nếu có, đó là khi họ thất bại.
Qwerky

12

Tôi sẽ phải nói không, nhưng không phải vì lý do bạn đưa ra, mà là bạn đặt phần FizzBuzz cuối cùng. Với cách mã của bạn hoạt động, nó sẽ không bao giờ in FizzBuzz khi bạn mong đợi. Như Lee nhận xét, nó sẽ in nó cho mọi giá trị không chia hết cho 3 hoặc 5.

Nhưng điểm chính là bạn học hỏi từ nó. Tôi thích thực tế là bạn đang ở đây hỏi về cách bạn có thể làm tốt hơn. Hãy chắc chắn rằng bạn làm một số câu đố mã và nghiên cứu các câu hỏi phỏng vấn phổ biến. Ngoài ra, có thể thử tự định thời gian hoặc làm điều gì đó khác sẽ làm tăng áp lực để bạn có thể cố gắng bắt chước cảm giác bạn sẽ nhận được trong một cuộc phỏng vấn. Và chuẩn bị, chuẩn bị, và chuẩn bị nhiều hơn cho cuộc phỏng vấn nếu bạn thực sự muốn loại nó ra khỏi công viên.


3
Nó sẽ in FizzBuzz bất cứ khi nào ikhông chia hết cho 3 hoặc 5.
Lee

1
Vâng, tôi nhận ra rằng. Tôi thực sự không biết tôi đang nghĩ gì.
ja_programmer

@ Xin lỗi, bạn nói đúng, ý tôi là nó sẽ không bao giờ in khi anh ấy muốn.
David Peterman

1
@mattnz Không, nhưng tôi thực sự mong đợi ai đó tuyên bố 3 năm kinh nghiệm có thể viết một chức năng nếu tuyên bố và ngay cả khi họ hiểu sai, có thể nói cho tôi biết, chính xác, họ đã sai ở đâu. (không xúc phạm OP, chỉ cần cố gắng trung thực nhất có thể)
David Peterman

6
@mattnz: Tôi sẽ ít lo lắng hơn về các lỗi và biên dịch so với thực tế là logic của chương trình là hoàn toàn sai. Tôi có thể sống với lỗi isThree = i% 3, nhưng phần "khác in FizzBuzz" sẽ giết chết tôi. Có lẽ tôi sẽ cho người được phỏng vấn một chút để xem liệu họ có thể nắm bắt và khắc phục vấn đề đó không, nhưng nếu không thì đó là một công cụ giải quyết.
Misko

9

Không. Quan điểm của FizzBuzz là xem bạn có thể tìm ra logic điều kiện cơ bản hay không, bao gồm tất cả các trường hợp. Trái với ý kiến ​​của một số người, FizzBuzz không nói về toán tử mô đun, biết các toán tử ternary hoặc toán hạng boolean. Đó là một bài tập đơn giản trong điều kiện và bạn đã thất bại.

Vấn đề được cấu trúc sao cho tất cả các mã trông "thanh lịch" không thể bao gồm ít nhất một trường hợp.

Câu trả lời chấp nhận được:

if div3 print fizz
if div5 print buzz
if !div3 && !div5 print x


if div3 {
    print fizz;
    if div5 {
        print buzz;
    }
} else {
    if div5 {
        print buzz;
    } else {
        print x;
    }
}

2
Ví dụ thứ hai của bạn là cách quá khó hiểu.
Brian

7

Tôi cung cấp cho mọi người các vấn đề lập trình tầm thường để làm tại bảng trắng. Cho dù mã kết quả là không có lỗi hay không không phải là điểm quyết định. Thay vào đó tôi quan tâm đến một số hành vi được thể hiện trong quá trình viết mã. Nó tương tác và tôi đang tìm hiểu rất nhiều về các ứng cử viên trong khi nó đang diễn ra.

Tôi đi vào chi tiết hơn tại "thử nghiệm" Bảng trắng trong một cuộc phỏng vấn: cách hợp pháp để sao lưu mã (bảng trắng) của bạn?

Tất nhiên, người phỏng vấn của bạn có thể không có gì giống tôi. Nhưng bạn hoàn toàn có thể vượt qua một cuộc phỏng vấn với tôi trong khi sản xuất mã đó là một chút nhỏ xíu và hoàn toàn có thể thất bại với mã giống hệt nhau.


1
Cảm ơn các liên kết. Đó là một đọc khá tốt. Đó là tất cả những gì tôi nghe được (một vài năm trước) trong lớp dự bị phỏng vấn của tôi. Ước gì tôi đã nghe lời khuyên của bạn trước cuộc phỏng vấn vừa qua. Tôi không nhận được câu hỏi nào, nhưng tôi cũng không đến và đưa ra thông tin. Có lẽ một chút, nhưng tôi nghĩ rằng hầu hết đó là lầm bầm. Tôi sẽ ghi nhớ lời khuyên của bạn và sử dụng nó trong một cuộc phỏng vấn trong tương lai (hy vọng sẽ sớm có). Cảm ơn bạn!!
ja_programmer

4

Nếu tôi đang đánh giá điều này, tôi sẽ tìm kiếm những điều sau đây:

  1. Ứng viên có cố gắng để có được sự hiểu biết rõ ràng về các yêu cầu trước khi chuyển sang thực hiện không? Ứng viên có tìm cách giải quyết vấn đề của tôi hoặc sử dụng các công cụ thú cưng của mình trong hộp công cụ lập trình không? Làm thế nào để ứng viên đi giải quyết vấn đề?
  2. Là ứng viên thông thạo ít nhất một ngôn ngữ lập trình?
  3. Ứng viên có nắm bắt được logic boolean không?
  4. Ứng viên làm gì để đảm bảo chất lượng giải pháp của mình?
  5. Làm thế nào để ứng viên trả lời phản hồi về mã của mình?

-

Thật khó để nói về # 1. Câu hỏi của bạn nói rằng vấn đề của bạn không bao gồm phần "số in" và thực tế giải pháp của bạn không bao gồm điều đó. Tôi không có lựa chọn nào khác ngoài việc nhận lời của bạn cho nó, nhưng nếu thực tế đó là vấn đề FizzBuzz cổ điển bao gồm việc in các số không chia hết cho một trong hai, thì có vẻ như bạn đã nhảy vào một giải pháp trước khi hiểu đầy đủ các yêu cầu, điều này sẽ là một dấu hiệu tắt.

Tôi sẽ cung cấp cho bạn một phần tín dụng cho # 2 và # 3. Bạn đã biết sử dụng toán tử mô đun và có cấu trúc của một giải pháp làm việc, nhưng đã bỏ lỡ các phần của cả hai.

Có vẻ như bạn đã không làm # 4, điều này sẽ đánh dấu bạn xuống. Trong tương lai, tôi khuyên bạn nên lùi một bước khỏi bảng trắng và xem xét giải pháp của bạn trước khi gọi nó xong. Tôi cũng sẽ (không được nhắc nhở) bước qua một vài bài kiểm tra đơn vị cho giải pháp của bạn, điều này sẽ nhanh chóng chứng minh bạn đã nhầm lẫn ở đâu.

Họ đã không cho bạn cơ hội ở vị trí thứ 5, điều này thật đáng tiếc. Nhưng vấn đề là tôi không muốn ai đó nghĩ rằng mọi dòng mã họ từng viết là vàng nguyên chất không thể cải thiện được, mà là ai đó sẵn sàng chấp nhận phản hồi về các giải pháp của anh ta và tham gia vào một số cuộc trò chuyện về cách tiếp cận của anh ta .

-

Vì vậy, nếu tôi đánh giá về điều này một mình, tôi sẽ bỏ phiếu "Không thuê." Những thứ như thế này là loại đo lường một nghệ thuật trình diễn hơn là khả năng lập trình , nhưng thành thạo nó vẫn có thể hỗ trợ cho sự nghiệp của bạn. Vì vậy, các khuyến nghị của tôi cho các cuộc phỏng vấn công nghệ trong tương lai sẽ là:

  1. Trước khi phỏng vấn, hãy thực hành một vài loại bài tập lạnh này, sử dụng càng ít tài nguyên bên ngoài càng tốt. Không ghi nhớ các giải pháp, nhưng để chắc chắn rằng bạn cảm thấy thoải mái với ngôn ngữ ưa thích của mình

  2. Đặt câu hỏi về vấn đề để xác nhận các giả định của bạn.

  3. Trước khi thông báo giải pháp của bạn hoàn tất, hãy lùi lại từ bảng trắng và xem xét nó, và đi qua một vài trường hợp thử nghiệm đơn vị đơn giản.


Mặc dù tôi đồng ý với điều này như một mục tiêu phỏng vấn cơ bản, nhưng đây không phải là điểm của fizzbuzz. Fizzbuzz đang đo một thứ và một thứ duy nhất. Bạn có thể viết mã đơn giản một cách nhanh chóng và chính xác? Thông thường người phỏng vấn muốn câu hỏi này được thực hiện trong ít hơn 2 phút. Đó không phải là tất cả, tôi biết, nhưng đó là những gì câu hỏi được thiết kế cho.
Jonathan Henson

1
Quan điểm của fizzBuzz là bất cứ điều gì người phỏng vấn muốn nó trở thành. Nếu tôi sử dụng fizzBuzz hoặc một bài tập tương tự, đây là thứ tôi sẽ tìm kiếm.
JohnMcG

1
Chắc chắn bất kỳ câu hỏi phỏng vấn nào là bất cứ điều gì người phỏng vấn muốn sử dụng để đánh giá những điều họ quan tâm. Quan điểm của tôi là FizzBuzz là một câu hỏi rất kém để đánh giá bất cứ điều gì khác ngoài "Anh ấy / cô ấy có thể viết mã chính xác nhanh không?" Nó không thực sự đủ thách thức về mặt kỹ thuật để đánh giá các kỹ năng tư duy phê phán. Nếu ai đó nghiêm túc bị treo vào câu hỏi này, bạn thậm chí có muốn họ vào đội của mình không? Nó giống như thuê một Kỹ sư không thể làm phép tính cơ bản. Trong khi mọi người muốn chắc chắn rằng Kỹ sư biết tính toán cơ bản của mình - thực sự không thể thương lượng được.
Jonathan Henson

2

Yêu cầu ai đó giải quyết vấn đề mà không cho họ khả năng nhận phản hồi về giải pháp của họ là một cách tiếp cận đáng ngờ, vì họ không được phép cải thiện.

Tất cả bài kiểm tra này cho chúng tôi biết rằng bạn đã không thể hiện được các kỹ năng giải quyết vấn đề "đỉnh cao" rất tốt.

Đây có thể là một trong những yếu tố trong quyết định thuê bạn hay không, nhưng với tôi chắc chắn nó không phải là duy nhất.

Họ có cung cấp cho bạn một môi trường thử nghiệm hoặc thực thi đơn vị không, những lỗi bạn mắc phải sẽ ít gây ra hơn.


1
Có thời gian và địa điểm để cải thiện khả năng của bạn, nhưng phỏng vấn xin việc thì không.
RokL

Bạn có ngụ ý rằng một nhà tuyển dụng không nên quan tâm đến năng lực của ứng viên để cải thiện bản thân?
guillaume31

1
Cải thiện bản thân diễn ra trên quy mô thời gian dài hơn một giờ. Nó không quan trọng đối với nhà tuyển dụng.
whatsisname

Tôi nghĩ rằng vấn đề dễ đến mức nào, tôi không nên phạm sai lầm nào mặc dù tôi đang bị căng thẳng. Điều đó đang được nói, tôi nghĩ có cơ sở để "cải thiện" trong các vấn đề như thế này, nếu người phỏng vấn đẩy ứng viên một chút. Thậm chí nói một cái gì đó đơn giản như "bạn có nghĩ rằng bạn có thể cải thiện điều này không?" sẽ cung cấp cho ứng viên một gợi ý rằng một cái gì đó không đúng hoặc anh ấy / cô ấy có thể làm tốt hơn. Tôi không có nhận xét như vậy.
ja_programmer

@whatsisname: Tôi nghĩ nó nên quan trọng với nhà tuyển dụng, nhưng không phải theo cách bạn có thể nghĩ. Nếu ứng viên bị từ chối, nhà tuyển dụng cần phản hồi để hiểu lý do tại sao anh ta có thể giới thiệu ứng viên tốt hơn cho công ty trong tương lai và hướng dẫn ứng viên này cách họ có thể trở thành ứng viên mạnh hơn cho tương lai. Tôi nghĩ rằng có chỗ cho lợi ích lẫn nhau ở đó.
alroc
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.