การทดสอบความถนัดของโปรแกรมเมอร์ [ปิด]


14

ฉันมีเพื่อนมากมายที่เห็นสิ่งที่ฉันทำพบว่ามันน่าสนใจและถามคำถามฉัน

Do you think I could be a programmer?

คำตอบของฉันคือ

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

ฉันต้องการคำตอบที่มีประโยชน์ดังนั้นฉันไม่รู้ว่าใครรู้ว่ามีการทดสอบความถนัดที่ค่อนข้างดีสำหรับคนที่จะเริ่มจากตารางที่ 1 แต่มีความคิดเชิงวิพากษ์และทักษะการแก้ปัญหาหรือไม่


ฉันเสนอ BuzzFizz: จากสามโปรแกรมที่แตกต่างกันพวกเขาสามารถเรียกใช้และระบุว่า "FizzBuzz" อันไหนได้บ้าง
Macneil

15
อย่าผสมคณิตศาสตร์และการเขียนโปรแกรม ฉันทำงานเป็นโปรแกรมเมอร์เป็นเวลาหลายปี ฉันเกลียดคณิตศาสตร์. อีกตัวอย่าง: Jeff Atwood เป็นโปรแกรมเมอร์ที่ยอดเยี่ยม เขาเกลียดคณิตศาสตร์ (ดูcodinghorror.com/blog/2007/01/… , จุดที่ 3)
Arseni Mourzenko

2
@MainMa ฉันไม่สามารถเน้นความจริงนี้ ฉันอยู่ในที่แน่นอนเรือลำเดียวกัน คณิตศาสตร์ไม่เคยมีความรักในตัวฉันหรือเป็นจุดแข็งสำหรับเรื่องนั้น ที่ถูกกล่าวว่าหลายคนที่รู้จักฉันจะยืนยันถึงความถนัดสุดขีดของฉัน (อ่าน: ความหลงใหล) สำหรับการเขียนโปรแกรม คณิตศาสตร์สามารถเป็นส่วนสำคัญของการเขียนโปรแกรม แต่ก็ไม่จำเป็นที่จะต้องสร้างโปรแกรมอื่นขึ้นมา
นาธานเทย์เลอร์

1
บางทีเมื่อฉันพูดว่า "คุณชอบคณิตศาสตร์หรือไม่" ฉันหมายถึงว่า "คุณเคารพในคณิตศาสตร์หรือไม่" ฉันจริง ๆ ดูดคณิตศาสตร์ด้วยมือซึ่งเป็นเหตุผลที่ฉันชอบทำให้คอมพิวเตอร์ทำคณิตศาสตร์สำหรับฉัน แต่ฉันเคารพ และเข้าใจหลักการ จำกัด ของคณิตศาสตร์ที่ฉันเชื่อว่าช่วยฉันในกระบวนการคิดเชิงตรรกะของฉัน
jondavidjohn

2
"apptitude" เป็นตัวพิมพ์ที่ยอดเยี่ยมจริงๆในบริบทนี้ :-)
Ferruccio

คำตอบ:


12

"Liking math" เป็นการทดสอบที่ไม่ดี ฉันไม่เคยชอบคณิตศาสตร์ (ส่วนใหญ่เป็นเพราะ 90% ของครูคณิตศาสตร์ในโรงเรียนมัธยมดูด)

เมื่อคุณพูดว่า "คณิตศาสตร์" คนส่วนใหญ่คิดว่าคุณหมายถึง "การแก้สมการอย่างรอบคอบตามกฎที่เคร่งครัด" การเขียนโปรแกรมไม่เหมือนที่ทุกคน

การเขียนโปรแกรมเป็นเหมือนการวาดในสิ่งที่คุณสามารถบรรลุได้นั้นถูก จำกัด ด้วยสิ่งที่คุณจินตนาการได้เท่านั้น

สิ่งสำคัญคือความสามารถในการจินตนาการระบบและดูว่ามันทำงานอย่างไร

  • คุณคิดเกี่ยวกับวิธีการทำงานของสิ่งต่าง ๆ ?
  • คุณคิดถึงวิธีปรับปรุงสิ่งต่าง ๆ ในชีวิตประจำวันหรือไม่?
  • คุณสามารถเห็นภาพวิธีการสร้างบางสิ่งบางอย่างจากการสร้างบล็อคที่ง่ายกว่าได้หรือไม่?

มันเหมือนเรขาคณิตใช่ไหม
Gulshan

มันเป็นวิทยาศาสตร์ประยุกต์ดังนั้นมันจึงไม่มีวิทยาศาสตร์บริสุทธิ์ "เทียบเท่า" ต่อคน
jondavidjohn

1
การเขียนโปรแกรมเป็นเหมือนช่างไม้คุณเห็นภาพโซลูชันก่อนเลือกเครื่องมือของคุณใช้ฝีมือของคุณอย่างระมัดระวังโดยใช้ไม้ TDD ที่ดีที่สุด พระเยซูคงจะเป็นโปรแกรมเมอร์ถ้า 64 ผู้ค้นพบนี้ถูกประดิษฐ์ขึ้นเร็ว ๆ นี้
จะ

2
จริงๆแล้วสิ่งที่คุณอธิบายฟังดูเหมือนคณิตศาสตร์มาก ๆ ซึ่งตรงข้ามกับสิ่งที่ผ่านไปสำหรับโรงเรียนคณิตศาสตร์
uman

1
@Brennan: คณิตศาสตร์เดียวที่ฉันพบคล้ายกับการเขียนโปรแกรมคือคณิตศาสตร์ไม่ต่อเนื่องในมหาวิทยาลัย คณิตศาสตร์อื่น ๆ ที่เราศึกษาส่วนใหญ่เกี่ยวกับการใช้กฎและสูตรอย่างไร้เหตุผลเพื่อแก้สมการบางอย่าง คุณสามารถโต้แย้งว่าไม่ใช่คณิตศาสตร์จริง แต่มันไม่สำคัญสำหรับการสนทนานี้
hasen

8

ฉันจำได้ว่าตั้งแต่เด็ก ๆ ทำแบบทดสอบความถนัด Brainbench ; ฉันยังมีใบรับรองเก็บไว้ที่อื่น ...

โครงร่างการทดสอบ:

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
เป็นการทดสอบที่ซับซ้อนมาก ถ้ามีคนบอกให้ฉันทำการทดสอบก่อนที่จะทำการเขียนโปรแกรมฉันจะกลัว ตกลงฉันอาจจะไม่แคร์ แต่ใครก็ตามที่จะทำการทดสอบอย่างจริงจังจะกลัว
hasen

2
ดังนั้น? การเขียนโปรแกรมอาจเป็นฟิลด์ที่ซับซ้อน (เช่นเดียวกับคนอื่น ๆ ) หากคุณกลัวอย่างง่ายดายนั่นอาจไม่ใช่สำหรับคุณ ลองนึกภาพว่าคุณถูกถามว่ามีคนต้องการเป็นหมอหรือไม่พวกเขาควรทำอย่างไรดี? ฉันไม่คิดว่าคุณจะสนใจว่ามันทำให้บางคนกลัว ... ชีวิตที่ยากลำบากและซับซ้อนพวกเขาควรจะชินกับมัน
Dan McGrath

2
มันเป็นสนามที่ซับซ้อนถ้าคุณเข้าใกล้มันคุณจะล้มเหลว ทุกคนที่เริ่มเขียนโปรแกรมเริ่มต้นด้วยสิ่งที่ง่ายและเชื่อว่ามันง่ายจริงๆ ความเชื่อนั้นจะคงอยู่ตลอดจากประสบการณ์การเรียนรู้ คุณไม่มีทางรู้ว่ามันซับซ้อนแค่ไหนจนกว่าคุณจะมองย้อนกลับไปหรือดูบางคนดิ้นรนกับสิ่งที่คุณพบว่าพื้นฐาน
hasen

ขออภัยในรายการด้านบนเป็นทักษะที่สำคัญที่คุณจะใช้เป็นโปรแกรมเมอร์ ฉันคิดว่าคุณกลัวชื่อของพวกเขามากกว่าคำถามที่จะตกอยู่ภายใต้พวกเขา มันไม่เหมือนกับการขอแนวคิดที่ซับซ้อนใด ๆ ที่ใช้ในการเขียนโปรแกรม กล่าวอีกนัยหนึ่งการทดสอบความถนัดไม่มีส่วนเกี่ยวข้องกับแนวคิดการเขียนโปรแกรมที่คุณสามารถเรียนรู้ได้มันเกี่ยวกับความถนัดดังนั้นความคิดเห็นเกี่ยวกับ "การเริ่มต้นด้วยสิ่งที่ง่าย" ไม่เกี่ยวข้องกับที่นี่จริงๆ
Dan McGrath

7

มีโอกาสที่จะมีคนดีอยู่แล้ว

ดูตัวอย่างการอภิปรายเรื่องการแยกการเขียนโปรแกรมแกะจากแพะที่ไม่ได้เขียนโปรแกรม :

ครูของการเขียนโปรแกรมทั้งหมดพบว่าผลลัพธ์ของพวกเขาแสดง 'โคกสองเท่า' ราวกับว่ามีประชากรสองคน: ผู้ที่สามารถ [โปรแกรม] และผู้ที่ไม่สามารถ [โปรแกรม] แต่ละคนมีเส้นโค้งระฆังอิสระ งานวิจัยเกือบทั้งหมดในการเรียนการสอนการเขียนโปรแกรมและการเรียนรู้มุ่งเน้นไปที่การสอน: เปลี่ยนภาษาเปลี่ยนพื้นที่การสมัครใช้ IDE และทำงานกับแรงจูงใจ มันไม่ทำงานและโคกคู่ยังคงมีอยู่ เรามีการทดสอบที่เลือกประชากรที่สามารถโปรแกรมก่อนที่จะเริ่มหลักสูตร เราสามารถแยกโคกคู่ออกจากกัน คุณอาจไม่เชื่อสิ่งนี้ แต่หลังจากคุณได้ยินเสียงพูด เราไม่รู้แน่ชัดว่ามันทำงานอย่างไร แต่เรามีทฤษฎีที่ดี

สิ่งที่การทดสอบบ่งชี้ว่าผู้คนมีความสอดคล้องกันอย่างไรกับการปฏิบัติตามลำดับขั้นตอน หมายความว่าพวกเขาสามารถสร้างแบบจำลอง (abstractions) ในใจของพวกเขาและทำงานกับพวกเขา


2

ฉันคิดว่า "การทดสอบ" ที่สำคัญกว่านั้นก็คือการแสดงภาษา / สภาพแวดล้อมการเขียนโปรแกรมแบบง่าย ๆ ที่พวกเขาสามารถเล่นได้ ยกตัวอย่างเช่นการประมวลผลหรืองูหลาม หากพวกเขาสามารถเรียนรู้และสนุกกับการใช้ภาษาดังกล่าว - ในขณะที่การแก้ปัญหาอย่างง่าย ๆ หรือสองอย่าง - นั่นอาจเป็น "การทดสอบความถนัด" ที่ดีที่สุดที่คุณสามารถขอได้


2

"คุณชอบคณิตศาสตร์หรือไม่" ไม่ใช่การเริ่มต้นที่ไม่ดี คณิตศาสตร์มีความสำคัญหลังจากนั้น ...

จะแนะนำให้ดูว่าพวกเขาสามารถใช้ปัญหาและเริ่มแบ่งเป็นบล็อกในคำพูดไม่ว่าพวกเขาสามารถเดินทีละขั้นตอนผ่านปัญหาพื้นฐานเป็นจุดเริ่มต้นที่ดี

  • คุณจะบอกหุ่นยนต์ให้ชงชาได้อย่างไร จงเจาะจงให้มากที่สุด
  • การสั่งอาหารที่ McDonalds มีขั้นตอนอะไรบ้างที่เกี่ยวข้องกับการจัดการคำสั่งซื้อตั้งแต่แรกถูกบอกให้เปลี่ยนอาหาร
  • ระบบโทรศัพท์ทำงานอย่างไร

หากพวกเขาสามารถตอบคำถามเหล่านั้นได้ดีในเชิงวิเคราะห์และเชิงลึกที่โปรแกรมเมอร์มีอยู่ทุกวันพวกเขาอาจจัดการกับมันได้


1

เมื่อคุณได้รับการเข้ารหัสคุณมีแรงกระตุ้นที่จะทำหรือไม่ทำ ความถนัดเป็นเพียงปัจจัยหนึ่งที่คุณจะทำได้ดีหรือไม่ การได้รับตัวอย่างที่ดีการสอนเวลาในการปฏิบัติงานความพยายามเป็นสิ่งอื่น การต้องการ / ต้องการทำบางสิ่งบางอย่างจริงๆทำให้สามารถใช้ประโยชน์จากปัจจัยอื่น ๆ ได้ง่ายขึ้น


1

คำถามที่ดีกว่า "คุณชอบคณิตศาสตร์" คือ "คุณชอบที่จะแก้ปริศนาตรรกะ" หรือไม่? นี่คือสิ่งต่าง ๆ เช่น Sudoku ฯลฯ หรือค้นหาคำตอบสำหรับ conundrums เช่น "John, Anne, Peter, Mary และ Brittany เป็นประเทศเพื่อนบ้าน John มีรถสีขาว Brittany อยู่ทางซ้ายของ Anne, blah blah ตามลำดับ พวกเขามีชีวิตอยู่เหรอ? "

เพราะนั่นคือสิ่งที่การเขียนโปรแกรมคือ: หนึ่งปริศนาตรรกะขนาดใหญ่


1
ฉัน (ค่อนข้าง) เหมือนวิชาคณิตศาสตร์ แต่ปริศนาเป็นเพียงการทุบหัวโดยไม่จำเป็นกับกำแพง ฉันคิดว่าคุณต้องการแรงจูงใจในการสร้างสิ่งที่มีประโยชน์ - ซึ่งตรงกันข้ามกับยิมนาสติกจิตเพื่อวัตถุประสงค์ในการแสดงออกว่าคุณฉลาดแค่ไหน
Omega Centauri

เอาล่ะคุณไม่ต้องการที่จะชอบแค่ทำมันให้ดี :-)
Lennart Regebro

1

ฉันคิดว่าคำถามที่ดีกว่าคือ "คุณชอบสร้างสิ่งต่าง ๆ ด้วยบล็อกเลโก้หรือไม่"


1

เช่นเดียวกับ Gusteau ตัวละครจากภาพยนตร์ Ratatouille กล่าวว่า:

ทุกคนสามารถปรุงอาหาร

ในทำนองเดียวกันทุกคนสามารถตั้งโปรแกรม แต่ไม่ใช่ทุกคนที่จะยอดเยี่ยม งานเขียนโปรแกรมส่วนใหญ่ต้องการระดับความถนัดและความสามารถโดยเฉลี่ย

แค่ตอบว่าใช่ ทำไม? เพราะคนส่วนใหญ่ต้องการเพียงแค่รู้สึกชื่นชมจากใครบางคนที่พวกเขาคิดว่าฉลาด


2
ฉันไม่เห็นด้วยอย่างยิ่งที่ทุกคนสามารถเขียนโปรแกรมได้ มันดูด แต่นั่นคือชีวิต
uman

0

ฉันคิดว่าคณิตศาสตร์ที่ชื่นชอบนั้นสำคัญ ไม่ใช่จากมุมมองของคุณสนุกกับการพิสูจน์สิ่งต่าง ๆ อย่างจริงจังซึ่งจะต้องเป็นนักคณิตศาสตร์อย่างจริงจัง แต่ด้วยปัญหาที่สำคัญสำหรับคุณคุณสามารถกำหนดประเด็นที่เกี่ยวข้องกับการแก้ปัญหาด้วยวิธีการทางคณิตศาสตร์ได้หรือไม่ ฉันอ้างว่าทุกอย่างที่คอมพิวเตอร์ทำคือคณิตศาสตร์มันต้องใช้ข้อมูลเชิงสัญลักษณ์ของการเรียงลำดับและดำเนินการบางอย่างกับมัน นั่นคือสาระสำคัญของคณิตศาสตร์ ดังนั้นคุณจะต้องสามารถสรุปสิ่งต่าง ๆ ในเชิงคณิตศาสตร์เช่นโครงสร้างและเหตุผลเกี่ยวกับขั้นตอนต่อไป คุณก็แค่แฮ็คขว้างโค้ดและหวังว่ามันจะทำในสิ่งที่คุณต้องการ ความสามารถในการแก้พีชคณิตที่ซับซ้อนโดยไม่ต้องพิมพ์ผิดและหลงทางอาจไม่จำเป็น แต่ความสามารถในการกำหนดแผนเป็นสิ่งสำคัญ ฉันมักจะเขียนโปรแกรมสิบบรรทัดเพื่อตรวจสอบว่าคณิตศาสตร์ของฉันไม่ซับซ้อนเกินไปถูกต้องแล้ว การรวมคอมพิวเตอร์เข้ากับคณิตศาสตร์เพื่อจุดประสงค์ในการตรวจสอบค้นพบและใช่ในการหารายละเอียดเมื่อมีจำนวนมากเป็นกุญแจสำคัญที่แท้จริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.