(ทำไม) ฉันควรเรียนรู้ภาษาการเขียนโปรแกรมใหม่หรือไม่ [ปิด]


97

ฉันค่อนข้างมีความเชี่ยวชาญเกี่ยวกับ Java, C / C ++, JavaScript / jQuery และเหมาะสมกับ Objective-C ฉันค่อนข้างมีประสิทธิภาพด้วยภาษาและกรอบงานที่เกี่ยวข้องเช่นกันและผลิตระบบระดับองค์กร (และขนาดเล็ก) ด้วยความสะดวกสบายที่เพียงพอในขณะที่รักษารหัส 'สะอาด' และบำรุงรักษาได้ (ใช่ฉันสามารถอ่านรหัสของตัวเองหลังจากหก เดือน :)

เว้นแต่ได้รับคำสั่งจากแพลตฟอร์ม (iPhone, iPad, ฯลฯ ) หรือโดยองค์กรลูกค้า / การดำเนินการเพียงแค่ "ทำไม" ฉันควรเรียนรู้ภาษาการเขียนโปรแกรมใหม่หรือไม่ แค่เล่น ๆ"? และทำอะไรด้วยความสนุกถ้าฉันจะไม่ทำอะไรที่คุ้มค่ากับมัน?

เพื่อนของฉันหลายคนพร้อมที่จะดำน้ำเพื่อเรียนรู้ "สิ่งใหม่ / ภาษาใหม่" และโดยทั่วไปแล้วก็คือ Python, Ruby หรือ PHP (เพียงตั้งชื่อชื่อที่นิยมไม่กี่คน) ตอนนี้เพียงแค่รู้ภาษาด้วยตัวเอง IMHO ไร้ประโยชน์ คุณต้องรู้กรอบการเรียนรู้การใช้งาน / API รวมถึง 'แนวทางปฏิบัติที่ดี' ฯลฯ

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

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


6
programmers.stackexchange.com/questions/118338/…บางทีคุณอาจจะสนใจคำตอบที่ฉันให้
deadalnix

3
หากคุณสามารถเห็นภาษาใหม่ที่มีแนวความคิดใหม่และไม่ต้องการที่จะเข้าใจพวกเขาหลายแห่งจะไม่จ้างคุณ (อันที่จริงมีการสัมภาษณ์คำถามจำนวนมากเพื่อพิจารณาสิ่งเหล่านี้โดยเฉพาะ)
Bill K

3
ฉันจะถามว่าทำไมฉันไม่ควรเรียนภาษาใหม่?
ผู้ใช้

2
@ ZacharyK แม้ว่างานสำหรับผู้พัฒนาจาวาและผู้สมัครนั้นยอดเยี่ยมมากที่จาวา ฟังดูเหมือนคุณอาจกำลังยิงตัวเองอยู่ที่เท้า
NimChimpsky

2
มีพวก Super Java มากมายอยู่ที่นั่น ฉันสนใจในสิ่งที่คุณจะรู้ใน 6 เดือนเหมือนกับที่คุณรู้ตอนนี้ (แน่นอนฉันดูเหมือนจะใช้เวลาทั้งหมดของฉันใน Erlang, CoffeeScript และ PHP)
Zachary K

คำตอบ:


178

จากโปรแกรมเมอร์อย่างจริงจัง , เคล็ดลับ # 8 "ลงทุนเป็นประจำในพอร์ตความรู้ของคุณ":

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

มันไม่เกี่ยวกับ "สิ่งใหม่" ถัดไป มันเกี่ยวกับการคิดต่าง ๆ นอกเหนือจากรูปแบบความคิดปกติของคุณ

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


จุดที่ดีเยี่ยม ความคิดนี้เป็นสิ่งที่ทำให้ฉันลอง RavenDB ในโครงการและฉันเรียนรู้มากมายหลังจากหลายปีที่ติดอยู่ในรูต SQL Server
บ๊อบฮอร์น

52
ฉันคิดว่ามันเป็นเมื่อทุกสิ่งที่คุณมีคือค้อนทุกอย่างดูเหมือนว่านิ้วหัวแม่มือของคุณ
Zachary K

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

3
Pragmatic Programmer เป็นหนึ่งในหนังสือการเขียนโปรแกรมที่ดีที่สุดที่ฉันเคยอ่าน ดีจริงๆ!
Soner Gönül

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

80

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

วิธีใหม่ในการแก้ปัญหา การเรียนรู้ภาษาใหม่ใช้เวลาในการดำน้ำจริง ๆ เปิดโอกาสให้คุณได้เขียนโปรแกรมเป็นมือใหม่อีกครั้ง มุมมองใหม่นั้นสามารถสอนเทคนิคต่าง ๆ ที่อาจนำไปใช้กับภาษาเก่า นึกถึงอิทธิพลของ Ruby on Rails ที่มีต่อ ASP.NET MVC หรือวิธีที่ Java Hibernate ถูกพอร์ตไปยัง C # (พร้อมกับกรอบอื่น ๆ มากมายที่มีอิทธิพลต่อการพัฒนา. NET) การเปิดรับภาษาต่าง ๆ สามารถสอนวิธีการใหม่ในการแก้ไขปัญหา

เครื่องมือที่เหมาะสมสำหรับงานที่ถูกต้อง ทุกภาษาที่คุณพูดถึงคือลูกผสมของ OO / กระบวนงาน (หรือขั้นตอนล้วนๆในกรณีของ C) ลองใช้ภาษาที่ใช้งานได้หรือสองภาษา ลองใช้แฟกทอเรียลใน Erlang โดยใช้การเรียกซ้ำและดูกรามของคุณกระแทกพื้นเมื่อ 20,000! ส่งคืนภายใน 5 วินาที (ไม่มีสแต็กล้นในไซต์) จากนั้นดูที่พลังของการขยายขนาดแอ็พพลิเคชันของคุณเพื่อบีบอัดตัวเลขและโพรโทคอลการแยกวิเคราะห์ด้วยรหัสที่น้อยลงและใช้เวลาน้อยลงกว่าที่จะได้รับสองอินสแตนซ์ของ JVM การเรียนรู้ภาษา / กรอบงานอื่น ๆ ที่กำหนดเป้าหมายเพื่อแก้ไขปัญหาเฉพาะจะช่วยให้คุณมีเครื่องมือมากขึ้น

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

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

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

เพราะมันอยู่ที่นั่นเรียนรู้ภาษาใหม่เพราะคุณต้องการ


3
+1 Javascript สามารถใช้งานได้ แต่แน่นอนว่าดูเหมือนว่า OP อาจขาดกระบวนทัศน์บางอย่างจากกล่องเครื่องมือของพวกเขา และประสบการณ์ที่มากขึ้นเกี่ยวกับภาษาที่ใช้งานได้นั้นจะช่วยให้เข้าใจลึกซึ้งยิ่งขึ้นเกี่ยวกับภาษาที่มีอยู่เช่นกับเทมเพลต C ++
jk

+1 เพื่อให้มันสดจริง ๆ แล้วรู้สึกดีในการทำงานกับสิ่งที่แตกต่าง
โมนา

ฉันต้องการจะชี้ให้เห็นว่าการเพิ่มประสิทธิภาพการโทรแบบหางไม่มีอะไรเกี่ยวข้องกับภาษา (บริสุทธิ์) หรือไม่จำเป็นต้องใช้ภาษาที่จำเป็นที่คอมไพล์เพื่อให้ทำงานภายใต้รันไทม์. NET 64 บิตรับการเพิ่มประสิทธิภาพหางแบบฟรีตัวอย่างเช่น .
Blindy

1
ฮ่า ๆ ใช่นั่นไม่ใช่สิ่งที่ทำให้ Erlang เป็นภาษาที่ใช้งานได้จริง แต่เป็นการเปลี่ยนมุมมองทั้งหมด ในภาษาที่จำเป็นเราได้รับการสนับสนุนให้หลีกเลี่ยงการเรียกซ้ำทั้งหมด แต่กรณีที่น่ารำคาญที่สุดและการเรียกใช้ภาษาเชิงหน้าที่เป็นวิถีชีวิต การจับคู่รูปแบบตรงข้ามกับ if / else หรือ switch / case นั้นค่อนข้างเท่ห์
Michael Brown

2
ลองใช้แฟกทอเรียลใน Erlang โดยใช้การเรียกซ้ำและดูกรามของคุณกระแทกพื้นเมื่อ 20,000! ส่งคืนภายใน 5 วินาที (ไม่มีสแต็กล้นในไซต์) นี่คือหนึ่งในข้อโต้แย้งที่แข็งแกร่งที่สุดสำหรับการเรียนรู้ภาษาที่ใช้งานได้ที่ฉันเคยเห็น ไม่เคยคิดเลยว่ามันจะมีประสิทธิภาพ
Olegs Jeremejevs

37

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

ด้วยภาษาโปรแกรมเหมือนกัน ภาษาการเขียนโปรแกรมใหม่สามารถ "เปิด" ความคิดของคุณในการเขียนโปรแกรมบางด้าน

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

หากคุณต้องการรู้สึกเหมือนอยู่บ้านมากกว่านั้นลองใช้ภาษาสคริปต์ที่ทรงพลังเช่น Python หรือ Ruby


22
+1 "ภาษาที่ไม่ส่งผลกระทบต่อวิธีที่คุณคิดเกี่ยวกับการเขียนโปรแกรมไม่คุ้มค่าที่จะรู้" - Alan Perlis
ruakh

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

@ DonalFellows: ฉันคิดว่าเรามี "กระบวนการทางจิต" บางอย่างที่ไม่สามารถอธิบายได้ด้วยคำพูด แต่ฉันไม่เรียกสิ่งเหล่านี้ว่า "ความคิด" แต่ "ความรู้สึก", "ปฏิกิริยาตอบสนอง", "สัญชาตญาณ" ฯลฯ ฉันคิดว่าความคิดที่เหมาะสมจะต้องแสดงออกได้ในแง่ของภาษาบางประเภท ดังนั้นสำหรับฉันสิ่งที่ไม่มีภาษาสามารถมีชีวิตอยู่กระบวนการตอบสนองความรู้สึก ... แต่ไม่คิด แต่นี่คือความเชื่อตามสัญชาตญาณไม่ใช่หลักฐานที่แท้จริง และยังเป็นบิตนอกเรื่องจริงๆ :)
egarcia

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

2
@evilcandybag: มันเกิดขึ้นจริงฉันสามารถแสดงแหล่งที่มา: sciencemag.org/content/306/5695/496 , sciencemag.org/content/suppl/2004/10/15/1094492.DC1/ (PDF)
ruakh

26

ไม่เพียง แต่คุณต้องการเรียนรู้ภาษาใหม่ที่คุณต้องการเรียนรู้ภาษาที่แตกต่างจากภาษาที่คุณรู้จักอยู่แล้วถ้าคุณรู้ว่าการเรียนรู้ Java C # จะไม่ท้าทายคุณจริงๆพวกเขาจะค่อนข้างคล้ายกัน เป็นการดีที่คุณควรเลือกภาษาที่แตกต่างจากสิ่งที่คุณรู้ ถ้าคุณรู้จาวา, จาวาสคริปต์และ Objective-C คุณต้องการบางอย่างที่แตกต่างกันมาก

เช่น:

ทับทิมเป็นภาษา OO ที่พิมพ์ลงไปอย่างสนุกสนาน

อารัมภบทภาษาการเขียนโปรแกรมเชิงตรรกะที่แตกต่างกันมาก

Erlang Concurrency และ Fault Tolerance ทำได้ดีมาก

โครงการไปอ่าน SICP และเข้าถึงการตรัสรู้

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

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


2
+1! แบบฝึกหัดที่ฉันทำอยู่ในขณะนี้คือการใช้อัลกอริทึมแบบเดียวกัน (ผสานการเรียงลำดับ) ในภาษาต่าง ๆ : นี่ทำให้ฉันรู้สึกว่ามีหลายวิธีในการแสดงการคำนวณเดียวกัน ฉันมีเวอร์ชัน C, C ++, Pascal, Java, Scala และ Haskell อยู่แล้ว Python, Ruby, Modula2, Scheme กำลังดำเนินการ ฉันพบว่าคุณสามารถเรียนรู้ได้มากมายโดยดูจากภาษาการเขียนโปรแกรมที่แตกต่างกัน! และด้วยการทำสิ่งหนึ่งในภาษาหนึ่งฉันสามารถได้แนวคิดมากมายเกี่ยวกับวิธีการนำไปใช้ในวิธีที่ดีกว่าในภาษาอื่น
Giorgio

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

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

3
@ DonalFellows จากประสบการณ์ของฉันหากคุณได้ประเภทที่ถูกต้องใน Haskell ส่วนที่เหลือของโปรแกรมมีแนวโน้มที่จะเขียนเอง
tobyodavies

1
"ทับทิมเป็นภาษา OO ที่พิมพ์ได้ไม่คล่องนัก": ทับทิมพิมพ์ออกมาไม่คล่องจริง ๆ หรือค่อนข้างพิมพ์แบบไดนามิกหรือไม่?
Giorgio

15

คำถามของคุณเป็นคำถามสำคัญที่ขอให้ฉันถามคำถามต่อไปนี้:

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

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

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

ฉันรู้จัก C อยู่แล้วและฉันใช้มันอย่างมืออาชีพดังนั้นฉันจึงไม่รู้ว่าทำไมในโลกที่ใคร ๆ ก็ต้องการหรือจำเป็นต้องเรียนรู้ Cobol

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

เขาต้องเขียนโปรแกรมของเขาใน C ซึ่งเขาทำและเขาแสดงโปรแกรมของเขาให้ฉัน ในเวลาเดียวกันฉันแสดงโปรแกรมเวอร์ชัน Cobol ของเขาให้เขา

จากนั้นฉันก็ขว้างบอลโค้ง:

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

เขาใช้เวลาหนึ่งวันในการสร้างโปรแกรมรุ่นใหม่ที่ทำงานกับรูปแบบข้อมูลใหม่ มันเกี่ยวข้องกับการเปลี่ยนแปลงอย่างน้อย 20 หรือ 30 บรรทัดของรหัสและปรับเปลี่ยนฟังก์ชั่นและโมดูลต่างๆ

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

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

ดังนั้นในการตอบคำถามของคุณ: คุณควรเรียนรู้ภาษาใหม่เพราะคุณต้องการเรียนรู้ และถ้าคุณไม่ต้องการที่จะเรียนรู้ - พลังมากขึ้นสำหรับคุณ ... (ฉันแค่ไม่แน่ใจว่าฉันจะจ้างคุณด้วยทัศนคติที่)


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

ฉันมีเพื่อนร่วมงานที่มีทัศนคติแบบเดียวกัน: "C และ PHP หาเงินให้ฉันทำไมฉันต้องเสียเวลาเรียนภาษาอื่น" เขาไม่ทำงานที่นั่นอีกแล้ว
greyfade

3
ข้อกำหนดทั้งหมดเปลี่ยนแปลงไม่ช้าก็เร็ว! นั่นคือประเด็น
Zachary K

@hspain - จริง ๆ แล้วเนื่องจากประเด็นทั้งหมดของแบบฝึกหัดคือ Cobol ปฏิบัติตามข้อกำหนด I / O เป็นส่วนหนึ่งในลำดับแรกของโปรแกรมมากกว่าสิ่งที่เกิดขึ้นในแบบไม่รู้ไม่ชี้ตามวิธีที่คุณเขียนและสั่งซื้อของคุณ คำสั่ง I / O ใน C. และเพื่อสะท้อนความคิดเห็นของ Zachary K ความจริงก็คือความต้องการนั้นเปลี่ยนไป - ใช่คุณสามารถจัดโครงสร้างโปรแกรมใน C ในแบบที่มันเปราะน้อยกว่าเมื่อสิ่งต่าง ๆ เช่นการเปลี่ยนแปลงข้อกำหนด I / O แต่ที่เกี่ยวข้องกับการคิดเกี่ยวกับโปรแกรมในวิธีที่แตกต่างอย่างสิ้นเชิงกว่าปกติเมื่อคุณเขียนโปรแกรม C
Zeke Hansell

ฉันไม่รู้เกี่ยวกับโคบอลอลจริง ๆ สักวันฉันอาจต้องไปดู
Zachary K

12

มีสาเหตุหลายประการที่การเรียนรู้ภาษาใหม่อาจคุ้มค่ากับการลงทุนในเวลา:

  1. เพิ่มขนาดของกล่องเครื่องมือ - การเรียนรู้ภาษาใหม่สามารถให้เส้นทางเพิ่มเติมเพื่อแก้ไขปัญหาทางเทคนิค ความเป็นไปได้ของเครื่องมือใหม่อาจเป็นตัวเลือกภาษา / แพลตฟอร์มที่ดีกว่าสำหรับการแก้ปัญหาบางอย่างมากกว่าเครื่องมือ / ภาษาที่เคยรู้จักมาก่อน ตัวอย่างง่ายๆอาจเป็นได้ว่าโปรแกรมเมอร์ผู้รู้เท่านั้น C. การเรียนรู้ภาษาสคริปต์เปิดโอกาสให้เขา / เธอ - ในแง่ของการใช้งานการตั้งค่าสภาพแวดล้อม ฯลฯ
  2. เข้าถึงแพลตฟอร์มใหม่ - ตัวอย่างที่ยอดเยี่ยมอาจเป็น Objective C - หากต้องการพัฒนาสำหรับ iOS การเรียนรู้ภาษานี้เป็นสิ่งจำเป็น
  3. เรียนรู้กระบวนทัศน์ใหม่ - ภาษาบางภาษาอาจเข้าถึงกระบวนทัศน์ใหม่ที่ดีกว่า การใช้ C เป็นตัวอย่างอาจเป็นการยากที่จะพัฒนาบริการเว็บในมาตรฐาน ANSI C อย่างไรก็ตามการเรียนรู้ที่จะพัฒนาใน. NET, Java, PHP หรือภาษาใหม่อื่น ๆ อาจช่วยให้การพัฒนาบริการเว็บรวดเร็วขึ้น

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


11

ในคำ: Marketability

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

ประเด็นก็คือคุณจะจบลงเหมือนนักแสดงที่ทำละครโทรทัศน์แล้วไม่สามารถย้ายไปที่อื่นได้อย่างง่ายดายเพราะพวกเขาถูกมองว่าเป็นตัวละครดั้งเดิมของพวกเขาตลอดไป "ใครในโลกที่อยากให้ Captain Kirk เป็น Indiana Jones? !!" เช่นเดียวกับโปรแกรมเมอร์ที่เคยใช้ผลิตภัณฑ์เดียวเท่านั้น แน่นอนว่าคุณจะรู้ว่ามันไม่มีใครเหมือนใคร แต่นั่นจะไม่ช่วยคุณเมื่อคุณได้รับการปฏิบัติเหมือนคุณได้รับการบรรจุไว้ในฐานะ Fortran ที่ไม่สามารถทำงานกับ C # ได้

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

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


8

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

ภาษาที่คุณระบุไว้ส่วนใหญ่ (Java / C / C ++ / Javascript / Objective-C) เป็น OO / สิ่งที่จำเป็น การเรียนรู้ภาษาอื่น OO / ภาษาที่จำเป็นอาจจะไม่สอนคุณมากขึ้นเกี่ยวกับการเขียนโปรแกรมประเภทนั้น นอกจากว่าคุณจะมีความสนใจเป็นพิเศษไม่มีจุดใดในการเรียนรู้รสชาติของเดือนนั้น ๆ

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

เหตุผลที่ดีที่สุดในการเรียนรู้ภาษาใหม่คือการเรียนรู้ทักษะการใช้งานทั่วไป ด้วยเหตุนี้ฉันขอแนะนำให้ดำน้ำลึกในภาษาที่ใช้งานได้ (Haskell หรือหนึ่งใน Lisps) ในมือข้างหนึ่งและประกอบรหัสและสถาปัตยกรรมระบบ (x86 หรือ ARM) ที่อื่น ๆ

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


6

เราแต่ละคนตัดสินใจในสิ่งที่เราต้องการจะทำ ...

  1. คุณเรียนรู้เพราะคุณต้องการ
  2. คุณเรียนรู้เพราะคุณต้องการมันสำหรับงานที่คุณต้องการ

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

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

ในที่สุดมันคือทั้งหมดที่เกี่ยวกับสิ่งที่คุณต้องการจะเป็น


ในคำอธิบายของคุณมันฟังดูขาวดำเล็กน้อย "กรวยเทคโนโลยี" และวิศวกรซ่อมบำรุงรุ่นเก่าเป็นสองขั้วที่สำคัญที่สุดของ IMHO โดยที่พวกเราส่วนใหญ่นั่งอยู่ที่ไหนสักแห่งระหว่างนั้น นอกจากนี้ "นักกระโดดเทคโนโลยี" บางคนคลั่งไคล้สิ่งที่แวววาวล่าสุดที่จะเรียนรู้เทคโนโลยีใด ๆ อย่างถูกต้อง (ซึ่งจะใช้เวลามากกว่าที่พวกเขาเต็มใจที่จะลงทุนในเทคโนโลยีใด ๆ ) ดังนั้นพวกเขาจึงไม่อาจสร้างโซลูชั่นระยะยาวที่มั่นคง เพื่อปัญหา
PéterTörök

1
@ PéterTörök: แก้ไขคำตอบของฉัน ฉันชี้ไปที่สเกล แต่ขี้เกียจเกินกว่าที่จะสะกดทุกอย่าง คุณพูดถูกมันเป็นคลื่นต่อเนื่อง
DXM

5

ข้อโต้แย้งที่ดีที่สุดที่ฉันรู้คือมันขยายมุมมองของคุณเกี่ยวกับวิธีการแก้ปัญหาที่แตกต่างกันหลายวิธีหรือตรรกะบางอย่างสามารถแสดงได้ รู้ดีว่า Java และ C ++ ช่วยให้คุณมีมุมมองที่ดีทั้งในด้าน native & VM realms แต่มี "ดีกรีอิสระ" มากมายให้สำรวจ

ฉันมีประสบการณ์ 15 ปีใน C ++, 5 ใน Java มีหลายภาษาที่ฉันเรียนรู้และถูกทิ้งไว้ข้างหลัง (PHP, Pascal, ชุดประกอบสำหรับตัวประมวลผลที่แตกต่างกัน, และอื่น ๆ ) และสามารถพูดได้อย่างแน่นอนว่าแม้กระทั่งคนที่ฉันไม่ได้ใช้ก็เหลือเครื่องหมายที่สำคัญว่าฉันคิดอย่างไร . นอกจากนี้: แม้ว่าคุณต้องการที่จะยึดติดกับพูด Java สำหรับโครงการที่กำหนดคุณจะต้องรู้ทางเลือกที่จะนำเสนอโต้เถียงที่ดีกับผู้เสนอ

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

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


5

ผู้คนเรียนรู้ภาษาใหม่ ๆ ไปที่ ...

  • ขยายความรู้ของพวกเขา ถ้าคุณรู้มากขึ้นคุณจะรู้สึกดีขึ้นและคุณก็มั่นใจ
    ความเชื่อมั่น = รหัสที่ดีเลิศ!
  • มีกล่องเครื่องมือที่ใหญ่กว่า สมมติว่าคุณต้องสร้างแอป หากคุณรู้จัก Java คุณจะต้องสร้างโปรแกรมใน Java แต่ถ้าคุณรู้จัก Java, Python, Scheme และ Lisp โอกาสที่คุณจะเลือกเครื่องมือที่ดีที่สุดสำหรับงาน
  • หางาน. เผชิญหน้ากับมัน ถ้าคุณรู้ภาษามากกว่านี้คุณมีโอกาสในการทำงานมากขึ้น นั่นเป็นการอธิบายด้วยตนเอง
  • เป็นโปรแกรมเมอร์ที่ดีขึ้นทุกรอบ หากคุณรู้ว่าไวยากรณ์ของ Perl คุณรู้ว่ามันจะบ้าไปหน่อย เมื่อเขียนโปรแกรมยาว ๆ ในภาษา Perl คุณจะถูกบังคับให้ต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดมิเช่นนั้นคุณจะไม่เป็นนักออกค่ายที่มีความสุข เนื่องจากคุณรู้จักวิธีปฏิบัติที่ดีที่สุดของ Perl นี่อาจช่วยให้คุณเขียนโค้ด PHP ได้ดีขึ้น (ไม่ทางใดก็ทางหนึ่ง)

ดังนั้นอย่างที่คุณเห็นมีเหตุผลมากมายในการเรียนรู้ภาษาใหม่ คำแนะนำของฉันกับคุณ (และคำพูดเดิมของฉันเท่านั้นที่ฉันคิดว่าดี):

เขียนรหัสบ่อยๆ เขียนโค้ดได้ดี เขียนโค้ดใน Scheme, PHP, Java, Python, Lisp, Perl, C, C ++, C #, Visual Basic, Ruby ...


1
@Nupul: หรืออย่างน้อยผมคิดว่าพูดไปเช่นนั้น ...
แบบไดนามิก

5

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

ผู้ที่มีแนวโน้มที่จะเรียนรู้ภาษาเพิ่มเติมมักจะทำเงินได้

http://blog.stackoverflow.com/2012/02/survey-results/


4

อัลเฟรดนอร์ ธ ไวท์เฮดเขียนเรียงความที่ยิ่งใหญ่ที่เรียกว่า " ความสำคัญของสัญกรณ์ที่ดี "

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

ภาษาการเขียนโปรแกรมเป็นรูปแบบของสัญกรณ์ ฉันสามารถรหัส OO ใน C; อันที่จริงแล้ว Stroustrup เริ่มต้นด้วย C ++ เป็นชุดของ precompiler mac อย่างไรก็ตามมันง่ายกว่าและเร็วกว่าในการเขียนรหัส OO ใน Java, C ++ หรือ C # เนื่องจากมีภาษาดั้งเดิมอยู่ซึ่งรองรับ OO ได้ง่ายขึ้น

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


2

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

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

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

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

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

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


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

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

-2

คุณค่าของการเรียนรู้ภาษาการเขียนโปรแกรมใหม่คือโดยประมาณซึ่งกันและกันของจำนวนภาษาการเขียนโปรแกรมที่คุณรู้อยู่แล้ว

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


-3

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

และฉันพบว่าbcซึ่งเป็นภาษาเครื่องคิดเลขที่มีความแม่นยำตามอำเภอใจยูทิลิตี้เกือบทุกแพลตฟอร์มของ Unix

ฉันไม่ได้นึกถึง Python, Perl หรืออะไรเลย แต่ฉันรู้ว่านี่ช่วยแก้ปัญหาของฉันได้ในพริบตา ฉันตรวจสอบจากแฟคทอเรียล (20,000) ที่เพื่อนคนหนึ่งแนะนำและให้ผลลัพธ์อย่างรวดเร็วโดยไม่มีข้อผิดพลาดใด ๆ

เป็นสิ่งสำคัญเฉพาะในบางจุดที่คุณจำเป็นต้องรู้ภาษาใหม่ที่จะช่วยให้งาน / ปัญหาของคุณในปัจจุบัน

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

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


-8

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

ในโลกอุดมคติมีภาษาโปรแกรมระดับต่ำหนึ่งภาษา (เช่น C) ภาษาโปรแกรม "ปลอดภัย" ระดับสูงหนึ่งภาษา (เช่น Java) และภาษาสคริปต์หนึ่งภาษา นอกจากนี้ยังมีค้อนเลื่อนขนาดใหญ่สำหรับทำลาย "Programming Language Tower of Babel" ที่สร้างขึ้นโดยผู้ที่ไม่เข้าใจคุณธรรมของมาตรฐานและค่าใช้จ่ายของ "ปั่นป่วน" และการฝึกฝนอย่างต่อเนื่องในอุตสาหกรรมไอทีโดยรวม

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


4
เสียงเหมือนอุดมคติที่ทำไม่ได้สวย ใครจะเป็นผู้ตัดสินภาษามาตรฐานเหล่านี้และคุณจะตัดสินใจอย่างไรว่าภาษาใหม่มีค่าเปลี่ยนไป ความเสี่ยงของการติดอยู่ในภาษาเส็งเคร็งเพียงเพราะไม่มีใครเต็มใจที่จะลองอะไรใหม่ ๆ ? ลองนึกภาพถ้าเราทำสิ่งนี้เมื่อ 10 ปีที่แล้ว - ทุกคนใช้ C ++ และ Java (หรืออาจจะเป็น VB)!
เบรนแดนลอง

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

2
นอกเหนือจากประเด็นข้างต้นแล้วคำตอบของคุณยังมีความเกี่ยวข้องกับคำถามจริง downvote
user16764

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

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