क्या C ++ पहली भाषा के रूप में उपयुक्त है? [बन्द है]


26

एक स्थानीय कॉलेज बिना किसी पूर्व प्रोग्रामिंग अनुभव के प्रथम वर्ष के कॉलेज के छात्रों (16 वर्ष) को C ++ सिखा रहा है।

पहली प्रोग्रामिंग भाषा के रूप में, C ++ उपयुक्त है?


56
कोई भी भाषा पहली भाषा हो सकती है। यह वास्तव में कोई फर्क नहीं पड़ता।
एडम लेअर

8
यह आपको रूचि दे सकता है - joelonsoftware.com/articles/ThePerilsofJavaSchools.html
क्रेज़ी फ़िजी

19
@ एना लीयर: बेशक, कोई भी भाषा पहली भाषा हो सकती है, लेकिन यह सी ++ को एक अच्छी पहली भाषा के रूप में योग्य नहीं बनाती है। यदि आपका जवाब एक वास्तविक उत्तर था, तो मैं इसे अनसुना समझकर वोट करूंगा।
एड जेम्स

6
@ डग: मैं एक जीवित के लिए C ++ प्रोग्रामिंग कर रहा हूं ... आपकी बात क्या है?
Matthieu एम।

9
@ बहुत - कंप्यूटिंग प्रोजेक्ट्स के 70% में एम्बेडेड सिस्टम और माइक्रो डिवाइस के लिए सॉफ्टवेयर लिखना शामिल है। अंदाजा लगाइए कि उन परियोजनाओं के लिए किन भाषाओं का इस्तेमाल किया जाता है? लगता है कि प्रवेश स्तर के पदों के लिए सबसे अच्छा कौन है? निश्चित रूप से जावा या .NET एक चाल वाली टट्टू नहीं। कठोर लगता है, लेकिन स्कूलों ने सीएस स्नातकों की पूरी पीढ़ी को प्रोग्रामिंग जॉब मार्केट में केवल 30% के लिए प्रशिक्षण देकर एक महान कार्य किया है। हमारे पास ऐप सेक्टर (30%) के लिए प्रोग्रामर्स की अधिकता है और हमारे पास सिस्टम सेक्टर (70%) में कमी है। वे संख्या कहीं नहीं जा रही हैं। भविष्य के कैरियर के अवसर? हाँ सही।
luis.espinal

जवाबों:


61

जोरदार ढंग से नहीं

छात्रों के लिए आपके मन में किसी भी लक्ष्य के लिए, दूसरी भाषा या भाषाओं का क्रम तेज़ और बेहतर होगा। उदाहरण।

"छात्रों को निम्न-स्तरीय अवधारणाओं को समझने की आवश्यकता है।"

"निम्न-स्तरीय" कोडिंग में वस्तुओं को प्राप्त newकरने delete, उन्हें वापस खिलाने और कभी-कभी एक पॉइंटर होने का संकेत नहीं होता है, जिसमें कहीं ऐसा नहीं होना चाहिए। फ़ंक्शंस, कक्षाएं, और टेम्पलेट निम्न-स्तरीय नहीं हैं। आरए II, उपयोग करने के लिए 12 तरीके const, std::ostream::operator<<, protectedऔर newनिम्न स्तर अवधारणाओं नहीं हैं। उन चीजों के निम्न-स्तर के निहितार्थ हैं और आप महीनों तक या भविष्य के वर्ग तक और इसके बजाय C ++ शब्दार्थ के पहाड़ों को पढ़ाने के लिए छोड़ रहे हैं।

मैं एक अच्छा वातावरण और MIPS या MMIX जैसी शिक्षण सामग्री के साथ कोडांतरक का सुझाव देता हूं। यदि आप जल्दी में हैं, तो सी को सिखाएं कम से कम कोडांतरक आउटपुट को देखें। यह आपको सभी निम्न-स्तरीय समझ देगा C ++ करता है, और फिर कुछ, तेजी से।

"छात्रों को ऑब्जेक्ट-ओरिएंटेशन समझने की जरूरत है।"

C ++ में निर्मित ऑब्जेक्ट-ओरिएंटेशन OO अवधारणाओं, या लगभग किसी भी अन्य उच्च-स्तरीय अवधारणा को पढ़ाने के लिए अधूरा है। संभावित कारणों की एक लंबी, लंबी सूची के लिए C ++ FAQ देखें । आपको या तो उस सभी सामान को हिट करना होगा, जो नए प्रोग्रामर के साथ बहुत लंबा समय लेगा; या फिर आपको इसे बहुत सारे को छोड़ना होगा, नए प्रोग्रामर को अंधेरे में छोड़ना - प्रभावी रूप से, वास्तव में C ++ नहीं जानना!

मेरा सुझाव है कि यदि आप सभी को C ++ पढ़ाना चाहते हैं, तो पहले (पायथन, रूबी, स्क्वीक, कॉमन लिस्प, रैकेट) वस्तुओं के साथ एक सरल, उच्च-स्तरीय भाषा सीखना। इसके अलावा, बहुरूपता को एक अवधारणा के रूप में सीखें जो एक कार्यात्मक भाषा पर जाकर OO से अलग है।

"छात्रों को टेम्प्लेट और टेम्पलेट मेटाप्रोग्रामिंग को समझने की आवश्यकता है।"

कोई भी वास्तव में यह नहीं पूछता है, लेकिन मैं चाहता हूं कि वे करेंगे। C ++ में अच्छा खाका है और STL अच्छा है, लेकिन उन्हें पहले C ++ सिखाने के लिए पर्याप्त उच्च प्राथमिकता नहीं होनी चाहिए। OCaml या Haskell प्रकार प्रणाली सिखाना और फिर उन अवधारणाओं को फिर से समझना वैसे भी तेज हो सकता है।

"छात्रों को समस्या समाधान सीखने की आवश्यकता है।"

हाँ, आप इसे किसी भी भाषा में प्राप्त करते हैं, और यदि C ++ के अलावा लगभग किसी भी भाषा में इसे अधिक प्राप्त करते हैं क्योंकि वहाँ सामान कम है। फिर से, C-C FAQ को उन सभी चीजों की सूची के लिए देखें, जिन्हें विद्यार्थी समस्या-सुलझाने के कौशल के बजाय सीखेंगे।

"उपरोक्त सभी, और हमें केवल एक भाषा का उपयोग करने की आवश्यकता है।" या "नियोक्ता इसे चाहते हैं।" या "हमें सी-स्टाइल भाषा की आवश्यकता है।" या ...

एक से अधिक भाषाएं सिखाएं।

जिस विचार को आप केवल एक भाषा सिखाते या सीखते हुए समय या ऊर्जा बचाते हैं वह सपाट रूप से हास्यास्पद है। यह इस विचार पर आधारित है कि किसी भी भाषा को सीखने में X आदमी महीने ( HINT! HINT! ) बिल्कुल X नंबर एक या एक नंबर प्रति भाषा में लगते हैं। यह इस विचार के लगभग समान है कि आप सभी 'आवश्यकताओं' और 'परीक्षण' कचरे को छोड़ कर समय और पैसा बचा सकते हैं।

कई वाक्यविन्यासों के लिए, आप छात्रों को खतरनाक रूप से पंगु बना देते हैं यदि आप उन्हें हर भाषा में C वाक्यविन्यास की अपेक्षा करते हैं, तो वे अन्य भाषाओं के खिलाफ बेतहाशा पक्षपात करते हैं।

C ++ से शुरू होने की तुलना में लगभग कोई भी रास्ता तेज और बेहतर है। एक सरल उच्च-स्तरीय भाषा सीखना और फिर C ++ तेज होगा। लर्निंग असेंबलर और फिर C ++ तेज होगा। C ++ के अलावा कुछ भी छात्रों को वहां तेजी से मिलेगा और उन्हें बूट करने का तरीका पता चलेगा। बस C ++ पहले न सिखाएं।


4
बहुत बढ़िया जवाब! दरअसल, कई सी ++ फीचर्स निम्न स्तर की प्रोग्रामिंग से संबंधित नहीं हैं।
मार्को मस्टैपिक

7
+1, उत्कृष्ट उत्तर। यह सच है कि कभी-कभी C ++ के स्वामियों को गलती से "निम्न-स्तर" के साथ बराबर किया जाता है। आप C ++ FAQ से जुड़े हैं, लेकिन मैं यह भी सलाह दूंगा कि लोग C ++ FQA (या "अक्सर पूछे जाने वाले उत्तर": P)
एंड्रेस एफ।

2
वाह। यह मुझे जावा IAQ की याद दिलाता है ...
जेसी मिलीकैन 21

पूरी तरह से सहमत हूँ। यहां तक ​​कि Malbolge एक शुरुआत के लिए C ++ से बेहतर होगा।
rightfold

2
मेरा एकमात्र आरक्षण - आप उन विवरणों में शामिल हुए बिना बहुत कुछ सिखा सकते हैं जो ज्यादातर केवल पुस्तकालयों को विकसित करने वाले लोगों के लिए प्रासंगिक हैं। जब तक आप यह स्पष्ट करते हैं कि आप केवल बुनियादी सी ++ कर रहे हैं ... लेकिन फिर, आपने किसी को भी क्या सिखाया है?
स्टीव 314

54

नहीं, C ++ अनुभवी C ++ डेवलपर्स के लिए भी एक कठिन भाषा है। यहां तक ​​कि सबसे सरल एल्गोरिदम के लिए आपको भाषा की कई सूक्ष्मताओं को समझाना होगा। एक हैलो वर्ल्ड उदाहरण पर विचार करें:

#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;
}

वह #includeआज्ञा क्या है ? क्या है std::cout? क्यों ::? क्या है <<? ओह, यह एक अतिभारित ऑपरेटर है! ओवरलोड ऑपरेटर क्या है? Sooo, के लिए ints, यह बिट शिफ्टिंग करता है, लेकिन जो कुछ भी std::coutहै, वह कंसोल के लिए सामान का उत्पादन करता है। ओह्ह, std::coutएक धारा है, और धाराओं में उनके <<और >>ऑपरेटर ओवरलोड हैं।

आइए देखते हैं Python में एक ही नमूना:

print("Hello World!")

यह है, चलो कुछ एल्गोरिदम कोड चलते हैं।


15
पायथन सातवें ग्रेडर के लिए उपयुक्त होगा। एक कॉलेज छात्र बहुत अधिक समझ सकता है।
गुलशन

13
ज़रूर, लेकिन हम एक पहली भाषा के बारे में बात कर रहे हैं। C ++ को अन्य भाषाओं की तुलना में सीखने और मास्टर करने में मुश्किल होने के लिए जाना जाता है। प्रोग्रामिंग सिखाने के लिए इसका उपयोग क्यों करें? एक छात्र C ++ बाद में सीख सकता है, जब वह कुछ प्रोग्रामिंग मूल बातें जानता है।
मार्को मस्टैपिक

8
आपने << :)
MetricSystem

6
भाषा के साथ आरंभ करने के लिए आपको पूरी तरह से जानने की आवश्यकता नहीं है। cout << जो भी हो; "बस काम करता है", जब तक आप ऑपरेटर को ओवरलोडिंग आदि को कवर नहीं करते, तब तक आपको नॉटी-ग्रिट्टी विवरण में जाने की आवश्यकता नहीं है।
कॉलन

6
मैं सप्ताह के किसी भी दिन सी + + पर पायथन को परिचयात्मक भाषा के रूप में ले जाऊंगा।
१te

21

यह शायद एक अच्छी पहली भाषा नहीं है: जटिल वाक्यविन्यास, बहुत सारे नियम, पुरानी भाषा, त्रुटि-प्रवण स्मृति प्रबंधन। अपने छात्रों को कुछ और पढ़ाने के लिए बेहतर है जैसे कि स्मालटाक, या पायथन जैसे प्रोग्राम के लिए कुछ अच्छा या कुछ नकाब जैसे कार्यात्मक।

वे जीवन में C ++ बाद में सीख सकते हैं (यदि वे इसकी मदद नहीं कर सकते हैं), के बाद वे बेहतर भाषा सीख चुके हैं।


5
पहली भाषा के रूप में हास्केल एक दिलचस्प प्रयोग होगा।
लैरी कोलमैन

@ लॉरी, कैम्ब्रिज यूनिवर्सिटी के CS कोर्स में SML को पहली भाषा के रूप में पढ़ाया जाता है।
पीटर टेलर

1
फंक्शनल प्रोग्रामिंग आपके दिमाग को घुमाता है - मुझे पता है कि MIT योजना के साथ बहुत पहले शुरू हो जाता है, लेकिन मुझे खुशी है कि मैं स्कूल में एक हाइब्रिड प्रक्रियात्मक / OO- शैली के दो साल बाद तक कार्यात्मक प्रोग्रामिंग पर शुरू नहीं किया गया था।
justkt

11
@ अन्याय: सभी भाषाएँ आपके मस्तिष्क को मोड़ देती हैं। यह सिर्फ एक बात है कि आप इसे कैसे मोड़ना चाहते हैं।
डेविड थॉर्नले

+1, लेकिन जरूरी नहीं कि बेहतर होने के नाते मैं C ++ के अलावा अन्य भाषाओं को स्पष्ट रूप से लेबल नहीं करूंगा।
ग्रेफेड

18

संक्षिप्त उत्तर: हाँ!

मैं कहूंगा कि कोई भी भाषा एक उपयुक्त शुरुआत है लेकिन विशेष रूप से C ++ (या समतुल्य)। इन दिनों C # और Java उपयोग और प्रोग्रामिंग में प्रमुख भाषाएं हैं, इनके साथ आप एपीआई और IDE पर जल्दी से झुकना सीख जाते हैं, लेकिन C ++ के साथ आपको प्रदर्शन अनुकूलन आदि सहित जमीन से प्रोग्रामिंग सीखने का मौका मिलता है।

इससे पहले कि आप .Sort () में निर्मित भाषाओं पर आंख मूंदकर भरोसा करने से पहले प्रोग्रामिंग, लूपिंग और सॉर्टिंग की मूल बातें सीखना कभी भी बुरा नहीं होगा।


11
लूपिंग और छँटाई, हाँ। आप किसी भी भाषा के साथ ऐसा कर सकते हैं। लेकिन जब आप इससे बच सकते हैं तो पॉइंटर्स और अजीब सिंटैक्स के साथ काम क्यों शुरू करें? आप उन सभी चीजों को बाद में सीख सकते हैं, जब आपके पास अधिक प्रोग्रामिंग अनुभव होता है।
मार्को मस्टैपिक

4
@ मार्को: स्ट्रॉस्ट्रुप की परिचयात्मक पाठ्यपुस्तक "प्रोग्रामिंग: सिद्धांत और C ++ का उपयोग करने का अभ्यास" पुस्तक के मध्य के बारे में संकेत देता है। आप सूचक को शुरू किए बिना C ++ में बहुत सारे सामान कर सकते हैं।
डेविड थॉर्नले

4
"यह मूल बातें जानने के लिए एक बुरा विचार नहीं है ... पहले ..." क्या आपके पास इस दावे को वापस करने के लिए कोई शोध है? मुझे पता है कि कई स्मार्ट लोग इसे सामान्य ज्ञान के रूप में बताते हैं कि "नीचे ऊपर" शिक्षण का एकमात्र सही तरीका है, लेकिन यह एक बहुत ही विवादास्पद बिंदु है और एकमात्र (केवल बहुत ही सीमित) उपदेशात्मक शोध है जिसे मैं विपरीत निष्कर्ष के बारे में जानता हूं।
कोनराड रुडोल्फ

1
@ डेविड: समस्या यह है, "बिना सी ++ के बहुत सारे सामान" करना, बिना संकेत के भी बदतर है। पॉइंटर्स के बिना, आपके सभी ऑब्जेक्ट स्टैक पर घोषित हो जाते हैं, जो कि सबसे खराब प्रोग्रामिंग विचारों में से एक है। मूल्य प्रकार और वंशानुक्रम / बहुरूपता सिर्फ मिश्रण नहीं करते हैं, और उन्हें मिश्रण करने की कोशिश करने से उन त्रुटियों की संपूर्ण श्रेणियां बन जाती हैं जो बेहतर डिज़ाइन की गई भाषाओं में मौजूद नहीं हैं।
मेसन व्हीलर

9
हे भगवान, नहीं! C ++ के अनावश्यक आइडियोसिंक्रेसिस पर मस्तिष्क चक्रों की सीमित आपूर्ति को क्यों जलाएं? स्मृति प्रबंधन की तरह अप्रासंगिक निम्न स्तर के सामान पर ध्यान क्यों केंद्रित करें, जब उद्देश्य प्रोग्रामिंग में बुनियादी अवधारणाओं को सीखना है? क्यों गहरी अंत में कूद!
मैग्लोब

14

वास्तव में मेरा मानना ​​है कि यह एक बहुत ही व्यावहारिक कारण के लिए पहली भाषा के रूप में शायद एक अच्छा विकल्प है: C ++ सीखने के बाद आपके द्वारा सामना की जाने वाली किसी भी अन्य भाषा को सीखने के लिए एक हवा की तरह प्रतीत होगा।


10
डीजेकस्ट्रा के लिए सभी श्रेय के साथ, C ++ के लिए पूर्व प्रदर्शन करने वाले छात्रों को अच्छी प्रोग्रामिंग सिखाना व्यावहारिक रूप से असंभव है; संभावित प्रोग्रामर के रूप में वे उत्थान की उम्मीद से परे मानसिक रूप से उत्परिवर्तित होते हैं। ;)
मेसन व्हीलर

3
उन्हें C ++ से बहुत सारी बुरी आदतों को अनलिमिटेड करना होगा। एक अन्य उदाहरण का उपयोग करने के लिए, क्या कोडांतरण जानने वाला आपको एक बेहतर जावा प्रोग्रामर बनाता है? मैं कहूंगा कि यह नहीं है।
एंड्रेस एफ।

16
@ एंड्रीस एफ .: इससे असहमत होंगे। असेंबलर को जानना आपको एक बेहतर प्रोग्रामर बनाता है, भले ही आप क्या लिख ​​रहे हों, क्योंकि तब आप समझ सकते हैं कि वास्तव में क्या हो रहा है।
मेसन व्हीलर

2
@Andres: मैंने बहुत से जावा / सी # प्रोग्रामर को अन्य भाषाओं में आने और वस्तुओं में सब कुछ समेटते हुए देखा है ... उनके पास अनुभव की चौड़ाई नहीं है।
मैथ्यू एम।

3
@Andres F. - मेरे 12 वर्षों में जावा करने के दौरान, मैंने जावा प्रोग्रामर के अपने हिस्से का सामना किया है, जो वास्तव में संसाधन आवंटन, RAII जैसे मामलों के लिए किसी भी प्रकार का जोखिम नहीं लेने के लिए चूसते हैं, यह नहीं जानते कि कैसे gc-friendly अनुप्रयोगों को प्रोग्राम करें, आदि स्वचालित कचरा समर्थन के बिना विधानसभा और संकलित भाषाओं को जानना और OO (C, C ++, Ada या Algol परिवार पर किसी भी संकलित भाषा के बारे में) के अलावा अन्य प्रतिमानों के समर्थन के साथ आपको जावा में कुशल और बड़े सिस्टम लिखना सिखाता है । सी #, पायथन, आप इसे नाम देते हैं। साथ ही, C ++ में ऑब्जेक्ट मॉडल जावा के समान नहीं है।
luis.espinal

10

जब मैंने 15-16 की उम्र में अपने आप को C ++ सिखाया था।

जादू को दूसरों पर छोड़ना और चीजों के आंतरिक कामकाज को स्वयं सीखना बेहतर है।


यदि आप प्रवेश स्तर के C ++ सिंटैक्स और शब्दार्थ का पता नहीं लगा सकते हैं, तो आप कंप्यूटर पर अच्छे नहीं हैं। यह इतना मुश्किल नही है। "सी विद क्लासेस" से बचने का कोई अच्छा कारण नहीं है।

यदि आप उम्मीद करते हैं कि छात्र टेम्पलेट मेटाप्रोग्रामिंग, पॉलीमॉर्फिक कॉल को समर्पित करना और एकाधिक वंशानुगत पदानुक्रमों को अनसुना करना शुरू कर देंगे - तो आप जिस भी प्रकार की भाषा का उपयोग करते हैं, उसके लिए एक एंट्री लेवल क्लास के लिए हास्यास्पद है।

छात्रों के लिए प्रोग्रामिंग की पेचीदगियों को छिपाना चाहते हैं। यह अच्छी तरह से समाप्त नहीं होता है (सीएफ स्पोलस्की के जावा स्कूल निबंध)। अगर वे अपना सिर सीधा नहीं करवाते हैं तो वे लोग डेलीडब्ल्यूटीएफ पर खत्म हो जाते हैं। सार रिसाव, और जब (नहीं तो) अमूर्त लीक, कि इससे निपटने के लिए बदतर है। मैंने प्रवेश स्तर C ++ छात्रों के लिए TA के रूप में काम किया है। या तो चीजों को सभी तरह से छिपाना पड़ता है, या उन्हें जांच के लिए प्रकाश में लाना पड़ता है। जादू सीखने वाले का दुश्मन है।

अगर मुझे मशीन कोड को संकलित करने वाली एक प्रारंभिक भाषा की सिफारिश करनी थी, तो पास्कल संस्करण शायद सबसे अच्छा तरीका होगा। यह सी परिवार से अधिक नियमित और संरचित दृष्टिकोण है जो मुझे याद है।


1
@ एड: वास्तव में नहीं। मुझे QBASIC में इफ और गोटो में महारत हासिल थी, और वह इसके बारे में था। मेरे C ++ भविष्य में पॉइंटर्स, सरणियाँ, फ़ंक्शंस, क्लास आदि सभी थे। पुनरावृत्ति समझ से बाहर भी थी।
पॉल नाथन

5
रुको, किसी को भी उम्मीद नहीं है कि सी ++ का उपयोग किए बिना किसी परियोजना पर काम करने के लिए पहले सी + + को समझे ! यह वास्तव में TheDailyWTF के कोड योग्य होगा। लेकिन आपके दावे के विपरीत, यह सी ++ सीखने के लिए तुच्छ नहीं है (और यह "सी कक्षाओं के साथ" भी नहीं है)। C ++ में विशाल, जटिल और कभी-कभी गैर-संवेदी वाक्यविन्यास और व्याकरण और कीवर्ड और नियमों का एक अनन्तता है। यह शुरू करने के लिए एक भयानक भाषा है। एक शिक्षण भाषा के रूप में यह भयानक है क्योंकि यह सोचने में छात्रों की स्थिति को C ++ की कमियों के कारण प्रोग्रामिंग दुनिया में स्वाभाविक और अपरिहार्य है।
एंड्रेस एफ।

1
एंडर: आप एक झूठे द्वंद्ववाद पर जोर दे रहे हैं: "~ C ++ या All C ++"। जो गिरता है।
पॉल नाथन

1
@Paul: काफी उचित। लेकिन इस पर विचार करें: यहां तक ​​कि एक सरलीकृत C ++ के वाक्यविन्यास और व्याकरण को विच्छेदित किया गया है, क्योंकि इसे पूरी भाषा की सभी विशेषताओं का समर्थन करना चाहिए। तो आप पहले से ही एक बदसूरत भाषा का उपयोग करने पर समझौता कर चुके हैं, भले ही आप इसे इसके सरल रूपों में सिखाएं। मैं मान रहा हूँ कि आप सी में कुछ सिन्थेटिक चीनी (उर्फ "सी विद क्लासेस") कोडिंग नहीं कर रहे हैं, क्योंकि उस मामले में आप सादे सी द्वारा बेहतर सेवा कर रहे हैं!
एंड्रेस एफ।

2
@Andr: वास्तव में नहीं। C ++, C89 पर काफी सिंटैक्टिक सरलीकरण प्रदान करता है। इसके अलावा, प्रवेश स्तर के उद्देश्यों के लिए, चीजें उन सभी मामलों के लिए बहुत सरल हैं,
पॉल नाथन

8

मैं कहूंगा कि 'नहीं' - मुझे प्रोग्रामिंग सीखने की उत्सुकता और इच्छा थी, और कॉलेज में अपने इंट्रो ईयर में सही सलामत बल्लेबाजी के साथ गया। एक शिक्षक के साथ युग्मित जो C ++ पढ़ा रहा था जैसे कि यह कोई अन्य भाषा (अवधारणाएँ जो उनके लिए समझ में आती हैं, जरूरी नहीं कि भाषा या वास्तविक विश्व अनुप्रयोग की अवधारणाएं), और परियोजनाएं हर हफ्ते हमें तुरंत फेंक दी जाती हैं, मैं दुर्घटनाग्रस्त हो गया और साथ में जला दिया गया वर्ग का आधा। जब तक मुझे पचाया नहीं जा सकता, तब तक प्रयोग करें और जो मुझे सिखाया जा रहा था उसे लागू करें, मैं प्रोजेक्ट होमवर्क से जूझ रहा था जो परीक्षणों के रूप में दोगुना हो गया। मैं तर्क दूंगा कि यह 200 के स्तर का 100 से अधिक का कोर्स था।

मैंने वास्तव में पूरी कोशिश की। मैंने सहानुभूति नहीं मांगी, मुझे पता था कि यह एक चुनौती होगी, लेकिन शिक्षक भी मेरी मदद नहीं करेंगे। बस मुझे पाठ्यपुस्तक पढ़ने के लिए कहा था, जैसा कि मैं कर रहा था।

मैं तर्क दूंगा (और कुछ लोग असहमत होंगे) कि रूबी या पायथन प्रोग्रामिंग की दुनिया में किसी को तोड़ने के लिए एक बेहतर भाषा है। साफ, संक्षिप्त, पठनीय, स्पष्ट वाक्यविन्यास।


8
कोई भी भाषा एक बुरी पहली भाषा होती है अगर उसे बुरी तरह सिखाया जाए।
डेविड थॉर्नले

3
@ डेविड थॉर्नले: हालाँकि, जब सही ढंग से पढ़ाया जाता है, तब भी कुछ भाषाएँ पहले भाषाओं की तरह खराब होती हैं। उदाहरण के लिए, कोबोल।
एंड्रेस एफ।

मैं सहमत हूं, मुझे लगता है कि एक बेहतर शिक्षक के साथ, जिसने दूसरों को संलग्न करने की कोशिश की और न केवल बिजली की गति से पाठ्यक्रम सामग्री के माध्यम से प्राप्त किया, परिणाम अलग हो सकता है। यह सिर्फ मेरे लिए बहुत तेजी से लुढ़का।
केविन

@ एंड्रस एफ .: मैं इससे सहमत नहीं हूं। हालांकि, केविन का खाता एक बुरे शिक्षक के बारे में था, और एक बुरा शिक्षक पहली भाषा (अच्छी पहली भाषा के लिए मेरे दो नामांकित) के रूप में पायथन या स्कीम को खराब कर सकता है।
डेविड थॉर्नले

2
@ क्रिस: मैंने कोबोल में प्रोग्राम किया है और मुझे आप पर दया है :)
एंड्रेस एफ।

8

नहीं।

एक शिक्षण भाषा के रूप में, C ++, C की तुलना में केवल थोड़ा बेहतर है, जो कि सबसे खराब शिक्षण भाषाओं में से एक है। यह सामने की ओर बहुत अधिक जटिलता का परिचय देता है, भाषा के कुछ हिस्से गहन रूप से गैर-सहज होते हैं, और अधिकांश समय आप सामान्य रूप से प्रोग्रामिंग की तुलना में C ++ के बारे में अधिक सीख रहे होते हैं।

यह कहना नहीं है कि C ++ (या C) बुरी भाषा हैं, या सीखने लायक नहीं हैं; बस यह कि बेहतर शिक्षण भाषाएँ उपलब्ध हैं, जैसे कि पायथन।


1
C शिक्षण के लिए एक कठिन भाषा है, लेकिन यह निश्चित रूप से सबसे खराब है। कॉबोल और जावा सी के मुकाबले सबसे खराब, बहुत खराब होने के नाते केक लेते हैं। सी के बारे में अच्छी बात यह है कि आपको आंतरिक धातु के सामने (बिना कोडर में तल्लीन किए) से निपटना होगा। लोगों को सफलतापूर्वक सी के साथ इसकी प्राथमिक भाषा के रूप में पढ़ाया जा रहा है। अन्य, अधिक सुरुचिपूर्ण विकल्प हैं, निश्चित रूप से, जैसे पायथन या रूबी (या कोई भी भाषा जो बहु-प्रतिमान है और जो कार्यों के सबसे सरल कार्यों के लिए भी OO को सामने नहीं लाती है।) C सबसे खराब शिक्षण में से एक नहीं है। विकल्प, एक लंबे शॉट द्वारा नहीं।
luis.espinal

1
मार्जिन बेहतर है? आप कैसे समझते है? C ++, C के बारे में जो कुछ भी बुरा है उसे लेता है और उस पर बनाता है !
मेसन व्हीलर

1
@MasonWheeler: मुख्य रूप से क्योंकि C ++ एक ईमानदार-से-ईश्वर stringडेटा प्रकार प्रदान करता है जो ऑपरेटरों को पसंद करता है +, =और, ==उन चीज़ों को करने के लिए जो छात्रों को अधिक-या-कम उम्मीद करते हैं, इसकी तुलना में सी में कैसे प्रसंस्करण की आवश्यकता है, इसलिए "थोड़ा" । मैं या तो एक शिक्षण भाषा के रूप में सिफारिश नहीं करेंगे।
जॉन बोड

7

माध्यमिक शिक्षा के दो आवश्यक प्रकार हैं: विश्वविद्यालय और व्यापार विद्यालय। अंतर यह है कि आप स्नातक होने के बाद क्या करने के लिए तैयार होना चाहते हैं। मोटर वाहन क्षेत्र में, यह है कि क्या आप एक मैकेनिक या मैकेनिकल इंजीनियर होंगे।

कहा जा रहा है कि, अगर आप एक इंजीनियर बनना चाहते हैं, तो C ++ एक बेहतरीन पहली भाषा है और यदि आप किसी मैकेनिक के प्रोग्रामिंग समकक्ष बनना चाहते हैं तो एक घटिया।

C ++ पर एक इंट्रो क्लास डेटा प्रकारों, परिभाषाओं, घोषणाओं, संकेत, मेमोरी आवंटन, और आगे के बारे में बात करने में बहुत समय बिताने जा रही है। यदि आप कुछ उपयोगी काम करने में सक्षम होने के लिए बिल्डिंग सेमेस्टर खर्च करने का इरादा रखते हैं, तो ये एक बेहतरीन आधार हैं, लेकिन जानना चाहते हैं कि एक बार जब आप वहां पहुंच जाते हैं तो आपके पास किसी भी जटिलता की डिग्री को संभालने की नींव होती है।

दूसरी ओर, यदि आप अधिक तेज़ी से कुछ उपयोगी करने में सक्षम होना चाहते हैं, लेकिन कोई आपत्ति नहीं है यदि डोमेन और जटिलता सीमित है, तो उस निचले स्तर की अवधारणाओं के सामने अपना सारा समय व्यतीत करने में व्यर्थ होने वाला है। बहुत सारे प्रोग्रामर हैं जो एक महान HTML फॉर्म वैलिडेटर लिख सकते हैं, लेकिन डिवाइस ड्राइवर को डिज़ाइन करने के तरीके के बारे में कोई सुराग नहीं है।


5

ज़रूर। मेरी पहली भाषा सी थी, लेकिन यह वास्तव में सी ++ में हमारी कक्षा को आसान बनाने के लिए थी। जब मैंने विश्वविद्यालय में प्रवेश किया, तो जावा को संभालना बहुत आसान हो गया। C ++ में थोड़ा स्टेटर लर्निंग कर्व हो सकता है, लेकिन अगर इसे ठीक से पढ़ाया जाए तो यह ठीक होना चाहिए।


4

नहीं, C ++ पहली भाषा के रूप में उपयुक्त नहीं है। जैसा कि यहां दिखाया गया है, कई पेशेवर प्रोग्रामर इस राय को साझा करते हैं, लेकिन यह भी एक राय है जो पेशेवर शिक्षकों के पास है।

यहाँ कार्नेगी मेलन विश्वविद्यालय के डीन की एक रिपोर्ट में फ्रेशर्स के लिए प्रोग्रामिंग के लिए एक परिचयात्मक पाठ्यक्रम के लिए C ++ का उपयोग करने के बारे में कहना है:

सी या सी ++ जैसी मानक भाषाएं इस पाठ्यक्रम के लिए उपयुक्त नहीं हैं क्योंकि उनकी जटिलता और कमियां अनौपचारिक और यंत्रीकृत तर्क दोनों तकनीकों को बाधित करती हैं।

सीएमयू दो परिचयात्मक पाठ्यक्रम, एक अनिवार्य एक और एक कार्यात्मक प्रदान करता है। SML को कार्यात्मक प्रोग्रामिंग के लिए चुना गया था। मुझे नहीं पता कि अनिवार्य पाठ्यक्रम के लिए क्या चुना गया था, लेकिन रिपोर्ट में सी के सबसेट का उपयोग करने का उल्लेख है।


2

ज़रूर। ऐसी अन्य भाषाएं हैं, जो प्रथम वर्ष के छात्रों के लिए आसान हो सकती हैं। हालांकि, ऐसे तरीके हैं जो एक शिक्षक धीरे धीरे C ++ में अवधारणाओं को पेश कर सकते हैं।


2

निश्चित रूप से C ++ बहुत पहली भाषा हो सकती है। लेकिन यह कितना अच्छा पढ़ाया जाता है इसके बारे में है।

हर कोई कहता है, पहली भाषा को समझना बहुत आसान होना चाहिए। लेकिन मेरी बात यह है कि अधिकांश लोग स्नातक स्तर पर प्रोग्रामिंग शुरू करते हैं। तो, आप कुछ सिखा सकते हैं जो वे समझ सकते हैं। और C ++ के साथ, आप निचले स्तर से लेकर उच्च स्तर की प्रोग्रामिंग तक जा सकते हैं।


लेकिन क्यों नहीं प्रोग्रामिंग के उच्च स्तर पर शुरू करें ? यह वह स्तर है जिस पर हम अधिकांश समस्याओं को हल करते हैं (कुछ डोमेन विशिष्ट समस्याओं को छोड़कर, निश्चित रूप से)। फिर, अगर उन्हें धातु के करीब जाने की आवश्यकता होती है, तो वे C ++, कोडांतरक, आदि सीख सकते हैं
एंड्रेस एफ।

मैं सहमत हूँ, इसके बारे में कितना अच्छा पढ़ाया जाता है!
गैरी विलोबी 19

2

नहीं, बिल्कुल नहीं।

अगर मेरे पास अपना रास्ता होता, तो मैं इसे पूरी तरह से अकादमिक सेटिंग में इस्तेमाल करना छोड़ देता। उन कारणों के लिए नहीं जो पहले से बने लोगों के विपरीत हैं, लेकिन क्योंकि बहुत से लोग सोचते हैं C ++ (या यह विविधताएं) लगभग हर समस्या का उत्तर है क्योंकि आप इसे लगभग किसी भी स्थिति में उपयोग कर सकते हैं। यह प्रोग्रामिंग का पेचकश है।

कुछ लोग इसका उपयोग शिकंजा कसने के लिए करते हैं, जो काम के लिए एक उचित उपकरण है। अन्य लोग इसे एक प्राइबर की तरह उपयोग करते हैं, जबकि अक्सर प्रभावी होता है, वास्तव में आदर्श नहीं क्योंकि एक पेचकश, कोई फर्क नहीं पड़ता कि आपके पिता आपको बता सकते हैं, एक प्राइबर नहीं है, और दुरुपयोग के कारण भयावह रूप से विफल हो सकता है क्योंकि skk की रचना जानबूझकर नहीं बनाई गई है जिस तरह की ताकतों के लिए एक प्रिबर का सामना होगा। फिर भी अन्य लोग इसे एक मुक्का या छेनी के रूप में इस्तेमाल कर सकते हैं, और वे लगभग हमेशा समस्याओं का सामना करेंगे क्योंकि पेचकश के हैंडल को उस तरह के दुर्व्यवहार के लिए नहीं बनाया गया था जो पंच या छेनी को झेलने के लिए डिज़ाइन किया गया हो।

मेरी राय में, एक प्रोग्रामर का काम आम तौर पर वास्तविक समस्याओं को स्वचालन में अनुवाद करना है जो कुछ हद तक बेहतर दक्षता (किसी कार्य के लिए संसाधनों का कम होना), वेग (कार्य करने के लिए समय कम करना), पूर्वानुमेयता (दोहराव में वृद्धि) प्रदान करता है एक कार्य), या संगठन (कार्यों के बीच संबंध की जागरूकता में वृद्धि)।

हालांकि यह समझ में आता है कि प्रोग्राम करने वाले सभी लोगों को कंप्यूटर के निम्न स्तर के संचालन और विशेष रूप से डिवाइस IO और मेमोरी आवंटन के बारे में कुछ सामान्य ज्ञान होना चाहिए, यह निश्चित रूप से असामान्य है कि वास्तव में किसी भी महत्वपूर्ण डिग्री तक उस ज्ञान का उपयोग करना है, अकेले ही इसका लाभ उठाएं अधिकांश कार्य। समस्या के व्यापक संदर्भ को समझने के बिना ऐसा करने का प्रयास एक प्रयास के लिए अत्यधिक जोखिम डालता है।

यह बेतुका है कि पहली प्रोग्रामिंग लैंग्वेज C / C ++ या क्लोज वेरिएंट होनी चाहिए, क्योंकि C और उसके डेरिवेटिव के हल की समस्याएं निश्चित रूप से वर्तमान और भविष्य की समस्याओं के कुछ बड़े प्रतिशत के लिए उचित नहीं हैं (सिवाय जहां किसी को बचाव करना हो एक पहले, पेचीदा कार्यक्रम), और वास्तव में आने वाली समस्याओं का एक न्यूनतम सेट है। अधिकांश प्रोग्रामर छोटे मोबाइल, इंटरकनेक्टेड डिवाइसेस के बढ़ते प्रचलन के बावजूद कोर ओएस फीचर या डायरेक्ट डिवाइस इंटरफेस विकसित करने के करीब नहीं आएंगे। ज्यादातर काम करेंगे और वैसे ही रहेंगे जैसे हमने किए थे। कोड को ठीक करना और चरणबद्ध करना जो दो पीढ़ियों से अधिक पुराना है, उस तकनीक पर लागू करना जो पहले से ही उम्र दिखा रहा है, या हत्यारा (x + 1) ऐप पर प्रौद्योगिकी के फ्रिंज में काम कर रहा है।

पहली भाषा के लिए, मैं लेगो एनएक्सटी को देखूंगा, जो कि एक लाइट ड्यूटी है, लेकिन लैबव्यू का अत्यधिक फीचर युक्त संस्करण है। जबकि लेगो एनएक्सटी का व्यापक रूप से वाणिज्यिक उद्यमों में उपयोग नहीं किया जाता है, यह "सेंसर रिच" तरीके से प्रोग्राम करने के लिए मौलिक प्रकृति पेश करेगा। मैं इसे जावास्क्रिप्ट या टीसीएल / टीके जैसी कुछ हद तक तटस्थ स्क्रिप्टिंग भाषा के साथ जोड़ सकता हूं। समस्या की जटिलता की भिन्न डिग्री को शुरू करने और हल करने के लिए फीडबैक लूप और लचीलेपन के संदर्भ में उच्च वापसी के साथ आपको बहुत ही बुनियादी लेकिन प्रभावी कार्यों को करने के लिए जो कुछ भी खोजना है, उसके संदर्भ में दोनों अपेक्षाकृत कम प्रभाव डालेंगे। साथ ही, यह छात्रों के लिए एक अच्छा अवसर प्रदान करता है क्योंकि वे डिब्बाबंद पर्यावरण में प्रदान की गई क्षमता से अधिक का पता लगाने के लिए आगे बढ़ते हैं: अंधेरे, नम में काम करने का प्रयास करने का मौका,

जब वे चार सिलेंडर को स्वचालित रूप से चलाना सीख जाते हैं, तो उन्हें बड़े v8 मैनुअल हॉट्रोड में ले जाएं, अगर वे वास्तव में रुचि रखते हैं और प्रेरित हैं। अगर जोएल अपने पैरों के नीचे किसी भी पत्थर के नीचे रॉक-स्टार प्रोग्रामर नहीं ढूंढ सकता है, तो उसे बस कहीं और देखना होगा, या फिर इस बात पर पुनर्विचार करना होगा कि उसे अपने टूलबॉक्स में स्क्रूड्राइवर्स के गुच्छा की अधिक आवश्यकता क्यों हो सकती है।


1

कुछ बिंदु जहां शुरुआती आसानी से C ++ में गलतियां करते हैं:

असाइनमेंट बनाना जहाँ आप परीक्षण करना चाहते थे = बनाम ==

गुम;

उदाहरण के लिए पास्कल शुरू-अंत बनाम घुंघराले कोष्ठक की पठनीयता

और फिर भ्रमित करने के लिए सभी शामिल फाइलें, मैक्रोज़, मेमोरीमैनमेंट आदि हैं।

इसलिए मैं कहूंगा कि सी ++ शुरू करने के लिए सबसे अच्छी भाषा नहीं है - हालांकि इसमें कोई संदेह नहीं है कि जब आपने इसे सीखा है तो यह बहुत उपयोगी हो सकता है।

मैं - जैसा कि दूसरों ने भी सुझाव दिया है - सी #, जावा या शायद वीबी का उपयोग करें और सिंटैक्स हाइलाइट, डीबगर आदि के साथ एक अच्छी आईडीई का उपयोग करें जिससे त्रुटियों से उबरना आसान हो सके।


1

जब मैं कॉलेज में था C ++ कॉलेज के पहले साल भर में पढ़ाई जाने वाली नींव की भाषा थी। सिद्धांत यह था कि इसमें कुछ जटिल प्रोग्रामिंग अवधारणाएं थीं, इसलिए यदि आप इसे मास्टर कर सकते हैं, तो आप अन्य भाषाओं को उठा सकते हैं। इसने एक अच्छी नींव के रूप में मेरी सेवा की।

यह कहते हुए कि, मैंने अपने वरिष्ठ वर्ष के दौरान, यह निर्धारित करने के लिए एक समिति पर कार्य किया कि कोर भाषा को जावा में बदलना है या नहीं। कई प्रमुख नियोक्ताओं और विभाग के कुछ पूर्व छात्रों से बात करने के बाद, यह निर्धारित किया गया था कि जावा के लिए एक स्विच छात्रों का सबसे अच्छा हित था। जिन नियोक्ताओं से हमने बात की, वे चाहते थे कि लोग उन्हें किराए पर लेने के लिए जिस भाषा का इस्तेमाल कर रहे थे, उसमें अनुभव हो। मेरा मानना ​​है कि 10 साल बाद, वे अभी भी जावा को अपनी मुख्य भाषा के रूप में उपयोग कर रहे हैं।

इसी तरह के एक नोट पर, हम हाल ही में कॉलेज के एक जोड़े को वास्तव में अच्छा C ++ कौशल के साथ किराए पर लेना चाहते हैं। हम कोई खोज नहीं कर पाए हैं।


1

मैं हाँ कहूँगा। लेकिन कोई भी भाषा वास्तव में पहली भाषा हो सकती है। मुझे लगता है कि सी ++ अच्छा है क्योंकि यह जटिल और कभी-कभी मुश्किल है, यह आपको दिखाता है कि आप वास्तव में क्या कर सकते हैं (कम सीमाएं)। इसके अलावा, इसमें कुछ ऑब्जेक्ट ओरिएंटेड डिज़ाइन हैं जो आपको अन्य भाषाओं को लेने के लिए तैयार होने में मदद कर सकते हैं।

C ++ मेरी पहली भाषा थी और मुझे खुशी है कि यह थी। इसने मुझे ओओपी मानसिकता में जल्दी सोचने पर मजबूर कर दिया और मैं इसके लिए आभारी हूं। लेकिन अंत में, यह वास्तव में नीचे आता है कि आप क्या करना चाहते हैं। भाषा उतनी मायने नहीं रखती, क्योंकि अगर आप एक भाषा के साथ अच्छे हो सकते हैं, तो संभावना है कि आप किसी अन्य को लेने में कोई समस्या नहीं होने वाले हैं। आप क्या करना चाहते हैं? खेल बनाओ? मोबाइल फोन के लिए कार्यक्रम? हर एक के पास इसके लिए बेहतर अनुकूल उपकरण और भाषाएं होंगी।


1

C ++ एक विशेषज्ञ भाषा है, न कि शुरुआती एक ... C कहेंगे पहले, नहीं जावा या C # या पायथन ... क्यों? क्योंकि C आपको अपनी याददाश्त और कुछ पेचीदा अवधारणाओं जैसे पॉइंटर्स के बारे में ध्यान रखना सिखाता है जो सभी भाषाओं द्वारा "छिपी" हैं, जो अभी तक हर जगह मौजूद हैं। मैंने बहुत सारे युवा डेवलपर्स को देखा है जो यह भी नहीं समझते हैं कि स्मृति को कभी-कभी क्यों जारी किया जाना चाहिए और विश्वास करें कि कचरा संग्रहकर्ता थोड़ा बौना नहीं है जो सभी कोडिंग क्रेपों को साफ करता है: वे तुरंत करते हैं, वे पलटे और उछालते हैं, भले ही वे XXXXBB हों RAM ... लेकिन उन्हें समझ में नहीं आता है कि क्यों कचरा संग्रहकर्ता जादुई रूप से सब कुछ साफ नहीं कर रहा है! और मैंने इस तरह के डेवलपर्स को C ++ में कोडिंग (और यहां तक ​​कि कॉरिएर में भी) देखा है, और यह एक कत्लेआम था। इसलिए मैं सी में कोडिंग सीखने की सलाह दूंगा और फिर ऑब्जेक्ट कॉन्सेप्ट्स और सभी चीनी के लिए पायथन / जावा / सी # पर जाऊंगा। फिर जब आप उस सब को समझ जाते हैं, तो आप C ++ पर जाते हैं और आपको C ++ की शक्ति महसूस होती है, लेकिन आपको इसके सभी खतरों का भी पता चलता है और इसका उपयोग किसी के द्वारा क्यों नहीं किया जाना चाहिए;)


1

नहीं। C ++ में इतने सारे सामान हैं, जो एक नौसिखिया को समझना मुश्किल है। "सभी प्रोग्रामिंग भाषाएं समान हैं" में मत जाओ।

बेसिक या पास्कल से शुरू करें, ("वे पदावनत हैं" सामान को अनदेखा करें), और बाद में, सी / सी ++ / जावा / सी # / पर्ल के साथ। या अगर आपके पास मौका है, तो पहले Logo & Karel और फिर बेसिक या पास्कल।

पीडी कुछ विश्वविद्यालयों और कॉलेजियम में एक प्रोग्रामिंग लैंग्वेज उपयोग और तुलना वर्ग है, और ऐसा होता है कि मैंने उस कक्षा को पढ़ाया था;;


0

प्रोग्रामिंग की नींव सीखने के लिए आप कोई भी भाषा चुन सकते हैं। मैंने C / C ++ में सामान सीखा। लेकिन 7 साल बाद, मेरे स्कूल में उपकरण / भाषाएं बदल जाती हैं और वे जावा / सी # पसंद करते हैं। भाषाएँ केवल उपकरण हैं। आपको जो बेहतर करने की आवश्यकता है, वह मूल बातें हैं। उदाहरण के लिए MIT में लोग अजगर का उपयोग करके एल्गोरिथ्म के मूल सिद्धांतों को सीखते हैं। उदाहरण के लिए जावा वेब प्रोग्रामिंग के लिए अच्छा हो सकता है। लेकिन C / C ++ सेवाओं और उच्च प्रदर्शन अनुप्रयोगों के लिए अच्छे हैं। तो यह आपकी स्थितियों पर निर्भर करता है।


0

यदि "उपयुक्त" "संभव" के लिए खड़ा है, हाँ। यदि "अच्छा" के लिए, निश्चित रूप से नहीं।

यह संभव है कि यहां तक ​​कि सी ++ को भी पसंद करें, लेकिन इसके लिए आप कई भाषाओं को बेहतर ढंग से सीखते हैं और कुछ दशकों तक चैती-जीवन सड़े हुए कोडबेस के साथ काम करते हैं, "वास्तव में काम करने वाले नैट्रिवियल सॉफ्टवेयर का क्राफ्टिंग" पर अनुभव प्राप्त करें - फिर सी ++ में आकर्षण होगा।

शुरू में नहीं जब आप कुंवारी हैं, छोटी, सरल (लेकिन माना जाता है कि दिलचस्प और मजेदार) समस्याओं के साथ बेला।

मैं अजगर के साथ शुरू होता हूं, उसके बाद SICP (स्कीम), या कुछ इसी तरह का। हो सकता है कि उलटा हो या इंटरलेव किया गया हो। उन लोगों के साथ आप बस जा सकते हैं और समस्या से निपट सकते हैं। सिस्टम से लड़ने के बजाय, गहरे कीचड़ में चलना और सभी प्रकार के अतार्किक चुटकुले और उनके ऐतिहासिक कारण सीखें।

बाद में, जब आप पहले से ही एक पेपर बैग से अपना रास्ता तय कर सकते हैं, तो नंगे धातु पर स्विच करें: विधानसभा और कई आर्किटेक्चर के तरीके सीखें, साथ ही शायद नुथ मिक्स। मेरा मतलब यह नहीं है कि केवल मेमोरी, रजिस्टर, ALU, कैश, इंटरप्ट को समझने और रीड लेवल पर जाने के लिए ओपकोड्स को याद रखना या ज्यादा असली चीजें करना।

फिर उस नींव के साथ आप सी ++ सहित अन्य भाषाओं के संपर्क में आ सकते हैं। शायद बीच में कुछ "इतिहास और भाषाओं के विकास" को जोड़ने के लिए एक अच्छा विचार है।


0

मैंने मिडिल स्कूल में C ++ से शुरुआत की। मैंने इस पुस्तक की एक प्रति उठाई: सी ++ हिटल और डेइटल द्वारा प्रोग्राम कैसे करें । यह किताब काफी अच्छी है।

सच कहूँ तो यहाँ कोई सही या गलत उत्तर नहीं है, मैंने व्यक्तिगत रूप से पाया कि C ++ बहुत ही उपयोगी था। मैंने इसे ओओपी के लिए सभी तरह से सीखा (मैं "यह" पर फंस गया, जो अब मुझे समझ में नहीं आता है कि मुझे यह कैसे मिल सकता है लेकिन जो भी हो)। इसे आज़माएं, निराश न हों। यदि आप अटक जाते हैं, तो अन्य भाषाओं की जाँच करें और नए सीखते रहें। विचार यह है कि जैसा कि आप एक ही अवधारणा को 2-3 विभिन्न रूपों में देखते हैं आप उन्हें बेहतर समझ पाएंगे। जैसा मैंने कहा, "इस" पॉइंटर की अवधारणा ने मुझे भ्रमित किया लेकिन जब मैंने पायथन में एक ही चीज़ देखी (नाम के बजाय स्वयं) तो यह मेरे लिए सही मायने में समझ में आया क्योंकि मैंने इसे सी ++ में समझा था। यदि आप कई कॉलेजों को पढ़ा सकते हैं तो जावा सीखें। अजगर या माणिक सीखें क्योंकि यह भाषा की दो पत्रिकाएँ हैं और यदि आप क्लोजर (और अन्य सभी लिस्प्स), हास्केल, स्काला जैसे अधिक आला / नए सामान तलाश सकते हैं ...


-1

नहीं, मैं जावा या C # से शुरू करूँगा। यदि आप C ++ सीखना चाहते हैं, तो संभवतः मूल बातें सीखने के बाद इसका आसान हो जाता है, जैसे कि एक वर्ग क्या है, लूप और कांटे कैसे करें (यदि, तो कथन), आदि। यह सीखना अधिक महत्वपूर्ण है कि कैसे देखना है। एक समस्या या एक गणितीय समीकरण और यह प्रोग्राम की तुलना में यह पता लगाना है कि क्या आपने अपनी सभी मेमोरी या जो भी जारी किया है।


2
क्यों जावा या C # जब पायथन और भी सरल है?
डेविड थॉर्नले

-3

ऐसा प्रतीत होता है कि इस सवाल के पीछे यह धारणा है कि "C ++ इतनी जटिल प्रतीत होती है, क्या कोई 16 साल का व्यक्ति इसे पहली (कंप्यूटर प्रोग्रामिंग) भाषा के रूप में चुन पाएगा?"

जब हम 4 या 5 साल के होते हैं, तब तक हम ज्यादातर निर्माण मातृभाषा में ही करते हैं, बस इतना ही इसके संपर्क में आने वाले अन्य लोगों के सुनने के माध्यम से। महान वाक्य बनाने में एक जीवन समय लगता है, कोई सवाल नहीं।

अधिकांश मानव भाषाओं की तुलना में C ++ निश्चित रूप से बहुत कम जटिल / जटिल है। 16 वर्ष के बच्चों को इसे लेने में सक्षम होना चाहिए। क्या वे इसके साथ महान कोड लिखेंगे? इंतजार करने और देखने के लिए मिला।


4
मानव भाषाओं में जटिल वाक्यविन्यास हो सकते हैं क्योंकि यदि आपको ग्रामर या स्पेलिंग रोंग मिलता है, तो लोग आपको समझ सकते हैं। कंप्यूटर भाषाओं के साथ ऐसा नहीं है।
dan04

-3

शुरुआती को पहले 'प्रोग्रामिंग' की सराहना करने की आवश्यकता है। शुरुआती लोगों के एक वर्ग को प्रशिक्षित करने के मेरे अनुभव में, उन्होंने पहले सराहना की कि वे सबसे अधिक क्या समझते हैं। पाइथन बनाम सी # की तरह वे पाइथन की सराहना करते हैं क्योंकि इसका बहुत उच्च स्तर है और सी # करता है जैसे प्रतीकों का उपयोग नहीं करता है, जिसका अर्थ है मानव भाषा के निकट, इसकी बहुत अंग्रेजी। इसलिए मैं उच्च स्तर से निम्न स्तर तक प्रोग्रामिंग सीखने की सलाह दूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.