क्या newbies को IDE स्वतः पूर्ण (Intellisense) का उपयोग करना चाहिए? [बन्द है]


35

मैं अक्सर इसका सामना करता हूं, जब मैं किसी ऐसे व्यक्ति की मदद कर रहा हूं जो प्रोग्रामिंग में नया है और पहली बार इसे सीख रहा है। मैं वास्तव में नए newbies के बारे में बात कर रहा हूं, अभी भी OOness के बारे में सीख रहा हूं, वस्तुओं का निर्माण, विधि कॉल और इस तरह से सामान। आमतौर पर, उनके पास कीबोर्ड होता है और मैं सिर्फ मार्गदर्शन दे रहा हूं।

एक ओर, IDEs की स्वतः पूर्ण विशेषता उन्हें प्रतिक्रिया देने में मदद करती है कि वे इसे सही कर रहे हैं और वे जल्दी से इसे पसंद करने और इस पर भरोसा करने के लिए मिलते हैं।

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

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

अद्यतन करें

इनपुट के लिए सभी को धन्यवाद!

कई उत्तर स्वतः पूर्ण के मुख्य उपयोग पर ध्यान केंद्रित करने के लिए प्रतीत होते हैं, जैसे कि विधियाँ पूर्ण करना, विधियाँ देखने और दस्तावेज़ीकरण प्रदान करना आदि लेकिन आजकल IDE बहुत कुछ पसंद करते हैं।

  • सूची प्रकार की एक वस्तु बनाते समय, दाएं हाथ की तरफ नए ArrayList के लिए एक IDE ऑटोकॉमप्लेट्स। यह एक नौसिखिया के लिए तुरंत स्पष्ट नहीं हो सकता है कि यह नई सूची क्यों नहीं हो सकती है, लेकिन यह काम करता है, इसलिए वे आगे बढ़ते हैं।
  • संदर्भ में स्थानीय चर के आधार पर भरने की विधि पैरामीटर।
  • वस्तु जातियों का प्रदर्शन करना
  • स्वचालित रूप से 'आयात' या 'स्टेटमेंट्स' का उपयोग करके जोड़ना

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

कोई यह तर्क दे सकता है कि इससे उन्हें कार्यक्रम के प्रवाह पर ध्यान केंद्रित करने और भाषा की बारीकियों को समझने से पहले चीजों को लटका पाने में मदद मिलती है, लेकिन मुझे यकीन नहीं है।


1
मुझे लगता है कि यह एक सामान्य निषेधाज्ञा में आता है: एक उपकरण का उपयोग करें। आँख बंद करके इसका उपयोग करने के लिए पर्याप्त आलसी मत बनो।
एलेक्स फेनमैन

मुझे लगता है कि वे "का उपयोग करना चाहिए मानक पाठ संपादक '... gnu.org/fun/jokes/ed.msg
JoelFan

: मैं संक्षेपण किया है कि मैं क्या एक ब्लॉग पोस्ट में यहाँ सीखा है codinguser.com/2011/01/abstraction-is-good-magic-is-bad
codinguser

जवाबों:


11

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

मैं समझता हूं कि अगर आप इसका अंधाधुंध उपयोग करते हैं, तो आईडीई का उपयोग करना एक बैसाखी हो सकता है, लेकिन मुझे लगता है कि लाभ नकारात्मक को दूर करते हैं।

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


JIT? क्या आपके पास .NET FCL का मतलब नहीं है? =) हां मैं सहमत हूं ... वर्षों से इंटेलीजेंस ने मेरे लिए एक सीखने का उपकरण साबित किया है, मैंने इसके साथ टन के नए वर्गों, विधियों और गुणों के बारे में सीखा है।
गिदोन 15

1
मेरा मतलब था JIT सीखना - JIT संकलन नहीं;) सीखने के लिए बहुत कुछ है, सामने वाले की हर बात सीखने की कोशिश करना अवास्तविक है, इसलिए जब तक आप अवधारणाओं को समझते हैं, तब तक कार्यान्वयन बारीकियों को सीखना "बस समय में" हो सकता है।
मार्क फ्रीडमैन

75

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

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

उदाहरण के लिए, DrScheme IDE को प्रोग्रामिंग सिखाने में एक महान ट्रैक रिकॉर्ड है, और इसकी सफलता मुख्य रूप से इसकी क्षमता है जो वास्तव में महत्वपूर्ण है पर ध्यान केंद्रित करने में मदद करने की क्षमता के कारण है।


30
+1। मेरे पास वास्तव में तब साक्षात्कार था, जब वे मुझे कुछ Win32 एपीआई फ़ंक्शन के मापदंडों की सूची का हवाला देने के लिए कह रहे थे। कभी समझ में नहीं आया कि ज्ञान क्या प्रासंगिकता हो सकता है।

4
@ कोडिंग करने वाला: और यह भी कोई समस्या नहीं है। मैं अक्सर एक भाषा का वाक्यविन्यास भी याद नहीं कर सकता, जिसका उपयोग मैं वर्तमान में कर रहा हूं (भले ही मैंने इसे खुद डिज़ाइन किया हो)। आयात के बयान या एक गटर / सेटर जोड़ी लिखने की तुलना में याद रखने के लिए बहुत अधिक महत्वपूर्ण चीजें हैं। और IDE अधिक उपयोगी चीजें कर रहे हैं - उदाहरण के लिए टूलटिप्स में प्रकार।
तर्क

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

3
@ जोश के, क्या आप यह समझने की जिद करते हैं कि आगे चलकर सिसकल्स में क्या हो रहा है? इस समझ में कोई जोड़ा मूल्य नहीं है। बेशक एक अच्छा प्रोग्रामर मशीन कोड सहित सभी स्तरों पर काम करने में सक्षम होना चाहिए, लेकिन एक अच्छा प्रोग्रामर भी एक अप्रासंगिक सामान से पूरी तरह से दूर रहने में सक्षम होना चाहिए।
एसके-तर्क

3
@ एसके-तर्क: मैं सहमत हूं, और आयात और फ़ंक्शन कॉल जो आप सीधे उपयोग कर रहे हैं, कुछ दूर से सार नहीं हैं।
जोश के

16

स्वतः पूर्ण का उपयोग करना कोई बुरी बात नहीं है।

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

मुझे समझ में नहीं आता है कि इसका उपयोग कैसे नहीं किया जाता है, उदाहरण के लिए उन्हें OO सीखने में मदद मिलेगी।


1
जब आप मूल बातों में महारत हासिल कर लेते हैं तो मैं स्वतः पूर्ण हो जाता हूं। गति अच्छी है जब आप जानते हैं कि आप क्या गति बढ़ा रहे हैं। लेकिन जब एक आईडीई स्वचालित रूप से एक ही प्रकार के स्थानीय चर के आधार पर एक पैरामीटर भरता है, या एक आयात विवरण जोड़ता है, तो यह बस काम करता है और कुछ newbies वास्तव में इसे समझ नहीं पाते हैं।
कोडिंगुसर

मैंने आपका संपादन पढ़ा है, लेकिन मुझे लगता है कि हमारे द्वारा किराए पर ली जाने वाली नोब्स स्मार्ट लोग हैं, जो भरे हुए लोगों को देखेंगे, उनसे सवाल करेंगे, और उन्हें समझेंगे। चाहे वह व्यवहार में हो या न हो, एक और सवाल है।
ozz

13

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

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

हाँ स्वत: पूर्ण / अंतर्मुखता हमें (पेशेवर डेवलपर्स) बहुत बी / सी मदद करती है यह हमें गति देती है। हमें सभी अलग-अलग तरीकों और पैरामीटर सूचियों को याद करने की आवश्यकता नहीं है, लेकिन साथ ही हम यह भी अनुमान लगा सकते हैं कि एक विधि क्या पैरामीटर ले रही है b / c हमें पता करने के लिए प्रोग्रामिंग के साथ अनुभव है।

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

और, पाठ्यक्रम के अंत में जब वे अपना पास प्राप्त करते हैं, तो वे उथले जीत के साथ अपने प्रोग्रामिंग क्लास से दूर चले जाते हैं, कई कभी भी एक और सीएस क्लास नहीं लेते हैं b / c उन्हें कुछ भी समझ नहीं आया कि उन्होंने क्या किया या क्यों किया। यह।


2
मैं निंदक होऊंगा और कहूंगा कि सीएस में हमेशा उस प्रकार के छात्र रहे हैं। अगर वे इंटेलीजेंस सीखना चाहते हैं, तो उन्हें चीजों को जल्दी करने में मदद मिलती है, बजाय इसके कि Google या पुस्तक में प्रत्येक फ़ंक्शन नाम को देखने में समय व्यतीत करें
user151019

4
@ मर्क, मैं सहमत हूं। मुझे लगता है कि मैंने अपने उत्तर को सभी छात्रों को लागू करने के दायरे में बहुत व्यापक बना दिया। लेकिन मैं यह कहूंगा कि कोर्स के विकास के माहौल में स्वत: पूर्णता के साथ परिचय और आईडीई के बाद, उन छात्रों की संख्या, जो समझ नहीं पाए थे कि पहले मिडटर्म पर विफलताओं की संख्या कितनी थी। मेरे द्वारा प्राप्त किए गए प्रश्नों की संख्या बहुत कम हो गई थी, लेकिन मुझे पता था कि यह b / c नहीं था छात्र बेहतर समझ रहे थे, लेकिन b / c वे प्रोग्राम को समझने के लिए समय निकाले बिना काम कर सकते थे।
तानना

students were asked to write simple methods by hand...they couldn't.यह नीचे आता है कि आप उन्हें क्या सिखाने की कोशिश कर रहे हैं। सामान्य प्रोग्रामिंग अवधारणाएँ, या भाषा विशिष्ट वाक्यविन्यास?
जिंजरब्रेडबॉय

9

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

किसी के लिए, मोटे तौर पर, समझता है कि हुड के नीचे क्या चल रहा है यह मददगार है - लेकिन किसी के लिए यह सीखने की जरूरत है कि वह कम है।

हैवीवेट IDE को फायर करने में लगने वाले समय का भी सवाल है ...

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

बेशक हम पायथन जैसी चीजों पर विचार करके इस मुद्दे को और उलझा सकते हैं जहां आपके पास "लाइव" कमांड लाइन है ...

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


2
ईमानदारी से, मैं आईडीई को आग लगाने के लिए लगने वाले समय को नगण्य मानता हूं। मैं इसे फायरिंग के बीच अपनी आईडीई का उपयोग करके दर्जनों घंटे बिताता हूं। यह निश्चित रूप से अतिरिक्त 30-45 सेकंड से अधिक समय बचाता है, जो उस अवधि के दौरान अकेले कोड पूरा करने में शुरू होता है।
एरोबोर्स्मा

@ एरिक - आपके संदर्भ में? हां, 100%। प्रश्न के संदर्भ में अर्थात पूर्ण शुरुआती? मुझे संदेह है कि आईडीई को छोटे सत्रों के लिए अधिक बार खोला और बंद किया जाएगा और आमतौर पर रास्ते में मिलने वाली कोई भी चीज हतोत्साहित करती है।
मर्फ़

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

@HLGEM मैं सुझाव देने जा रहा था कि इसकी तुलना में यह थोड़ा अधिक जटिल है ... लेकिन मुझे नहीं लगता कि मैं दूरस्थ रूप से शुरुआती और डेटाबेस पर टिप्पणी करने के लिए योग्य हूं) -: (और, स्पष्टता के लिए, क्योंकि मैं अभी भी नई भाषाओं और चौखटे मुझे लगता है मैं आईडीई मुद्दे पर टिप्पणी कर सकते हैं सीखना - मैं नेट और दृश्य स्टूडियो बहुत ज्यादा कर रही है) के साथ जल्दी मुद्दों कर के विशिष्ट यादें है
Murph

4

कठिन तरीके से सीखना आमतौर पर आपके साथ रहता है।

नौसिखिया के रूप में, कृपया आईडीई का उपयोग न करें। कमांड लाइन का उपयोग करें, अपनी गलतियों से सीखें। यह आपको कंपाइलर और लिंकर विकल्पों को अधिक बारीकी से समझने में भी मदद करेगा।

तो आप आईडीई का उपयोग कब करते हैं? जब आप कुछ विशाल डिजाइन कर रहे हैं या कक्षाओं, विधियों और चर के भार के साथ एक विशाल कोडबेस पर काम कर रहे हैं।


7
यदि आप अभी तक नहीं जानते हैं कि संकलक और संकलक विकल्प समझने में क्या हर्ज है? यह आम तौर पर एक गड़बड़ में समाप्त होता है। मैंने एक दशक से अधिक समय अपने स्वयं के गड़बड़ को साफ करने में लगाया, जो कि शुरुआत में बहुत गहरे और बहुत कम स्तर के जोखिम से बना था (MACRO32, फोरट्रान, DCL ...)।
तर्क

2
माना। उदाहरण के लिए, पायथन या C # सीखने से पहले असेंबली सीखने का कोई मतलब नहीं है - यह आपको और अधिक निराश करता है। आम तौर पर, आप उच्च स्तर की अवधारणाओं को सीखते हैं और फिर निचले स्तर की अवधारणाओं, या अन्य नाइटपिक चीजों में फ़िल्टर करते हैं।
डीएम

4

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

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

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

मैं एक आईडीई का उपयोग करना नहीं सिखाऊंगा। मुझे लगता है कि शुरुआत की परियोजनाएं काफी छोटी हैं कि जटिलता को प्रबंधित करने के तर्क तर्कहीन हैं। आप जावा सिखा रहे हैं, उदाहरण के लिए, आप अपने सभी वर्गों के एक ही फ़ोल्डर में जगह है और कर सकते हैं javac *.java। उसके लिए आपको एक आईडीई की आवश्यकता नहीं है! यह प्रोजेक्ट्स को छोटे रखने के लिए तर्क देता है, जो सबूत-अवधारणा से थोड़ा अधिक है। ओवरहेड को छोटा करें, और छात्रों को जिस अवधारणा की आवश्यकता है उसे पढ़ाने पर ध्यान केंद्रित करें। बड़ी परियोजनाएं जिनमें एक IDE उपयोगी होगा, वे अधिक उन्नत SE वर्ग या समर्पित परियोजनाओं से संबंधित होंगी।

कक्षाएं और एपीआई अनुसंधान खोजने में मदद के लिए, फिर से, मेरा मानना ​​है कि अगर परियोजनाएं छोटी रखी जाती हैं तो यह बहुत ही कम है। जावा में फिर से, javadoc को पढ़ना बहुत आसान है। कोई भी वहाँ सिर में पूरे एपीआई वैसे भी रख सकते हैं, और वहाँ होगा एक समय जहां एक IDE के लाभ के बिना एक API अनुसंधान करने के लिए आवश्यकता होगी। जैसे, अन्य भाषाओं में, या यदि आप आईडीई नहीं खोल सकते हैं तो एक सर्वर में भेज सकते हैं। दस्तावेज़ीकरण खोजना सीखें, "प्रेस 'नहीं।" और आप देख सकते हैं कि किसी वस्तु के तरीके क्या हैं। "

कोई भी प्रोग्रामर IDE सीख सकता है, लेकिन IDE जानने से आप एक अच्छे प्रोग्रामर नहीं बन सकते। एक तरफ काले हास्य, "जादू" एक प्रोग्रामर का उपयोग करने के लिए एक अच्छा शब्द नहीं है।


पाठ हाइलाइटिंग के साथ सीखा ... भाग्यशाली पंक। हममें से कुछ के पास बस कीवर्ड की एक सूची और एक संकेत है।
मैथ्यू व्हिट

@ मैथ्यू: जावा मैंने नोटपैड के साथ शुरू किया ... :)
माइकल के

LOL ... मैंने ऐप्पलसॉफ्ट BASIC के साथ Apple IIc पर शुरू किया जो ROM में बनाया गया था। : ओ)
मैथ्यू व्हाइट

वाह, मैं QBasic है भाग्यशाली महसूस करता हूँ!
माइकल के

4

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

कोई भी लकड़ी का काम करने वाला कारीगर पहले लकड़ी के प्रकार और हाथ विमान दोनों की पेचीदगियों को समझने के बिना एक उच्च अश्वशक्ति की सतह का उपयोग करने के लिए सीधे कूद जाएगा।

(नोट: स्वत: पूर्ण और अंतर्मुखी दो अलग-अलग चीजें हैं)।

Intellisense, अपने आप में, बुरा नहीं है। यह केवल बुरा है जब यह अंतर्निहित प्रलेखन या कार्यान्वयन को पढ़ने या समझने के बिना कार्यक्षमता पर अनुमान लगाने के लिए एक बैसाखी का उपयोग किया जाता है।

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


2
साइड पॉइंट के लिए +1। मैं कई भाषा सीखने का प्रशंसक हूं, इसलिए आप जानते हैं कि जब कोई भाषा किसी कार्य के लिए अच्छी तरह से फिट नहीं होती है।
माइकल के

3

जब हम एक बच्चे के रूप में बड़े होते हैं, तो हमें यह नहीं बताया जाता है कि हमें बोलने से पहले अंग्रेजी भाषा के जटिल नियमों को समझना चाहिए। हमें यह नहीं बताया गया है कि हमें पूर्वगामी, संयोजनों के उचित उपयोग को समझना चाहिए और वाक्य के टुकड़े से बचना चाहिए। हम करके सीखते हैं। हम सफलता और असफलता से सीखते हैं।

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

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

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


आईडीई का उपयोग करने के लिए यह एक उत्कृष्ट तर्क है। यह सीएस में टूटने लगता है, क्योंकि ऐसा लगता है (मेरे लिए) कि कई सिर्फ 'बोलना सीखने' से परे नहीं जाते हैं। यह स्पष्ट रूप से एक आईडीई छुपाता है सिखाने के लिए पाठ्यक्रम की आवश्यकता होगी।
माइकल के

2

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

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

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


2

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

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

कोडिंग करते समय मैं आईडीई को अमूर्त के दूसरे स्तर के रूप में देखता हूं। अगर मैं जावा लिख ​​रहा हूं तो मुझे आमतौर पर यह समझने की ज़रूरत नहीं है कि यह कैसे काम करता है बायटेककोड। यदि कोई नया प्रोग्रामर Java lib का उपयोग कर रहा है, तो उन्हें यह जानने की आवश्यकता नहीं है कि यदि IDE उनके लिए इसे स्वचालित रूप से जोड़ सकता है तो वे किस पैकेज में हैं। किसी भी स्थिति में यदि निचले स्तर पर बग या समस्या उत्पन्न हो सकती है (जैसे वर्ग नाम क्लैश) जो त्रुटि का कारण बनता है, तो यह डेवलपर के लिए मैन्युअल रूप से देखने का समय है।


0

अन्य अच्छे उत्तरों के बहुत सारे लोग इसे पूर्ण उत्तर नहीं मानते हैं, लेकिन यह नए लोगों के साथ-साथ अनुभवी उपयोगकर्ताओं के लिए भी अच्छा है कि वे अपने निपटान में क्या कार्य करते हैं।

डेल्फी में मैं ctrl-j को हिट कर सकता हूं और मैं हर एक संभव चीज की एक सूची देखूंगा जिसे मैं कभी भी काम करने की उम्मीद कर सकता हूं।

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

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

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


0

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

यह स्कूल में संभव है क्योंकि किसी के पास 'अधिकार' है जो आपको लो-फाई टूल का उपयोग करने के लिए मजबूर करता है। यह हो सकता है बहुत अधिक कठिन एक व्यापार या कारपोरेट वातावरण में प्राप्त करने के लिए।


0

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

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

तो, हाँ, मेरा मानना ​​है कि किसी एक का उपयोग करना ठीक है जब तक आप यह समझने में समय लेते हैं कि क्या चल रहा है। किसी ऑब्जेक्ट कास्ट का उपयोग किए बिना यह समझने के बिना कि आपको यह क्यों करना वास्तव में बुरा है लेकिन, अगर कोई नया डेवलपर देखता है कि आप ऑब्जेक्ट कास्ट का उपयोग कर सकते हैं और फिर यह देखने के लिए कि मुझे कुछ भी गलत क्यों नहीं दिखता है।


0

सीखने से अभ्यास होता है। प्रोग्रामिंग एक बहुत ही निराशाजनक काम हो सकता है जब आपके पास कोई सुराग नहीं होता है कि आप क्या कर सकते हैं और न ही चीजें कैसे काम करती हैं।

यह कहना अव्यावहारिक है कि कोड की एक पंक्ति लिखे बिना प्रोग्रामिंग सिद्धांतों पर कई किताबें पढ़ें; कोई इस तरह से कुछ नहीं सीखता है।

इंटेलीजेंस नए प्रोग्रामर्स को प्रोग्रामिंग, प्रैक्टिस करते रहने और इस तरह सीखने में मदद देने के लिए बहुत मददगार है।

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

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


0

IMO, IDEs आपको अधिक उत्पादक बना देगा। लेकिन शुरुआती लोगों के लिए आम तौर पर आईडीई के साथ प्रोग्रामिंग शुरू करना एक अच्छा विचार नहीं है। नोटपैड ++, नोटपैड, आदि जैसे पाठ संपादक पर्याप्त होंगे।

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

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