जावा इतने सारे संस्थानों में लिंगुआ फ्रैंक क्यों है? [बन्द है]


22

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

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

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

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

यह एक शर्मनाक बात है कि एक सम्मानित संस्था से सीएस में पीएचडी करने वाला कोई व्यक्ति पेपर बैग से अपना रास्ता नहीं बना सकता है।

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

कुल मिलाकर, मुझे लगता है कि मैं अब किसी भी तरह की डिग्री का सम्मान नहीं कर सकता - जब मैं अपने आस-पास के लोगों को फ़िज़बज़ समस्याओं से बाहर निकलने के लिए अपने तरीके से प्रोग्राम करने में सक्षम नहीं देख सकता।

इस तरह से क्यों / कैसे हुआ?


9
चिंता मत करो। ओरेकल को आधा मौका दें और वे स्थिति को मापेंगे :) एंड्रॉइड और अपाचे के खिलाफ उनके मुकदमे सिर्फ ड्राइविंग डेवलपर्स की शुरुआत है। मैं एक ऐसे संस्थान में पढ़ाता हूं जिसने भविष्य के बाजार की प्रत्याशा में पायथन को पढ़ाने के लिए उपर्युक्त कदम उठाया है।
सैमगूडी

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

16
क्या आप बता सकते हैं कि आपका L1 कैश कैसे काम करता है? क्या आप ALU डिजाइन कर सकते हैं? क्या आप मैक्सवेल के समीकरणों को समझा सकते हैं? आपके मदरबोर्ड के थर्मोडायनामिक गुणों के बारे में क्या? क्या आप USB ड्राइव का निर्माण कर सकते हैं? क्या आप वास्तव में जानते हैं कि आपका कंप्यूटर कैसे काम करता है? या क्या आपने अपने हितों के लिए उचित स्तर का अमूर्त उठाया और वहां से चले गए?
19

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

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

जवाबों:


30

यह एक जावा समस्या नहीं है, यह एक शिक्षण समस्या है। यह जानना नहीं है कि प्रोग्राम कैसे भाषा दोष नहीं है, यह छात्रों की गलती है। वही आपके सभी मुद्दों के लिए जाता है, जीसी, बुनियादी मशीन ज्ञान, कैसे काम करता है "हूड के तहत" तो बोलने के लिए।

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


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

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

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

2
@ जोश: निम्न स्तरों पर डिबग करने में असमर्थता, और उनके द्वारा लिखे गए कोड के निहितार्थ के बारे में उचित रूप से तर्क करने की क्षमता में बहुत कमी।
मेसन व्हीलर

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

12

क्या विश्वविद्यालय वास्तव में ऐसा कर रहे हैं? या यह सिर्फ एक धारणा है कि लोगों को जब वे एक खराब नौकरी के साक्षात्कार के उम्मीदवार मिलते हैं?

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

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


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

मेरी डिग्री में हमने पास्कल पहले किया, फिर हमारी ओओ भाषा के रूप में जावा। पिछले 2 साल हालांकि, 90% प्रोफेसर ने इस बात की परवाह नहीं की कि आप किस भाषा का इस्तेमाल करते हैं। हममें से कुछ ने c / c ++ / ruby ​​/ C # / python / यहां तक ​​कि haskell का इस्तेमाल किया, लेकिन ज्यादातर लोग जो जानते थे, उससे चिपक गए। केवल असेंबली / c / c ++ का उपयोग करके आवश्यक पाठ्यक्रमों के केवल एक हैंडफुल जैसे कि हमारे 3D ग्राफ़िक्स (वैकल्पिक) कोर्स जैसे कि prettymuch को ceng / op ++ के लिए लागू किया गया है। और जाहिर है कि बुनियादी सिस्टम पाठ्यक्रम एसपीएआरसी विधानसभा लागू किया गया था (क्योंकि हम जानबूझकर काम कर रहे थे और निम्न स्तर पर थे)। मैंने सुना है कि वे 1 साल में अजगर / सी ++ के लिए चले गए हैं, हालांकि ....
Aren

11

मैं वास्तव में हैरान हूं कि यह कई स्कूलों की स्थिति है। जब मैंने अपनी सीएस की डिग्री प्राप्त की, तो मेरे पास भाषा पाठ्यक्रमों की एक श्रृंखला थी जिसमें उनके बीच दिन की सभी लोकप्रिय भाषाएँ शामिल थीं (यह लगभग 40 साल पहले थी): कोडांतरक (Univac 1108 और MIX), FORTRAN IV, SNOBOL4, COBOL, Lisp , और अल्गोल 68. मैं कल्पना नहीं कर सकता कि सिर्फ एक भाषा सिखाई जा रही है। या मैं कैसे समझ सकता हूं कि कुछ असेंबलर प्रोग्राम लिखे बिना कंपाइलरों को क्या करना था।

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

आधा दर्जन भाषाओं से इस परिचय ने मुझमें एक ऐसी दिलचस्पी जगाई जो अब तक जारी है।


8

वास्तविक कारण जानने के लिए, आपको उन लोगों से पूछना होगा जो उन संस्थानों को चलाते हैं (और फिर भी, वे आपको नहीं बता सकते हैं)।

कई संभावित कारण (और मैं न तो बचाव कर रहा हूं और न ही किसी पर आरोप लगा रहा हूं, बस अनुमान लगा रहा हूं):

आप जावा में काम कर सकते हैं

जावा यह एक सामान्य प्रयोजन की भाषा है और जैसे कि इसका उपयोग बहुत सारी समस्याओं को हल करने के लिए किया जा सकता है।

बहुत से शिक्षक जावा को समझते हैं

ऐसी भाषा सिखाना कठिन है जिसे आप नहीं समझते हैं

जावा लोकप्रिय है

जिसका अर्थ है कि बहुत सारे जावा संसाधन हैं - किताबें, एक सक्रिय समुदाय, कोड लाइब्रेरी आदि।

जावा आसान है

आपको जावा करने के लिए बहुत सारे निम्न-स्तरीय सामान या सिद्धांत को समझने की आवश्यकता नहीं है। आप इसे अच्छी तरह से नहीं कर सकते हैं , लेकिन कम से कम आप काम कर सकते हैं।

जावा व्याप्त है

आप इसे कम या ज्यादा किसी भी चीज़ पर चला सकते हैं।

जावा प्रोग्रामर के लिए नौकरियां हैं

बहुत सी नौकरियां हैं जिनकी जावा को आवश्यकता है - शिक्षकों को वास्तविक दुनिया के लिए छात्रों को तैयार करने वाला माना जाता है।

सीमित समय है

कई पाठ्यक्रमों में, कई भाषाओं, सिद्धांतों, निम्न-स्तरीय अवधारणाओं आदि को पढ़ाने का समय नहीं है।

यह वही है जो छात्र चाहते हैं

छात्रों के बहुत सारे पहले से ही (और यहां तक ​​कि) जावा के बारे में सुना है। वे पसंद करते हैं क्योंकि यह परिचित है।


6

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

वैसे भी, भाषा कोई मायने नहीं रखती। वे एक गैर-जीसी भाषा सिखा सकते हैं और अभी भी खराब प्रोग्रामर का उत्पादन कर सकते हैं। भाषा स्कूलों का उपयोग कार्यान्वयन विवरण है। स्कूलों को अवधारणाएं सिखानी चाहिए। यदि ऐसा नहीं है, तो यह वह विद्यालय है, जिस समस्या को वह भाषा नहीं सिखाती, जिसके साथ वे पढ़ते हैं। सिर्फ इसलिए कि किसी को पता नहीं है कि एक सूचक का मतलब यह नहीं है कि वे एक प्रभावी प्रोग्रामर नहीं हो सकते।

वैसे भी GC भविष्य का तरीका है।


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

1
सीएस प्रोग्रामिंग के बारे में नहीं है।
जेवियर

1
@ जेवियर: सीएस प्रोग्रामिंग के बारे में कैसे नहीं है? यकीन है कि वहाँ सीएस की कि शाखा, "सैद्धांतिक कंप्यूटर विज्ञान" है, जो प्रोग्रामिंग के बारे में नहीं है, लेकिन अधिकांश भाग के लिए यह है प्रोग्रामिंग के बारे में।
बिली ओनेल

1
@ बिली ओनली: विकिपीडिया परिभाषा थोड़ी लंबी है, लेकिन प्रोग्रामिंग के सबसे करीब पहुंचने वाला हिस्सा "उनके कार्यान्वयन के लिए व्यावहारिक तकनीकों का अध्ययन" है। यह कार्यान्वयन (प्रोग्रामिंग) के बारे में नहीं है, बल्कि कार्यान्वयन तकनीकों (एल्गोरिदम, संरचना, भाषा, आदि) का अध्ययन कर रहा है
जेवियर

1
@ जेवियर: मुझे लगता है कि "प्रोग्रामिंग का अध्ययन" और "प्रोग्रामिंग की कार्रवाई" एक ही में हैं। सब के बाद, कोड बहुत अधिक बार पढ़ा जाता है जितना लिखा है। लेकिन यह उस बिंदु के बगल में है - जब आप एक सीएस डिग्री प्राप्त करते हैं, तो आप जिस चीज को समाप्त करने जा रहे हैं वह प्रोग्रामिंग है।
बिली ओनली

4

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

C / C ++ को ठीक से पढ़ाना मुश्किल है। यहां तक ​​कि जब अच्छी तरह से किया जाता है, तो काफी कुछ पूरी तरह से निम्न-स्तर की अवधारणाओं को इंगित नहीं करेगा जैसे (इस पर अध्ययन)। इसके अलावा, यह नौकरी के बाजार में तुरंत प्रासंगिक नहीं लगता है।


2
लेकिन अगर यूओ इशारा करते हैं, तो आप संदर्भों को अधिक आसानी से समझ सकते हैं।
माइकल के

3

मैं ज्यादातर सहमत हूं लेकिन एक हद तक।

यदि आप सीएस संरचनाओं को डेटा संरचनाओं या एल्गोरिदम पर केंद्रित सिखाने के लिए हैं। अधिकांश अनावश्यक सामान को रास्ते से हटाना अच्छी बात है। जब आप उच्च स्तर की अवधारणाओं को सीखते हैं तो आप निम्न स्तर के स्टफ से निपटने के लिए छात्रों को नहीं मारते हैं।

दूसरी ओर निम्न स्तर के सामान को भी सिखाया जाना चाहिए। बस इसलिए हमें अधिक ऑलराउंड प्रोग्रामर मिलते हैं।


मैं एक भी कोर्स की बात नहीं कर रहा हूं। एक कोर्स के लिए, यह ठीक है। संपूर्ण पाठ्यक्रम के लिए, यह नहीं है।
बिली ओनली

3

हमेशा की तरह यह एक सवाल है कि आप क्या सिखाना चाहते हैं और आपको इसमें कितना समय देना है।

जावा में चीजें करने का मतलब है कि आपको आवारा बिंदुओं और मुफ्त / मालॉक से निपटने की ज़रूरत नहीं है। इसका मतलब है कि बहुत कम मुश्किल से ढूंढने वाले कीड़े।

इसका मतलब यह नहीं है कि आपको अंतर्निहित मशीन के बारे में नहीं सीखना चाहिए - जिसे आपको व्यापार में अच्छा होना चाहिए - लेकिन शायद आपको नौकरी के लिए सही उपकरण चुनना चाहिए। उच्च-स्तरीय एल्गोरिदम शायद कोडांतरक पाठ्यक्रम के लिए सबसे अच्छा विषय नहीं हैं।


इंट्रो-टू-प्रोग्रामिंग कोर्स या डेटा स्ट्रक्चर्स कोर्स के लिए, जावा ठीक है। हालांकि पूरे 4 साल के पाठ्यक्रम के लिए नहीं।
बिली ओनली

@Billy। माना। मैं सिर्फ यह उल्लेख कर रहा हूं कि जावा का उपयोग करने से आपको कुछ चीजें खरीदनी पड़ती हैं, जिनके बारे में आपको चिंता करने की आवश्यकता नहीं है। आपको जावा के बिना अन्य पाठ्यक्रमों में मूल बातें सीखना चाहिए।

2

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


1
क्या अच्छे कंप्यूटर विज्ञान कार्यक्रम हैं जिनमें ओएस कोर्स और कंप्यूटर संगठन पाठ्यक्रम शामिल नहीं है?
मियादी

मुझे निश्चित रूप से आशा नहीं है!
माइकल के

0

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

कोई भी सभ्य COMP। विज्ञान का छात्र समझता है कि उसकी सीएस की डिग्री कागज के एक टुकड़े से ज्यादा कुछ नहीं है और यह वास्तविक ज्ञान व्यक्तिगत परियोजनाओं और व्यक्तिगत अध्ययन से आएगा। मैं यह सोचना चाहूंगा कि अच्छे छात्र जानते हैं कि उन्हें सी जानने और लिनक्स / यूनिक्स में काम करने का तरीका जानने की जरूरत है और सीखें कि आधुनिक भाषाओं के साथ उनका हाथ कैसे नहीं है।


-1

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

जैसा कि ऐसा क्यों होता है, मुझे लगता है कि यह (1) राजनीति का एक संयोजन है - चेयरमैन खुले दिमाग के नहीं होते हैं या उनके व्यक्तिगत लाभ / प्रायोजक होते हैं, और (2) आलस्य - प्रोफेसर एक बार छात्र थे और वे जो कुछ भी जानते हैं या पसंद करते हैं वे सिखाते हैं।


-1

ग्रैंड रैपिड्स में केल्विन कॉलेज मि। एक बार जब वे परिचयात्मक प्रोग्रामिंग कक्षाओं के लिए जावा से पायथन में चले गए, तो प्रोफेसर ने उनके सेमेस्टर के अंत में पास के एक समूह को दिए अविश्वास में कहा, "उनमें से बहुत से वास्तव में कार्यक्रम कर सकते हैं, यह अविश्वसनीय है"। उनका विस्मय जावा के साथ पिछले अनुभवों के विपरीत था। यह जावा को एक बुरी भाषा नहीं बनाता है, खरोंच से लेने के लिए बस कठिन है। मैं सी, या सी ++ या किसी भी भाषा के बारे में एक ही तर्क दूंगा कि स्मृति आवंटन योजनाओं या प्रकारों के अंतरंग ज्ञान की आवश्यकता है।


1
एर्म, पायथन को आपके द्वारा उल्लिखित अन्य भाषाओं की तरह ही प्रकार के अंतरंग ज्ञान की आवश्यकता होती है।
बिली ओनली

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

@ बिलियनलील आपने मुझे गलत बताया, संदर्भ मेरे अंतिम वाक्य में मेमोरी आवंटन था। मुझे अभी तक किसी str () या तानाशाही () या tuple () या list () या set () ... मैं सिर्फ उनके उपयोग के आकार या # तत्वों के बारे में चिंतित होना चाहिए।
बेन डीमॉट

@kevincline धन्यवाद केविन - यह वही था जो मैं पाने की कोशिश कर रहा था। डाउनवोट्स को देखते हुए मुझे अपने संचार कौशल पर काम करने की आवश्यकता है;)
बेन डीमॉट

-2

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

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

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

हां, यह सच है कि एक विश्वविद्यालय की डिग्री केवल एक कागज का टुकड़ा है, लेकिन "अपनी शिक्षा के रास्ते में स्कूली शिक्षा प्राप्त न होने दें"। वहाँ हमेशा विकिपीडिया, स्टैक ओवरफ्लो, Coursera.org, आदि लगता है जैसे पारंपरिक विश्वविद्यालय कम महत्वपूर्ण हो जाएंगे।

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

एक अड़चन में, मैंने कई चीजें अलग तरह से की होंगी। अब मैं यह कर सकता हूं, और मैं आपको इसकी सलाह देता हूं, अपना खुद का रोमांच चुनें: http://www.codinghorror.com/blog/2008/03/choosing-your-own-advt.html

अब तक मैं स्टॉक मार्केट में 100 बिलियन डॉलर कमा चुका था, और मैंने इसे कैंसर रिसर्च में लगाया होगा, मैंने प्लास्टिक कचरे की दुनिया से छुटकारा पाने के लिए वैज्ञानिकों को काम पर रखा होगा; मैंने रॉन पॉल अभियान को पर्याप्त नकद दान दिया होगा ताकि 3 साल पहले मध्य पूर्व में युद्ध हो।

अब यह पहचान लें कि आपको अपना समय कभी वापस नहीं मिलेगा, इसलिए इसे बुद्धिमानी से खर्च करने की कोशिश करें।


डाउनवोटर्स, कृपया विस्तृत करें।
अय्यूब

-2

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


-2

जावा का उपयोग क्यों किया जाता है?

तीन कारण:

  1. जावा सी-स्टाइल सिंटैक्स का उपयोग करता है। कई प्रोग्रामर इससे परिचित हैं, इसलिए यह सीखने की अवस्था को कम करता है।

  2. जावा को शांत और आधुनिक बनाने के लिए पैसा खर्च किया गया था। लेकिन लिस्प की तुलना में जावा पाषाण युग में जी रहे हैं।

  3. जेवीएम। JVM जावा के बारे में एक अच्छी बात है जो वैध है, न कि केवल प्रचार। यद्यपि जेवीएम को कार्यक्रमों को चलाने के लिए एक मंच के रूप में प्रशंसा की जानी चाहिए, लेकिन यह स्वयं जावा भाषा के अस्तित्व का गुणगान नहीं करता है। आप सैद्धांतिक और व्यावहारिक रूप से JVM के लिए कई अलग-अलग भाषाओं को संकलित कर सकते हैं।


1
स्वागत हे। ऐसा लगता है कि स्टैक एक्सचेंज प्रोग्रामर्स के लिए आपकी पहली पोस्ट हो सकती है। कृपया प्रतिष्ठा, सवाल पूछने और जवाब देने के बारे में कुछ सलाह के लिए faq पेज प्रोग्रामर .stackexchange.com/faq पर एक नज़र डालें । एक महत्वपूर्ण बिंदु यह है कि उत्तर जानकारीपूर्ण होना चाहिए, उत्तेजक नहीं। यदि आप एक जोर देते हैं जैसे कि जावा पत्थर की आयु है और लिस्प आधुनिक है, तो क्यों समझाएं। कई पाठकों को पता हो सकता है कि लिस्प 1958 में निर्दिष्ट किया गया था और यह फोरट्रान की तुलना में थोड़ा छोटा है। यदि आप यह कहना चाहते हैं कि जावा के बारे में कुछ जो कि फोरट्रान या अल्गोल के साथ साझा किया गया है, अपने डिजाइन को ड्राइव करता है और इसे सीमित करता है, तो इसका वर्णन करें।
डेवलपर

-3

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

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

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

जावा में संकेत हैं - अच्छी तरह से हम उन्हें संदर्भ कहते हैं .. स्ट्रिंग s1 = "हैलो"; स्ट्रिंग s2 = "हैलो"; स्ट्रिंग s3 = नया स्ट्रिंग ("हैलो");

s1 और s2 एक ही स्ट्रिंग ऑब्जेक्ट की ओर इशारा करेंगे - जो संदर्भ s1 == s2, s1.equals (s3) के द्वारा है, लेकिन s1 == s3 गलत है क्योंकि s3 एक नया संदर्भ ऑब्जेक्ट है - यह संदर्भों का जावा अंकगणित है और मैं यह सब क्षमा करें, मैं किसी ऐसे व्यक्ति के रूप में लेबल नहीं करना चाहता, जो सी या सी ++ से सूचक अंकगणित की झूठ बोलने की जटिलताओं को नहीं समझता है।


2
सन्दर्भ सूचक नहीं हैं। आप उन्हें अंकगणित का उपयोग नहीं कर सकते हैं, और आप उन्हें स्मृति के एक टुकड़े को फिर से व्याख्या करने के लिए उपयोग नहीं कर सकते हैं जो वे इंगित करते हैं। और निश्चित रूप से, आप चाहे जितना भी कचरा इकट्ठा करने वाली दुनिया में रहना चाहते हों, इस तथ्य का तथ्य यह है कि दुनिया कचरा इकट्ठा करने वाली दुनिया नहीं है। मैं यह नहीं कह रहा हूं कि जावा एक खराब भाषा है, या लोगों को जावा का उपयोग नहीं करना चाहिए। यदि आप इसे पसंद करते हैं, तो इसका उपयोग करें, इसके बारे में चीजें हैं जो महान हैं। मुझे लगता है कि यह एक शुरुआती भाषा के रूप में अनुचित है क्योंकि यह उन चीजों को छुपाता है जो नए प्रोग्रामर को समझने के लिए आवश्यक हैं।
बिली ओनेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.