เหตุใดจึงมีความกลัวอย่างมากในการเลือกภาษา“ ผิด” เพื่อเรียนรู้? [ปิด]


28

อาจเป็นเพียงฉัน แต่ในฐานะนักเรียน CS ปัจจุบันฉันได้เจอคำถามมากมายในเว็บไซต์นี้และที่อื่น ๆ ที่ไม่ใช่แค่ "ฉันควรใช้ภาษาใดกับ x" แต่ยังมี "ใครยังใช้ภาษา Y หรือไม่" ชั้นเรียน CS แรกของฉันได้รับการสอนใน Scheme ซึ่งหากฉันไม่เข้าใจผิดจะไม่ถูกใช้อย่างกว้างขวาง (อย่างน้อยก็เมื่อเปรียบเทียบกับภาษาอย่าง Java, PHP, Python และอื่น ๆ ) เพื่อนร่วมชั้นหลายคนคิดว่าต้องเรียนรู้ภาษาที่พวกเขาจะไม่ต้องใช้อีก แต่ฉันก็ไม่เข้าใจเลยว่าความกลัวของการเรียนรู้ภาษาที่ได้รับความนิยมน้อยลงนั้นมาจากไหน ไม่ฉันไม่สามารถใช้ Scheme ในงานใด ๆ ที่ฉันได้รับ แต่ฉันไม่เสียใจที่ได้เรียนรู้ที่จะใช้มัน (แม้ว่าจะเป็นมือใหม่ แต่ก็ไม่เชิงลึกมากในภาคการศึกษาหนึ่ง) ฉันกำลังเรียนหลักสูตรเสิร์ชเอ็นจิ้นในเทอมนี้ ซึ่งทำใน Perl และอีกครั้งฉันเห็นเพื่อนร่วมชั้นบ่นเกี่ยวกับการเลือกภาษา ฉันสามารถเข้าใจได้ว่ามีภาษาที่ชื่นชอบและไม่ชอบคนอื่น แต่ทำไมบางคนถึงทำงานอย่างหนักเพื่อเรียนรู้มันตั้งแต่แรก? คุณสามารถเรียนรู้ภาษาที่ "ผิด" ได้จริงหรือ? การเรียนรู้อะไรไม่เหมือน Scheme หรือ Haskell การออกกำลังกายทางจิตที่ดีถ้าไม่มีอะไรอื่นและอย่างน้อยก็มีประโยชน์ที่จะได้รับวิธีการแก้ปัญหาที่แตกต่างกันใช่ไหม


ที่น่าสนใจสองปีแรกของการศึกษา CS เกี่ยวข้องกับ C # และ Java เพียงอย่างเดียวและคาดเดาสิ่งที่ฉันใช้ในการฝึกงานครั้งแรก คำสี่ตัวอักษรเริ่มต้นด้วย "P"
อานนท์

6
@Shewbox คุณพูดถูกพวกเขาผิดคุณจะได้รับประโยชน์จากการเรียนรู้ข้ามประเภท ตอนจบของเรื่อง.
ocodo

7
พวกเขากำลังทำ SEO (การเพิ่มประสิทธิภาพเครื่องมือค้นหา) กับผู้จัดการการจ้างงาน

1
@rwong: และน่าเสียดายที่พวกเราบางคนต้องเรียนรู้วิธีที่ยากที่จะไม่ใส่ "ฉันใช้ XXX ครั้งเดียวและจะไม่แตะอีกครั้ง" เพราะผู้ใช้บางคนสแปมในการจับคู่คำหลัก

1
@JB: 99% ของผู้คนทำให้คนอื่นดูเหมือนว่าพวกเขากำลังจูบกัน
Michael K

คำตอบ:


27

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


แน่นอน - ระดับของฉันลงวันที่ล่วงหน้า C ++ ให้อยู่คนเดียว Java หรือ C # แม้ว่าเราจะได้รับการสอนเป็นหลักใน Pascal เราได้รับปัญหาในหลากหลายภาษาตั้งแต่ต้นและในปีที่สองของเรามีหลักสูตรที่มี "ภาษาของเดือน" simula (ใช้สำหรับการจำลอง) ยังคงอยู่ในความทรงจำของฉัน - แม้ว่าจะไม่มีโอกาสที่ฉันจะสามารถเขียนรหัส simula ใด ๆ - ส่วนใหญ่เป็นเพราะ OOP มันสอนฉัน (แม้ว่าฉันไม่ได้รู้ว่ามันในเวลา)
Murph

17

เพราะภาษาแรกของคุณจะกำหนดรูปแบบความคิดของคุณจนกว่าคุณจะเรียนรู้อย่างอื่น

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

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

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

ภาษาแรกของคุณไม่สำคัญเท่ากับทัศนคติของคุณเกี่ยวกับภาษาที่ตามมา หากคุณสามารถเห็นได้ไกลกว่าที่คุณจะรู้ว่ามีโลกที่นอกเหนือจาก BASIC / C / Perl / PHP / ฯลฯ แล้วคุณก็จะนำหน้าเกม นี่คือเหตุผลที่คนจำนวนมากชื่นชอบภาษาที่ใช้งานได้เนื่องจากภาษาที่พัฒนาขึ้นจำนวนมากกำลังรวมตัวเข้าหาพวกเขา


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

ฉันคิดเกี่ยวกับการเพิ่มสิ่งต่อไปนี้ฉันไม่ได้เลยพูดภาษาพื้นฐานไม่มีที่ของพวกเขา อันที่จริงพวกเขาทำ (ในช่วงการเรียนรู้ในช่วงต้น) ฉันไม่ได้พูดถึงมัน
Mark Canlas

โอ้ Michael การแก้ไขของคุณดูดีงามกว่านี้ฮ่าฮ่าฮ่าฮ่า
Mark Canlas

หากเพื่อนร่วมชั้นเรียนของ OP เกี่ยวข้องกับ Scheme เป็นภาษาที่ไม่ถูกต้องที่จะเรียนรู้พวกเขาอาจไม่ใช่ทุกคนที่รู้แจ้ง :)
David Moles

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

11

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

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

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

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


9

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

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


5

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

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


5

ภาษาแรกของคุณควรเน้นที่แนวคิดไม่ใช่ไวยากรณ์หรือสำนวน การใช้สิ่งนั้นเป็นแนวทาง:

  • Perlหมายถึงการค้นหาตัวแปรพิเศษและไวยากรณ์อาร์เคนจำนวนมาก
  • PHPหมายถึงการผสมผสานแนวคิดเนื่องจากการเติบโตตามธรรมชาติ
  • Javaหมายถึงความสับสนเล็กน้อยเนื่องจากไม่ใช่ทุกสิ่งเป็นวัตถุจริงๆ
  • แอสเซมบลี / C / C ++หมายถึงตันของสิ่งระดับต่ำซึ่งดีมากถ้าคุณต้องการทำการพัฒนาระบบฝังตัว แต่ดึงออกจากแนวคิดระดับสูง
  • SQLมีประโยชน์ในการดูว่าภาษาธรรมชาติสามารถ (และไม่สามารถ) แมปกับโครงสร้างรหัสและข้อมูลได้อย่างไร
  • Visual Basic สำหรับแอปพลิเคชันมุ่งเน้นไปที่วัตถุประสงค์พิเศษสิ่งที่ถูกโยนทิ้งและทำให้ง่ายเกินไปที่จะข้ามแนวคิดที่สำคัญเช่นการจัดการข้อผิดพลาดที่เหมาะสมและการปรับโครงสร้างใหม่
  • LISPดูเหมือนไวยากรณ์ง่าย ๆ แต่ก็ยังมีการแสดงออกชวเลขมากเกินไปซึ่งไม่มีความหมายตรงไปตรงมาโดยไม่มีความรู้รายละเอียดเกี่ยวกับชื่อเต็มของพวกเขา
  • Haskellมักจะดูเหมือนคณิตศาสตร์เป็นอย่างมาก แต่สามารถเสื่อมสภาพลงในซุปไวยากรณ์ได้อย่างรวดเร็ว
  • Python ... ที่จริงแล้ว Python เป็นภาษาเดียวที่ฉันไม่สามารถหาคำคัดค้านอย่างจริงจังสำหรับผู้เริ่มต้น อาจเป็นเพราะเป็นภาษาสุดท้ายที่ฉันได้เรียนรู้และภาษาต่อไปจะสอนฉันถึงข้อผิดพลาดในแบบของฉัน

ฉันสังเกตว่าคุณไม่ได้เขียนอะไรเกี่ยวกับ C # หรือ VB.Net
HK1

4

ถามเพื่อนร่วมชั้นของคุณว่าพวกเขารู้ว่าภาษานั้น "ผิด" ถ้าพวกเขาไม่ได้ใช้มัน คุณสามารถคิดได้ว่าสิ่งที่คุณชอบโดยใช้ภาษาที่หลากหลาย

เพื่อนร่วมชั้นหลายคนคิดว่าต้องเรียนรู้ภาษาที่พวกเขาจะไม่ต้องใช้อีก แต่ฉันก็ไม่เข้าใจเลยว่าความกลัวของการเรียนรู้ภาษาที่ได้รับความนิยมน้อยลงนั้นมาจากไหน

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

ฉันกำลังเข้าเรียนในชั้นเรียนเสิร์ชเอ็นจิ้นซึ่งทำใน Perl และอีกครั้งฉันเห็นเพื่อนร่วมชั้นบ่นเกี่ยวกับการเลือกภาษา

Perl มีประสิทธิภาพมากและถ้าคุณรู้วิธีใช้มันจะทำให้ชีวิตของคุณง่ายขึ้นมาก นอกจากนี้ยังคล้ายกับ Python และ Python ที่มีการใช้งานอย่างหนักในหนึ่งในนายหน้าชั้นนำของนักเรียน CS: Google เพื่อนร่วมชั้นของคุณควรจะกินสิ่งนี้ FWIW ฉันรู้ perl และ python ในระดับกลาง (ไม่ใช่มือใหม่ แต่ไม่ใช่ผู้เชี่ยวชาญ)

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

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

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

ในประโยคแรก: ไม่ แต่คุณสามารถเรียนรู้ภาษาได้อย่างแน่นอนคุณไม่ต้องการที่จะมี + อาการไอ + เสียงกระเพื่อม + อาการไอ + =)

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


1
เกิดอะไรขึ้นกับ Lisp?!?! :)
Michael K

1
+1 สำหรับ 'เรียนรู้ภาษาให้ได้มากที่สุด' หากคุณรู้ภาษาที่หลากหลายมันจะไม่ง่ายเลยที่จะเลือกภาษาหนึ่งสำหรับงานที่กำหนด
Michael K

1
@Michael: ยิ่งไปกว่านั้นมันทำให้การเรียนรู้ใหม่ง่ายขึ้นเพราะคุณจะได้รู้แนวความคิดส่วนใหญ่แล้ว
David Thornley

@Michael: ไม่มีอะไรผิดปกติกับ Lisp =) ฉันไม่ได้เป็นคนเขียนโปรแกรมฟังก์ชั่นภาษา บวกวงเล็บจำนวนมาก !! อย่างไรก็ตามฉันได้เห็นการแก้ปัญหาที่หรูหรามากที่นำมาใช้ใน Lisp ความเคารพต่อ Scheme และ Lisp gurus มากมาย
aqua

3

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

ในหน้าแรกในเวลาใดก็ตามคุณจะเห็นความศรัทธาทางศาสนาใกล้เคียงกับความเชื่อเช่น:

  1. การศึกษาระดับปริญญาตรีสาขาวิทยาศาสตร์คอมพิวเตอร์เป็นสิ่งที่จำเป็นในการเป็นโปรแกรมเมอร์ที่ดี
  2. การศึกษาระดับปริญญาโทสาขาวิทยาศาสตร์คอมพิวเตอร์ทำให้คนเขียนโปรแกรมไม่ดี
  3. การรับรองมีความจำเป็นอย่างยิ่งสำหรับการพัฒนาอาชีพของคุณ
  4. การรับรองเป็นธงสีแดงซึ่งระบุว่าโปรแกรมเมอร์ไม่ดี
  5. การศึกษาระดับปริญญาในสาขาอื่นนอกเหนือจากวิทยาศาสตร์คอมพิวเตอร์มีแนวโน้มที่จะส่งผลให้โปรแกรมเมอร์ที่ดีที่สุด
  6. คุณไม่ได้เป็นโปรแกรมเมอร์ที่ดีเว้นแต่คุณจะเขียนโปรแกรมในตอนเย็นและวันหยุดสุดสัปดาห์
  7. และมันจะไป

สิ่งหนึ่งที่คงที่คือ 99% ของ บริษัท ที่อยู่ในนั้นต้องการให้คุณมีประสบการณ์XกับเทคโนโลยีY ... และเนื่องจากบุคคลมีวงจรจำนวนมากเท่านั้นสิ่งที่พวกเขาใช้ในวงจรเหล่านั้นมีความสำคัญอย่างมาก


2

ฉันคิดว่าความกลัวในการเลือกภาษาที่“ ผิด” ในการเรียนรู้นั้นส่วนใหญ่เกิดจากการขาดข้อมูลและขาดการชี้นำเช่น:

  • การเข้าใจผิดของ bullet เงิน ความเข้าใจผิดว่ามีภาษาที่เหมาะสมสำหรับงานสภาพแวดล้อมหรือโครงการ และถ้าคุณเลือกผิดคุณจะได้รับการปิ้ง
  • ไม่เข้าใจว่าการเขียนโปรแกรมภาษาฟันฝ่า ภาษาเป็นเพียงเครื่องมือเช่นเครื่องพิมพ์ดีดหรือคอมพิวเตอร์ต่อนักเขียน มันไม่ได้เกี่ยวกับการเรียนรู้ความแตกต่างของเครื่องมือ (ไวยากรณ์) แต่สิ่งที่เครื่องมือช่วยให้ (แนวคิด, นามธรรม, ฯลฯ ) ให้คุณสร้าง

นั่นเป็นเหตุผลที่ตัวอย่างเช่น Scheme เป็นภาษาสอนที่ยอดเยี่ยม การเขียนโปรแกรมเป็นเรื่องเกี่ยวกับสองสิ่ง: นามธรรมและนำมาใช้ใหม่ Scheme มีคุณสมบัติสองอย่างคือ function abstraction และ function call (เช่น reuse) เฮ็คมันไม่ได้มีไวยากรณ์!
Jörg W Mittag

2

เราได้รับความคิดเห็นเพิ่มเติม

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

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


1

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

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


1

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

ตอนนี้ Java มีประโยชน์ใช่มั้ย ฮ่า ๆ ทุกคนเรียนรู้ Java นั่นคือสิ่งที่คุณไม่ต้องการที่จะแข่งขันประวัติส่วนตัวของคุณจะอยู่ในกอง 1,000 กับหัวเรื่อง CS บัณฑิตล่าสุดที่รู้ Java ที่จริงแล้วคุณน่าจะเก่งกว่าการจ้างงาน Schema การเรียนรู้ที่ฉลาดเพราะนั่นเป็นสัญญาณลับที่คุณไปมหาวิทยาลัยชั้นยอดและไม่ใช่วิทยาลัยชุมชน

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

(PS MIT ยอมแพ้กับ Schema และเปลี่ยนเป็น Python)


เศร้าเกี่ยวกับการละทิ้ง Scheme, SICP เป็นสิ่งที่โปรแกรมเมอร์ทุกคนควรอ่าน ฉันมักจะส่งเสริมในทุกโอกาส
Zachary K

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

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

1

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

ที่ถูกกล่าวว่าฉันไม่คิดว่าจะมีภาษาที่ 'ผิด' ในการเรียนรู้ - แต่ฉันหวังว่าฉันได้ค้นพบทับทิมเมื่อหลายปีก่อนแทนที่จะดิ้นรนกับการทำสิ่งขั้นสูงใน PHP ...

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