अच्छे प्रोग्रामर बनने के लिए डिबगिंग स्किल्स महत्वपूर्ण हैं?


24

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

EDIT: - पहेलियाँ सामान्य लाल, नीली और लाल-नीली गेंद की तरह होती हैं। कार्यक्रम एक सरणी में निरंतर कश्मीर शून्य खोजने की तरह हैं। डिबगिंग प्रोग्राम एक ऐसी चीज़ है जो उस स्थिति के कारण विफल हो जाती है जिसे> = होना चाहिए, लेकिन इसके बजाय> है। सब कुछ कागज पर है।


13
क्या उसे कार्यक्रम चलाने की अनुमति दी गई थी, या क्या उसे कोड को देखने में त्रुटि का पता लगाना था?
माइकल के

9
आप केवल उतना ही कोड कर सकते हैं जितना आप डिबग कर सकते हैं। मेरी किताब में दो हाथ मिलेंगे।
डेमियन कासियर

3
कुछ लोग दूसरों की तुलना में बेहतर हैं। एक तनावपूर्ण साक्षात्कार के दौरान अक्सर विदेशी कोड के एक टुकड़े में त्रुटि दर्ज करना मुश्किल होता है।
leed25d

6
@Fanatic: केवल तभी जब आप केवल अपने कोड के साथ काम कर रहे हों। अधिकांश डिबगिंग जो मैं काम करता हूं, अन्य लोगों की त्रुटियों को खोद रहा है।
मेसन व्हीलर

3
@Manoj R, क्या आप सुनिश्चित हैं कि आप उसी समस्या को ढूंढ सकते हैं जो एक ही समय में दी गई हो? क्या आपको यकीन है कि सिर्फ इसलिए कि आवेदक को 20 मिनट में कागज पर कोई समस्या नहीं आती है, कि वह उसके साथ Google (हाँ, कमबख्त Google) पर अच्छा नहीं हो पाएगा और कुछ हफ़्ते का अभ्यास करेगा?
जॉब

जवाबों:


37

हाँ, यह बहुत महत्वपूर्ण है

उस विशेष उम्मीदवार के बारे में, यह संभव है कि s / वह कोड-बेस x के साथ इसे डीबग करने के लिए पर्याप्त रूप से परिचित नहीं था।

एक अच्छी समस्या सॉल्वर को डिबग करने में सक्षम होना चाहिए, क्योंकि आमतौर पर आवश्यक सभी के लिए एक बहुत ही तार्किक तरीका / दृष्टिकोण होना चाहिए।


1
तब प्रोग्रामिंग में कोई अन्य कौशल, डिबगिंग अनुभव के साथ आता है और प्रतिभा के साथ कम होता है।
पीटर बी

24

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

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

जब तक आपको नौकरी नहीं मिलती है, तब तक आप थ्योरी प्रश्नों के उत्तर देने में पूरे दिन खर्च करते हैं, आपको किसी ऐसे व्यक्ति की आवश्यकता होती है जो जो भी कौशल प्राप्त कर सकता है, उसे लागू कर सके।

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

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


2
+1 के लिए "खुद से पूछें कि क्या यह डिबगिंग की क्षमता का उचित परीक्षण था" - ऐसा नहीं लगता था। एक निष्पक्ष परीक्षण में डिबगर के साथ रन करने योग्य कोड शामिल होता है, अर्थात उन्हें एक प्राकृतिक, सामान्य कार्य वातावरण में रखा जाता है (यह विचार करते हुए कि वे शायद ही कभी काम कर रहे डिबगर होंगे)।
doppelgreener 6

11

मुख्य काम पर रखने का नियम - किसी भी संदेह में नहीं।

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


7
मैंने अपने वर्षों में बहुत सारे लोगों को काम पर रखा है, और लगभग हर "शायद" उम्मीदवार को पछतावा है जो मैंने काम पर रखा है।
जॉनफक्स

10

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

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


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

7

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


5

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

उदाहरण के लिए, एक अजीब बग के बारे में सोचें जहां एक जावा प्रोग्राम इंटरैक्टिव मोड में कंसोल पर ठीक काम करता है, लेकिन जब आप एक ही इनपुट के लिए यूनिक्स पाइप का उपयोग करने का प्रयास करते हैं तो विफल हो जाता है। यदि आपने पहले इस समस्या का सामना किया है, तो आप यह सुनिश्चित करने के लिए जांच कर सकते हैं कि new Scanner(System.in)केवल एक बार कॉल किया जाता है; बग जिसे पाइप से खपाने पर यह बफर खा जाता है, लेकिन जाहिर है कि इंटरैक्टिव मोड में नहीं है। मैं एक और वरिष्ठ प्रोग्रामर से अपेक्षा करूंगा कि वह इस बग की पहचान तेजी से करे। शायद इसलिए कि वे इसे पहले अनुभव कर चुके हैं, या क्योंकि उनके पास अतीत में बफरिंग के साथ अन्य मुद्दे हैं।

पहेली को हल करने और नए कोड लिखने के लिए, जबकि अनुभव महत्वपूर्ण है, यह एक ऐसी जगह है जहां एक जूनियर-स्तरीय प्रोग्रामर शायद एक अधिक वरिष्ठ प्रोग्रामर के रूप में या तो बेहतर प्रदर्शन कर सकता है या उससे भी बेहतर कर सकता है। यही है, बुद्धि और कौशल का एक बड़ा प्रभाव हो सकता है, जो अनुभव से स्वतंत्र है।

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

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


इसलिए डिबगिंग एक ऐसी चीज है जो अभ्यास से आती है, और सीखी जा सकती है, और उम्मीदवारों का चयन करते समय उन्हें अधिक वजन नहीं दिया जाना चाहिए।
मनोज आर

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

5

यह आपके पर्यावरण पर निर्भर करता है। यदि आप पूरे दिन सोडोकू और अन्य पहेलियाँ खेलते हैं, तो शायद यह एक अच्छा उम्मीदवार होगा।

हालाँकि, कभी-कभी आपके कोड में कीड़े होते हैं, या यह हमेशा वैसा ही प्रदर्शन नहीं करता है जैसा कि मुझे लगता है कि मेरा सुझाव है कि आपको समस्या निवारण में कोई अच्छा मिलेगा।

क्या आप की जरूरत है के लिए किराया, क्या एक प्रोग्रामर होना चाहिए के कुछ आदर्श नहीं है।


3

अन्य गुणों के साथ एक प्रोग्रामर को अच्छे डिबगिंग कौशल की आवश्यकता होनी चाहिए?

हाँ।

डिबगिंग कोड समस्या को हल करने का एक हिस्सा है। मैंने कभी भी एक डेवलपर का सामना नहीं किया है, जिसने सही कोड और शून्य बग लिखे हैं। एक डेवलपर या तो अपने कोड को डिबग कर रहा होगा, या किसी और का। यह एक आवश्यकता है।

क्या मुझे नौकरी के लिए उस पर विचार करना चाहिए?

शायद, यह निर्भर करता है।

यदि साक्षात्कार आवेदक साक्षात्कार में अन्य सभी पहेलियाँ और कार्यक्रमों को पूरा करने में सक्षम था, तो एक साक्षात्कार में एक कार्यक्रम को डिबग करने में सक्षम नहीं होना चाहिए। यह वास्तव में साक्षात्कार की गहराई और सांस पर निर्भर करता है।

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


2
+1 डिबग को दोहराना आवश्यक है लेकिन साक्षात्कार के दौरान डील-ब्रेकर नहीं।
गौरव

3

एक प्रोग्रामर को अच्छे डिबगिंग कौशल की आवश्यकता होनी चाहिए?

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

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

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

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


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

2

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

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


1

प्रोग्रामिंग समस्या-समाधान का एक अच्छा हिस्सा है, और एक समस्या को हल करने के लिए आपको केवल समस्या या असंगतताओं को नहीं जानना चाहिए। डिबगिंग कोर-समस्या की पहचान करने की कला है।

  • कोर-समस्या की पहचान करें
  • बेहतर प्रवाह की कल्पना करने में सक्षम

और बहुत सारे।


1

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

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


1

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

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

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


1

किसी भी नौकरी में 4 से 5 प्रमुख कौशल हैं और प्रोग्रामिंग अलग नहीं है। पेशेवर स्तर पर आपको सभी प्रमुख मौलिक कौशल में अच्छा होना चाहिए। यदि आपके पास 5 में से 4 है तो भी यह आपको वापस पकड़ लेगा।

क्या आप एक ऐसे विक्रेता की कल्पना कर सकते हैं जो ग्राहकों को पेश कर सके, समझा सके, स्पष्ट कर सके, लेकिन सौदा बंद कर सके? वे वहाँ से बाहर हैं और आप उन्हें अपनी बिक्री टीम पर नहीं चाहते हैं।

डिबगिंग निश्चित रूप से एक मुख्य कौशल है जो एक प्रोग्रामर के बिना नहीं हो सकता है।


0

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


0

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

यह उन बग्स (कमजोरियों) को दूर करने की प्रक्रिया है जो कंप्यूटर एप्लिकेशन / सिस्टम में अंतर्निहित हैं। यदि ऐसा नहीं किया जाता है तो हैकर्स बग का फायदा उठा सकते हैं और कई प्रकार की दुर्भावनापूर्ण गतिविधियां कर सकते हैं:

1) वे डेवलपर्स और विक्रेताओं के लिए राजस्व, व्यवसाय और प्रतिष्ठा के नुकसान के लिए अग्रणी जनता के लिए भेद्यता को उजागर कर सकते हैं।

2) कीड़े कमजोर सिस्टमों की खोज करते हैं जो वे शोषण कर सकते हैं और इस प्रकार, उन सर्वरों पर खुद को कॉपी कर सकते हैं। जैसे। जनवरी 2003 में, स्लैमर वर्म ने MS SQL सर्वर में भेद्यता का लाभ उठाया।

3) जहां कीड़े का उल्लेख किया गया है, हम वायरस को कैसे भूल सकते हैं। वायरस को अपने डेवलपर्स द्वारा हारने भी दिया जाता है जो कि कार्यक्रम में मौजूद कीड़े का लाभ उठाने के लिए अभद्र प्रदर्शन के प्राथमिक उद्देश्य के लिए लेते हैं ...

4) और अगर कार्यक्रमों को ठीक से डिबग नहीं किया जाता है, तो उपभोक्ताओं को अपने पैसे के लायक नहीं होने पर कभी भी बहुत कुछ नहीं रखा जाएगा। उस स्थिति में आपको गंदे काम करने के लिए किसी हैकर की भी जरूरत नहीं है- आप भले ही अच्छे राज जनता पर भरोसा करें।

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