Kiểm tra năng khiếu lập trình viên [đóng]


14

Tôi có nhiều người bạn thấy những gì tôi làm, thấy thú vị và hỏi tôi câu hỏi

Do you think I could be a programmer?

Phản hồi của tôi là

...   ummm  ...  do you like math?

Tôi muốn có một câu trả lời hữu ích, vì vậy tôi không biết liệu có ai biết về bài kiểm tra năng khiếu khá tốt cho ai đó sẽ bắt đầu từ một hình vuông không, nhưng có tư duy phê phán và kỹ năng giải quyết vấn đề không?


Tôi đề xuất BuzzFizz: Đưa ra ba thực thi khác nhau, họ có thể chạy chúng và xác định cái nào là "FizzBuzz" không?
Macneil

15
Đừng trộn lẫn toán học và lập trình. Tôi làm việc như một lập trình viên trong nhiều năm. Tôi ghét toán. Một ví dụ khác: Jeff Atwood là một lập trình viên xuất sắc. Anh ta ghét môn toán (xem mã hóa kinh dị.com / blog / 2007/01 / điểm, điểm 3).
Arseni Mourzenko

2
@MainMa Tôi không thể nhấn mạnh điều này đúng như thế nào. Tôi đang trong chính xác cùng thuyền. Toán học chưa bao giờ là niềm đam mê của tôi, hoặc thậm chí là một điểm mạnh, cho vấn đề đó. Điều đó đang được nói, nhiều người biết tôi sẽ chứng thực khả năng cực đoan của tôi (đọc: nỗi ám ảnh) cho lập trình. Toán học có thể là một phần chính của lập trình, nhưng người ta không nhất thiết phải quên người khác.
Nathan Taylor

1
có lẽ khi tôi nói, "bạn có thích môn toán không?", ý tôi là nói "bạn có tôn trọng môn toán không?", tôi thực sự say mê toán học bằng tay, đó là lý do tại sao tôi thích làm máy tính làm toán cho tôi, nhưng tôi tôn trọng và hiểu các nguyên tắc hữu hạn của toán học mà tôi tin rằng giúp tôi trong quá trình tư duy logic của tôi.
jondavidjohn

2
"Apptitude" là một lỗi đánh máy thực sự tuyệt vời trong bối cảnh này :-)
Ferruccio

Câu trả lời:


12

"Liking math" là một bài kiểm tra tồi. Tôi không bao giờ thích môn toán (chủ yếu là vì 90% giáo viên toán ở trường trung học bị hút).

Khi bạn nói "toán học", hầu hết mọi người nghĩ bạn có nghĩa là "cẩn thận giải một phương trình theo một bộ quy tắc rất nghiêm ngặt". Lập trình không giống như vậy chút nào.

Lập trình giống như vẽ hơn, ở chỗ những gì bạn có thể đạt được chỉ bị giới hạn bởi những gì bạn có thể tưởng tượng.

Điều quan trọng là khả năng tưởng tượng một hệ thống và xem nó hoạt động như thế nào.

  • Bạn có nghĩ về cách mọi thứ hoạt động?
  • Bạn có nghĩ về những cách để cải thiện những thứ hàng ngày?
  • Bạn có thể hình dung làm thế nào để xây dựng một cái gì đó từ các khối xây dựng đơn giản hơn?

Nó giống hình học hơn?
Gul Sơn

nó là một khoa học ứng dụng, vì vậy nó không thực sự có một khoa học thuần túy "tương đương" mỗi se.
jondavidjohn

1
Lập trình giống như nghề mộc, trước tiên bạn hãy hình dung giải pháp, chọn công cụ của bạn, áp dụng thủ công của bạn một cách cẩn thận bằng cách sử dụng gỗ TDD tốt nhất. Jesus sẽ là một lập trình viên nếu chiếc tàu sân bay 64 được phát minh sớm hơn một chút.
Sẽ

2
Trên thực tế những gì bạn mô tả nghe rất giống toán học - trái ngược với những gì đạt được cho các trường học toán.
Uman

1
@Brennan: Toán học duy nhất tôi thấy tương tự như lập trình là Toán rời rạc ở trường đại học. Hầu hết các môn toán khác mà chúng tôi nghiên cứu là về việc áp dụng các quy tắc và công thức một cách vô thức để giải một số phương trình. Bạn có thể tranh luận rằng đó không phải là toán học thực sự, nhưng nó không quan trọng đối với cuộc thảo luận này.
hasen

8

Tôi nhớ từ hồi còn bé khi làm bài kiểm tra năng khiếu Brainbench ; Tôi vẫn còn chứng chỉ được lưu trữ ở đâu đó ...

Đề cương thử nghiệm:

Abstract Thinking
    Process Flow
    Spatial Manipulation
Analytical Reasoning
    Inductive Reasoning
    Logic Application
    Word Problems
Attention to Detail
    Following Instructions
    Reading Comprehension
    Rule Interpretation
    Writing Analysis
Mathematical Problem-Solving
    Word Problems
Process Mapping
    General Processes
    Letter Manipulation Processes
    Number Manipulation Processes
    Shape Manipulation Processes

1
Đó là một bài kiểm tra rất phức tạp. Nếu ai đó bảo tôi làm bài kiểm tra trước khi đi sâu vào lập trình, tôi sẽ sợ. OK, có lẽ tôi sẽ không quan tâm, nhưng bất cứ ai thực hiện bài kiểm tra nghiêm túc đều sẽ sợ hãi.
hasen

2
Vì thế? Lập trình có thể là một lĩnh vực phức tạp (giống như những người khác). Nếu bạn sợ điều đó một cách dễ dàng, có thể nó không dành cho bạn. Hãy tưởng tượng nếu bạn được hỏi nếu ai đó muốn trở thành một Bác sĩ, họ nên giỏi về cái gì? Tôi không nghĩ bạn sẽ quan tâm đến việc nó khiến một số người sợ hãi ... Cuộc sống khó khăn và phức tạp, họ nên làm quen với điều đó.
Dan McGrath

2
Chà, đó là một lĩnh vực phức tạp, nếu bạn tiếp cận nó, bạn sẽ thất bại. Mọi người bắt đầu lập trình đều bắt đầu với những thứ dễ dàng và tin rằng nó thực sự dễ dàng. Niềm tin đó có thể sẽ được duy trì thông qua kinh nghiệm học tập của họ. Bạn không bao giờ nhận ra nó phức tạp như thế nào cho đến khi bạn nhìn lại, hoặc xem ai đó vật lộn với thứ gì đó mà bạn thấy rất cơ bản.
hasen

Xin lỗi, bởi danh sách trên là những kỹ năng thiết yếu bạn sẽ sử dụng như một lập trình viên. Tôi nghĩ rằng bạn đang sợ tên của họ, hơn là những câu hỏi sẽ thuộc về họ. Nó không giống như nó hỏi bạn bất kỳ khái niệm phức tạp được sử dụng trong lập trình. Nói cách khác, các bài kiểm tra năng khiếu không liên quan gì đến việc bạn hiểu các khái niệm lập trình mà bạn có thể học được bao nhiêu, đó là về năng khiếu , vì vậy nhận xét về "bắt đầu với những thứ dễ dàng" không thực sự phù hợp ở đây
Dan McGrath

7

Có một cơ hội rằng đã có một cái tốt ở ngoài đó.

Xem ví dụ như cuộc thảo luận về Tách cừu lập trình khỏi Dê không lập trình :

Tất cả các giáo viên lập trình thấy rằng kết quả của họ hiển thị một "bướu kép". Như thể có hai quần thể: những người có thể [chương trình] và những người không thể [chương trình], mỗi người có đường cong chuông độc lập của riêng mình. Hầu như tất cả các nghiên cứu về dạy và học lập trình đều tập trung vào giảng dạy: thay đổi ngôn ngữ, thay đổi khu vực ứng dụng, sử dụng IDE và làm việc dựa trên động lực. Không có cái nào hoạt động, và cái bướu kép vẫn tồn tại. Chúng tôi có một bài kiểm tra chọn ra dân số có thể lập trình trước khi khóa học bắt đầu. Chúng ta có thể tách đôi bướu. Bạn có thể không tin điều này, nhưng bạn sẽ sau khi nghe bài nói chuyện. Chúng tôi không biết chính xác làm thế nào / tại sao nó hoạt động, nhưng chúng tôi có một số lý thuyết tốt.

Những gì bài kiểm tra xác định là mức độ phù hợp của mọi người với việc vận hành một chuỗi các hướng dẫn. Điều đó có nghĩa là họ có thể xây dựng các mô hình (trừu tượng) trong tâm trí của họ và làm việc với chúng.


2

Tôi nghĩ rằng một "bài kiểm tra" quan trọng hơn sẽ là cho họ thấy một ngôn ngữ / môi trường lập trình đơn giản mà họ có thể chơi xung quanh. Ví dụ, chế biến hoặc trăn . Nếu họ có thể học và thích sử dụng một ngôn ngữ như vậy - có thể trong khi giải quyết một hoặc hai nhiệm vụ đơn giản - thì đó có lẽ là "bài kiểm tra năng khiếu" tốt nhất mà bạn có thể yêu cầu.


2

"Bạn có thích toán không?" không phải là một khởi đầu tồi Toán học rất quan trọng, sau đó ...

Nên xem liệu họ có thể đưa ra một vấn đề và bắt đầu chia nó thành các khối hay không, chỉ bằng lời nói, liệu họ có thể đi từng bước qua một vấn đề cơ bản hay không là một khởi đầu tốt.

  • Làm thế nào bạn sẽ nói với một robot làm thế nào để làm một tách trà? Càng cụ thể càng tốt.
  • Đặt một bữa ăn tại McDonalds, những bước liên quan đến việc xử lý đơn đặt hàng, từ ban đầu được nói đến việc thay đổi / thực phẩm.
  • Hệ thống điện thoại hoạt động như thế nào?

Nếu họ có thể trả lời tốt, theo cách phân tích và sâu sắc mà một lập trình viên phải làm từng ngày, họ có thể có thể xử lý nó.


1

Khi bạn đã tiếp xúc với mã hóa, bạn có thể bắt buộc phải làm điều đó hoặc không. Năng khiếu chỉ là một yếu tố quyết định bạn có giỏi về nó hay không. Tiếp xúc với các ví dụ tốt, hướng dẫn, thời gian làm nhiệm vụ, nỗ lực là những người khác. Thực sự muốn / cần phải làm một cái gì đó làm cho việc tận dụng các yếu tố khác dễ dàng hơn nhiều.


1

Một câu hỏi hay hơn "Bạn có thích môn toán" là "Bạn có thích giải các câu đố logic" không? Đây là những thứ như Sudoku, v.v., hoặc tìm ra câu trả lời cho những câu hỏi hóc búa như "John, Anne, Peter, Mary và Brittany là hàng xóm. John có một chiếc xe hơi màu trắng, Brittany sống bên trái Anne, blah blah, theo thứ tự để họ sống? "

Bởi vì đó là những gì lập trình là: Một câu đố logic rất lớn.


1
Tôi (phần nào) thích môn toán, nhưng câu đố chỉ là sự va chạm không cần thiết của một người vào tường. Tôi nghĩ rằng bạn cần động lực để tạo ra thứ gì đó hữu ích - trái ngược với thể dục dụng cụ tinh thần cho mục đích thể hiện bạn thông minh như thế nào.
Omega Centauri

Chà, OK, bạn không cần phải thích nó, chỉ cần giỏi về nó. :-)
Lennart Regebro

1

Tôi nghĩ một câu hỏi hay hơn là "Bạn có thích xây dựng mọi thứ với các khối lego không?"


1

Giống như Gusteau, một nhân vật trong bộ phim Ratatouille nói:

Bất cứ ai cũng có thể nấu ăn.

Theo cùng một cách, bất cứ ai cũng có thể lập trình. Nhưng, không phải ai cũng sẽ tuyệt vời với nó. Hầu hết các công việc lập trình đều yêu cầu trình độ năng lực và năng lực trung bình.

Chỉ cần trả lời có. Tại sao? Bởi vì hầu hết mọi người chỉ muốn cảm thấy được đánh giá cao bởi một người mà họ cho là thông minh.


2
Tôi hoàn toàn không đồng ý rằng bất cứ ai cũng có thể lập trình. Nó hút, nhưng đó là cuộc sống.
Uman

0

Tôi nghĩ rằng toán học là quan trọng. Không phải từ quan điểm của bạn có thích công cụ chứng minh nghiêm ngặt, mà sẽ được yêu cầu phải là một nhà toán học nghiêm túc. Nhưng, đưa ra một vấn đề quan trọng đối với bạn, bạn có thể hình thành các vấn đề liên quan đến việc giải quyết nó theo cách toán học. Tôi khẳng định, mọi thứ máy tính làm là toán học, nó lấy dữ liệu tượng trưng của một số loại và thực hiện một số hoạt động trên nó. Đó là bản chất của toán học. Vì vậy, bạn phải có khả năng trừu tượng hóa mọi thứ thành một cấu trúc toán học như af, và lý do về các bước tiến. Thiếu điều đó, bạn chỉ đang hack, ném ra một số mã và hy vọng nó làm những gì bạn muốn. Có thể giải đại số phức tạp mà không mắc lỗi chính tả và bị lạc, có lẽ không quá cần thiết. Nhưng có thể xây dựng một kế hoạch, là quan trọng. Tôi thường viết mười chương trình dòng để xác minh rằng toán học không quá phức tạp của tôi đã được thực hiện đúng. Kết hợp máy tính với toán học, cho mục đích xác minh, khám phá và có để tìm ra các chi tiết, khi có rất nhiều trong số chúng, là chìa khóa thực sự.

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.