ความรู้ที่ลึกซึ้งของ C ++ จะช่วยคุณในการเรียนรู้ภาษาอื่น ๆ เร็วขึ้น / ง่ายขึ้นหรือไม่ [ปิด]


9

มีความเป็นไปได้ไหมที่ใครบางคนที่เรียนรู้ทุกแง่มุมที่สำคัญของ C ++ และรู้พื้นฐานของภาษาเป็นอย่างดีจะเรียนรู้ภาษาอื่น ๆ (เช่น Python, Perl, Java) เร็วขึ้นและง่ายขึ้นหรือไม่


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

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

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

1
เมื่อเทียบกับอะไร เรียนรู้ภาษาอื่นดีรู้ C ++ ดี แต่ไม่ลึกไม่รู้อะไรเลย?
Telastyn

2
ใช่ แต่ยังเป็นวิธีอื่น ๆ การรู้จัก Ocaml หรือ Scheme ทำให้มีคุณสมบัติใหม่ ๆ ใน C ++ 11 ที่เข้าใจได้ง่ายขึ้น
Basile Starynkevitch

คำตอบ:


12

ในข้อกำหนดทั่วไป

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

ในข้อกำหนดเฉพาะ

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

ความเห็นส่วนตัว

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


3
ฉันดีใจที่มหาวิทยาลัยของเราเริ่มต้นด้วยปาสกาล จากนั้นเราก็ไปที่ C (สำหรับการจัดการหน่วยความจำและส่วนการดำเนินงานบิต) และในที่สุดก็พัฒนาเป็น java สำหรับ oop (แม้ว่าหลักสูตรนี้อาจเป็นภาษาอื่น ๆ ก็ตาม) พูดตามตรงฉันรู้สึกว่ามันค่อนข้างรบกวนมหาวิทยาลัยที่เริ่มต้นด้วยจาวา คุณจะต้องเรียนรู้ภาษาจาวา (และที่สำคัญกว่านั้นคือ OOP) อย่างไม่ถูกต้องเนื่องจาก OOP ที่แท้จริงนั้นซับซ้อนเกินไปสำหรับผู้เริ่มต้นที่ยังคงดิ้นรนกับความแตกต่างระหว่างORและAND
Lovis

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

1
@Doval: ขนาดผิดตำแหน่งการจัดตำแหน่ง: วิธีการอย่างใดอย่างหนึ่งทำสิ่งเหล่านี้ในภาษาเชิงวัตถุเมื่อขนาดที่เหมาะสมเป็นที่รู้จักกันในการรวบรวมและจัดสรรจัดสรรจัดการตำแหน่งและการจัดตำแหน่ง? การให้เร็ว: นี่คือสิ่งที่ GC ควรจะป้องกันดังนั้นการบอกว่ามันไม่เกี่ยวข้องกับการสนทนานี้เป็นเพียงการพูดตรงๆไม่เป็นความจริง แต่มันจะต้องเสียค่าใช้จ่ายในการเปลี่ยนทุกการจัดสรรให้เป็นหน่วยความจำรั่ว และการไม่กระทืบข้อมูลของวัตถุอื่นเป็นปัญหาการตรวจสอบอย่างจำกัด ไม่ใช่ปัญหาการรวบรวมขยะ
Mason Wheeler

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

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

9

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

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

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


4
มีเหตุผลที่ Java และ C # มีระบบแม่แบบที่อ่อนแอกว่า แต่นั่นเป็นเพราะพวกเขาต้องการข้อมูลเมตาแบบเต็มเกี่ยวกับทุกสิ่ง และฉันจะสนใจคำอธิบายว่าวัตถุในขณะที่คุณค่าแตกต่างกันอย่างไร โดยเฉพาะอย่างยิ่งการพิจารณาว่ามีการอ้างอิง ...
Deduplicator

3
@Dupuplicator: Java และ C # มีระบบ generics ที่แตกต่างกันอย่างสิ้นเชิงเพราะประสบการณ์แสดงให้เห็นว่าแม่แบบทำให้เกิดปัญหาร้ายแรงทุกประเภทซึ่งส่วนใหญ่เกิดขึ้นเพราะระบบเทมเพลตไม่ได้วางแผนมาเป็นอย่างดี (ทัวริงเสร็จสมบูรณ์โดยอุบัติเหตุเพื่อให้หนึ่งตัวอย่างที่ชัดเจน!) และวัตถุเป็นค่าทำลายแทน Liskov เพราะถ้าคุณมีคลาสที่ได้รับมาซึ่งผู้ปกครองเป็นฐานและมันจะแทนที่วิธีเสมือนบนฐานและคุณผ่านมันโดยเริ่มต้นผ่านไป ฟังก์ชั่นที่ใช้ Base และเรียกใช้เมธอดเสมือนจะไม่เรียกใช้เวอร์ชันที่ได้รับ
Mason Wheeler

2
@MasonWheeler: อ่าคุณหมายถึงการแบ่งส่วน
Fred Larson

2
@ เฟรดลาร์สัน: ฉันควรจะเดาได้ว่าเป็นปัญหาที่แพร่หลายและเป็นอันตรายจะมีชื่อเฉพาะสำหรับมัน (และนี่คือ C ++ ชื่อที่งี่เง่าเมื่อโปรแกรมเมอร์นอกโลก C ++ ได้ยิน "slicing" เขาน่าจะคิดว่าการแบ่งอาร์เรย์เป็นอย่างไร : P
Mason Wheeler

4
แม้ว่าฉันจะเห็นด้วยกับหลาย ๆ สิ่งที่คุณเขียน แต่ฉันคิดว่าคุณมีมุมมองที่ลำเอียงมาก ;-) IMHO การเรียนรู้ C ++ ไม่ได้ทำให้คนโง่
Doc Brown

8

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

ภาษาโปรแกรมใช้กระบวนทัศน์ ปีเตอร์แวนรอยได้รวบรวมโปสเตอร์ 34 หลักกระบวนทัศน์การเขียนโปรแกรม

กระบวนทัศน์ในที่สุดก็ประกอบด้วยแนวคิด โปสเตอร์นั้นแสดงรายการแนวคิด 18 เรื่อง

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

แน่นอนว่ายังมีเรื่องแปลก ๆ ที่เฉพาะเจาะจงเกี่ยวกับภาษา ยิ่งไปกว่านั้นโปสเตอร์นั้นไม่สนใจการพิมพ์อย่างสมบูรณ์และแน่นอนว่ามีความแตกต่างอย่างมีนัยสำคัญระหว่างระบบ F <: ω - ระบบสไตล์สไตล์, ระบบพิมพ์สไตล์สกาล่าหรือระบบพิมพ์เป็ดแบบไดนามิก à la Idris, Agda, Coq, Guru หรือ ATS


ภาษาฮินดีไม่ฮินดู ไม่มีอะไรที่จะช่วยคุณในการ "เรียนรู้ภาษาฮินดู" ให้อยู่คนเดียวภาษาอิตาลีหรือ C ++ ;-) +1
PKG

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

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

5

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


3
ฉันได้เห็นว่าโค้ด Self หรือ Smalltalk หรือ Ruby เขียนโดยใครบางคนที่เรียนภาษา C ++ เป็นภาษาแรก จริง ๆ แล้วฉันจะบอกว่ารู้ C ++ ค่อนข้างเป็นอันตรายต่อการเรียนรู้ OO ฉันคิดว่าตัวเองหรือ Newspeak จะเหมาะกว่านั้น BTW ความรู้อย่างลึกซึ้งเกี่ยวกับ APL อย่างน้อยที่สุดก็จะช่วยเกี่ยวกับภาษาเช่น J และ K นอกจากนี้ยังจะช่วยในการคิดเกี่ยวกับ abstractions และ liftig สะสมในระดับที่สูงขึ้นซึ่งอาจจะช่วยในการเขียนโปรแกรมแบบ MapReduce หรือ Hadoop , ผู้สมัคร, Monads และหมวดหมู่
Jörg W Mittag

1
@ JörgWMittag: เป็นที่รู้กันดีว่าคนหนึ่งสามารถเขียนภาษาโคบอลได้ในภาษาใด ๆ ... ประเด็นคืออะไร?
Deduplicator

@Dupuplicator หากภาษาแรกของคุณคือ COBOL คุณมีแนวโน้มที่จะเขียน COBOL ในภาษาอื่น ๆ อีกมาก
Doval

ที่จริงฉันต้องเห็นด้วยกับสิ่งที่ภาษาโคบอล ฉันมีผู้ชายคนหนึ่งทำงานให้ฉันเมื่อหลายปีก่อนที่เขียน COBOL ใน Pascal ...
Jim Nutt

5

ฉันจะตีความที่แตกต่างที่นี่

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

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

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

นั่นคือประเภทของการเรียนรู้ที่คุณต้องทำเพื่อให้ C ++ มีคุณค่า


2

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

ฉันไม่คิดว่าภาษา C ++ ดีกว่าหรือแย่กว่าภาษาอื่น ๆ ในเรื่องนั้น มันเป็นอีกคนหนึ่งที่ verbose ภาษาฉันรู้และทำให้บางสิ่งบางอย่างที่ยากที่จะง่ายในภาษาอื่น ๆ มากที่สุด แต่ที่ไม่จำเป็นต้องแปลภาษาในการทำต่อไปง่ายต่อการเรียนรู้ มันไม่ทั่วไปให้ความรู้สึกต่อไปภาษาที่ง่ายต่อการใช้งานแม้ว่า มีความแตกต่าง


0

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


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