क्या कंप्यूटर विज्ञान के लिए C सीखना आवश्यक है? [बन्द है]


15

मैं एक फ्रंट-एंड डेवलपर हूं जो मुश्किल से किसी फाइल को एक्सटेंशन .hया .cएक्सटेंशन के साथ देखता है । मैं मूल सी सिंटैक्स जानता हूं, मैंने इसे असत्यता में सीखा है, लेकिन इस तरह के निम्न स्तर के प्रोग्रामिंग में कभी दिलचस्पी नहीं थी क्योंकि यह साधारण चीजों के लिए बहुत अधिक सेटअप था।

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

मेरा सवाल है, क्या C एक प्रोग्रामिंग लैंग्वेज है जो कंप्यूटर साइंस के लिए जरूरी है या हम सिर्फ सीएस में लिखे सी में अपने सभी संसाधनों के लिए हुए हैं? क्या C को सीखे बिना कोई Computer Science सीख सकता है?


4
यहाँ के बारे में जोएल स्पोल्स्की की राय है: joelonsoftware.com/articles/CollegeAdvice.html यह चर्चा योग्य है, लेकिन मुझे लगता है कि उसके पास अपने बिंदु हैं।
डॉक्टर ब्राउन

2
शुद्धतावादियों का तर्क है कि कंप्यूटर विज्ञान कंप्यूटरों के बारे में नहीं है, जो प्रोग्रामिंग भाषाओं को अनावश्यक रूप से प्रस्तुत करता है।
Blrfl

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

अवास्तविकता? क्या यह विश्वविद्यालय से ऑटो-सुधार का एक प्रश्न माना जाता था या यह कुछ काले जादू का स्कूल है? हालांकि, मैं अनदेखी विश्वविद्यालय को जानता हूं: [
हिरण हंटर

जवाबों:


31

मैं यहां प्रवाह के खिलाफ जा रहा हूं और हां कहूंगा, आपको सीखना होगा सी। मैं वास्तव में अन्य कई उत्तरों में अंकों से सहमत हूं, लेकिन आप बहुत मजबूत बयान देते हैं

मुझे कंप्यूटर विज्ञान के सभी पहलुओं को सीखने में बहुत दिलचस्पी है, लेकिन मैं विश्वास करना चाहता हूं कि कंप्यूटर विज्ञान की अधिकांश अवधारणाओं को समझने के लिए मुझे वास्तव में एक विशिष्ट भाषा नहीं जाननी चाहिए।

(जोर मेरा)

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

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


मैं आम तौर पर इससे सहमत हूं, हालांकि मेरे लिए "सीखना" सी का अर्थ है कि मैं अनिवार्य रूप से बिना सहायता के गैर-तुच्छ कार्यक्रम लिखने के लिए भाषा में पर्याप्त रूप से धाराप्रवाह हूं। मुझे यकीन नहीं है कि अगर समझ का स्तर ऑपरेटिंग सिस्टम और नेटवर्क प्रोग्रामिंग के लिए एक शर्त है।
तेलस्टिन

3
@ टेलस्टाइन: इसका मतलब है कि आप ऑपरेटिंग सिस्टम कोड और नेटवर्किंग कोड को समझने और संशोधित करने के लिए पर्याप्त धाराप्रवाह हैं - जिन डोमेन का उपयोग C के लिए किया जाता है, और यह है। इसका मतलब यह नहीं है कि आपको यह जानना होगा कि सी में गेम कैसे लिखें, सी में ग्राफिक्स और मशीन इंटेलिजेंस इंजन में प्री-यूआई और चार्टिंग एप्लिकेशन बनाएं; क्योंकि CS के हर दूसरे डोमेन के लिए अन्य भाषा विकल्प हैं।
रवांग

12

एक लंबे समय के लिए, कंप्यूटर विज्ञान की ऊंचाई के दौरान एक विज्ञान के बजाय एक व्यवसाय के रूप में, एक भाषा के लिए कुछ सीमित विकल्प थे जो उन सभी प्रणालियों पर चलते थे जो सभी विभिन्न विश्वविद्यालयों ने उपयोग किए थे।

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

पास्कल एक और विकल्प था, लेकिन उस समस्या का सामना करना पड़ा जो प्रोग्रामिंग में एक निश्चित बिंदु पर, यह सिर्फ एक भाषा के लिए पर्याप्त नहीं था कि आपको वास्तव में क्या करना चाहिए (पास्कल में ओएस प्रोग्रामिंग दर्दनाक होगा)।

पुराने स्कूल के कुछ लोगों ने फोरट्रान सीखा, लेकिन फिर से, यह कई मामलों में एक शक्तिशाली पर्याप्त भाषा नहीं थी जो उच्च स्तर के सीएस कक्षाओं (फोरट्रान में एआई सिद्धांत? सक्षम लेकिन दर्दनाक) को पढ़ाने में सक्षम हो।

और इसलिए, लंबे समय तक सी का विकल्प था।

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


तो नहीं, C सीखना कंप्यूटर विज्ञान सीखने के लिए आवश्यक नहीं है। आप वहाँ कई अन्य किताबें पा सकते हैं जो जावा या पायथन से कंप्यूटर विज्ञान सिखाती हैं। यह सिर्फ इतना है कि लंबे समय के लिए, सी पसंद थी और अकादमिक किताबें धीरे-धीरे चलती हैं।


रिकॉर्ड के लिए, एआई प्रशिक्षण पारंपरिक रूप से 70 और 80 के दशक के माध्यम से सी के एगहेड साथी के साथ किया गया था, एलआईएसपी, लेकिन इसका जवाब सिर पर है।
jwrush

@jwrush मेरा जवाब उन पंक्तियों के साथ था, जो आप समय की अन्य भाषाओं की तुलना में C में भी AI अध्ययन कर सकते हैं (LISP नहीं - और मैंने 'AI के लिए 90 के दशक में एक लिस्प क्लास) ली थी। दी गई, उस समय एमआईटी (एग्जॉइड्स का घर) ने LISP में अपनी कई कक्षाएं सिखाईं - और यह निश्चित रूप से एक और विकल्प था, लेकिन अन्य क्षेत्रों में बिल्कुल व्यावहारिक नहीं था। शिक्षण में, प्रत्येक कक्षा में एक ही आधार से काम करना महत्वपूर्ण था ताकि पहले सप्ताह या दो को खर्च न करना पड़े और छात्रों को उस वर्ग के लिए एक और भाषा सिखाना पड़े।

12

मैं स्वीकार करता हूं कि कोई भी अच्छी तरह से भुगतान करने वाली नौकरी प्राप्त कर सकता है और कभी भी सी को छूने के बिना उत्पादक हो सकता है, लेकिन मैं किसी ऐसे व्यक्ति के लिए सी सीखने की सलाह देता हूं जो कंप्यूटर विज्ञान की ठोस समझ रखने के बारे में गंभीर है

यद्यपि कंप्यूटर विज्ञान अवधारणाओं के बारे में है, जिसे किसी भी विशिष्ट प्रोग्रामिंग भाषा के बावजूद सीखा जा सकता है, ऐसे क्षेत्र हैं जो C सीखकर या C का उपयोग करके उस क्षेत्र को सीखकर बहुत बेहतर समझा जा सकता है।

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

  • ऑपरेटिंग सिस्टम। अधिकांश ऑपरेटिंग सिस्टम सी में लिखे गए हैं। आप बिना कॉल किए प्रक्रिया निर्माण को कैसे समझना चाहते हैं fork? जावा वीएम की अमूर्त परत यहां कोई मदद नहीं है। और बस एक प्रक्रिया बनाए बिना इसके बारे में बात करना और भी बदतर है ... आप ग्रहण जैसे सॉफ़्टवेयर को कैसे लिख सकते हैं जो मानक आउटपुट को अपनी खिड़कियों में से एक में पुनर्निर्देशित कर सकता है? आपको इसके लिए ओएस-स्तर की अवधारणाओं को समझने की आवश्यकता है, और आप उन्हें केवल सी में सीधे छू सकते हैं।

  • अविवेक। आप बिंदुओं से निपटने के बिना C नहीं कर सकते। संकेत आपको दो-स्तरों पर सोचने के लिए मजबूर करते हैं, और यह आपके अमूर्त कौशल को बढ़ाता है।

C ज्ञान के कुछ तकनीकी लाभ भी हैं:

  • क्रॉस-लैंग्वेज इंटरऑपरेबिलिटी। आप अपने पायथन प्रोजेक्ट में एक महान रूबी मॉड्यूल को एकीकृत करना चाहते हैं (यहां दो मनमानी भाषाओं का विकल्प)। संभावना है कि ऐसा करने का एकमात्र तरीका सी के माध्यम से है, क्योंकि दोनों भाषाओं में सी के लिए एक विदेशी इंटरफ़ेस है।

  • लेखन महत्वपूर्ण सॉफ्टवेयर। ऐसा करने के लिए कोई निम्न-स्तर पर नहीं जा सकता है।


मैं यह नहीं कहता हूं, कि हर कार्यक्रम को सी में लिखा जाना चाहिए। लेकिन सी आपको ज्ञान में मदद कर सकता है, जो भी आप जिस भी भाषा में कार्यक्रम करते हैं, वह उपयोगी है।


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

6

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

TL; DR : मेरी राय में, C सरल है, अच्छा C पठनीय है और बिट्स को पीटने में एक निश्चित आनंद है।

सी सरल है

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

सरल सुंदर है

सी आर्कैन नहीं है

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

bool kthread_freezable_should_stop(bool *was_frozen)
{
    bool frozen = false;

    might_sleep();

    if (unlikely(freezing(current)))
        frozen = __refrigerator(true);

    if (was_frozen)
        *was_frozen = frozen;

    return kthread_should_stop();
}

फ़ंक्शन के बीच में "अप्रत्याशित घटना में कि वर्तमान ठंड है, रेफ्रिजरेटर से पूछें कि क्या वास्तव में ठंड हुई है"। डॉ। सीस इसे बेहतर नहीं लिख सकते थे।

पठनीय सुंदर है

सी पारदर्शी है

जब तक एक सी स्टेटमेंट में एक फ़ंक्शन कॉल शामिल नहीं होता है, आप आम तौर पर इसकी रन-टाइम लागत और साइड इफेक्ट्स का एक बहुत अच्छा विचार प्राप्त कर सकते हैं। C प्रोग्रामर को नियंत्रण देता है और अंततः उसे सही काम करने के लिए भरोसा करता है। जब strlen()जीएनयू सी लाइब्रेरी चलती है, तो इसे लागू करने से वंचित (एसई के लिए थोड़ा सुधारित) स्निपेट होता है, तो हम एक तस्वीर प्राप्त कर सकते हैं , क्योंकि प्रत्येक ऑपरेटर के पास अच्छी तरह से परिभाषित शब्दार्थ है। C में ओवरलोडिंग नहीं है।

for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
        ++char_ptr)

if (*char_ptr == '\0')
    return char_ptr - str;

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

मेरी राय में, ऊपर प्रस्तुत तीन बिंदु लिनक्स द्वारा मेरे दिमाग में जटिल - अभी तक कुशल - प्रणालियों के निर्माण को प्रबंधित करते हैं। मुझे लगता है कि यह दुनिया मेरी सौंदर्य संवेदनाओं के लिए अपील करती है और मैं इन बिंदुओं पर विचार करने के लिए किसी को भी सी या उसके अगले लक्ष्य के रूप में विचार करने की सलाह दूंगा। मुझे लगता है कि ऑपरेटिंग सिस्टम और व्हाट्सएप के बारे में तर्क उन्हें स्पष्ट रूप से बताते हुए बेहतर समर्थन करते हैं क्योंकि एक सफल प्रोग्रामर होने के लिए निश्चित रूप से गुठली को समझने की आवश्यकता नहीं है, लेकिन किसी को इन क्षेत्रों को विषय के लिए मजबूर करना पड़ सकता है।


3

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

कंप्यूटर विज्ञान, द आर्ट ऑफ़ कंप्यूटर प्रोग्रामिंग पर (यकीनन) सेमिनल कार्य, विषय को सूचित करने के लिए किसी भी मौजूदा भाषा का उपयोग नहीं करता है। इसके बजाय, डोनाल्ड नुथ ने एक काल्पनिक कंप्यूटर और एक काल्पनिक मशीन भाषा (और एक संबंधित विधानसभा भाषा) को परिभाषित करने के लिए चुना, जिसके संदर्भ में वह सभी विषयों पर चर्चा करता है।

इस विषय पर एक और उच्च माना गया काम, द स्ट्रक्चर एंड इंटरप्रिटेशन ऑफ कंप्यूटर प्रोग्राम्स ने एक समान दृष्टिकोण लिया, जिससे एलआईएसपी प्रोग्रामिंग भाषा की एक सरल बोली को अपने स्वयं के संदर्भ के रूप में कार्य करने में मदद मिली। इस भाषा को अब हम स्कीम के रूप में जानते हैं।

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

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


2

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

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


1

क्या C को सीखे बिना कोई Computer Science सीख सकता है?

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


7
क्या आपको यकीन है कि आपकी डिग्री सीएस के " सभी पहलुओं" को कवर करेगी?
एसके-लॉजिक

मैं सभी आवश्यक पहलुओं को कहूंगा। कोई डिग्री किसी डिग्री प्रोग्राम के सभी पहलुओं को शामिल नहीं करती है। प्लस "सभी" व्यक्तिपरक है।
फिल्लीएनजे

1
आप "आवश्यक" कैसे परिभाषित करते हैं? सभी है सब जिसका अर्थ है, हर संभव सीएस आवेदन को कवर -। यह "व्यक्तिपरक" नहीं है, यह काफी मात्रात्मक है।
एसके-तर्क

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

ठीक है, और आप निम्न-स्तरीय भाषाओं के बिना हार्डवेयर को कैसे कवर करने जा रहे हैं? आप ऐसी प्रमुख भाषा के बिना प्रोग्रामिंग भाषाओं के इतिहास (जो "सभी" सीएस का एक असाधारण महत्वपूर्ण हिस्सा है) को कैसे कवर करेंगे? आप सूचक अंकगणित के साथ कम से कम एक भाषा के बिना प्रोग्रामिंग भाषा शब्दार्थ को कैसे कवर करेंगे? एक तरह से या किसी अन्य, लेकिन सी के समान एक भाषा किसी भी व्यापक सीएस पाठ्यक्रम में मौजूद होना चाहिए।
एसके-तर्क

0

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

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


-1

यदि आप वास्तव में "कंप्यूटर विज्ञान के सभी पहलुओं" (महत्वाकांक्षी योजना!) को सीखने जा रहे हैं, तो आपको कई अलग-अलग विधानसभा भाषाओं से निपटना होगा, और कम से कम एक एचडीएल (और इसमें नेटलिस्ट स्तर पर कोडिंग का अभ्यास करना होगा)।

और एक उच्च स्तर के कदम के रूप में इन सही मायने में मौलिक चीजों के लिए आपको सी या पास्कल की तरह कुछ लेना होगा, यह अपरिहार्य है। अमूर्त की एक सीढ़ी पर कदम लंघन जवाबी कार्रवाई है।

वैसे भी, मुझे यह सवाल पूछने लायक भी लगता है। आखिरकार, C सिर्फ एक छोटी भाषा है। आप कम समय में इसकी मूल बातें सीख सकते हैं, जबकि आप इस बात को प्रतिबिंबित करते हैं कि आपको C सीखना है या नहीं।

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