सिंटेक्स भूल जाने वाले प्रोग्रामर


17

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


1
कैसे "सरल" पर निर्भर करता है। कुछ उदाहरण / पृष्ठभूमि उपयोगी होंगे। यह उस भाषा / वातावरण के साथ असंगतता भी हो सकती है जो वे प्रोग्रामिंग कर रहे हैं।
रवांग

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

C ++ में, मुझे आमतौर पर पॉइंटर-टू-फ़ंक्शंस (सदस्य या नहीं) के लिए सिंटैक्स को देखना होगा क्योंकि मैं इसे इतनी बार उपयोग नहीं करता हूं ... शायद यह कि कभी-कभी सिंटैक्स केवल अजीब होता है ?
Matthieu M.

जवाबों:


25

प्रोग्रामिंग पर मेरा दर्शन यह है कि यह "मन की स्थिति" है और बाकी "बस वाक्यविन्यास है।" (अर्थात महत्वपूर्ण नहीं)

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


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

@ केविन - बिल्कुल - लेकिन आप किसी की धारिता का भी अंदाजा लगा सकते हैं कि वे कितनी बार इस तरह के संदर्भ देते हैं। हम में से ज्यादातर लोग समय-समय पर उनका उपयोग करते हैं, लेकिन आप किसी ऐसे व्यक्ति से सवाल करेंगे, जिसने कहा कि वे एक भाषा बोल सकते हैं, लेकिन एक शब्दकोश को लगातार संदर्भित करने की आवश्यकता महसूस करते हैं।
जॉन हॉपकिंस 14

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

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

28

यह इस बात पर निर्भर करता है कि आपका क्या मतलब है, लेकिन संक्षिप्त जवाब हां है।

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

असली चिंता यह होनी चाहिए कि क्या कोई प्रोग्रामर सिंटैक्स के हेड्स या टेल्स को आईडीई की मदद से भी नहीं बना सकता है। यदि व्यक्ति यह नहीं जानता है कि अर्ध-बृहदान्त्र क्या है, या उन फैंसी घुंघराले ब्रेसिज़ क्या हैं, तो उन्हें करने के लिए अधिक अध्ययन करना होगा।


8
हे, स्विच स्टेटमेंट का सटीक वाक्यविन्यास आमतौर पर मुझे दु: ख देता है।
जॉर्ज मैरियन

यही कारण है कि जब मैं रूबी पसंद करता हूं, तब भी मैं पायथन स्क्रिप्टिंग से चिपकता हूं। मुझे काम के दौरान पायथन में कोड करना होगा, और आगे-पीछे बहुत भ्रामक होगा।
लीनीप्रोग्रामर्स

स्विच स्टेटमेंट सिंटैक्स के लिए +1 - किसी कारण के लिए इसका मायावी
billy.bob

5
उन भाषाओं के असंख्य का उल्लेख नहीं करना जो किसी को पता है और समय पर वाक्य रचना एक साथ मिल सकती है।
जोसफ

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

10

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


+1। मैं अपने आप को C ++ में धाराप्रवाह मानता हूं और मैं रोजाना समारोह के नाम और तर्क देखता हूं । मैं std::stringउदाहरण के लिए, हर सदस्य को याद करने वाला नहीं हूं ।
माइकल क्रिस्टोफिक

8

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


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

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

5

मैं १५ वर्षों से C ++ लिख रहा हूं, लेकिन मैं अभी भी इसके कुछ आर्कषक वाक्य-विन्यास कोनों को नहीं जानता।
आप किसी फ़ंक्शन टेम्पलेट को फिर से स्पष्ट रूप से तुरंत कैसे करते हैं? और एक टेम्पलेट-टेम्प्लेट के तर्क को आंशिक रूप से विशेषज्ञ करने के लिए सिंटैक्स क्या है? और मुझे एक फ़ंक्शन घोषित करने के बारे में शुरू न करें जो पॉइंटर्स की एक सरणी के लिए एक पॉइंटर लौटाता है जो फ़ंक्शन को इंगित करता है ...

मुझे संदेह है कि इस दुनिया में सबसे अधिक एक या दो दर्जन लोग हैं (अगर वहां कोई भी हैं) जो वास्तव में C ++ के सभी वाक्यविन्यास को दिल से जानते हैं । और ये सभी संभवतः C ++ कंपाइलर फ्रंट लिखकर अपना पैसा कमा रहे हैं।


4

मैं यहां "सिंटैक्स" के बारे में जानने के लिए उत्सुक हूं।

मेरा संदेह (और डर) यह है कि हम इस बारे में बात नहीं कर रहे हैं कि कॉल क्या पैरामीटर लेता है (क्योंकि अधिकांश आईडीई आपको वहां संकेत देंगे ताकि आप उन्हें Google नहीं करेंगे) लेकिन वास्तविक "एक्स कैसे करें" टाइप चीजें।

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

लेकिन Google को कुछ चाहिए? मेरे लिए यह आमतौर पर वाक्य रचना नहीं है, यह सिर्फ एक ऐसी चीज है जिसे आप या तो वास्तव में नहीं जानते हैं या केवल गुजर-बसर से परिचित हैं।

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

मेरे लिए जब तक आप कुछ अपेक्षाकृत असामान्य नहीं कर रहे हैं, या शायद आप कुछ अलग करने की अवधि के बाद भाषा के साथ खिलवाड़ कर रहे हैं, यदि आप किसी भाषा को "जानने" का दावा करते हैं, तो आपको 10% से अधिक सामान नहीं चाहिए। अधिक से अधिक, और यह वास्तव में काफी विशिष्ट सामान होना चाहिए।

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

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


नीचे वोट के लिए टिप्पणी? क्या वास्तव में असहमत होने में दिलचस्पी है।
जॉन हॉपकिंस

+1 - अच्छी कॉल परsyntax != api
जेरेमी हीलर

3

मेरी राय यह है कि इसका वाक्य-विन्यास नहीं है, जो महत्वपूर्ण है लेकिन किसी समस्या को हल करने या लक्ष्य प्राप्त करने की दिशा में आपका तर्क यदि आप कई भाषाओं पर काम करना चाहते हैं तो यह स्वाभाविक है कि कभी-कभी आपको सटीक वाक्यविन्यास याद नहीं होता है।


0

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

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