जावा अक्सर अकादमिया में पाया जाता है। उसके पीछे क्या कारण है?
real
दुनिया में कोई भी उपयोग नहीं करता है, छात्रों या उन कंपनियों को लाभ नहीं है जो छात्रों को नौकरी देना चाहते हैं।
जावा अक्सर अकादमिया में पाया जाता है। उसके पीछे क्या कारण है?
real
दुनिया में कोई भी उपयोग नहीं करता है, छात्रों या उन कंपनियों को लाभ नहीं है जो छात्रों को नौकरी देना चाहते हैं।
जवाबों:
एक कुछ विश्वविद्यालयों कोई ऐसा जो पर्याप्त रूप से अच्छी तरह से जाना जाता है कि कई (यदि नहीं सबसे) निर्णय के आसपास उस व्यक्ति की पसंद, नापसंद, राय, स्वाद, आदि बस घूमना उदाहरण के लिए, टेक्सास ए एंड एम कर्मचारियों पर Bjarne Stroustrup है है; यह शायद किसी को भी थोड़ा आश्चर्यचकित करता है कि उनके पाठ्यक्रम में C ++ पर जोर दिया गया है।
अधिकांश विश्वविद्यालय हालांकि कुछ अलग हैं। पहले, निर्णय अक्सर छात्रों की तुलना में संकाय के लाभ के लिए बहुत अधिक किए जाते हैं। कई मामलों में सबसे बड़ी कसौटी "हमारी ओर से किस भाषा में सबसे कम प्रयास की आवश्यकता है?" उनमें से अधिकांश अपने आलस्य में भी सावधान हैं - वे न केवल सीखने के लिए सबसे कम उन्नत अवधारणाओं के साथ भाषा चाहते हैं, बल्कि एक ऐसा भी है (उदाहरण के लिए) कुछ भी नया करने, अद्यतन करने या गले लगाने की सबसे धीमी।
दूसरा, अधिकांश निर्णय समिति द्वारा किए जाते हैं। इसका मतलब है कि अंतिम निर्णय शायद ही कभी (यदि कभी हो) जो कोई भी वास्तव में चाहता था - यह सिर्फ समिति के सबसे कम सदस्यों (विशेषकर सबसे अधिक प्रभाव वाले) ने विशेष रूप से आपत्तिजनक पाया। यह आइसक्रीम का स्वाद लेने जैसा है। एक वास्तव में स्ट्रॉबेरी पसंद करता है, लेकिन दूसरे को स्ट्रॉबेरी से एलर्जी है। एक और वास्तव में चॉकलेट प्यार करता है, लेकिन कोई और इसे बर्दाश्त नहीं कर सकता। फिर भी एक और सोचता है कि रम किशमिश महान है, लेकिन "रम" का उल्लेख करने वाले अन्य दो चिंताओं को शराब के दुरुपयोग को प्रोत्साहित करने के रूप में व्याख्या किया जाएगा - इसलिए वे वेनिला के साथ समाप्त होते हैं, भले ही यह वह नहीं है जो वास्तव में कोई भी चाहता था।
अंत में, भले ही यह आमतौर पर पिछले दो मानदंडों के अलगाव के विपरीत सीधे चलता है, उन्हें आम तौर पर (या कम से कम चाहते हैं) उद्योग की जरूरतों के लिए उत्तरदायी के रूप में देखा जाना चाहिए।
जावा इन तीनों का प्रतिच्छेदन है:
ध्यान दें कि मैं वास्तव में नहीं कह रहा हूं (उदाहरण के लिए) कि OOP के बारे में सबसे बुनियादी धारणा से जावा के बारे में जानने के लिए और कुछ भी नहीं है - केवल यही कि इसे सिखाने की स्वीकार्य नौकरी के लिए क्या करना चाहिए।
मैंने जावा के ठीक बाहर आने से पहले नब्बे के दशक के दौरान कंप्यूटर साइंस का अध्ययन किया था। हमारे प्रोफेसरों द्वारा पीछा किया गया दृष्टिकोण निम्नलिखित था।
प्रथम वर्ष: पास्कल में प्रोग्रामिंग और एल्गोरिदम के बारे में परिचयात्मक पाठ्यक्रम। पास्कल क्यों? क्योंकि यह हैकिंग के लिए सुविधाओं के बिना प्रोग्रामिंग की अवधारणाओं को सिखाने के लिए डिज़ाइन की गई एक साफ भाषा है। बेशक हम छात्रों को पता था कि उस समय सबसे लोकप्रिय भाषा सी थी और बढ़ती लोकप्रियता के साथ एक नई भाषा थी: सी ++। इसलिए हम हर समय इन भाषाओं के बारे में पढ़ रहे थे और चर्चा कर रहे थे और अपने दम पर इनका उपयोग करके छोटे प्रोजेक्ट कर रहे थे। तो यह विचार था: कक्षा में हम गंभीर सिद्धांत (पास्कल) करते हैं जबकि घर पर हम सीखते हैं कि हैक (C) कैसे किया जाता है। :-)
दूसरे वर्ष के दौरान हमारे पास एक ऑपरेटिंग सिस्टम पाठ्यक्रम था जिसमें हमें सी और असेंबली में अभ्यास करने के लिए कहा गया था। प्रोफेसर ने हमें C (केवल कुछ पाठ) पर एक पूर्ण पाठ्यक्रम नहीं दिया क्योंकि (1) हमारे पास पहले से ही पहले वर्ष के दौरान प्रोग्रामिंग पर एक पाठ्यक्रम था और (2) उन्होंने कहा कि हर कंप्यूटर वैज्ञानिक जिसे प्रोग्रामिंग की अवधारणाओं को जानना चाहिए एक किताब पढ़ने और एक नई प्रोग्रामिंग भाषा सीखने में सक्षम हो। पाठ्यक्रम बहुत सुचारू रूप से चला गया और हम सभी ने सामान्य पाया कि सी और असेंबली व्यावहारिक विषय थे जो आप स्वयं सीखते हैं या अन्य छात्रों के साथ गलियारे में चर्चा करते हैं, लेकिन सार्थक पाठ्यक्रम नहीं बना रहे थे।
तीसरे वर्ष के दौरान हमारे पास प्रोग्रामिंग भाषाओं पर एक पाठ्यक्रम था, जिसमें हमने प्रोग्रामिंग भाषाओं (अलग-अलग, कार्यात्मक, तार्किक, वस्तु-उन्मुख) के विभिन्न प्रतिमानों का अध्ययन किया, हमने सामान्य अवधारणाओं और कार्यान्वयन तकनीकों को सीखा, और प्रमुख प्रोग्रामिंग भाषाओं (पास्कल) को संशोधित किया। सी, मोडुला 2, सिमुला, लिस्प, सी ++, प्रोलॉग)। पाठ्यक्रम की शुरुआत में हमारे प्रोफेसर ने हमें जो बताया था: आपको इस पाठ्यक्रम का मूल्यांकन इस बारे में सोचकर नहीं करना चाहिए कि आप पाठ्यक्रम के अंत में कितनी प्रोग्रामिंग भाषाएं जानते हैं, बल्कि उन सभी सामान्य अवधारणाओं के बारे में जिन्हें आपने सीखा है, वे कैसे हैं एक-दूसरे से संबंधित, वे किन चीजों के लिए अच्छे हैं, उनका उपयोग किस भाषा में किया जाता है। फिर, एक विशिष्ट भाषा सीखना केवल एक पुस्तक को पढ़ने, मौजूदा कोड को देखने, एक विशिष्ट परियोजना पर इसका उपयोग करने की कोशिश करना, और इसी तरह की बात है।
मुझे यह दृष्टिकोण बहुत उपयुक्त और प्रभावी लगा। मुझे नहीं लगता कि विश्वविद्यालय को अच्छे प्रोग्रामर तैयार करने का लक्ष्य रखना चाहिए, बल्कि एक अच्छा ज्ञान देना चाहिए जो प्रोग्रामिंग और प्रोग्रामिंग भाषाओं को समझने की अनुमति देता है। एक अच्छा प्रोग्रामर बनना बस उसी के साइड इफेक्ट के रूप में सामने आएगा। मैं अब एक ऐसी नौकरी के लिए आवेदन करने पर विचार कर रहा हूँ जहाँ Ada की आवश्यकता हो और मैं इससे भयभीत न हो, हालाँकि मैंने पहले कभी भी Ada में कोई गंभीर प्रोग्रामिंग नहीं की है।
जावा पढ़ाने के सवाल पर वापस जाना। मुझे लगता है कि जावा का उपयोग अक्सर शिक्षण के लिए किया जाता है क्योंकि यह पर्याप्त तटस्थ है और यह एक ऐसी भाषा का उपयोग करके प्रोग्रामिंग के सिद्धांतों को समझाने की अनुमति देता है जो उद्योग की दुनिया के करीब भी है।
व्यक्तिगत रूप से मैं अभी भी पहले कोर्स के लिए पास्कल या इसी तरह की भाषा का उपयोग करूंगा, क्योंकि यह मुझे नियंत्रण संरचनाओं और डेटा संरचनाओं के बीच अंतर करने की अनुमति देगा, जो कि जावा / ऑब्जेक्ट-ओरिएंटेड भाषाओं में कसकर एकीकृत हैं। इसलिए, मेरी राय में, पास्कल प्रोग्रामिंग की मूल अवधारणाओं के लिए अधिक क्रमिक परिचय की अनुमति देगा।
इसके अलावा, एक कंप्यूटर वैज्ञानिक (और एक अच्छा प्रोग्रामर) को स्टैक, ढेर, पैरामीटर पासिंग, मेमोरी एलोकेशन, पॉइंटर्स जैसे बेसिक मेकेनिज्म / रनटाइम स्ट्रक्चर्स के बारे में पता होना चाहिए या बिल्ट-इन सुविधाओं का उपयोग किए बिना अमूर्त डेटा प्रकारों को कैसे लागू किया जाए। भाषा (सूची, सेट, और इसी तरह)। जावा प्रोग्रामर से बहुत दूर ले जाता है (यह अच्छा है, निश्चित रूप से), लेकिन एक शुरुआती को इन चीजों के बारे में सीखना चाहिए। हो सकता है कि जावा में पहले प्रोग्रामिंग कोर्स के बाद प्रोग्रामिंग भाषाओं की अवधारणाओं पर एक अधिक सामान्य पाठ्यक्रम भी लिया जाए।
यह सिर्फ मेरे अनुभव और राय हैं।
जब जावा बाहर आया तो मैं स्कूल में था। और मेरा विश्वविद्यालय लगभग रातोंरात बदल गया। लोग शिक्षा के क्षेत्र में जावा में राइट गिद्दी से बाहर थे। जब मैं बाहर आया तो मैं एक जूनियर था, और जब तक मेरा वरिष्ठ वर्ष था, तब तक लगभग सभी अकादमिक अपने पाठ्यक्रम को बदलने के लिए तेजी से आगे बढ़ रहे थे। सिर्फ मेरे विश्वविद्यालय में ही नहीं, हर जगह। यह वास्तव में उपवास था। हमारा दूसरा इंट्रो कोर्स पास्कल था, और यह जल्दी से एक साल से भी कम समय में जावा में परिवर्तित हो गया। उन्होंने इतनी तेज़ी से धर्मांतरण क्यों किया? दो बड़े कारण।
एक शिक्षाविद सिद्धांत और एल्गोरिदम सिखाना चाहते हैं। ऐसी भाषाएं जो आपको उन एल्गोरिदम को सीखने में सुविधा प्रदान करती हैं, जिन्हें संचालित करने के लिए बहुत अधिक अनुभव की आवश्यकता नहीं होती है: स्कीम, पायथन, जावा, स्मॉलटाक, इत्यादि। भाषा जितनी अधिक आप वास्तविक एल्गोरिदम को सीखने से विचलित होती है, उतनी ही दूर होती है। उस समय स्क्रिप्टिंग भाषा दूसरी श्रेणी के नागरिक थे जो नियोक्ताओं द्वारा सस्ते या त्वरित और गंदे के रूप में थे। शिक्षाविदों ने उन्हें अधिक कॉपी कैट के रूप में देखा, लेकिन नियोक्ता जो चाहते हैं वह शिक्षाविदों के साथ भी बोलबाला है।
यही हमें अगले कारण में लाता है। नियोक्ता कुछ भाषा अनुभव चाहते हैं, और उस समय C / C ++ था। लेकिन, C / C ++ सीखने के लिए बहुत अनुभव लेता है, और बहुत सारे कोने के मामले हैं और यदि ands या buts जो कि परेशान कर रहे हैं। हमने C / C ++ में पाठ्यक्रम सीखे, लेकिन निचले स्तरों पर नहीं। उस समय नियोक्ता सीएस कार्यक्रमों में पागल थे क्योंकि छात्र C / C ++ गुरु होने से बाहर नहीं आए थे।
जावा उद्योग के माध्यम से भी तेजी से शिक्षाविद के रूप में तेजी से चल रहा था। तो आखिरकार अकादमिया को वही मिल रहा था जो वे चाहते थे। उच्च स्तरीय भाषा जो सीखना आसान था, और एक भाषा नियोक्ता चाहता था। यह सब बहुत सही था। मेरे जाने के 3 साल बाद मेरी एक दोस्त के साथ अकादमिया में वापसी हुई और उन्होंने कहा कि आप हर सीएस विषय में एक जावा पुस्तक पा सकते हैं। कितनी तेजी से जावा ने शिक्षा ग्रहण की।
व्यक्तिगत रूप से मुझे लगता है कि जावा ने सीएस को नीचा नहीं दिखाया है मुझे लगता है कि यह वास्तव में एक अच्छी बात है क्योंकि छात्र सीएस का अध्ययन कर सकते हैं, ओपन सोर्स में भाग ले सकते हैं और स्कूल में रहते हुए भी काम पा सकते हैं। मेरा अब भी मानना है कि आपको एक सीएस छात्र के रूप में कई भाषाओं का अध्ययन करना चाहिए, और यह सिर्फ जावा नहीं होना चाहिए। लेकिन, अगर वे सभी अजगर अजगर का उपयोग करते हैं तो अजगर पर भी नफरत करेंगे।
इसके लिए कुछ कारण शामिल हैं:
ध्यान दें कि ऐसे कई स्कूल हैं जो C # को समान कारणों से पढ़ाते हैं। कई और कारण हैं, उनमें से कुछ विशेष रूप से व्यक्तिगत स्कूल के लिए हैं। संक्षेप में, जावा, युरेअरियर का ऑब्जेक्ट ओरिएंटेड "बेसिक" बन गया है।
*
सिंटैक्स नहीं हो सकता है , लेकिन पॉइंटर्स की बुनियादी समझ के बिना इसका उपयोग करना बहुत कठिन होगा ।
मुझे जोएल स्पोलस्की की पोस्ट द पेरिल्स ऑफ जावा स्कूल पसंद है । मुझे लगता है कि बेरिन लोरिच इस बारे में सही है कि यह सिरिकुलम को सरल बना रहा है और यह वास्तविक दुनिया पर भी लागू हो रहा है।
मैंने निम्नलिखित कई बार सुना है: "कंप्यूटर विज्ञान की डिग्री प्रोग्रामिंग सीखने के लिए कोई डिग्री नहीं है, यह सिद्धांत सीखना है"। जब तक सिद्धांत सीखा जा रहा है तब तक भाषा को जरूरी नहीं है (हालांकि यह जोर से मिल जाए)। जावा अपेक्षाकृत आसान भाषा है, जो हर चीज के पीछे के सिद्धांत को सीखने में अधिक समय लगाती है। यह एक कारण है कि एमआईटी योजना का उपयोग करता है (इसलिए मैंने सुना है)।
ऊपर दिए गए कई उत्तर अच्छे हैं, लेकिन वे कुछ छोड़ देते हैं।
जावा एक मल्टीप्लायर भाषा है। एक छात्र अपने मैक का उपयोग कर सकता है, दूसरा अपने पीसी का, और दूसरा उसका छात्र यूनिक्स खाता। वही कोड वही काम करेगा। सोचें कि शिक्षक और स्कूल के आईटी विभाग दोनों के लिए यह कितना आसान है।
यह जावा का वास्तविक महत्व था जब वह बाहर आया था। मजाक था "कोड एक बार, हर जगह डिबग", लेकिन यह वास्तव में समीकरण से हार्डवेयर और ऑपरेटिंग सिस्टम लेता है।
मैंने सुना है प्रोफेसरों का कहना है कि वे जावा का उपयोग करते हैं क्योंकि वे पढ़ाने के लिए:
व्यक्तिगत रूप से मुझे खुशी है कि मैं सीएस को बर्कले में ले गया, जब उन्होंने सिखाने के लिए योजना का इस्तेमाल किया। हालाँकि मुझे इस बात का एहसास नहीं था कि कुछ साल बाद तक यह वास्तव में कितनी खूबसूरत थी।
थोड़ी पृष्ठभूमि
मैंने हमारे स्कूल में पेश की गई एकमात्र जावा क्लास ली। यह 2000 के दशक के उत्तरार्ध में 90 के दशक के अंत में था। जावा बढ़ रहा था, लेकिन लगभग बंद नहीं हुआ था। सी में बहुत विकास से आ रहा है, मैं सभी बॉयलरप्लेट कोड के साथ जावा को चलाने और चलाने की आवश्यकता से थोड़ा निराश था। मैं अपने काम पर ध्यान केंद्रित नहीं कर सका। मैं सिर्फ "ओपन" के साथ एक फ़ाइल नहीं खोल सकता। मुझे वर्ग और फिर आयात इत्यादि को परिभाषित करना था।
मैं कंप्यूटर इंजीनियरिंग कर रहा था, इसलिए मैंने पहले असेंबली प्रोग्रामिंग की और फिर सी और फिर सी ++, स्कीम और उस एक जावा कोर्स की। यह ज्यादातर सी उन्मुख स्कूल कार्यक्रम था। एल्गोरिदम वर्ग को सी का उपयोग करके सिखाया गया था।
जब मैं उद्योग में गया, तो जावा स्पष्ट रूप से प्रमुख खिलाड़ी था। शायद यह बैकबैंक कॉबोल सिस्टम से जावा वेब बिजनेस एप्लिकेशन में रूपांतरण के दौरान एकमात्र खिलाड़ी था। 2000 के शुरुआती दिनों में जावा ने व्यापार की दुनिया में बहुत प्रगति की।
उसी समय, मुझे जावा फ्रेमवर्क के बारे में सब नहीं पता था लेकिन मुझे पता था कि कैसे जावा वातावरण को कोड और अनुकूल बनाया जाए। यदि मैंने अच्छे जावा कोडिंग मानकों पर प्रशिक्षण पाठ्यक्रम लिया, तो मैं संभवतः जावा शैली या जावा पारिस्थितिकी तंत्र के बेहतर ज्ञान के साथ शुरुआत कर सकता था।
पूर्वव्यापी में, मुझे नहीं लगता कि यह मायने रखता है।
आपके प्रश्न का उत्तर देने के लिए: हम विश्वविद्यालय में जावा का अध्ययन क्यों करते हैं?
जावा को सिखाया जाना चाहिए लेकिन सभी पाठ्यक्रमों में उपयोग नहीं किया जाता है:
यदि आप कंप्यूटर विज्ञान सीख रहे हैं, तो आपको कॉलेज के किसी बिंदु पर जावा सीखना चाहिए। यह व्यापार की दुनिया में लोकप्रिय है। आपको जावा और शायद सी # सीखना चाहिए। मैं ABSOLUTELY जावा को परिचयात्मक प्रोग्रामिंग पाठ्यक्रम के रूप में नहीं सिखाऊँगा। और जावा निश्चित रूप से सभी पाठ्यक्रमों में उपयोग की जाने वाली प्राथमिक भाषा नहीं होनी चाहिए।
जावा आलोचना पर:
जावा को बहुत आलोचना मिलती है और यह हमेशा होता है। मैं जावा पत्रिकाओं को पढ़ रहा हूं जो एक प्रश्न चिह्न के साथ जावा का उल्लेख करते हैं, "क्या जावा एंटरप्राइज के लिए तैयार है?"। जावा प्लेटफॉर्म अभी भी एक व्यापक रूप से इस्तेमाल किया जाने वाला प्लेटफार्म है। लेकिन, अधिकांश सामान्य प्रोग्रामिंग कार्यों के लिए, जावा ठीक काम करता है। और जावा का उपयोग करने के साथ कोई बड़ी समस्या नहीं है। यह आपके कौशल को चोट नहीं पहुँचाएगा। यदि आप केवल बिना सीखे जावा पुस्तकालयों पर भरोसा करते हैं, तो क्या हो सकता है। लेकिन जावा किसी भी तरह के मस्तिष्क क्षति का कारण नहीं बनता है (कुछ डेवलपर्स वास्तव में इसे सच मानते हैं)।
इसके अलावा, डेवलपर्स C या C ++ पर हमला क्यों नहीं करते? या कम से कम सी ++। अनिवार्य प्रोग्रामिंग प्रतिमान बहुत समान हैं। और मैं कभी भी C ++ में वेबएप लिखने पर विचार नहीं करूंगा लेकिन मैं जावा के साथ हो सकता हूं।
यहाँ बताया गया है कि मैं किस प्रकार एक पाठ्यक्रम की स्थापना करूँगा:
मैंने अपने पाठ्यक्रम में जिन भाषाओं को सूचीबद्ध किया है वे बहुत सामान्य हैं। बहुत सारे स्कूल बिना किसी समस्या के कई भाषाओं को पढ़ा रहे हैं। उद्योग में, आप कई अलग-अलग प्रोग्रामिंग भाषाओं का उपयोग करेंगे। आप उन भाषाओं का उपयोग करेंगे जिनके बारे में आपने सुना भी नहीं है।
स्कूलों में जावा का विषय तब तक कोई समस्या नहीं है जब तक वे आपको जावा से पूरी तरह से अलग नहीं करना चाहते हैं या वे केवल जावा को पढ़ाना चाहते हैं। दोनों ही मामलों में, स्कूल अनुचित हैं।
(सॉरी रूबी लंग)
क्षमा करें, केवल लंबे बोरिंग उत्तर:
(१) क्या आपका मतलब है:
"हम पहली प्रोग्रामिंग भाषा के रूप में विश्वविद्यालय में जावा का अध्ययन क्यों करते हैं?"
(२) या आपका मतलब है:
"हम विश्वविद्यालय में जावा का अध्ययन क्यों करते हैं, वैसे भी, अगर हम जावा से पहले, अन्य प्रोग्रामिंग भाषा सीखते हैं?"
लगता है जैसे आप वास्तव में दोनों सवालों का मतलब है।
(1) के मामले में:
मुझे नहीं लगता कि जावा (या .NET सी # और विज़ुअल बेसिक) को पहली प्रोग्रामिंग भाषाओं के रूप में पढ़ाया जाना चाहिए। संरचित और मॉड्यूलर पास्कल पहले होना चाहिए, भले ही यह पुराना और पुराना लगता हो।
बहुत से लोग सोचते हैं कि हमें लोगों को ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग या फंक्शनल प्रोग्रामिंग सिखाना चाहिए, सिर्फ इसलिए कि इसका "हाइप" या "ट्रेंड" है।
मैं स्ट्रक्चर्ड पास्कल को "ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग" के एक छोटे संस्करण के रूप में सीखता हूं, कुछ इसी तरह के रूप में नहीं। मैं एक छोटी सी वस्तु के रूप में एक संरचित कार्यक्रम देखता हूं।
उसके बाद, मेरा सुझाव है कि कार्यात्मक भाषाएं और ऑब्जेक्ट पास्कल जारी रखें।
और बाद में, C, C ++, C #, VB.Net, Java।
मुख्य कारण जिन्हें मैं जावा या सी # पसंद नहीं करता, पहली प्रोग्रामिंग लैंग्वेज के रूप में, इसके कि उनके पास "पॉइंटर्स", "पॉइंटर्स टू ऑब्जेक्ट्स" और "ऑब्जेक्ट्स" खुद ("रेफरेंस") कॉन्सेप्ट्स हैं।
मेरा मानना है कि छात्रों को उन अवधारणाओं के बीच अंतर, समानताएं और समानताएं ध्यान में रखनी चाहिए। जावा में स्ट्रिंग्स वस्तुओं की तुलना उस विषमता का एक अच्छा उदाहरण है:
String A = "Mars";
String A = "Venus";
// pointer comparison or object comparison ???
if (A == B)
{
DoSomething();
}
(2) के मामले में:
मुझे लगता है कि जावा या सी # को स्कूल में पढ़ाया जाना चाहिए, क्योंकि उनके पास कई अद्यतन अच्छी विशेषताएं हैं, और साथ ही, उनके पास वास्तविक दुनिया का उपयोग है।
यदि आप कंप्यूटर विज्ञान सीख रहे हैं, तो आपको कॉलेज के किसी बिंदु पर जावा सीखना चाहिए। यह व्यापार की दुनिया में लोकप्रिय है। आपको जावा और शायद सी # सीखना चाहिए। मैं ABSOLUTELY जावा को परिचयात्मक प्रोग्रामिंग पाठ्यक्रम के रूप में नहीं सिखाऊँगा। और जावा निश्चित रूप से सभी पाठ्यक्रमों में उपयोग की जाने वाली प्राथमिक भाषा नहीं होनी चाहिए।
मैं इससे ज्यादा असहमत नहीं हो सकता। मेरे कॉलेज में जावा भाषा थी जिसे आपको मेरे स्कूल में CS & E प्रोग्राम में लाने के लिए लेना था। जावा सिखाना बेहद आसान है। क्योंकि आप अपने आप को कुछ अवधारणाओं तक सीमित कर सकते हैं जो "गैर-प्रोग्रामर" सीख सकते हैं।
मैं यह भी नहीं बता सकता कि आप एक परिचयात्मक प्रोग्रामिंग कोर्स के रूप में जावा को सिखाएंगे या नहीं। आपने मूल रूप से कहा था कि आप इसे पढ़ाना नहीं छोड़ेंगे ।
सरल कारण पहले ही समझाया जा चुका है। जावा की कोई लाइसेंस फीस नहीं है। आप इसे एक मूल परीक्षण संपादक का उपयोग करके सिखा सकते हैं। इसका उपयोग निश्चित रूप से गलत कारणों के लिए किया जाता है।
मैं एक पिछले उत्तर से असहमत हूं, कि जावा ने छात्रों को "डम्बर" पास नहीं किया है, यह वास्तव में दिखाता है जब उन्हें सी + + में सरणियों और सूचियों जैसी वास्तविक सरल अवधारणाओं के साथ समस्या होती है।
C से Java का स्विच गलत समय पर हुआ ।
कहीं 2000 के आसपास। मैं अपने विश्वविद्यालय में अंतिम सी कक्षा में था।
C ++ में बहुत सारी विशेषताएं थीं जो नौसिखिए को भ्रमित नहीं करने के लिए थीं । (और यह अभी भी करता है। और कुछ को जोड़ने की योजना है।)
.NET पर्याप्त परिपक्व नहीं था और आज की तुलना में अधिक महंगा था।
ऑब्जेक्टिव C पुराना था और Apple का इसका उपयोग रडार के नीचे उड़ रहा था ( आसपास कोई iPhone नहीं था )
मैं यहाँ उत्तरों को जोड़ने के लिए मजबूर महसूस करता हूँ क्योंकि मैं वास्तव में इनमें से किसी भी उत्तर को वास्तव में अपने परिप्रेक्ष्य को कवर नहीं करता हूँ।
मैं एक शौक़ीन प्रोग्रामर हूँ। जब यह 'कंप्यूटर' और 'प्रोग्रामिंग' की बात आई तो मैं कर्व से आगे था। मैंने अपना अंडरग्रेजुएट - बैचलर्स - 2007 में और मास्टर्स लगभग दो साल बाद - 2009 में पूरा किया। मैंने असेंबली, क्विकबैसिक, सी, सी ++, जावा, पीएचपी, पर्ल, पायथन, बैश स्क्रिप्स, जावास्क्रिप्ट, कोबोल आदि भाषाओं के ढेरों के साथ काम किया है। ।
IMHO, छात्रों को प्रोग्रामिंग सिखाने के लिए जिस भाषा का उपयोग किया जाता है, वह उस समय का सूचक है, जिस समय हम वर्तमान में रह रहे हैं। उदाहरण के लिए, 1980 के दशक के दौरान, असेंबली निम्न-स्तरीय भाषा थी, जबकि C को एक उच्च स्तरीय भाषा माना जाता था।
1990 के दशक के दौरान, C ++, Java, Perl और ऐसी भाषाओं को मुख्य रूप से महत्व मिला क्योंकि C की तुलना में बहुत अधिक स्तर और तेजी से विकास के सिद्धांतों को अपनाया। इसलिए उन्होंने सीएस छात्रों को असेंबली पढ़ाना बंद कर दिया और सी को एल्गोरिदम व्यक्त करने का एक तरीका बताया। पिछले दशक में धीरे-धीरे यह बदल गया है जहां सी को एल्गोरिदम के सार को प्रभावी ढंग से पकड़ने के लिए बहुत कम-स्तरीय भाषा माना जाता है और बिना 'सिस्टम' के भी बहुत कुछ पता है। यह वास्तव में अत्यंत महत्वपूर्ण है क्योंकि एक सीएस पाठ्यक्रम का ध्यान व्यावहारिक से अधिक 'सैद्धांतिक' होना चाहिए और हर बार जब कोई एल्गोरिथम लिखना चाहता है, यदि वह स्मृति आवंटन और सूचक अंकगणित से ग्रस्त हो जाता है तो आपको नहीं मिलेगा कहीं भी।
आज भी यदि आप परास्नातक सीएस कार्यक्रम में हैं, तो आपको कुछ 'सिस्टम' आवश्यकताओं को पूरा करना होगा (अमेरिका में कम से कम और यह अमेरिकी विश्वविद्यालयों के लिए बहुत अलग नहीं होना चाहिए) जो छात्रों को सिस्टम स्तर के कार्यक्रमों को लागू करने में सक्षम होने की आवश्यकता है और वास्तव में आवश्यकताओं को पारित करने के लिए कर्नेल स्तर हैकिंग के रूप में गहरे कुछ मामलों में। इसलिए, हालांकि सी स्कूलों में सिखाई जाने वाली डिफैक्टो भाषा नहीं है, यह प्रासंगिक है कि क्या आप सिस्टम या उच्च प्रदर्शन कम्प्यूटिंग या ऐसे niches में विशेषज्ञ करना चाहते हैं।
मैं एक और बात का भी उल्लेख करना चाहूंगा कि सी को चीजों को सही करने के लिए बहुत अनुशासन की आवश्यकता है जबकि जावा जैसी भाषाएं इस तरह की बाधाओं के बारे में थोड़ा आराम करती हैं। किसी छात्र के कार्यक्रम को डिबग करने के लिए GDB लॉन्च करने के लिए RA / TAs की आवश्यकता के बिना पाठ्यक्रम का संचालन करना आसान बनाता है :)
मुझे लगता है कि इसका एक बड़ा हिस्सा उद्योग में इसका इस्तेमाल हो रहा है।
मेरे सीएस कार्यक्रम में एक औद्योगिक सलाहकार बोर्ड था, जो स्थानीय तकनीक और एयरोस्पेस कंपनियों के वरिष्ठ कर्मचारियों से बना था, और उनके पास पाठ्यक्रम में बहुत सारे इनपुट थे। इंट्रो सीएस क्लासेस ने पास्कल को उस साल सी के पक्ष में गिरा दिया, जिसे मैंने (1986) शुरू किया था, मोटे तौर पर आईएबी के इशारे पर। इसी तरह, कुछ उच्च-स्तरीय पाठ्यक्रमों में एडीए को पढ़ाने के लिए एक धक्का था क्योंकि स्थानीय एयरोस्पेस कंपनियों को इसे DoD कार्य के लिए उपयोग करना था।
जावा के सुंदर सर्वव्यापी, विशेष रूप से अब जब कि एंड्रॉइड डिवाइस बंद हो रहे हैं। यह एक शिक्षाप्रद दृष्टिकोण से बेकार है, लेकिन तब, सी।
क्योंकि उन्हें उम्मीद है कि कम छात्र पाठ्यक्रम को विफल कर देंगे, जो कि अपने आप में एक विफलता है, IMHO। शायद कारणों में से एक है कि लगभग कोई भी विश्वविद्यालय की डिग्री को गंभीरता से नहीं लेता है, कम से कम यहां।
जावा एक भाषा का बहुत सरल है, और यह नहीं सिखाता है कि पीसी में सीमित संसाधन प्रतिमान हैं। जबकि एक ही समय में "कुछ भी नहीं है जो अमूर्त की एक और परत के साथ हल नहीं किया जा सकता है" सोच की रेखा।
हां, यह OOP अवधारणाओं और खिलौने की समस्याओं के लिए अच्छा है, लेकिन यह गलत कोण से समस्याओं का दृष्टिकोण करना सिखाता है। यहां स्वच्छ निर्माण का उपयोग करें, बाकी को पेंच करें।
लेकिन शिक्षाविद को AI, OWL और अन्य खिलौना प्रौद्योगिकियों के बारे में सपने देखने के लिए जाना जाता है। जब वे इस तरह की चीजों पर शोध करते रहते हैं, तो कभी-कभी, कोई व्यक्ति किसी अद्भुत चीज़ के लिए भी वहां आमंत्रित करता है, लेकिन अगर आप एक अच्छे डेवलपर बनना चाहते हैं, तो आपको स्वतंत्र रूप से सीखना होगा।