ฉันเป็นผู้เริ่มต้น ฉันสามารถเริ่มต้นเรียนรู้ C ++ 11 ได้โดยตรงหรือไม่ หรือฉันต้องเรียนรู้ C ++ เก่า ๆ ? [ปิด]


36

ฉันเป็นผู้เริ่มต้นและมีความรู้เพียงเล็กน้อยในการเขียนโปรแกรม

มันจะดีหรือไม่ถ้าฉันเรียนรู้ C ++ โดยตรงจากหนังสือที่ครอบคลุม C ++ 11 ใหม่หรือฉันควรเรียนผ่านหนังสือ C ++ ที่ดีที่สุด?

ฉันควรมีความรู้เล็กน้อยเกี่ยวกับ C ++ ก่อนเรียน C ++ 11 หรือไม่ หรือฉันสามารถเริ่มต้นได้โดยตรงจากที่นั่น?

มันจะทำให้เกิดปัญหาหรือไม่ถ้าฉันเริ่มต้นจาก C ++ 11 โดยตรง ถ้าไม่เช่นนั้นแนะนำหนังสือบางเล่มใน C ++ 11


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

12
@Simon ฟังดูเป็นคำถามเกี่ยวกับการพัฒนาซอฟต์แวร์: ฉันจะเริ่มจากตรงไหนดี? และคุณจะรู้ได้อย่างไรว่าเขาไม่ใช่โปรแกรมเมอร์มืออาชีพ? ;)
adosaiguas

4
@Malters พูดคุยเกี่ยวกับหนังสือ; Accelerated C ++เป็นหนังสือที่ยอดเยี่ยมแม้ว่าจะง่ายขึ้นเล็กน้อย บาร์บาร่าอีมูเป็นนักเขียนที่ยอดเยี่ยมและอิทธิพลของเธอที่มีต่อหนังสือเล่มนี้นั้นถูกสังเกตได้ง่าย แต่หนังสือที่สงสัยนั้นก็คือ "เก่า" ไม่หวังว่าจะหายไปทั้งหมด - มีหนังสือยอดนิยมชื่อ C ++ Primer โดยLippman , LajoieและBarbara E. Mooฉบับที่ห้าได้รับการตีพิมพ์ในเดือนนี้ (สิงหาคม 2012) และจากบทแรก ๆ ที่ฉันอ่านจากฉัน สำเนานี้เป็นหนังสือที่ยอดเยี่ยมครอบคลุม C ++ 11 อิทธิพลของ Moo มีอยู่อีกครั้ง เธอเป็นเทพธิดาเมื่อพูดถึงการเขียนเชิงเทคนิค
zxcdw

2
@Simon Programmers — Stack Exchange is a site for professional programmers...ในกรณีนี้คุณคิดจะแนะนำฉันไปยังเว็บไซต์สำหรับโปรแกรมเมอร์มือใหม่หรือไม่? ฉันยังเป็นมือใหม่ที่เข้ารหัสและฉันจะมีคำถามพื้นฐานบางอย่าง ...
Jeyekomon

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

คำตอบ:


38

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

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


ฉันเรียนรู้จาก c ++ primer 4th edition หนังสือที่ดีที่จะเริ่มต้นด้วย ??
Dhananjay

1
มันได้รับการวิจารณ์ที่ดีและดูเหมือนจะอยู่ในระดับที่เหมาะสม แต่ฉันไม่ได้ดูหนังสือ C ++ ระดับเริ่มต้นในระยะเวลานานดังนั้นฉันจึงไม่ใช่คนที่ดีที่สุดที่จะถาม ฉันคิดว่าคุณจะต้องมีรุ่นที่ 5 ถ้าคุณต้องการครอบคลุม C ++ 11
Karl Bielefeldt

มันโอเคและใช่ฉันรู้ว่ารุ่นที่ 5 ครอบคลุม c ++ 11
Dhananjay

10

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

เรียนรู้ C ++จะเป็นจุดเริ่มต้นที่ดีในการเรียนรู้และภาคผนวก Bจะสอนคุณเกี่ยวกับคุณสมบัติ C ++ 11 หลังจากที่คุณได้เรียนรู้พื้นฐานแล้ว

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


8

มันยากที่จะพูด.

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

จากนั้นอีกครั้ง C ++ เก่าไม่ใช่สิ่งที่คุณต้องการเมื่อคุณเขียนรหัส

แต่จากนั้นอีกครั้ง C ++ เก่าคือสิ่งที่อุตสาหกรรมจำนวนมากจะปั่นป่วนในอีก 20 ปี

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


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

1
@TheLQ: ฉันเดาว่า ... แต่เมื่อฉันคิดว่าฉันจะทำอย่างไรถ้าฉันเป็นเจ้านายมันมีโอกาสสูงที่ฉันจะทำสิ่งเดียวกัน นอกเสียจากว่าจะมีการประหยัดต้นทุนที่ชัดเจน
Coder

1
@TheLQ: การใช้ฐานรหัสเพื่อย้ายไปยังคอมไพเลอร์เวอร์ชั่นใหม่ มันหายากที่โครงการจะปรับรุ่นคอมไพเลอร์ใหม่โดยจำใจ โครงการใหม่มีแนวโน้มที่จะใช้คอมไพเลอร์ใหม่ (ตราบเท่าที่มันไม่ได้มีปฏิสัมพันธ์กับรหัสเก่า)
มาร์ตินยอร์ก

1
@Coder: อะไรที่ทำให้ C ++ 11 แตกต่างจาก C ++ 03 ที่เรียนรู้มันจะไม่แปลโดยตรงเป็น C ++ 03 มีคุณสมบัติใหม่สองสามอย่างที่ทำให้การเขียนง่ายขึ้น แต่ไม่มีอะไรที่ป้องกันไม่ให้คุณเหยียบลงไปในเขตที่วางทุ่นระเบิด
มาร์ตินยอร์ก

1
@TheLQ: ใช่แล้วนั้นเป็นกระบวนการ แต่คุณลืมการทดสอบการรวม (ส่วนที่ซับซ้อนที่สุดแอปพลิเคชันทั้งหมดไม่ใช่แบบสแตนด์อโลน (infact ฉันจะบอกว่านี่เป็นส่วนน้อย) คุณต้องตรวจสอบว่ารหัสของคุณทำงานและโต้ตอบได้อย่างถูกต้อง (ไม่เพียง แต่กับรหัสของคุณ แต่ใช้กับรหัสลูกค้า) นี่เป็นกระบวนการของเดือนถ้าไม่ใช่การทดสอบและการตรวจสอบ หากลูกค้าของคุณบางคนไม่ได้ย้ายไปที่ C ++ 11 คุณอาจต้องบำรุงรักษาทั้งสองเวอร์ชันในบางระบบ (โชคดีที่ gcc นั้นดีมากที่มีความเข้ากันได้แบบย้อนหลัง แต่ไม่ใช่ผู้ขายคอมไพเลอร์ C ++ ทั้งหมด)
Martin York

8

แม้จะมีการปรับปรุงมากมายC++11แต่C++ก็ยังไม่ใช่ภาษาที่ง่าย Java ในขณะที่ไม่ง่ายอย่างที่บางคนคิดว่ายังคงเป็นภาษาที่ง่ายขึ้นด้วยประสิทธิภาพที่ดีมาก (มักจะเร็วเท่าC++) และมี IDE ที่ดีกว่า (อาจVisual C++จะดีเท่ากับ Java IDEs ปัจจุบัน แต่ไม่มีโชคที่นี่บน Linux) ไลบรารีมาตรฐานที่ครอบคลุมมากขึ้น (JDK), ไลบรารีเพิ่มเติม (เช่นHibernate , Spring , JEE , Lucene , ฯลฯ ) และไม่มีการรั่วไหลของหน่วยความจำ (ดีเกือบจะไม่มีเลย - คุณยังสามารถสร้างหน่วยความจำรั่วในจาวาได้ กว่าในC++) เพื่อความเป็นธรรมด้วยความทันสมัยC++11มันง่ายกว่าที่จะหลีกเลี่ยงกระเทียม

C ++ 11 มีคุณสมบัติเจ๋ง ๆ มากมายเช่น lambdas, คีย์เวิร์ดอัตโนมัติ, ซีแมนทิกส์ย้ายและอีกมากมาย มันเป็นภาษาที่ดีกว่าC++98อย่างแน่นอน ดูภาพรวมของ Herb Sutter เกี่ยวกับคุณสมบัติใหม่ในC++11: องค์ประกอบของC++สไตล์โมเดิร์น

C++เพื่อสรุปผมคิดว่าทุกคนควรจะเรียนรู้อย่างน้อยบางส่วน ถ้าคุณได้รับการเขียนโปรแกรมในJava, Scala, RubyหรือPythonสำหรับทศวรรษที่ผ่านมาและไม่เคยสัมผัสCหรือC++ตอนนี้มีC++11ผมคิดว่ามันเป็นเวลาที่จะเรียนรู้C++11และพัฒนาทักษะการเขียนโปรแกรมของคุณในขณะที่การทำเช่นนั้น

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

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


1

หายใจเข้าลึก ๆ และอ่านบทความนี้โดย Peter Norvig

คุณอ่านแล้วเหรอ? ตกลงถ้าคุณเป็นผู้เริ่มต้นคุณต้องเริ่มต้นด้วยขั้นตอนเล็ก ๆ - ภาษาแทรกที่นี่ - สามารถมาภายหลังลองดูCourseraหรือUdacityสำหรับหลักสูตรแนะนำวิทยาศาสตร์คอมพิวเตอร์เบื้องต้น

หลังจากเสร็จสิ้นแล้วฉันจะแนะนำให้คุณค่อยๆใช้วิธีการเขียนโปรแกรมภาษา C ของ K&Rหากคุณตั้งค่าเป็นภาษา 'C'

ทำงานบนพื้นฐานส่วนที่เหลือจะมาในเวลา


10
ฉันไม่เห็นว่านี่เป็นคำตอบสำหรับคำถามที่ถามหรือไม่ C ไม่ใช่ภาษาเดียวกันกับ C ++
vartec

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

2
@comingstorm สิ่งแรกที่โปรแกรมเมอร์ C ควรทำคือเรียนรู้ทุกสิ่งที่เขารู้เกี่ยวกับ C แล้วเริ่มเรียนรู้ C ++ มีความแตกต่างเล็กน้อยที่อาจกัดคุณ
BЈовић

1
บวกกับรหัส C ++ สมัยใหม่ที่ใช้ง่ายไม่ได้ยืมอะไรมากจาก C นอกเหนือจากไวยากรณ์ มันไม่เหมือนเรายังคงใช้ C-strings และ malloc / ฟรีอีกต่อไป ในฐานะผู้เริ่มต้นที่สมบูรณ์สำหรับภาษาคุณควรเลือกซื้อหนังสืออย่าง C ++ Primer 5th edition เร่งความเร็ว C ++ ฯลฯ แทนที่จะมุ่งเน้นที่ C.
bstamour

1

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

ดังที่ผู้โพสต์คนอื่นพูดถึง C ++ 11 นั้นง่ายกว่ามาตรฐานที่เก่ากว่าด้วยการเพิ่มสไตล์สคริปต์เช่นautoและfor(int &i : m_vector){}อื่น ๆ ดังนั้นหาก "ความรู้เล็กน้อย" ของคุณมาจากภาษาเช่น Python หรือ Matlab คุณจะพบ C ++ 11 ค่อนข้าง "ธรรมชาติ" มากกว่ามาตรฐานก่อนหน้านี้

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

ในระยะสั้นทำมัน


-1

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

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

หลังจากนั้นคุณอาจเรียนรู้สิ่งที่คุณต้องการเพราะคุณมีความเข้าใจอย่างสมบูรณ์เกี่ยวกับเทคโนโลยีของภาษาการเขียนโปรแกรม ฉันได้เริ่มต้นเรียนรู้ C #, Go, Python หรือแม้แต่ Scala และได้ทำโปรเจ็กต์มากมายเพื่อความสนุกสนาน / การทำงาน บันทึกส่วนตัวคือ 3 เดือนจากการเริ่มเรียนรู้ภาษาไปสู่การเป็นหัวหน้าโครงการพัฒนา 1.0

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


สิ่งนี้ไม่ตอบคำถามที่ถาม
gnat

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

-2

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


1
ยินดีต้อนรับสู่โปรแกรมเมอร์! ฉันไม่แน่ใจว่าคำตอบของคุณเพิ่มคำถามนี้มากเพียงใด และพูดหลักไวยากรณ์เล็กน้อย ฉันมีปัญหาในการติดตามสิ่งที่คุณพยายามจะพูด คุณสามารถขยายคำตอบของคุณเพิ่มตัวอย่างได้ไหมว่าเพราะเหตุใด C ++ 11 จึงแตกต่างกันมากจนการเรียนรู้ C และมาตรฐาน C ++ รุ่นก่อนหน้านั้นดีกว่า
Martijn Pieters

-3

C ++ เป็นภาษาที่ยอดเยี่ยมและทรงพลัง อย่างไรก็ตามมันยังให้ความรับผิดชอบอย่างมากกับโปรแกรมเมอร์

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

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


1
หากเริ่มต้นด้วย C # เขาจะคุ้นเคยกับการเขียนโปรแกรมในระดับสูง (OOP การจัดการหน่วยความจำอัตโนมัติ) โดยไม่รู้ตัวว่าเกิดอะไรขึ้น "เบื้องหลัง" หากบุคคลนั้นย้ายไปที่ C ++ เขาจะขาดความรู้ที่สำคัญเกี่ยวกับ C / C ++ (ฉันกำลังคิดว่าส่วนใหญ่เกี่ยวกับการจัดการหน่วยความจำ แต่มีมากกว่านั้น) มันอาจจะทำให้เข้าใจผิดมากขึ้นเนื่องจากความจริงที่ว่า C + + และ C # แบ่งปันไวยากรณ์ที่คล้ายกันมาก แต่สิ่งที่รหัสรวบรวมจริงแตกต่างกันโดยสิ้นเชิง โปรดทราบว่า OP ระบุถึงความสนใจของเขาใน C ++ อย่างชัดเจน
Eti

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

-6

ทำไมคุณต้องการเริ่มต้นด้วย C ++

ฉันแนะนำให้ใช้ภาษา C ++ เป็นภาษาแรกเป็นการส่วนตัว มันซับซ้อนยุ่งยากยาก ... ระดับที่ต่ำกว่ามากและ "ไม่ปลอดภัย" มากกว่าภาษาโปรแกรมส่วนใหญ่อื่น ๆ

ฉันแนะนำให้เลือก c #, java, python หรือ javascript ... และเป็นหนังสือที่ดีตลอดทาง คุณจะมีช่วงเวลาที่สนุกสนานมากกว่านี้


3
ฉันไม่เห็นด้วยกับที่เป็นลักษณะทั่วไป การเปลี่ยนจากชีวิตง่าย ๆ ของ java / C # / python เป็นต้นไปสู่โลกที่ซับซ้อนกว่าของ C และ C ++ นั้นไม่ใช่เรื่องง่าย หากคุณพร้อมที่จะเรียนรู้ภาษาการเขียนโปรแกรมการเรียนรู้ C และ C ++ นั้นยาก แต่จะให้ผลตอบแทนมาก หากภายหลังคุณต้องการโปรแกรมใน java, C #, python ฯลฯ การเปลี่ยนแปลงนั้นง่ายกว่าการไปจาก C หรือ C ++ สรุป: C / C ++ จะยากกว่าในการเริ่มต้นด้วย แต่จะทำให้การเปลี่ยนเป็นภาษา OO อื่น ๆ ง่ายขึ้น
martiert

2
C ++ เป็นรากฐานที่ดีที่สุดในการเริ่มต้น การเขียนโปรแกรมมีความซับซ้อนและในที่สุดคุณต้องทำงานกับฮาร์ดแวร์ C ++ เป็นวิธีที่น่าอัศจรรย์ในการเริ่มเรียนรู้โดยไม่รู้สึกถึงความปลอดภัย
Coder

คำถามของ op นั้นขึ้นอยู่กับวัตถุประสงค์ของการพัฒนา
อิสระ

1
ฉันไม่เห็นด้วยกับสิ่งนี้ การเรียนรู้ C ++ มีข้อดีหลายประการและทำให้ง่ายต่อการเรียนรู้ภาษาอื่น ๆ เช่น Java และ C # เพื่อตั้งชื่อไม่กี่
แอนโทนี่

2
@Dhananjay: C ++ ยากกว่า java หลายเท่า ... Java เป็นเหมือนจักรยานเด็ก C ++ รุ่นที่ง่ายมาก หนึ่งหลังจะเป็นจักรยานไม่จีบโดยไม่ต้องเบรก หากคุณพบจาวายากแล้ว C ++ จะเป็นความเจ็บปวด 2 เซนต์ของฉัน
dagnelies
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.