क्या एक अच्छा (उत्कृष्ट) प्रोग्रामर बनने के लिए C (या C ++) का उपयोग करना सीख रहा है? [बन्द है]


25

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

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

सी या सी ++ कोड की एक भी पंक्ति को पढ़े या लिखे बिना अच्छा काम करने वाला करियर बनाना स्पष्ट रूप से संभव है।

उस सब को देखते हुए, क्या दो भाषाएं सीखने लायक हैं? क्या उन्हें एक्सेल करना आवश्यक है? (स्पष्ट, गैर-भाषा विशिष्ट सलाह से परे, जैसे "भाषाओं का एक अच्छा चयन संभवतः एक व्यापक शिक्षा के लिए महत्वपूर्ण है", और "प्रोग्रामर के करियर के दौरान नई भाषाओं को आज़माते रहना और सीखना बेहतर है, बस ग्रे कोशिकाओं को फैलाने के लिए ")


8
C आज के सॉफ्टवेयर इन्फ्रास्ट्रक्चर में सर्वव्यापी है। इसे सीखना निश्चित रूप से आपके द्वारा लिखे गए सॉफ़्टवेयर में वास्तव में क्या चल रहा है, इसकी गहरी समझ प्रदान करेगा। ( प्रोग्रामर देखें ।stackexchange.com/ questions/ 14744/… )।
चार्ल्स साल्विया

मुझे यहाँ उत्तर भी प्रासंगिक लगे: programmers.stackexchange.com/questions/29109/…
blueberryfields

स्पर्शरेखा: एक अच्छा प्रोग्रामर विभिन्न प्रोग्रामिंग प्रतिमानों के साथ सहज है, इसका मतलब है कि कई भाषाओं को सीखा (और उपयोग किया जाता है)।
मथिउ एम।

अधिक भाषा सीखने से कोई नुकसान नहीं हो सकता।
अधिकतम दोपहर

4
कोई C / C ++ नहीं है। केवल C और C ++ हैं। वे बहुत भिन्न भाषाएं हैं, और जिस पर आप बात कर रहे हैं, उसके आधार पर उत्तर काफी भिन्न होने की संभावना है।
कालेब

जवाबों:


63

योएल Spolsky (हाँ, कि जोएल) एक समय पहले तर्क दिया असली मुश्किल प्रोग्रामर जानते हैं कि कैसे कठिन भाषाओं और उनके निर्माणों, (संकेत और कार्यात्मक सुविधाओं की तरह) (सी, सी ++ और लिस्प की तरह) का उपयोग करने के लिए और है कि उच्च स्तर की भाषा आम तौर पर नहीं थे अपनी योग्यता प्रदर्शित करने के लिए पर्याप्त 'कठिन'।

मैं उनकी बात को समझ सकता हूं कि सी और सी ++ जानने वाले लोग और यह वास्तव में अच्छा है, यह बहुत कुछ जानता है कि हुड के तहत क्या होता है, जो लोग कहते हैं, रूबी में कार्यक्रम (और केवल रूबी में)। मैं कहूंगा कि यह इस तरह से है: यदि आप एक "कठिन" भाषा जानते हैं, तो यह संभवतः एक अच्छा सबूत है कि आप गंभीर बाधाओं का सम्मान करते हुए प्रोग्राम करने में सक्षम हैं या आप जटिल तरीके से सोच रहे हैं। यदि आप उच्च स्तर की भाषा में अच्छे हैं, तो आप गंभीर बाधाओं का सम्मान करते हुए प्रोग्राम करने में सक्षम हो सकते हैं, लेकिन इसका कोई प्रमाण नहीं है।

मुझे नहीं लगता कि C या C ++ सीखने से आपके मस्तिष्क को नुकसान होगा (कुछ लोगों को हालांकि ऐसा लगता है)। दरअसल, बेहतर उच्च-स्तरीय भाषाओं की सराहना करने के लिए इसे सीखना एक अच्छा विचार हो सकता है।


34

हां, एक उत्कृष्ट प्रोग्रामर (हमारे वर्तमान समय में) होने के लिए C (या C ++) जानना आवश्यक है।

यह स्वयं भाषा नहीं है, यह पर्यावरण है।

वैक्यूम में प्रोग्राम नहीं चलते हैं। उत्कृष्ट प्रोग्रामर अपने पर्यावरण को जानता है, जैसे महान मूर्तिकार उसकी सामग्री को जानता है। हमारा वर्तमान प्रोग्रामिंग वातावरण (ऑपरेटिंग सिस्टम, कंपाइलर, नेटवर्किंग आदि) C / C ++ पर बनाया गया है।

उत्कृष्ट प्रोग्रामर कुशल कार्यक्रम लिखते हैं और वास्तविक जीवन स्थितियों में उन्हें डिबग करते हैं। उसे पर्यावरण को जानना चाहिए - और आजकल उसे C / C ++ जानने की आवश्यकता है।

संपादित करें: मैट्रिक्स संदर्भ जोड़ने का विरोध नहीं कर सकते। मॉर्फियस पूछ सकता है: क्या आप जावा गोली लेना चाहते हैं और वर्चुअल मशीन द्वारा प्रदान की गई आरामदायक दुनिया में रहना जारी रख रहे हैं? या आप सी गोली लेते हैं और देखते हैं कि खरगोश छेद कितना गहरा जाता है?


9
मैट्रिक्स संदर्भ के लिए +1, मैं इसे भविष्य के संभावित उपयोग के लिए
रखूंगा

20

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

मेरे डेटा स्ट्रक्चर्स और अल्गोरिदम क्लास में मेरे प्रोफेसर, विलियम स्पीयर्स ने संशयपूर्ण कंप्यूटर साइंस के छात्रों के बारे में बताया कि हम नवीनतम टूल क्यों नहीं सीख रहे हैं। छात्रों ने शिकायत की कि उन्हें ऐसा महसूस हुआ कि वे "वास्तविक दुनिया" के लिए तैयार नहीं थे क्योंकि हम जावा नहीं सीख रहे थे। हम जावास्क्रिप्ट नहीं सीख रहे थे। HTML पर कोई कक्षाएं नहीं थीं। हम [[INSERT Technology HERE]] नहीं सीख रहे थे।

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

कंप्यूटर विज्ञान शिक्षा का उद्देश्य सीखना है कि कैसे सीखना है। बार-बार विकास में कई समस्याओं के समाधान का पता लगाने के लिए बॉक्स के बाहर सोचने की क्षमता की आवश्यकता होती है, जो केवल बुनियादी, मौलिक सीखने से हो सकती है, हुड के तहत, कच्चे कंप्यूटर विज्ञान जो सी, सी ++ और लिस्प के साथ काम करने से आता है।

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


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

6
@ मेसन: लर्निंग लिस्प आपको असली दुनिया के कंप्यूटरों के बारे में लगभग कुछ नहीं सिखाएगा। यह आपको गणना के सिद्धांत के बारे में बहुत कुछ सिखाएगा। कच्चा कंप्यूटर विज्ञान कच्चे कंप्यूटरों से अधिक है।
डेविड थॉर्नले

2
@ मेसन व्हीलर लर्निंग लिस्प ने कई उन्नत अवधारणाओं का परिचय दिया, जिनमें शामिल हैं: डेटा / कोड विनिमेय, प्रतिबिंब / स्व-संशोधित कोड, और आपके कंपाइलर / वीएम को आपके अंतिम उत्पाद का एक हिस्सा मानने का महत्व
ब्लूबेरीफिल्ड्स

@blueberryfields: ... जिनमें से सभी को एक या अधिक अनुभवी कोडर द्वारा एक डिग्री या किसी अन्य के लिए हानिकारक और सुरक्षा कमजोरियों के रूप में माना जाता है। बहुत बुरी बातें newbies को सिखाने के लिए।
मेसन व्हीलर

2
@ मेसन मैं आपकी टिप्पणी के संदर्भ को नहीं समझता हूं - हम यहां उत्कृष्ट प्रोग्रामर के बारे में बात कर रहे हैं, न कि न्यूबॉब्स। मैं एक प्रोग्रामर पर विचार नहीं करूंगा, जिसके पास इन अवधारणाओं की पूरी समझ नहीं है, और उन्हें एक विशेषज्ञ होने के लिए अपने काम में उचित (और नियमित रूप से) लागू करता है।
ब्लूबेरीफिल्ड्स

18

मुझे इसे इस तरह करने दो. मान लीजिए कि आपको कुछ C ++ काम करने के लिए किसी को नियुक्त करने की आवश्यकता है, और कोई व्यक्ति कॉलेज में एक C ++ प्रोजेक्ट करता है, लेकिन उसने केवल स्नातक होने के बाद ही जावा में प्रोग्राम किया है। इसके विपरीत, कहते हैं कि आपको किसी जावा कार्य के लिए किसी को नियुक्त करने की आवश्यकता है, और कोई व्यक्ति लागू होता है जिसने कॉलेज में एक जावा परियोजना की है, लेकिन स्नातक होने के बाद से केवल C ++ में प्रोग्राम किया है।

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

क्या आप कभी भी C या C ++ कोड को छुए बिना करियर में कामयाब हो सकते हैं? ज़रूर, लेकिन मैं अभी भी किसी ऐसे व्यक्ति को काम पर रखना नहीं चाहूंगा जो ऐसा करने में असमर्थ था।


3
अप्रतिहत तर्क। अगर मुझे जावा काम करने की जरूरत है, तो मैं जावा अनुभव वाले किसी व्यक्ति को काम पर रखूंगा। अगर मुझे C ++ काम की जरूरत है, तो मैं C ++ अनुभव वाले किसी व्यक्ति को काम पर रखूंगा। अगर मुझे C ++ की स्थिति के लिए जावा पुरुष को किराए पर लेना पड़ा, तो मैं कुछ अतिरिक्त साक्षात्कार समय बिता सकता हूं, जो उसे संकेत और स्मृति प्रबंधन और RAII पर उद्धृत कर रहा है; इसी तरह, अगर मुझे जावा स्थिति के लिए C ++ पुरुष को किराए पर लेना था , तो मैं साक्षात्कार में अधिक समय बिताने के लिए jitters, डिजाइन पैटर्न, प्रतिबिंब, आदि के बारे में पूछूंगा। न तो कौशल सेट के लिए और अधिक बुद्धिमत्ता की आवश्यकता होती है, बस अनुभव। अधिकांश सीखने की अवस्था वैसे भी पुस्तकालयों में है।
आरोनोटे

13

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


7

क्या दो भाषाएं सीखने लायक है?

सी या सी ++ कोड की एक भी पंक्ति को पढ़े या लिखे बिना अच्छा काम करने वाला करियर बनाना स्पष्ट रूप से संभव है।


6

संक्षेप में, नहीं, वे नहीं हैं। वे सीखने के लिए उपयोगी भाषाएँ हैं, लेकिन आप आसानी से C या C ++ की रेखा को छुए बिना एक उत्कृष्ट प्रोग्रामर बन सकते हैं। अधिकांश उत्कृष्ट प्रोग्रामर ने शायद उन्हें छू लिया है, लेकिन इस बिंदु के अलावा - इन दिनों बहुत सारे अनुप्रयोगों में उनका उपयोग लगभग .NET और Java के रूप में नहीं किया गया है, और जैसे कि उनकी आवश्यकता कुछ हद तक कम हो गई है।

ध्यान दें कि मैं नहीं कह रहा हूँ कि वे सीखने लायक नहीं हैं, मुझे लगता है कि वे सीखने के लिए दोनों महत्वपूर्ण भाषाएँ हैं, खासकर यदि आप प्रोग्रामिंग से करियर बनाने की योजना बना रहे हैं। लेकिन क्या आप कभी भी स्पर्श किए बिना सभ्य प्रोग्रामर हो सकते हैं? ज़रूर।


5

यह आपके रुचियों पर निर्भर करता है।
यदि आप सिस्टम प्रोग्रामिंग में रहना चाहते हैं तो आपको C / C ++ सीखना होगा क्योंकि वे CS की डिफ़ॉल्ट भाषा हैं। OS अवधारणाओं, संकलक, डेटा संरचना, मेमोरी प्रबंधन आदि से परिचित होने के लिए आपको C / C ++ पता होना चाहिए। इसके अतिरिक्त सी / सी ++ पर कई अच्छे ग्रंथ, किताबें और लेख उपलब्ध हैं जो आपके प्रोग्रामिंग कौशल को अनुकूलित करेंगे। कुछ दिन पहले / * प्रोग्रामर * / i में व्हाई सी के लिए एक उत्कृष्ट उत्तर पढ़ा - क्योंकि इसके धातु के करीब
यदि आप प्रोग्रामिंग करने के लिए खुद को सीमित करना चाहते हैं, तो दूसरे रास्ते पर C / C ++ के लिए जाने की कोई आवश्यकता नहीं है, सीधे C # (.Net) / Java से शुरू करें और आपको एक अच्छा डेवलपर की नौकरी मिल जाएगी। लेकिन अगर आप वास्तव में कट्टर प्रोग्रामिंग से प्यार करते हैं तो मुझे यकीन है कि एक दिन आप C / C ++ सीखना शुरू कर देंगे।


धातु के करीब! उस टिप्पणी से प्यार करें।
वजीह

3

यह पूरी तरह से इस बात पर निर्भर करता है कि आप किस एप्लिकेशन डोमेन में काम करना चाहते हैं। यदि आप एम्बेडेड परिदृश्य में खेलना चाहते हैं तो आपको C या C ++ जानने की बहुत आवश्यकता है। C ++ भी शायद खेल के विकास में सबसे अधिक इस्तेमाल की जाने वाली भाषा है। यदि आप वेब एप्लिकेशन पर काम करना चाहते हैं तो C या C ++ उतना महत्वपूर्ण नहीं हो सकता है। कोई भी भाषा नहीं है जो एक अच्छे सॉफ्टवेयर इंजीनियर को परिभाषित करने के लिए एक मिसाल के रूप में जानना आवश्यक है।


3

सी को "पोर्टेबली असेंबली" का नाम दिया गया है जो बहुत सच है। इसे यूनिक्स को पूरे प्रोसेसर में पोर्टेबल बनाने के लिए डिज़ाइन किया गया था, और कोड को अंतर्निहित प्रोसेसर के निर्देश सेट के बहुत करीब बताया गया था।

यदि आप पाते हैं कि आप वास्तविक हार्डवेयर के करीब काम करना चाहते हैं, एम्बेडेड सॉफ्टवेयर या डिवाइस ड्राइवर आदि में होने के बावजूद, सी के आसपास कोई रास्ता नहीं है। यदि आप अधिक मुख्यधारा में काम करना चाहते हैं, तो उच्च स्तरीय भाषाएं एक बेहतर विचार है। C को शक्तिशाली बनाने वाली कई विशेषताएं C को भी खतरनाक बना रही हैं ताकि उन्हें कम या बस हटा दिया जाए।

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

इसलिए मैं आपको कम से कम सी और कुछ उन्नत सूचक अंकगणित कोड पर एक नज़र रखने का सुझाव दूंगा, ताकि आप जान सकें कि आपको दैनिक आधार पर क्या करना है


1

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

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

इसलिए, मैं दृढ़ता से सीखने की सलाह दूंगा कि निचले स्तरों पर क्या होता है, और सी उन्हें सीखने का एक शानदार तरीका है, इसलिए मैं सी। सी ++ सीखने की जोरदार सलाह दूंगा; इसे सीखना आपको चीजें सिखाएगा, लेकिन उनमें से अधिकांश को सीखने के अन्य तरीके हैं, और यदि आप पहले से ही मुख्यधारा की भाषा में काम कर रहे हैं तो नई अवधारणाओं को सीखने के लिए बेहतर भाषाएं हैं।


0

यह आपके द्वारा किए जा रहे सॉफ़्टवेयर के प्रकार पर निर्भर करता है। जब यह निष्पादन योग्य कोड की बात आती है तो खेल अक्सर C / C ++ में लिखे जाते हैं क्योंकि यह शास्त्रीय रूप से अधिक आशावादी भाषा है। आप जो कोड रखते हैं, वह आपको एक तरह से मिलता है।

कहा जा रहा है कि, C # का उपयोग गेम्स को प्रोग्राम करने के लिए भी किया गया है। सी # शायद में से एक है डेस्कटॉप अनुप्रयोग विकास के लिए सबसे अच्छा भाषाओं विंडोज प्लेटफॉर्म पर कम से कम,।

विजुअल स्टूडियो के साथ-साथ, C # लगभग एकमात्र सॉफ्टवेयर डेवलपमेंट लैंग्वेज है जिसका उपयोग मैं करता हूं (SQL और PHP आदि जैसी बहाने वाली भाषाएं) क्योंकि यह सभी इरादों और उद्देश्यों के लिए है, मेरी राय में शानदार है।

यदि आप विंडोज पर विकसित होते हैं, तो मैं दृढ़ता से कुछ और के साथ C # .NET सीखने की सलाह दूंगा।

मुझे विश्वास नहीं है कि सी ++ प्रति से अधिक की आवश्यकता है, लेकिन यह संकेत, स्मृति प्रबंधन और अन्य अवधारणाओं के निचले स्तर के ज्ञान के लिए अच्छा है।


1
@ निक: कंप्यूटर की दुनिया खिड़कियों और सी # से परे है।
रेंजर

2
इसलिए मैंने कहा, "यदि आप विंडोज पर विकसित होते हैं"
निक बेडफोर्ड

0

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


3
यदि आप C ++ को C से भिन्न भाषा के रूप में नहीं समझते हैं, तो आप वास्तव में C ++ को अच्छी तरह से नहीं जानते हैं। केवल ओवरलैप में काम करना संभव है लेकिन उचित नहीं है।
डेविड थॉर्नले 16

शायद मैं समानता से आगे निकल जाता हूं। लेकिन वे अधिक समान हैं, उदाहरण के लिए, सी और पर्ल।
ब्रायन कार्लटन

0

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

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


+1 - अलग-अलग भाषाओं में अलग-अलग तरीके से प्रस्तुत समान अवधारणाओं को देखने से मुझे उन अवधारणाओं को बेहतर ढंग से समझने और उन्हें पूरी नई रोशनी में देखने में मदद मिली।
jmort253

0

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

और सी (या सी ++) सीखने के बिना कैरियर के बारे में - हां, यह संभव है, लेकिन सी सीखने से प्रोग्रामिंग में आपके ज्ञान का प्रदर्शन होगा।


0

मेरे लिए जवाब हां था। मेरे CS डिग्री प्रोग्राम में C और C ++ दोनों ही आवश्यक पाठ्यक्रम थे, और मैं यह मानता हूँ कि CS या संबंधित डिग्री होना "अच्छा प्रोग्रामर" होने के लिए न्यूनतम आवश्यकता है। इसके अलावा, एक "अच्छा प्रोग्रामर" होने का मतलब है कि होने वाली समस्याओं को तर्कसंगत बनाने में सक्षम होना और यह समझना कि क्यों कुछ काम नहीं करता है जैसा कि कोई उम्मीद कर सकता है। मेरे करियर में कई बार मैंने देखा है कि व्यक्तियों को समस्याओं से घिरा हुआ है और सोच रहा था कि उनके खिलाफ काम करने वाली अलौकिक ताकतें थीं ... यह हास्यास्पद है।

IMO, C को जानने से किसी भी अनिवार्य भाषा को समझने और मानव जाति के लिए अब तक के सबसे शक्तिशाली साधनों का उपयोग करके समस्याओं को हल करने की क्षमता का पता चलता है।


0

एक अच्छी तरह से गोल प्रोग्रामर के पास अपनी आस्तीन के ऊपर कई बैग हैं, और इनमें शामिल हैं:

1) निम्न स्तर की प्रोग्रामिंग ... C न्यूनतम पर। कुछ विधानसभा को नुकसान नहीं होगा।

2) फंक्शनल प्रोग्रामिंग ... एक शुद्ध कार्यात्मक भाषा, हाइब्रिड नहीं - योजना यहां काम करती है।

3) ओओपी ... आम तौर पर मैं कहता हूं कि स्मॉलटाक है, लेकिन मुझे लगता है कि हम अब जावा के साथ जा सकते हैं।


0

C सभी प्रोग्रामिंग लैंग्वेज की माँ है .... C में एक्सपर्ट नॉलेज आपको कम अवधि में जावा जैसी किसी भी अन्य भाषा को जानने में एक लंबा रास्ता तय करता है।

C ++ एक पूरी तरह से अलग बॉल गेम है और सभी के बीच सबसे जटिल है।


0

एक अच्छा (उत्कृष्ट) प्रोग्रामर होने के लिए C या C ++ सीखना आवश्यक नहीं है, लेकिन एक अच्छा (उत्कृष्ट) प्रोग्रामर होने के लिए असेंबली सीखना आवश्यक है। उत्कृष्ट प्रोग्रामिंग का अर्थ है, स्मृति, Mhz, बैंडविड्थ, पावर बाधाओं को पार करना और फिर हाथ में कार्य को पूरा करने के लिए सर्वोत्तम डिज़ाइन और / या कार्यान्वयन का चयन करना। कंप्यूटर वैज्ञानिकों के बीच, प्रौद्योगिकियों के विकास के दशकों के बाद, प्राथमिक कमजोरी अभी भी है, डेटा को बेहतर तरीके से प्रबंधित करने के साथ। यह असेम्बली (किसी भी असेंबली; यह ARM, या MIPS, या x86, या एक माइक्रोकंट्रोलर, या एक डीएसपी, या इससे भी कम हो सकता है, वर्लॉग / वीएचडीएल द्वारा लिखित कौशल का एक सेट है)।


0

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


-1

यह स्मृति प्रबंधन की एक ठोस समझ हासिल करने के लिए सी अच्छी तरह से सीखने लायक है। डेटा संरचनाओं को सीखने के लक्ष्य को छोड़कर C ++ के लिए Ditto।


इससे कोई फर्क नहीं पड़ता कि डेटा संरचनाओं को सीखने के लिए कोई किस भाषा का उपयोग करता है।
kirk.burleson

मेरा मानना ​​है कि ऐसा इसलिए होता है क्योंकि बहुत सी अन्य भाषाओं में डेटा स्ट्रक्चर्स का उपयोग यह जाने बिना किया जाता है कि वे कैसे स्मृति में संभाले हुए हैं। सी ++ (एसटीएल के उपयोग के बिना) प्रोग्रामर को यह जानने के लिए मजबूर करता है कि डेटा संरचनाओं को निम्न स्तर पर कैसे नियंत्रित किया जाता है।
एक्वा

-1

नहीं, बहुत सारे घटिया प्रोग्रामर हैं जो C / C ++ कोड लिखते हैं। आपको एक अच्छा प्रोग्रामर क्या समझ में आएगा जब आपको C / C ++ में कुछ लिखने की आवश्यकता क्यों और कैसे होगी

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