การเรียนรู้ภาษาการเขียนโปรแกรมโดยไม่ได้เขียนโปรแกรม?


9

นักวิทยาศาสตร์คอมพิวเตอร์ Peter Norvig โต้เถียงในเรียงความของเขาสอนตัวเองให้โปรแกรมใน 10 ปีที่คุณต้องการฝึกประมาณ 10,000 ชั่วโมง

แต่ Jeff Atwood โต้เถียงในโพสต์ของเขาวิธีการเป็นโปรแกรมเมอร์ที่ดีขึ้นโดยไม่เขียนโปรแกรมว่าเขาเชื่อว่าวิธีเดียวที่จะเป็นโปรแกรมเมอร์ที่ดีขึ้นคือไม่ได้เขียนโปรแกรม

บทความเหล่านี้มีการต่อต้าน มีหลักฐานทางวิทยาศาสตร์ที่พิสูจน์วิธีการของ Jeff Atwood หรือไม่?


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

2
กรุณาย้ายความคิดเห็นของเมตาไปที่เมตากรุณา meta.programmers.stackexchange.com/q/6137/53019

คำตอบ:


28

คุณไม่มีจุด

Jeff Atwood กล่าวว่าการเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมนั้นต้องการมากกว่าทักษะการเขียนโปรแกรม นอกจากนี้ยังต้องเป็นนักออกแบบที่ดีทำงานได้ดีกับคนอื่น ๆ และโดยทั่วไปจะกลายเป็นนักคิดและนักแก้ปัญหาที่ดีกว่า

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

-- บิลเกตส์

ประเด็นของ Peter Norvig คือคุณไม่สามารถรับสำเนาของ "กลายเป็นโปรแกรมเมอร์มืออาชีพใน 24 ชั่วโมง" และคาดหวังว่ามันจะใช้ได้ แต่นั่นเป็นจำนวนคนที่ถามคำถามที่ Stack Overflow ดูเหมือนว่าจะเข้าหาการเขียนโปรแกรม พวกเขาคิดว่าสามารถโหลด Eclipse เรียนรู้คำหลักสองสามคำและเขียน Angry Birds ตัวต่อไป ใช้เวลามากกว่านั้นนิดหน่อย


5
ไม่นะนกโกรธน่าจะเป็นคำหลัก 2 หรือ 3 คำซ้ำซ้ำไปซ้ำมาด้วยรูปถ่ายตลกของนก อ๋อ มันเป็นฐานข้อมูลสำหรับวิทยาวิทยาใช่ไหม?
จิมมี่ฮอฟฟา

แต่ในบางแง่มุมของ Peter Norving หมายถึงความจริงของ "การปกครอง" ที่ไม่รู้ในทางตื้น ๆ (นั่นคือจุดศูนย์กลางของบทความของเขา) ภาษาการเขียนโปรแกรม ในความเป็นจริงปีเตอร์และเจฟแอทวู้ดหมายถึง "ปรมาจารย์" เช่นเดียวกับที่คุณอธิบายท่าทางของ Jeff Atwood ฉันอธิบายว่า Peter Norving กำลังกล่าวว่าการเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมต้องใช้การเข้ารหัสจำนวนมาก (พร้อมหัวข้อการเรียนรู้โดยปริยาย) และการฝึกฝน
bywronski

2
@Wronski: อ่าคุณกลับมาแล้วฉันเห็น! ยินดีที่ได้พบคุณอีกครั้ง. ขณะที่คุณไม่อยู่เรากำลังคุยคำถามของคุณปิดและเปิดใหม่อีกครั้ง อย่างไรก็ตามสิ่งที่คุณพูดว่าอย่างไร ประเด็นของ Peter Norving คือคุณไม่สามารถเป็นเจ้านายได้ใน 24 ชั่วโมงหรือ 21 วัน ประเด็นของ Jeff Atwood คือคุณไม่สามารถเป็นเจ้านายได้ด้วยการเขียนโค้ดเท่านั้น พวกเขาทั้งสองถูกต้อง
Robert Harvey

@ RobertHarvey ทำไมต้องปิดและเปิดใหม่อีกครั้ง ฉันควรแปลบทความ Peter Norving ว่าเป็น "รหัส" ที่ดีเท่านั้นและบทความของ Jeff Atwood เป็นวิศวกรที่ดีหรือไม่ ฉันสับสนเล็กน้อย
bywronski

1
@Wronski: อาจารย์มีทั้งโคดีและวิศวกรที่ดี
Robert Harvey

10

ส่วน "การเขียนโปรแกรมไม่" ควรมาหลังจากการฝึกการเขียนโปรแกรมที่ดี

the only way to become a better programmer is by not programming

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

UPDATE:

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


2
บางที. แต่ทักษะการออกแบบนั้นอยู่ไม่ไกลนักแม้แต่ตอนแรกที่เริ่มต้น และทักษะของผู้คนนั้นมีค่าโดยไม่คำนึงถึงความสามารถในการเข้ารหัสของคุณ
Robert Harvey

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

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

1
@KoreyHinton ซึ่งเป็นเหตุผลว่าทำไมไม่มีใคร (ทั้งบทความและไม่มีคนที่ตอบคำถามที่นี่) กำลังบอกว่าคุณควรจะทำแค่อย่างใดอย่างหนึ่ง พวกเขากำลังพูดว่าเป็นสิ่งสำคัญที่จะต้องทำทั้งสองอย่างเพราะทักษะเสริมซึ่งกันและกัน
Servy

1
@ Wronski ฉันคิดว่าโรเบิร์ตกำลังโต้เถียงในจุดตรงกันข้ามว่าทักษะการเขียนโปรแกรมที่ไม่สามารถเรียนรู้ได้ในขณะที่การเรียนรู้การเขียนโปรแกรมครั้งแรก ฉันเห็นด้วยกับสิ่งนี้เช่นกัน แต่ฉันดีใจที่ตัวฉันเองไม่ได้ยุ่งกับกระบวนการเรียนรู้มากเกินไปในตอนแรก โฟกัสของฉันเป็นเหมือนที่คุณกล่าวถึงความสำคัญกับทักษะการเขียนโปรแกรมก่อนทักษะการคิดที่สองและตอนนี้ฉันพยายามอย่างต่อเนื่องเพื่อปรับปรุงทั้งสอง
Korey Hinton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.