การพึ่งพาเครื่องมือมากเกินไปหมายความว่าคุณขี้เกียจหรือไม่? [ปิด]


29

ฉันเริ่มเขียนโปรแกรมใน C ++ ที่ uni และรักมัน ในระยะต่อไปเราเปลี่ยนเป็น VB6 และฉันเกลียดมัน

ฉันไม่สามารถบอกได้ว่าเกิดอะไรขึ้นคุณลากปุ่มไปยังแบบฟอร์มและ IDE เขียนรหัสให้คุณ

ในขณะที่ฉันเกลียดวิธีการทำงานของ VB ฉันไม่สามารถโต้แย้งได้ว่าเร็วและง่ายกว่าการทำสิ่งเดียวกันใน C ++ ดังนั้นฉันจึงสามารถดูได้ว่าทำไมมันถึงเป็นภาษายอดนิยม

ตอนนี้ฉันไม่ได้เรียกนักพัฒนา VB ขี้เกียจเพียงแค่บอกว่าง่ายกว่า C ++ และฉันได้สังเกตเห็นว่าภาษาใหม่ ๆ จำนวนมากกำลังติดตามแนวโน้มนี้เช่น C #

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

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

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

นั่นเป็นวิธีที่ฉันเข้ากับทฤษฎีที่ว่าโปรแกรมเมอร์กลายเป็นคนขี้เกียจและมีความสามารถน้อยลงเพราะไม่มีใครใส่ใจว่าสิ่งต่าง ๆ ทำงานได้ดีแค่ไหนจนกว่ามันจะไม่ทำ


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

15
ใครจะตอบคำถามนี้ได้โดยไม่หักล้างชื่อ

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

8
ทำไมสิ่งนี้ถึงไม่ถูกปิดในฐานะ "อัตนัยและแย้ง" ... ?
BlueRaja - Danny Pflughoeft

1
คำถามนี้เป็นคำถามในขณะนี้ถูกกล่าวถึงในเว็บไซต์เมตาการสนทนาของเรา

คำตอบ:


103

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

อย่างไรก็ตามมีจุดสิ้นสุด จะต้องมีนักพัฒนาบางคนเสมอ

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

ในทำนองเดียวกันชั้นข้อมูลซึ่งมักจะไม่มีอะไรนอกจากแทรกสิ่งนี้ลบสิ่งนี้แทนที่สิ่งนี้และมุมมองที่แตกต่างกันจำนวนมากของข้อมูลเดียวกัน ทำไมเขียนต่อไปเรื่อย ๆ มาประดิษฐ์ ORMs กัน

สิ่งเดียวที่คุณควรพัฒนาคือรหัสที่ไม่ซ้ำกับธุรกิจที่คุณกำลังพัฒนา

แต่จะมีลักษณะเฉพาะนั้นอยู่เสมอ - ที่ที่ไม่มี, มีโอกาสทางธุรกิจ - และจะต้องมีคนต้องการเขียนโค้ดเสมอ

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

ส่วนที่สำคัญที่สุดของการเป็นนักพัฒนาซอฟต์แวร์คือสามารถเข้าใจความต้องการทางธุรกิจได้ดีพอที่จะอธิบายต่อคอมพิวเตอร์

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


3
มีความแตกต่างระหว่างการเป็นนักพัฒนาซอฟต์แวร์และโปรแกรมเมอร์
Raynos

9
+1 เผง ซอฟต์แวร์ที่ใช้งานได้เป็นสิ่งที่คุณจ่ายไป รหัสเป็นวิธีการสร้างซอฟต์แวร์สิ่งประดิษฐ์ "การเขียนโปรแกรม" บริสุทธิ์เป็นส่วนที่ง่ายและสนุกในการสร้างซอฟต์แวร์
Joonas Pulakka

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

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

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

38

ช่างขี้เกียจและมีความสามารถน้อยลงเพราะเขาใช้ประแจไฮดรอลิกหรือไม่?

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

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

คุณคิดอย่างไรกับลูกค้าที่เลือกอู่ซ่อมรถ? หนึ่งที่ใช้เวลา 20 นาทีหรืออย่างใดอย่างหนึ่งกับ 40 นาทีรอ

มันค่อนข้างคล้ายกับการเขียนโปรแกรม C ++ เป็นภาษาที่ดีและมีจุดประสงค์ (ประสิทธิภาพส่วนใหญ่) สิ่งที่ฉันชอบเกี่ยวกับภาษาเช่น C # คือฉันสามารถมุ่งเน้นไปที่ปัญหาคิดเกี่ยวกับอัลกอริทึมโดยไม่มีเสียงรบกวนทั้งหมดที่ C ++ ไม่ชอบคำเตือนคอมไพเลอร์คลุมเครือพฤติกรรมที่ไม่ได้กำหนดและอื่น ๆ การพัฒนามีความซับซ้อนมากขึ้นเรื่อย ๆ ซึ่งในสมัยก่อนของเมนเฟรมและพีซีเครื่องแรก แต่สมองของมนุษย์ยังคงเหมือนเดิม - เป็นคนโง่มาก แอปหนึ่งสามารถทำงานในระบบคลาวด์, มือถือ, เดสก์ท็อปที่มีการอ้างอิงมากมาย, ปัญหาด้านความปลอดภัยและปัญหาอื่น ๆ ฉันต้องการเครื่องมือที่ดีกว่าเพื่อมุ่งเน้นปัญหาที่ซับซ้อนมากขึ้นและแก้ปัญหาเหล่านั้น

ใช้เครื่องมือที่ดีกว่าเพื่อทำงานให้เสร็จไม่มีอะไรผิดปกติ


1
ฉันไม่คิดว่าการเปรียบเทียบใช้งานได้เพราะทั้งแบรดและพีทยังคงรู้วิธีถอดยางและทุกอย่างที่เกี่ยวข้อง (wenches, wrenches และเบียร์)
Kristofer Hoch

3
+1 คำตอบที่ดี ฉันจะเพิ่มว่าไม่ว่าคุณจะใช้เครื่องมืออะไรถ้าคุณเข้าใจว่ามันทำอะไรคุณจะทำงานให้ถูกต้อง ในทางกลับกันถ้าคุณไม่ทำเช่นนั้นไม่ว่าวัสดุจะทำงานเป็นจำนวนเท่าใดในบางช่วงเวลาที่คุณกำลังจะทำอะไรบางอย่าง
Jacek Prucia

1
@ Kristofer: อาจจะดีกว่าถ้าพีทรู้จักอุปกรณ์อิเล็กทรอนิกส์ ในขณะที่แบรดรู้วิธีใช้คอมพิวเตอร์วินิจฉัยและอ่านว่าเซ็นเซอร์ O2 เสียไปแล้วพีทเห็นว่าสายเซ็นเซอร์นั้นไหม้นิดหน่อยออกจากมิเตอร์เพื่อวัดและตระหนักว่าตัวควบคุมแรงดันไฟฟ้านั้นหายไปและไม่มีประสิทธิภาพ การเผาไหม้เซ็นเซอร์ O2
Zan Lynx

@ แซนที่ไม่เหมือนกัน @ Kristofer เพียงเพราะฉันใช้นักออกแบบเพื่อลากการควบคุมไปยังองค์ประกอบของฟอร์มได้อย่างรวดเร็วและรับรหัสสำเร็จรูปสำเร็จรูปไม่ได้หมายความว่าฉันไม่รู้วิธีการเปลี่ยนรหัสนั้นเพื่อทำสิ่งที่ฉันต้องการในภายหลัง
jcolebrand

วิธีที่สมบูรณ์แบบที่จะนำมัน
riwalk

37

ดังนั้นสิ่งที่เราเรียกการเขียนโปรแกรมในขณะนี้

คุณพูด:

โปรแกรมเมอร์ในอนาคตจะบอกคอมพิวเตอร์ว่าพวกเขาต้องการอะไรและคอมไพเลอร์จะเขียนโปรแกรมสำหรับพวกเขาเหมือนใน Star Trek

เพียงแค่ทำการทดลอง: ดู Star Trek และลองตีความสิ่งที่คอมพิวเตอร์สั่งให้ทำ 'ไร้มารยาท' เล็กน้อย

  • ชาเอิร์ลเกรย์ร้อน -> ไอน้ำจำนวนมาก
  • ชาเอิร์ลเกรย์ 60 องศาเซลเซียส -> แอ่งน้ำและเมฆไอน้ำ
  • เอิร์ลเกรย์ 60 องศาเซลเซียส -> แอ่งน้ำ
  • เอิร์ลเกรย์ 60 องศาในถ้วย -> ถ้วยที่มีหยดหนึ่งใบ
  • เอิร์ลเกรย์ 60 องศาเซลเซียส 0.2 ลิตรในถ้วย -> ในที่สุด (ตกลงคุณอาจเพิ่มรายละเอียดเพิ่มเติม)

เมื่อคุณเรียกการเขียนโปรแกรม: 'รู้เกี่ยวกับการใช้หน่วยความจำพอยน์เตอร์ ฯลฯ ' ใช่ฉันเดาว่าจะมีความสำคัญน้อยลง (เช่น 'รู้เกี่ยวกับ http, openid, unicode' จะมีความสำคัญมากกว่า)

แต่ในความคิดของฉันว่าทั้งหมดคือ 'ความซับซ้อนโดยไม่ตั้งใจ' และงานที่แท้จริงในฐานะโปรแกรมเมอร์คือ 'การสร้างเครื่องจักรสร้างแก้ปัญหาโดยทำให้แน่ใจว่าเราเข้าใจปัญหาที่เกิดขึ้นโดยบังเอิญเพื่อให้ได้งาน' และตามคำจำกัดความนั้น ด้วยคอมพิวเตอร์ Star Trek จะต้องเป็นโปรแกรมเมอร์ (เช่นมีคุณธรรมเช่นเดียวกับตอนนี้)


2
@ Raynos: จริงอยู่ โดยเฉพาะอย่างยิ่งที่น่าหดหู่เมื่อคนเหล่านี้เป็นทีมและทำแนวทางเช่น 'เมื่อข้อมูลที่ส่งมีน้อยกว่า X ไบต์ใช้ GET ยิ่งใช้ POST มากขึ้น'
keppla

8
@keppla - ปัญหาของคุณไม่ใช่ว่าหัวหน้าทีมของคุณไม่เข้าใจ HTTP นั่นเป็นเพราะเขาไม่เต็มใจที่จะเปลี่ยนความคิดเห็นของเขาในแง่ของหลักฐานว่าเขาผิด (สมมติว่าคุณพยายามอธิบายสิ่งต่าง ๆ ให้เขาทราบ) คุณไม่สามารถรู้ได้มากกว่าทุกคนที่ทำงานให้คุณเกี่ยวกับทุกสิ่ง - อาชญากรรมที่แท้จริงไม่ยอมรับว่ามีคนอื่นรู้มากกว่าคุณ
Jon Hopkins

3
"Tea, Earl Grey, Hot" เป็นการเขียนโปรแกรมเชิงประกาศ เป็นหน้าที่ของคอมพิวเตอร์ในการค้นหาผลลัพธ์ที่เกี่ยวข้องตามบริบทตามความคาดหวังที่สมเหตุสมผล การผลิตไอน้ำจาก "ชาร้อน" ในภาษาประเภทนี้จะเป็นข้อผิดพลาดในส่วนของทีมออกแบบของคอมพิวเตอร์ไม่ใช่โปรแกรมเมอร์ มันควรใช้กรณีที่เกี่ยวข้องกับบริบทจนกว่าจะมีการป้อนแบบสอบถามเฉพาะ
diadem

1
@Diadem: แม้ว่ามันจะเป็นการประกาศคุณจำเป็นต้องรู้ว่าจะประกาศอะไรและในฐานะโปรแกรมเมอร์คุณไม่คาดหวังว่าคอมพิวเตอร์จะเดาได้จากสิ่งที่คุณจะทำต่อไปในอดีตเพราะคุณจะทำสิ่งใหม่ อินเทอร์เฟซที่ตีความความต้องการของคุณสำหรับผู้ใช้ปลายทาง
keppla

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

23

โปรแกรมเมอร์ไม่ได้รับคนขี้เกียจ โปรแกรมเมอร์มักขี้เกียจ ความขี้เกียจเป็นส่วนหนึ่งของลักษณะพื้นฐานของงาน ปัญหาคือคนคิดว่าการขี้เกียจเป็นลบ การเป็นโปรแกรมเมอร์ "ขี้เกียจ" เป็นคุณธรรม

จำสุภาษิตโบราณว่า "ทำงานอย่างชาญฉลาดไม่ยาก" นี่คือไดรฟ์พื้นฐานของโปรแกรมเมอร์

พวกที่สร้างและตั้งโปรแกรมคอมพิวเตอร์เครื่องแรกไม่ได้ทำเพราะพวกเขาชอบทำงานหนักพวกเขาทำเพื่อหลีกเลี่ยงการทำงานหนัก (ทำหน้าการคำนวณด้วยมือ)

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

โปรแกรมเมอร์มองปัญหาอะไรก็ตามที่เขาหรือเธอทำและคิด

"ฉันจะทำสิ่งนี้โดยอัตโนมัติได้ไหม" , "เวลาเท่าไรจะใช้เวลาที่?" , "เท่าใดเวลาที่จะที่ช่วยฉัน?"

เราทำสิ่งนี้เพราะเราขี้เกียจเราไม่ต้องการทำงานซ้ำ ๆ และน่าเบื่อเมื่อเราสามารถทำสิ่งที่สนุกกว่า

ถ้าโปรแกรมเมอร์ไม่ขี้เกียจก็ไม่มีโปรแกรมเมอร์คนใดที่เคยเห็นความจำเป็นในการเขียนภาษาใหม่หรือคอมไพเลอร์

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

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


19

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

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


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

11
@Coder: "ต้องมีงานพิเศษ" - บนทางหลวงมันไม่ได้ในการจราจรติดขัดมันทำ แต่แล้วมันก็ทำให้คุณไม่ได้เปรียบอะไรเลย
vartec

2
การส่งสัญญาณแบบแมนนวลยังช่วยประหยัดน้ำมันเชื้อเพลิงได้ดีขึ้นบนทางหลวงแม้ว่าจะไม่เป็นความจริงกับตัวแปลงแรงบิดที่ล็อคไว้
Dave Markle

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

3
@Coder - หากคุณคิดว่าการขับรถด้วยตนเองต้องใช้ "ทักษะจำนวนมาก" คุณต้องมองไปที่คนขับที่ไร้ความสามารถหลายพันคนบนท้องถนนด้วยการส่งสัญญาณด้วยตนเอง ;)
techie007

15

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

หลายสิ่งกลายเป็นเรื่องง่าย แต่คาดหวังจากเรามากขึ้น ขณะนี้ฉันกำลังสร้างแอปพลิเคชันเว็บที่มีคุณสมบัติมากมายที่มักพบในแอป gui ที่ทำขึ้นมาอย่างดี (มุมมองแบบแท็บกริดที่แก้ไขได้และเรียงลำดับได้ Excel ส่งออก ฯลฯ ) เครื่องมือที่ฉันใช้ (ExtJS เป็นต้น) ทำให้ราคาไม่แพงพอสมควรในการสร้างแอปดังกล่าว

เมื่อสิบปีที่แล้วมันเป็นไปไม่ได้ที่เกือบจะเป็นไปไม่ได้ที่จะมีราคาแพงมาก แต่เมื่อสิบปีที่แล้วรูปแบบ HTML แบบง่ายที่มีตาราง HTML จะเพียงพอสำหรับลูกค้า วันนี้ด้วยความพยายามแบบเดียวกันผลลัพธ์ที่ดีกว่า (อย่างน้อยก็สวยงาม) และลูกค้าคาดหวังว่าจะได้รับพวกเขา!

โดยทั่วไปผู้พัฒนาซอฟต์แวร์ในปัจจุบันจำเป็นต้องรู้ภาษามากกว่าผู้พัฒนาซอฟต์แวร์เมื่อ 20 ปีก่อน ก่อนหน้านี้บางอย่างเช่น C และ SQL ก็เพียงพอแล้ว วันนี้ฉันใช้ JavaScript, HTML, Groovy, Java, SQL ทั้งหมดในโครงการเดียวกัน


+1 ใช่โปรแกรมเมอร์จูเนียร์ที่ไม่มีความเห็นได้กลายเป็นคนขี้เกียจและมีความสามารถน้อยลง
SoylentGray

12

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

การใช้เครื่องมือสร้าง GUI นั้นไม่ได้ขี้เกียจมันแตกต่างกันเพียงเกี่ยวกับเครื่องมือสำหรับงานในมือ ถ้าโปรแกรมเมอร์แอสเซมเบลอร์เรียกว่าโปรแกรมเมอร์ C ++ ขี้เกียจคุณจะต้องโทรหา bullshit (ถูกต้อง) และสิ่งเดียวกันนั้นเป็นจริงของ C ++ และ VB VB ช่วยให้คุณสามารถทำสิ่งต่างๆได้อย่างรวดเร็วด้วยค่าใช้จ่ายในการควบคุมบางอย่าง อุปสรรคในการเริ่มเขียนโค้ดจะลดลงอย่างแน่นอน แต่นั่นเป็นสิ่งที่แตกต่างกันมากสำหรับความเกียจคร้าน - คุณเพิ่งเรียนรู้สิ่งต่าง ๆ และนำไปใช้ในรูปแบบต่างๆ โปรแกรมเมอร์ VB ไม่เกียจคร้านยิ่งกว่าโปรแกรมเมอร์ C ++ ที่ไม่ก่อผลพวกเขาเพียง แต่ทำงานและผลิตด้วยวิธีที่ต่างกัน

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

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

ไม่ใช่ว่าพวกเขาไม่เข้าใจพื้นฐาน (พวกเขาทำไม่ได้ แต่นั่นไม่ใช่ข้อตกลงที่ยิ่งใหญ่), พวกเขาไม่สามารถแยกแยะปัญหาในแบบที่พวกเขาสามารถทำสิ่งที่พวกเขาต้องการ จะได้รับการจับด้วย

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

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

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


ดังนั้นเมื่อไม่มีใครรู้ว่าอัลกอริทึมหรือวิธีการใช้โครงสร้างข้อมูลเพราะพวกเขาทั้งหมด "โปรแกรม" ในการลากและวางของ IDE พวกเขาเพียงแค่ใช้เครื่องมือที่เหมาะสมสำหรับงานหรือไม่
Skeith

@Skeith - ขึ้นอยู่กับว่างานคืออะไร แต่ถ้ามันผลิตซอฟต์แวร์ที่แก้ปัญหาได้แล้วใช่
Jon Hopkins

1
@ Jon-Hopkins ฉันจะบอกว่า uptick ใหญ่ในการเขียนโปรแกรมขึ้นอยู่กับ Google จะทำอย่างไรกับจำนวนมากของ APIs ที่เราต้องการในปัจจุบัน มันยากเกินไปที่จะติดตามมันทั้งหมด (แต่คุณจำเป็นต้องแก้ไข)
Jarrod Nettles

1
@Skeith - การสร้าง UI ใช้เวลาประมาณ 5% ของเวลาในการพัฒนาแอปพลิเคชันโดยเฉลี่ย คุณคิดว่าพวกเขาทำอะไรอีก 95% นักออกแบบไม่ได้ช่วยอะไรมากนักกับรหัสแบ็กเอนด์ คุณกำลังโจมตีชายฟางอย่างชัดเจน คนส่วนใหญ่รู้จักเครื่องมือที่พวกเขาต้องการสำหรับงานของพวกเขามิฉะนั้นพวกเขาจะไม่ถูกจ้างงาน
Morgan Herlocker

@Skeith: ผู้ใช้ฐานข้อมูลจำเป็นต้องใส่ใจกับวิธีการใช้ฐานข้อมูลหรือไม่ ไม่แน่นอน; ผู้ใช้ฐานข้อมูลใช้มัน พวกเขาอาจจำเป็นต้องรู้รายละเอียดบางอย่างเพื่อให้พวกเขาสามารถเพิ่มประสิทธิภาพฐานข้อมูลของพวกเขา แต่พวกเขาไม่ควรจะมีเพื่อให้สามารถที่จะใช้มันในการสั่งซื้อจะคุ้มค่าของการใช้มัน นอกจากนี้ยังเป็นโปรแกรมเมอร์อาจไม่ทราบว่าคำว่า "อัลกอริทึม" หมายถึง แต่ไม่ได้หมายความว่าพวกเขาไม่ได้เขียนให้พวกเขา ฉันพัฒนาและใช้อัลกอริทึมมานานก่อนที่ฉันจะได้ยินคำศัพท์
Nicol Bolas

11

ฉันทราบจากโปรไฟล์ของคุณว่าคุณอายุ 23 ปี ให้ฉันใส่ฟันของฉันและให้มุมมองจากใครบางคนเกี่ยวกับอายุของคุณสองเท่าที่ได้รับการทำเช่นนี้เป็นเวลานานมาก:

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

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

... ไม่มีใครใส่ใจว่ามันใช้งานได้อย่างไรจนกระทั่งมันไม่ทำงาน

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

ตอนนี้ฉันไม่ได้เรียกนักพัฒนา VB ขี้เกียจเพียงแค่บอกว่าง่ายกว่า C ++ และฉันได้สังเกตเห็นว่าภาษาใหม่ ๆ จำนวนมากกำลังติดตามแนวโน้มนี้เช่น C #

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


1
+1 ชี้ให้เห็นว่ามันเป็นเรื่องของมุมมอง ฉันอยู่ใกล้ ๆ เมื่อ UNIX ออกมาจาก Bell Labs เป็นครั้งแรกและมี 'tsk tsk' จำนวนมากที่ภาษาระดับสูงเช่น 'C' ถูกลดทอนลงมาจากระบบปฏิบัติการการเขียนโบราณและความลึกลับและสิ่งนี้จะนำไปสู่ ไม่ดี. เนื่องจากเครื่องมือของเราดีขึ้นและดูแลการทำบัญชีที่ไร้เหตุผลมากขึ้นสำหรับเราเราสามารถใช้เวลาที่บันทึกไว้เพื่อแก้ไขปัญหาที่ยากขึ้นและปัญหาที่ลึกซึ้งยิ่งขึ้น
Charles E. Grant

6

บางสิ่งที่ฉันเก็บรักษาไว้เป็นเวลานานตอนนี้คือ:

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

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

เมื่อฉันจะสอนการเขียนโปรแกรมการฝึกครั้งแรกวันแรกของการเรียนคือวิธีการสร้างแอปพลิเคชันใน NOTEPAD และรวบรวมโดยใช้ VCC หรือ VBC ใช่นี่คือสิ่งที่เรา (ในฐานะโปรแกรมเมอร์) ไม่ได้ทำในแต่ละวัน แต่ควรเข้าใจว่าเกิดอะไรขึ้นเมื่อเรากด "F6"

โปรแกรมเมอร์ไม่ได้รับ 'lazier' เท่าที่เราคาดหวังว่าจะได้รับประโยชน์จากเครื่องมือของเรามากขึ้น ฉันไม่จำเป็นต้องพิมพ์ "รับ / ตั้งค่า" 10,000 ครั้งต่อวันฉันชอบ Visual Studio และเครื่องมืออื่น ๆ เช่น Code Smith และ Resharper ทำงานให้ฉันทำสิ่งที่ฉันรู้แล้วว่าจะทำอย่างไรจึงจะสามารถใช้ความพยายามในการหา วิธีการทำสิ่งที่ "ใหม่" นั่นไม่ได้ทำให้ฉันขี้เกียจที่ทำให้ฉัน "นวัตกรรม"

ในฐานะนักพัฒนามืออาชีพเราไม่ควร 'เสียเวลา' ในการสร้างล้อใหม่ แต่เราควรเข้าใจอย่างชัดเจนว่าอะไรคือสิ่งที่ทำให้ล้อเรากำลังใช้งานอยู่ นี่คือสิ่งที่เราควรจะเรียนรู้ในฐานะผู้พัฒนานักเรียน (แต่น่าเสียดายที่มักจะไม่ใช่) หากนักพัฒนาซอฟต์แวร์ไม่เข้าใจเทคโนโลยี "กล่องดำ" บางอย่างจะทำให้พวกเขา "เชี่ยวชาญ" น้อยลง นักพัฒนาส่วนใหญ่เพียงเข้าใจโดยทั่วไปว่าไดรเวอร์ ODBC ทำงานอย่างไรพวกเขาก็เข้าใจว่ามันทำอะไร ฉันต้องรู้หรือไม่ว่าระบบส่งกำลังทำงานเป็นคนขับที่มีความสามารถหรือไม่? ฉันจะไม่พูด มันทำให้ฉันเป็นเจ้าของรถยนต์ที่มีความสามารถมากกว่านี้ใช่ไหม


4

ความต้องการการพัฒนาแอปพลิเคชันอย่างรวดเร็ว (ลิงค์วิกิบังคับ: http://en.wikipedia.org/wiki/Rapid_application_development ) ได้หมายความว่านักพัฒนาเขียนรหัสน้อยลงและนักพัฒนารุ่นใหม่เข้าใจน้อยลงเพราะพวกเขาไม่จำเป็นต้องเข้าใจวิธีการใช้งาน รายการที่เชื่อมโยงเนื่องจากมีสิ่งระดับสูงกว่าให้ความสนใจ

ฉันไม่สามารถจับฆ่าผิวเขียงและรักษาเนื้อสัตว์ได้และฉันสงสัยว่าคนที่อยู่ในร้านกาแฟชั้นล่างสามารถทำได้ แต่ฉันยังคงได้รับเบคอนแซนด์วิชจากเขาเหมือนนักธุรกิจที่ได้รับแอพจากนักพัฒนาที่ไม่รู้เกี่ยวกับ พอยน์เตอร์ (เช่นฉัน!)


4

ได้มีการกล่าวว่าสาขาวิชาวิทยาศาสตร์ที่ยิ่งใหญ่เป็นตัวอย่างของยักษ์ที่ยืนอยู่บนไหล่ของยักษ์ใหญ่อื่น ๆ มันยังบอกด้วยว่าอุตสาหกรรมซอฟต์แวร์เป็นตัวอย่างของคนแคระที่ยืนอยู่บนนิ้วของคนแคระคนอื่น ๆ
- อลันคูเปอร์

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

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


4

ไม่คุณเพิ่งแก่ตัวลง

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

บทนี้จะถูกทำซ้ำจนกว่าเครื่องจักรจะทำลายพวกเราทุกคน: "ดูเหมือนว่าเทคโนโลยี X กำลังทำให้นักพัฒนาขี้เกียจและแย่กว่าเทคโนโลยี Z ที่ฉันเคยใช้มา"

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


+1: "เด็กขี้เกียจเหล่านี้ในวันนี้มีรถรบคันธนูและลูกธนูเมื่อฉันเป็นเด็กเราต่อสู้ด้วยดาบสั้นและเดินไปและกลับจากสนามรบและมันก็ขึ้นเขาทั้งสองทาง" - Xerxes I, จักรพรรดิแห่งเปอร์เซีย, 473 ปีก่อนคริสตกาล
Bob Murphy

3

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

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

สำหรับตัวอย่างที่เป็นรูปธรรม: ฉันเป็นนักพัฒนา. NET โดยค้าขาย ฉันคาดหวังว่านักพัฒนา. NET ที่มีความรู้ความสามารถจะต้องตระหนักถึงสิ่งต่าง ๆ เช่น LINQ, Entity Framework, WPF, MVC และสิ่งที่ชอบ พวกเขาไม่จำเป็นต้องใช้มันหรือผลักดันมันในที่ทำงาน แต่อย่างน้อยความเข้าใจที่ผ่านไปของ "สิ่งนี้มีอยู่" ดีกว่าความไม่ย่อท้อแบบสัมบูรณ์ที่ฉันเห็นบ่อยเกินไป


2

ฉันเพิ่งเขียนโค้ดทำงานประมาณ 4 ปีในตอนนี้และนั่นเกือบจะ c # ทั้งหมด ฉันเรียนรู้ C ++ เมื่ออยู่ในวิทยาลัยและ Uni แต่ฉันไม่สามารถทำอะไรได้มากในตอนนี้

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

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


2

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

นี่ก็หมายความว่าระดับความสามารถเพิ่มขึ้นจริงถ้าคุณพิจารณาความกว้าง ศิลปินที่สามารถเขียนโปรแกรมก็หมายความว่าขณะนี้มีโปรแกรมเมอร์มากขึ้นด้วยทักษะศิลปะ


1
โดยความสามารถฉันหมายถึงการเขียนโปรแกรมทักษะอื่น ๆ ทั้งหมดไม่เกี่ยวข้องยกเว้นคณิตศาสตร์
Skeith

3
@Skeith - "โดยความสามารถฉันหมายถึงการเขียนโปรแกรมทักษะอื่น ๆ ทั้งหมดไม่เกี่ยวข้องยกเว้นคณิตศาสตร์" - นี่มันผิดมาก หนึ่งในการปรับปรุงที่ใหญ่ที่สุดในอุตสาหกรรมในช่วง 30 ปีที่ผ่านมาคือทักษะการสื่อสารที่เข้าใจกันว่าเป็นกุญแจสำคัญอย่างแท้จริง ให้โปรแกรมเมอร์ที่มีความสามารถโดยพื้นฐานพร้อมทักษะคณิตศาสตร์ที่ยอดเยี่ยมหรืออย่างใดอย่างหนึ่งที่มีทักษะการสื่อสารที่ยอดเยี่ยมและเป็นคนที่มีทักษะการสื่อสารทุกครั้ง
Jon Hopkins

+1 @Jon - เห็นด้วยทั้งหมด โปรแกรมเมอร์ที่ไม่ได้พูดกับลูกค้าในทุกเรื่องยกเว้นแลมบ์ดาแคลคูลัสและซุป alaphabet นั้นไม่มีค่าสำหรับ porjects ส่วนใหญ่
Morgan Herlocker

1
@Skeith: ดังนั้นคุณจะต้องรู้ว่าการเขียนโปรแกรมและคณิตศาสตร์เป็นโปรแกรมเมอร์ที่ดีหรือไม่? คุณอยู่ในโลกอะไร คุณจำเป็นต้องรู้เกี่ยวกับวิธีการใช้คอมพิวเตอร์วิธีการสื่อสารกับลูกค้าและโปรแกรมเมอร์อื่น ๆ วิธีการเขียนเอกสาร ฯลฯ สิ่งที่คุณไม่จำเป็นต้องรู้คือคณิตศาสตร์ แน่นอนว่ามีการซ้อนทับกันระหว่างคณิตศาสตร์และการเขียนโปรแกรม แต่เพียงรู้ว่าส่วนการเขียนโปรแกรมก็เพียงพอแล้ว
Martin Vilcans

เมื่อฉันอยู่ในวิทยาลัยฉันเรียนวิชาแคลคูลัสธุรกิจ ในขั้นสุดท้ายฉันทำเสร็จก่อนและได้ 100 (ครูให้คะแนนฉันตรงนั้น - เขาประทับใจที่ฉันทำเสร็จเร็ว ๆ ) แต่ในฐานะนักพัฒนาซอฟต์แวร์ฉันใช้เลขศูนย์ สิ่งที่ฉันใช้คือตรรกะในการเข้าใจโดเมนธุรกิจและฉันใช้ความสามารถพิเศษเพื่อโต้ตอบกับผู้คน ภาษาการเขียนโปรแกรมมีการพัฒนามากพอที่ถ้าคุณสามารถเขียนภาษาอังกฤษได้ดีคุณสามารถเขียนรหัสได้ดี Caveat: การเขียนภาษาอังกฤษได้ดีกว่าการเขียนโปรแกรมยากเพราะคุณกำลังเขียนโปรแกรม wetware ที่ใช้ DNA ..
Christopher Mahan

2

มีความแตกต่างระหว่าง "โปรแกรมเมอร์" และ "โปรแกรมเมอร์จริง" โปรดอย่าเรียก HTML เป็นภาษาการเขียนโปรแกรม แต่มี "โปรแกรมเมอร์ HTML" จำนวนมาก คุณแต่ละคน (โปรแกรมเมอร์ / นักพัฒนา) สามารถสร้างประสบการณ์กับเพื่อนร่วมงาน -เพียงแค่ "ปิดอินเทอร์เน็ต (ที่จริงแล้วไม่อนุญาตให้พวกเขาใช้เครื่องมือค้นหา)" และคุณจะเห็นว่า "โปรแกรมเมอร์" หลากหลายจะเข้ามานั่ง โดยไม่มีงาน พวกเขาสามารถทำอะไรพวกเขาเพิ่งรู้ว่าถ้าพวกเขาต้องการเช่นการค้นหาในข้อความพวกเขาควร "ค้นหา" การค้นหาข้อความในภาษา% language_name% '"? พวกเขาไม่สามารถตอบคำถามนี้ - อัลกอริทึม Boyer-Moore และ Knuth-Morris-Pratt แตกต่างกันอย่างไร

ดังนั้น IMO การเขียนโปรแกรมหมายถึงการแก้ปัญหารู้ดีว่าภาษาการเขียนโปรแกรมขั้นต่ำอย่างน้อยหนึ่งภาษาด้วย 'STL' และสิ่งสำคัญอื่น ๆ การเขียนโปรแกรมเป็นศิลปะเป็นชีวิตแบบหนึ่งซึ่งไม่ใช่สิ่งที่ทุกคนสามารถทำได้

ขออภัยสำหรับการเสียดสีเกินความจำเป็น แต่ฉันคิดว่าบทความนี้พูดดีกว่าฉัน

ฉันผิดหรือเปล่า?

UPD:สิ่งที่สำคัญและสำคัญคือความรู้พื้นฐานเช่นอัลกอริทึมโครงสร้างข้อมูลเป็นต้นมีกี่คนที่สามารถใช้งานไลบรารี / ฟังก์ชั่นมาตรฐาน / ฯลฯ ในกรณีที่วันนี้จะถูกลบโดยไม่ตั้งใจ IMO โปรแกรมเมอร์ควรใช้รหัส 'alien' ที่ได้รับการพัฒนา / ดีบั๊ก (ไลบรารี่ / กรอบ / ฯลฯ ) แต่ควรจะสามารถสร้างวงล้อใหม่ได้เสมอ!


6
ปัญหาเดียวของฉันคือฉันได้ทำงานเป็นโปรแกรมเมอร์ (โปรแกรมเมอร์ที่เหมาะสมไม่ใช่เว็บ / HTML / สคริปต์) เป็นเวลา 20 ปีและไม่มีความคิดเกี่ยวกับอัลกอริทึม Knuth-Morris-Pratt สำหรับโปรแกรมเมอร์ส่วนใหญ่ทฤษฎีแบบนี้ไม่ได้ส่งผลกระทบต่อชีวิตประจำวันของพวกเขาเพราะสิ่งนี้มีอยู่ในห้องสมุด
Jon Hopkins

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

6
มนุษย์ไม่ได้อายุการใช้งานที่จำเป็นในการเรียนรู้วิธีการที่จะบูรณาการทุกล้อคิดค้นเพื่อให้ห่างไกลหรือการเรียนรู้วิธีการที่จะบูรณาการล้อที่ถูกคิดค้นขึ้นในขณะนี้
Macke

3
@ Dehumanizer: ฉันหวังว่าจะได้รับการฝึกฝนและมีคอมไพเลอร์มากกว่า C ในมือของฉันเพื่อช่วยโลกมิฉะนั้นฉันจะเมาอย่างใด (BTW ทำไมต้องเป็นคอมไพเลอร์ C ทำไมไม่เพียงแค่ USB-stick ออสซิลโลสโคปและแบตเตอรี่ขนาด 9 โวลต์อย่างจริงจัง .... )
Macke

1
เพียงแค่ปิดคอมไพเลอร์แล้วคุณจะเห็นผู้คนส่วนใหญ่แค่นั่งเฉยๆในขณะที่โปรแกรมเมอร์ REAL พิมพ์รหัสเครื่องตรงไปยังไฟล์!
ฟิลิป

1

เกี่ยวกับ VB นั้นใช้งานง่ายและโปรแกรมเมอร์ที่ขี้เกียจหยิบ VB เพราะมัน:

ฉันคิดว่า VB นั้นรายล้อมไปด้วยตำนานที่ยิ่งใหญ่เรื่องหนึ่งที่ใช้งานง่าย เดิมตำนานนี้ค่อนข้างจริง: ย้อนกลับไปในช่วงราว ๆ ปี 1991-1994 เมื่อไดโนเสาร์เดินไปทั่วโลกมีเพียงสองเครื่องมือ RAD จริง ๆ คือ VB และ Delphi พวกเขาค่อนข้างคล้ายกัน แต่หมายเหตุสิ่งนี้: Delphi และ VB ใช้งานง่ายพอ ๆ กัน! ข้อแตกต่างที่โดดเด่นระหว่างพวกเขาคือ VB นั้นมีไวยากรณ์ที่ไร้เหตุผลอย่างสมบูรณ์และผลิตโปรแกรมที่ไม่น่าเชื่อ

GUIs C / C ++ เขียนด้วย MFC หรือใน Win Win API ดังนั้น VB จึงง่ายต่อการใช้งานมากกว่าทางเลือกของ Microsoft จากนั้นโรงงานข่าวลือก็เป็นเช่นนี้:

  • VB นั้นง่ายต่อการใช้งานมากกว่า Microsoft C / C ++ / Win API ->
  • VB นั้นใช้ง่ายกว่า ->
  • VB ใช้งานง่าย ->
  • VB เป็นวิธีที่ง่ายที่สุด

ข่าวลือนี้ยังมีชีวิตอยู่ต่อไปแม้ว่า Delphi จะง่ายเสมอกันหากไม่สะดวกเนื่องจาก Pascal เป็นภาษาที่มีเหตุผลและมีเหตุผล

จากนั้นในช่วงปลายยุค 90 Borland ได้เปิดตัว C ++ ที่เทียบเท่ากับ Delphi: C ++ Builder ตอนนี้มี 3 เครื่องมือที่ง่ายไม่แพ้กัน ในช่วงเวลานี้ข้อโต้แย้งเชิงเหตุผลที่เหลืออยู่ไม่กี่ข้อในการใช้ VB ก็ตายไป ทว่าตำนานยังมีชีวิตอยู่ "VB เป็นวิธีที่ง่ายที่สุด"

จากนั้น Java ก็เข้ามาและมีเครื่องมือ RAD หลายอย่างสำหรับมันเช่นกัน (และสำหรับเวอร์ชั่น Microsoft fiasco ที่ชื่อ J ++) ทว่าตำนาน VB นั้นยังมีชีวิตอยู่

จากนั้น Microsoft ก็ให้การสนับสนุน RAD สำหรับ C ++ ด้วยเช่นกันและมาพร้อมกับ C # ทำให้ทุกคนกลายเป็น goo ใหญ่ที่เรียกว่า. NET ตั้งแต่ตำนาน VB ยังคงมีอยู่พวกเขาสามารถหลอกนักพัฒนา VB เก่าให้ใช้ VB.NET แทน C ++ หรือ C # แม้ว่า VB.NET นั้นค่อนข้างเข้ากันไม่ได้กับ VB รุ่นก่อนหน้านี้

วันนี้ VB เป็นภาษาที่ซ้ำซ้อนอย่างสมบูรณ์ เครื่องมือ RAD ไม่ใช่เรื่องง่ายกว่าเครื่องมือ RAD อื่น ๆ ไวยากรณ์ของภาษานั้นแย่มาก ๆ ซึ่งแย่มากที่มันสนับสนุนการออกแบบโปรแกรมที่ไม่ดีและการฝึกฝนการเขียนโปรแกรมที่ไม่ดี


ขอบคุณตอนนี้ฉันสามารถฟังความชอบธรรมในความเกลียดชังของ VB ของฉันได้มากขึ้นโดยเพิ่มเหตุผล
Skeith

1

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


1

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

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

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

ระดับสูง เป้าหมายในระดับสูงคือการทำให้การทำงานพื้นฐานเป็นไปโดยอัตโนมัติและทำให้การเขียนโปรแกรมง่ายขึ้น มันลดแถบเพื่อเข้าสู่โปรแกรมเมอร์ใหม่ทำสิ่งต่าง ๆ ให้เสร็จเร็วขึ้นและกำหนดมาตรฐานวิธีการที่เรานำเสนอและประมวลผลข้อมูลบ่อยครั้งด้วยค่าใช้จ่าย พิจารณาสตริง ในวันแรก ๆ บางคนอาจใช้ 1-26 สำหรับ az และใช้เพียง 5 บิตและต้องรู้ขนาดของคำพูดของเขา จากนั้นมาตรฐาน ASCII ได้รับการพัฒนาและเรามีสตริง C ที่มีตัวอักษรเทอร์มิเนเตอร์ ตอนนี้เรามีวัตถุที่จัดการสิ่งต่าง ๆ เพื่อหลีกเลี่ยงบัฟเฟอร์ล้นและชนิดย่อยพิเศษที่ไม่อนุญาตให้ใช้อักขระการหลบหนี หรือว่าเป็นวงวน A "for" loop นั้นจะมีระดับที่สูงขึ้นเล็กน้อยจากนั้นเป็น "while" loop และการวนรอบ "ในขณะที่" เป็นเพียงการแสดงวิธีการโทร GOTO ที่มีโครงสร้าง

นอกจากนี้

โปรแกรมเมอร์ในอนาคตจะบอกคอมพิวเตอร์ว่าพวกเขาต้องการอะไรและคอมไพเลอร์จะเขียนโปรแกรมสำหรับพวกเขาเหมือนใน Star Trek

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


1

ฉันคิดว่าบางที่ที่คุณไม่ได้เห็นว่าโปรแกรมเมอร์ได้รับเงินอะไรบ้าง

การส่งมอบของเราไม่ใช่รหัส แต่เป็นซอฟต์แวร์ที่ใช้งานได้

เราไม่ได้สร้างเฟอร์นิเจอร์ที่มีการประกบกันด้วยมือเพื่อเพิ่มคุณค่าเพราะคู่มือ "งานฝีมือ" ทั้งหมดที่เข้ามา

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


* เป็นซอฟต์แวร์ที่มีการขยาย (บางครั้ง)
kagali-san

0

อัตราส่วนของ (นักพัฒนาโปรแกรมหลัก / จำนวนนักพัฒนา) ลดลงเนื่องจาก:

  • เครื่องมือเริ่มง่ายขึ้นนั่นหมายถึงความสามารถที่น้อยลงสำหรับปัญหาเดียวกัน

  • ผู้คนเริ่มคุ้นเคยกับเทคโนโลยีไอทีมากขึ้นและเต็มใจที่จะใช้จ่ายเงินกับเครื่องมือที่ปรับแต่งเอง

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

  • มีงานให้มากขึ้นตัวกรองจะถูกลบออก

  • ต้องการระบบอัตโนมัติที่มากขึ้นในทุกช่วงอายุความต้องการเพิ่มขึ้นและอุปทานไม่เพียงพอ

  • อัตราส่วนผู้พัฒนาต่อจำนวนประชากรเพิ่มขึ้น

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


0

คำตอบมากมายบอกว่าทำไมต้องคิดค้นล้อและฉันเห็นด้วยกับสิ่งนี้ แต่เมื่อมีล้อที่ผู้คนไม่ใส่ใจที่จะเรียนรู้วิธีทำล้อ

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


0

ก่อนที่คอมพิวเตอร์ในปี 1940 จะเป็นวงจรแบบมีสาย จากนั้นฟอนนูแมนก็เกิดความคิดขึ้นสำหรับตำแหน่งหน่วยความจำที่เก็บไว้ ฉันมั่นใจว่าโปรแกรมเมอร์เหล่านั้นที่ MIT คิดว่าเขาจะทำให้การค้าขายของพวกเขาแย่ลงเป็นสิ่งที่ง่ายเกินไป จากนั้นก็มาชุมนุมแล้วมา FORTRAN แล้ว ada แล้ว C จากนั้น c ++ จากนั้น java และอื่น ๆ ประเด็นคือจุดของภาษาคือการอนุญาตให้นามธรรมเพิ่มเติมและต่อไป นั่นเป็นเป้าหมายเสมอและเป็นเหตุผลที่ c ++ ติดกับจาวาแล้วหลังจากนั้น เนื้อวัวที่ใหญ่ที่สุดของฉันคือมหาวิทยาลัยไม่ได้สอนนักเรียนเกี่ยวกับคอมพิวเตอร์อีกต่อไป ฉันไม่จ้างโปรแกรมเมอร์ c # หากพวกเขาไม่รู้จัก c ++ เหมือนมือของพวกเขาเอง ทำไม? เพราะมันง่ายเกินไปที่จะเป็นนักเขียนโปรแกรมที่ไม่ดีภาษาที่เป็นนามธรรมมากขึ้นเรื่อย ๆ พวกเขาจำเป็นต้องเข้าใจพอยน์เตอร์, การจัดการหน่วยความจำ, การเชื่อมโยงไดนามิกเป็นต้น . ข้างในและข้างนอกก่อนที่พวกเขาจะสามารถเข้าใจ C # ในระดับที่ฉันเชื่อใจพวกเขาที่จะมีส่วนร่วมกับรหัสฐาน ฉันทำให้พวกเขาต้องดิ้นรนผ่านการสร้างไฟล์ก่อนที่จะอนุญาตให้พวกเขาใช้ Visual Studio ที่กล่าวว่าฉันรัก C # และ IDE ที่ดี แต่พวกเขาเป็นเครื่องมือที่ดีเมื่อพวกเขาเข้าใจอย่างถูกต้อง ในความคิดของฉันสิ่งที่เป็นนามธรรมมีประโยชน์มากที่สุดเมื่อคุณเข้าใจรายละเอียดที่เป็นนามธรรม - มันเป็นแนวคิดที่เก่าแก่มากดู Thomas Aquinas เกี่ยวกับความสัมพันธ์ของนามธรรมกับรายการ

ฉันคิดว่าการออกกำลังกายที่ดีอีกอย่างสำหรับนักพัฒนาระดับเริ่มต้นคือการทำให้พวกเขาเขียนแอพพลิเคชั่นบางตัวโดยใช้ Windows API จากนั้นหลังจากที่พวกเขาทำเสร็จให้พวกมันทำให้มันเป็นวัตถุที่ทุก ๆ สืบทอดมาจากคลาสหน้าต่างทั่วไปของคุณ ให้พวกเขาสรุปเหตุการณ์วนรอบและวางพอยน์เตอร์ฟังก์ชั่นบางอย่างที่ถ่ายภาพกลับไปที่คลาสฟอร์มของพวกเขา จากนั้นบอกว่าทำได้ดีมาก Microsoft ทำสิ่งนี้ให้คุณแล้วเรียกว่า System.Windows.Forms มีความสุข.

หากพวกเขาจะเป็นนักพัฒนาเว็บให้พวกเขาเขียนโปรแกรม CGI สองสามตัวเพื่อให้พวกเขาเข้าใจ POST, GET และอื่น ๆ ... จากนั้นจึงเขียนสคริปต์หน้าเว็บ มันทำให้ ASP.NET และ PHP มีความหมายมากขึ้น

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

ฉันได้พบว่าสิ่งนี้ช่วยปรับปรุงประสิทธิภาพการผลิตในระยะยาวเพราะให้เครื่องมือและแก้ไขสัญชาติญาณเพื่อแก้ไขปัญหาของตนเอง

มหาวิทยาลัยควรที่จะทำสิ่งนี้ แต่พวกเขาก็ไม่จำเป็นต้องทำเช่นนั้น

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


0

(.. ) ไม่ช้าก็เร็วจะไม่มีสิ่งที่เรียกว่าการเขียนโปรแกรมในขณะนี้

ฉันไม่เห็นด้วยกับประเด็นนี้
โปรแกรมเมอร์ไม่ได้รู้ตัวว่าอะไรคือความปลอดภัย

นี่คือลักษณะของ"เครื่องคิด"ในขณะนี้:

หยุดเรื่องการเปลี่ยนแปลง!
- ฉันคิดว่าความรักของเรานั้นพิเศษ
หยุดเรื่องการเปลี่ยนแปลง!
- ฉันไม่ได้เปลี่ยนวิชา
-คุณคือ! ฉันกำลังพยายามพูดเกี่ยวกับการไร้ความสามารถของคุณที่จะเข้าใจสิ่งที่เรากำลังพูดถึง
- มันไม่ได้ปิด เพลงบีทเทิลที่ฉันชอบคือข้ามจักรวาล ของคุณคืออะไร

ฉันเชื่อว่ามีเพียงโปรแกรมเมอร์ผู้ที่ไม่เข้าใจประเด็นนี้เท่านั้น

คำตอบเช่นDehumanizer ของ :

พวกเขาไม่สามารถตอบคำถามนี้ - อัลกอริทึม Boyer-Moore และ Knuth-Morris-Pratt แตกต่างกันอย่างไร

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

เครื่องมือเองไม่แก้ไขปัญหาพวกเขา (บางครั้ง) ทำให้โปรแกรมเมอร์มีประสิทธิภาพมากขึ้น

มันเหมือนกับ: "ปืนไม่ฆ่าคนทำ"


1
หากฉันไม่เข้าใจผิด Cleverbot ไม่เพียงทำซ้ำสิ่งที่ผู้คนพูดไปแล้วหรือไม่
Andrew Arnold

0

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


0

การพึ่งพาเครื่องมือมากเกินไปหมายความว่าคุณขี้เกียจหรือไม่?

โดยทั่วไปแล้วพูดว่า 'ไม่'; แต่มีข้อแม้ใหญ่หนึ่งข้อ

ฉันเริ่มเขียนโปรแกรมใน C ++ ที่ uni และรักมัน ในระยะต่อไปเราเปลี่ยนเป็น VB6 และฉันเกลียดมัน

ฉันไม่สามารถบอกได้ว่าเกิดอะไรขึ้นคุณลากปุ่มไปยังแบบฟอร์มและ IDE เขียนรหัสให้คุณ

ใช่แน่นอน. ประสบการณ์ของคุณที่ยูนิพูดกับคำเตือนที่ฉันพูดถึง

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


-2

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

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


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

-3

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

มีความเป็นไปได้ค่อนข้างมากที่ความต้องการการเขียนโปรแกรมแบบไม่มีการลากและวางจะลดลงและเราจะเห็นงานที่น่าสนใจมากกว่านี้

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