มีการศึกษา“ ไม่ใช่ทุกคนที่สามารถเป็นโปรแกรมเมอร์” ได้หรือไม่?


182

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

ตอนนี้ฉันแน่ใจว่าเราทุกคนมีหลักฐานพอสมควรของเราเอง แต่มีการศึกษาทางวิทยาศาสตร์หรือไม่?


63
ฟังดูเหมือนคำถามคลางแคลงที่ดี
แช้ดแฮร์ริสัน

10
การเรียนรู้วิธีการเขียนโปรแกรมนั้นแตกต่างอย่างมากจากความสามารถในการเป็นโปรแกรมเมอร์ที่มีค่า การเขียนโปรแกรมง่ายมากส่วนใหญ่ อ่านข้อมูลจำเพาะใช้งานให้สอดคล้อง ทดสอบ. ทำซ้ำ ใช่ทุกคนสามารถเป็นโปรแกรมเมอร์ ไม่ใช่ทุกคนที่จะเป็นโปรแกรมเมอร์ที่มีค่า โดยเฉพาะงานบางอย่างต้องใช้ความคิดและการทดลองมากกว่างานอื่น สิ่งที่ดีที่สุดสำหรับคนที่ชอบทำมัน ตัวอย่างสามารถนำโครงสร้างระดับต่ำมาใช้นับวงจรนาฬิกาบิตและไบต์โดยไม่ต้องใช้เครื่องมือ programmig ที่ทันสมัยหรืออะไรก็ตาม ทุกคนไม่สามารถจัดการได้
zxcdw

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

37
สุภาษิตได้รับการพิสูจน์แล้วว่าเป็นจริงทุกวันในโปรแกรมเมอร์ <sigh>
yannis

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

คำตอบ:


87

การศึกษาอื่นการศึกษาความมีชีวิตของแบบจำลองทางจิตที่จัดทำโดยโปรแกรมเมอร์มือใหม่ :

บทความนี้จะอธิบายการตรวจสอบความมีชีวิตของแบบจำลองทางจิตที่ใช้โดยโปรแกรมเมอร์มือใหม่เมื่อสิ้นสุดหลักสูตรการเขียนโปรแกรม Java ปีแรก ผลการวิจัยเชิงคุณภาพระบุช่วงของแบบจำลองทางจิตของค่านิยมและการมอบหมายการอ้างอิงที่จัดขึ้นโดยผู้เข้าร่วม การวิเคราะห์เชิงปริมาณพบว่าประมาณหนึ่งในสามของนักเรียนมีแบบจำลองทางจิตที่ไม่สามารถปฏิบัติได้ของการกำหนดค่าและมีเพียง 17% ของนักเรียนที่มีรูปแบบจิตที่ทำงานได้ของการกำหนดอ้างอิง นอกจากนี้ในแง่ของการเปรียบเทียบระหว่างแบบจำลองทางจิตของผู้เข้าร่วมกับการปฏิบัติในการประเมินในหลักสูตรและการสอบปลายภาคพบว่านักเรียนที่มีแบบจำลองทางจิตที่ทำงานได้นั้นมีประสิทธิภาพดีกว่าแบบที่ไม่สามารถใช้งานได้ การค้นพบนี้ใช้เพื่อเสนอ "คอนสตรัคติวิสต์" มากกว่า

นอกจากนี้โปรดดูการวิจัยในภายหลังจากผู้เขียนเดียวกันของการศึกษา Sheep vs Goats (ซึ่งไม่เคยตีพิมพ์จริงเพื่อให้ชัดเจน) การศึกษาล่าสุดและล่าสุดของพวกเขาในหัวข้อนี้ตั้งแต่ปี 2009 คือการวิเคราะห์ Meta ของผลของความสอดคล้องต่อความสำเร็จในการเรียนรู้เริ่มต้นของการเขียนโปรแกรม (pdf)

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


24
"... หลักสูตรการเขียนโปรแกรม Java ปีแรก ... " <- ฉันพบปัญหาของคุณ
Jon Galloway

4
Bornat นอกเหนือจากการดึงกระดาษต้นฉบับกลับมาพูดคุยเกี่ยวกับความพยายามที่จะทำซ้ำผลปี 2009 - สำหรับฉันพวกเขาดูเหมือนจะไม่ให้กำลังใจ: eis.mdx.ac.uk/staffpages/r_bornat/papers/…
Blaisorblade

6
ดังที่ได้กล่าวไว้ข้างต้นกระดาษต้นฉบับในเอกสารฉบับนี้ถูกถอนออก: retractionwatch.com/2014/07/18/…
Spongeboy

92

ใช่มีกระดาษที่มีชื่อเสียงทางออนไลน์ที่ได้รับการออกแบบมาเพื่อระบุว่า "ใครถูกตัดออกไปเป็นโปรแกรมเมอร์"

การศึกษาความรู้ความเข้าใจเกี่ยวกับการเรียนรู้ในช่วงต้นของการเขียนโปรแกรม - ศาสตราจารย์ริชาร์ด Bornat, ดร. เรย์อดัมส์

ครูของการเขียนโปรแกรมทั้งหมดพบว่าผลลัพธ์ของพวกเขาแสดง 'โคกสองเท่า' ราวกับว่ามีประชากรสองคน: ผู้ที่สามารถ [โปรแกรม] และผู้ที่ไม่สามารถ [โปรแกรม] แต่ละคนมีเส้นโค้งระฆังอิสระ

งานวิจัยเกือบทั้งหมดในการเรียนการสอนการเขียนโปรแกรมและการเรียนรู้มุ่งเน้นไปที่การสอน: เปลี่ยนภาษาเปลี่ยนพื้นที่การสมัครใช้ IDE และทำงานกับแรงจูงใจ มันไม่ทำงานและโคกคู่ยังคงมีอยู่

เรามีการทดสอบที่เลือกประชากรที่สามารถโปรแกรมก่อนที่จะเริ่มหลักสูตร เราสามารถแยกโคกคู่ออกจากกัน คุณอาจไม่เชื่อสิ่งนี้ แต่หลังจากคุณได้ยินเสียงพูด เราไม่รู้แน่ชัดว่ามันทำงานอย่างไร แต่เรามีทฤษฎีที่ดี


นี่คือบล็อกโพสต์โดย Jeff Atwoodที่ตีความผลลัพธ์และทำให้บางสิ่งเข้ากับบริบท

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

ครูที่มีประสบการณ์เบื่อหน่าย แต่ไม่เคยลืมความจริงข้อนี้ ผู้เริ่มต้นที่สดใสที่เชื่อว่าผู้เฒ่าคนแก่ต้องทำผิดเรียนรู้ความจริงจากประสบการณ์อันขมขื่น และเป็นเช่นนั้นมาเกือบสองชั่วอายุคนนับตั้งแต่เริ่มหัวข้อในทศวรรษ 1960


46
เพื่อความเป็นธรรม - การศึกษาครั้งนี้พิสูจน์ให้เห็นว่า 30-60% ของการเรียนในโรงเรียนไม่สามารถรบกวนการทำงานใด ๆ นั่นเป็นเรื่องจริงในทุกวิชาและทุกเวลา!
Martin Beckett

15
นี่เป็นบทความที่น่าสนใจและสนับสนุนแนวคิดที่ว่าไม่ใช่ทุกคนที่ถูกตัดออกจากโปรแกรม น่าเสียดายที่ผู้เขียนทำงานในภายหลัง (ในหน้าเชื่อมโยง) แสดงให้เห็นว่าการทดสอบของพวกเขานั้นคาดการณ์ได้น้อยกว่าที่คิดไว้ในตอนแรก "เราไม่สามารถเรียกร้องให้แยกแกะโปรแกรมออกจากแกะที่ไม่ใช่การเขียนโปรแกรม ... โชคไม่ดีที่ผลลัพธ์ไม่สอดคล้องกับสัญญาเริ่มต้น แต่มันก็ไม่ได้ปิดประตูในการสำรวจของเรา"
AShelly

26
เพื่อให้ชัดเจนว่ากระดาษแผ่นแรกจากปี 2549 เป็นเพียงร่างและไม่เคยตีพิมพ์ ดังนั้นจึงไม่ได้ตรวจสอบทางวิทยาศาสตร์อย่างแน่นอน อาจจะดีกว่าที่จะมองไปที่การศึกษาต่อมาในหน้าของผู้เขียน
Jeff Atwood

17
การตรวจสอบความสำเร็จในหลักสูตรการศึกษาเป็นวิธีแปลก ๆ ในการศึกษาปรากฏการณ์ ก่อนการบรรยายอาจเป็นวิธีที่เหมาะสมที่สุดในการสอนการเขียนโปรแกรม ประการที่สองไม่ใช่ทุกคนเรียนรู้ (ดี) จากการบรรยาย มันมีอคติมากเกินไปสำหรับฉัน
กราฟิลส์

5
ศ. Bornat ต่อมาใส่ใจที่จะถอนร่างนั้นโดยสมัครใจเพราะเขามีปัญหาสุขภาพจิตในเวลานั้น eis.mdx.ac.uk/staffpages/r_bornat/papers/…นอกจากนี้ฉันยังอ่าน Sec. 3 คือคนอื่นล้มเหลวในการทำซ้ำผลลัพธ์ - อย่างที่พวกเขาพูดแม้แต่บทสรุปของการวิเคราะห์อภิมานของปี 2009 "ได้รับผลกระทบอย่างน้อยจากสภาพแวดล้อมทางวัฒนธรรมและการปฏิบัติทางการศึกษา " โดยรวมแล้วการคาดเดาที่ดีที่สุดของฉันคือหลักสูตรไม่ดีซึ่งไม่น่าแปลกใจเนื่องจาก "วิธีการสอนการเขียนโปรแกรมอย่างมีประสิทธิภาพ" เป็นปัญหาการวิจัย
Blaisorblade

33

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

ผู้คนอาจศึกษาความสำเร็จในหลักสูตรระดับวิทยาลัยและสรุปว่า "บางคนไม่เหมาะที่จะเรียนรู้การเขียนโปรแกรม" อย่างไรก็ตามข้อสรุปดังกล่าวรุนแรงเกินขอบเขตอย่างรุนแรงของหลักฐานที่สังเกต ความล้มเหลวมากน้อยเพียงใดที่สามารถนำมาประกอบกับวิธีการสอนการเขียนโปรแกรม (นามธรรมเกินไป?) หรือรูปแบบของการเขียนโปรแกรมที่สอน (จำเป็นเกินไปหรือไม่) หรือสภาพแวดล้อมการเขียนโปรแกรม (การรวบรวม

เป็นที่เข้าใจกันดีว่าผู้คนสามารถเข้าใจ abstractions ได้อย่างง่ายดายที่สุดหลังจากที่พวกเขาได้ทำงานกับตัวอย่างที่เป็นรูปธรรมหลายครั้ง - นั่นคือเราไม่สามารถเรียนรู้บางสิ่งจนกว่าเราจะรู้แล้ว ดังนั้นการเริ่มต้นด้วยบทคัดย่อจึงเป็นวิธีที่โง่เขลาในการสอนการเขียนโปรแกรม หลายคนที่สะดุด premisconceived รุ่น "จิต" จะเจริญเติบโตถ้าสอนในสภาพแวดล้อมที่เป็นรูปธรรมมากขึ้นที่มีความคิดเห็นแบบ real-time (เช่นในขณะที่คาห์นสกา CS ) แล้วการสนับสนุนในการปีนบันไดของนามธรรมเมื่อพวกเขาจะพร้อมสำหรับมัน Learnable Programmingเป็นบทความล่าสุดโดย Bret Victor ดึงความสนใจไปที่ความท้าทายด้านสิ่งแวดล้อมที่ไม่จำเป็นซึ่งโปรแกรมเมอร์ต้องเผชิญในการเรียนรู้

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


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

4
ลองดูเอกสารที่เชื่อมโยงในคำตอบของ Serg แม้ว่ามันจะไม่ชัดเจนอย่างที่คิดในตอนแรกความจริงก็คือบางคนก็ไม่สามารถคาดเดาแนวคิดพื้นฐานเกี่ยวกับการเขียนโปรแกรมขั้นพื้นฐานที่สุดได้แม้หลังจากหนึ่งหรือสองเดือนของชั้นเรียน - ตัวอย่างเช่น: x = 1; y = x;และคำถามคือ " คุณค่าของxและyคืออะไร "
Izkata

3
สวัสดีและยินดีต้อนรับ! คุณอาจไม่รู้เพราะคุณยังใหม่มาก แต่เราไม่ชอบคำถามปลายเปิดและ / หรือการอภิปราย ฉันได้ลบIs it true that not everyone can learn how to program?บรรทัดนั้นออกจากคำถามสมาชิกที่มีประสบการณ์มากกว่าของเราเพิกเฉยโดยตระหนักว่าไม่เป็นไปตามหลักเกณฑ์ของเราและรวบรวมคำตอบของพวกเขาในด้านการวิจัย / วิทยาศาสตร์ของคำถาม คุณช่วยทำสิ่งเดียวกันได้ไหม
yannis

3
@jfrankcarr - ทักษะใด ๆ ในระดับมืออาชีพหรือในการแข่งขัน คนส่วนใหญ่ไม่สามารถพูดหรือเขียนแม้แต่ภาษาธรรมชาติอย่างมืออาชีพ
dmbarbour

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

19

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

มีหลายสิ่งที่เกี่ยวข้องกับวิธีการสอน

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


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

6
@ จิมมี่: ฉันพยายามทำให้มันน่าสนใจโดยให้พวกเขาไปทำโปรเจ็กต์ส่วนตัวเกี่ยวกับเกมวิทยาศาสตร์การเงินการเงินเพลงอะไรก็ตามที่ดึงดูดพวกเขา การเขียนโปรแกรมเป็นที่น่าสนใจมากขึ้นเมื่อมันหมายถึงจุดจบ
Mike Dunlavey

2
@Den: พวกเขาต้องทำโปรแกรมเล็ก ๆ สำหรับการบ้านพวกเขามีคำถามและการทดสอบและพวกเขาแต่ละคนต้องทำโครงการเขียนโปรแกรมส่วนบุคคลที่สำคัญซึ่งทั้งหมดนี้ฉันให้คะแนน จำเป็นต้องมีหลักสูตร
Mike Dunlavey

1
@MikeDunlavey นักเรียนมักจะมีเพื่อนที่สามารถเขียนโปรแกรมและทำการบ้านได้อย่างง่ายดาย
Sulthan

2
@Sulthan: ไม่ได้อยู่ในชั้นเรียนของฉันพวกเขาไม่ได้ บางคนพยายาม บางคนพยายามคัดลอกจากคนอื่นในการทดสอบ มันชัดเจน - รหัสนั้นมากเกินไปเหมือนคนอื่นและในเวลาเดียวกันก็มีข้อผิดพลาดที่เห็นได้ชัด สำหรับโครงการไม่มีใครเหมือนกันและไม่มีอะไรยกธงสีแดงเหมือนใครบางคนที่ทำงานปานกลางแบบทดสอบและทำการบ้าน แต่กลับกลายเป็นโครงการที่สวยงาม ฉันเพิ่งทำแบบทดสอบอื่นและมอบให้พวกเขา หากพวกเขาไม่รู้ว่าทางไหนดีฉันก็ไม่มีข้อผูกมัดที่จะให้เกรดที่ดีแก่พวกเขา หรือฉันสามารถโทรหาอาจารย์คนอื่นได้
Mike Dunlavey

7

เมื่อฉันเริ่มต้นมันเป็นเรื่องปกติที่จะนั่ง "ทดสอบความถนัด" ก่อนที่คุณจะได้งานเขียนโปรแกรม มีบัณฑิตสาขาวิทยาศาสตร์คอมพิวเตอร์ไม่มากนักดังนั้นจึงเป็นเรื่องธรรมดาที่จะรับสมัครจากสาขาอื่น

การทดสอบคล้ายกับที่คุณเห็นในการทดสอบไอคิว (หมายเลขถัดไปในลำดับ ฯลฯ ) คืออะไร

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

เจ้าหน้าที่ฝ่ายทรัพยากรบุคคลที่น่าเศร้าไม่เข้าใจการทดสอบเหล่านี้ (และล้มเหลวเมื่อพวกเขารับพวกเขา!) ดังนั้นการรับสมัครในทุกวันนี้ขึ้นอยู่กับสิ่งที่เจ้าหน้าที่โดรนเข้าใจ - วิทยาลัยที่ดีการสื่อสารและทักษะการสวมใส่ที่เหมาะสม

นี่เป็นเหตุผลที่แผนกไอทีขนาดใหญ่มีผู้คนมากมายที่ยอดเยี่ยมในงาน PowerPoint และโปรแกรมเมอร์ที่ดีเพียงไม่กี่คน


1
+ ผมจึงรู้สึกขอบคุณที่ฉันไม่เคยมี (เกือบ) จะต้องผ่านการบริหารทรัพยากรบุคคล
Mike Dunlavey

4

สำหรับผู้ที่อ้างถึงการศึกษาของ Dehnadi และ Bornat แบบ double-hump หรือ goat-vs-sheep มันคุ้มค่าที่จะตรวจสอบแบบจำลองทางจิตและความถนัดในการเขียนโปรแกรมโดย Caspersen et al (2007) ที่พวกเขาพยายามทำซ้ำ:

การทำนายความสำเร็จของนักเรียนที่เข้าร่วมในหลักสูตรการเขียนโปรแกรมเบื้องต้นเป็นพื้นที่การวิจัยที่ใช้งานมานานกว่า 25 ปี จนกระทั่งเมื่อไม่นานมานี้ไม่มีตัวแปรหรือการทดสอบใด ๆ ที่มีอำนาจการทำนายที่สำคัญ อย่างไรก็ตาม Dehnadi และ Bornat อ้างว่าได้พบการทดสอบอย่างง่ายสำหรับการเขียนโปรแกรมความถนัดเพื่อแยกแกะการเขียนโปรแกรมอย่างหมดจดจากแพะที่ไม่ใช่การเขียนโปรแกรม เรานำเสนอทฤษฎีและเครื่องมือทดสอบของพวกเขาสั้น ๆ

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

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


4

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

ประเภทแรก: ภาษาการเขียนโปรแกรมคือ (หรือควร) ภาษามนุษย์บางประเภทที่ทำขึ้นเพื่ออธิบายงานสำหรับคอมพิวเตอร์ที่จะดำเนินการดังนั้นทุกคนที่พูดควรจะสามารถตั้งโปรแกรม มันเรียกว่าการเขียนสคริปต์พื้นฐานระบบเรียงพิมพ์TeXฯลฯ ... ภาษาหรือระบบไม่สำคัญมันเป็นวิธีที่ผู้สร้างและผู้คนมองมัน: "เรียนโปรแกรม / คอมพิวเตอร์โปรดพิมพ์ชื่อของฉัน"แทนที่จะเป็น"ให้ฉันมีที่ว่างขนาดสิบเอ็ดตัวอักษรจากนั้นให้ที่อยู่ของพื้นที่นี้จากนั้นให้ฉันเก็บไว้แล้วป้อนตัวอักษรสิบเอ็ดเข้าไปในหน่วยความจำนี้ซึ่งคุณสามารถนำออกจากบัฟเฟอร์ของแป้นพิมพ์ของฉัน (แต่อย่าลืมทำความสะอาด เป็นต้น "

ในกรณีนี้เป็นที่ชัดเจนว่าการศึกษาค่อนข้างจะเป็น "ไม่ใช่ทุกภาษาที่สามารถหลอมรวมได้อย่างรวดเร็ว?"

ในทางกลับกันภาษาการเขียนโปรแกรมเป็นเพียงวิธีการอธิบายวิธีการทำงานของคอมพิวเตอร์หรือวิธีการทำงานวิธีการเชื่อมต่อ 'ถ้าคุณนึกถึงคอมพิวเตอร์ยุค 1950 ดังนั้นโปรแกรมเมอร์จึงไม่สามารถทำอะไรได้แม้ว่าเขาจะพูดภาษาการเขียนโปรแกรมได้อย่างสมบูรณ์แบบหากสติปัญญาของเขา / เธอไม่สามารถไปถึงระดับที่เป็นนามธรรมนี้ซึ่งคุณเห็นไบต์ที่ถูกเก็บไว้ในหน่วยความจำสตริงเป็นตัวชี้ ฯลฯ แล้ว กลับไปที่โลกเพื่อเชื่อมโยงกับปัญหา ดังนั้นไม่ใช่มนุษย์ทุกคนสามารถเขียนโปรแกรม (ในภาษาแอสเซมบลี ... )

นอกเหนือจากนี้คุณจะต้องมีคุณสมบัติทั้งหมดที่จำเป็นในการทำงานและสร้างบางสิ่ง: รู้ดีในสิ่งที่คุณต้องการทำให้ผู้อื่นเข้าใจ / เสร็จสมบูรณ์ / ทบทวนทบทวนให้ความสำคัญกับวัตถุประสงค์ของคุณ ฯลฯ ... แต่เหมือนสถาปนิก นักเขียนนักดนตรีผู้ค้าประเวณี ... นักเล่นแร่แปรธาตุอะฮะ ฯลฯ

แต่มนุษย์ส่วนใหญ่มีความสามารถทางนามธรรมที่ดีโดยเฉพาะเด็ก ๆ โรงเรียนภาษาเยอรมันบางแห่งสอนHaskellให้กับเด็กก่อนวัยเรียน (ภาษาการเขียนโปรแกรมเช่นPascalหรือDelphiนั้นกำลังสอนอยู่ในโรงเรียนภาษาเยอรมันทุกแห่ง)

ดังนั้นฉันจะบอกว่าคำถามยากมากที่จะตอบและคำตอบใด ๆ (หรือการศึกษา) มีแนวโน้มที่จะไม่เกี่ยวข้อง

คุณจะพบการวิเคราะห์สั้น ๆ ว่าผู้คนเรียนรู้การเขียนโปรแกรมได้อย่างไรในบทความสอนตัวเองการเขียนโปรแกรมในสิบปีโดย Peter Norvig ดูเหมือนว่าเขาจะคิดว่าไม่มีโปรแกรมเมอร์เกิด


3
สวัสดีและยินดีต้อนรับ! ฉันบิตสับสนเกี่ยวกับวิธีการคำตอบของคุณตอบคำถามที่เป็นจริงเกี่ยวกับว่านี้ได้รับการศึกษาหรือไม่ ...
Yannis

ขอโทษฉัน messed ด้วยปุ่ม "ส่ง" ... ฉันหวังว่านี่จะทำให้รู้สึกมากขึ้น
Yves

คุณอยู่ในเส้นทางที่ถูกต้อง แต่คุณผูกภาษาการเขียนโปรแกรมกับฮาร์ดแวร์ (คอมพิวเตอร์) ให้แน่น การเขียนโปรแกรมไม่ได้เป็นเพียงความสามารถในการพูดคุยกับคอมพิวเตอร์เท่านั้น การเขียนโปรแกรมเป็นเรื่องเกี่ยวกับการอธิบายกระบวนการในลักษณะที่สอดคล้องกัน การอธิบายกระบวนการให้กับคนอื่นนั้นคล้ายกับการเขียนโปรแกรมในภาษาโปรแกรมระดับสูง ความแตกต่างที่ใหญ่ที่สุดคือมนุษย์มีความอดทนต่อความกำกวมมากกว่า
Emperor Orionii

ฉันไม่ได้ปกป้องมุมมองนี้ แต่พยายามชี้ให้เห็นความจริงที่ว่าคนมักจะเห็นภาษาการเขียนโปรแกรมและการใช้งานที่ควรทำจากพวกเขาไม่ว่าจะเป็นคำอธิบายงาน (ซึ่งเป็นสิ่งสำคัญสำหรับการเขียนโปรแกรมและสคริปต์ระดับสูง) หรือ เป็นคำอธิบาย "กระบวนการคอมพิวเตอร์" (เช่นภาษาระดับต่ำดูเหมือนจะใกล้เคียงกับภาษาการสร้างแบบจำลอง VHDL มากกว่า VB.NET แม้ว่าพวกเขาจะเป็นภาษาโปรแกรม) ทั้งสองวิธีนั้นแตกต่างกันมากและมีเหรียญสองด้านเหมือนกัน พวกเขายืนยันในแง่มุมต่าง ๆ ของความฉลาดของมนุษย์ซึ่งเป็นการยากที่จะหาจำนวน ดังนั้นจึงเป็นการยากที่จะศึกษาพวกเขา
Yves

3

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

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


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

2

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

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

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