The latest tech news about the world's best (and sometimes worst) hardware, apps, and much more. From top companies like PC and Internet to tiny startups vying for your attention, ANB Tech has the latest in what matters in technology daily.

- Advertisement -

सरल 4 स्टेप मेथड के साथ कोडिंग प्रॉब्लम्स को कैसे सॉल्व करें?

किसी समस्या के समाधान को विकसित करने के लिए एक बेसिक प्रक्रिया जाने! किसी समस्या को हल करने के लिए कंप्यूटर को प्रयोग करने के लिए इस अभियान में कुछ भी यूनिक नहीं है!

0 17,337

- Advertisement -

मैंने Technical Education में एक अंतर देखा है, जो अजीब तरह से एक स्किल के साथ मेल खाता है! सभी सॉफ्टवेयर डेवलपर्स से उम्मीद की जाती है कि कोडिंग प्रॉब्लम्स को सॉल्व करने की प्रक्रिया! मैंने अपने सॉफ्टवेयर कैरियर की शुरुआत ऑनलाइन ट्यूटोरियल और कोडिंग bootcamp के Combination से की थी, लेकिन मैंने Academic computer science programs के बारे में ऐसे ही शिकायतें सुनी है।

मैंने यह नहीं कर रहा हूं कि कोई भी औपचारिक रूप से इन स्किल्स को नहीं सिखाता है! लेकिन डेवलपर्स के लिए उन्हें अपने दम पर समझना अधिक आम है! कई interviewee  (And controversial) भागों में technology interviewee , जैसे कि व्हाइटबोर्ड प्रैक्टिस और “Brentheser” प्रश्न, इन स्किल का परीक्षण करने का प्रयास है।

इसलिए, जब भी मैं शुरुआती लोगों को कोडिंग सिखाने में मदद कर रहा हूं, तो मैं उन्हें उसी तरह से हल करने की कोशिश कर रहा हूं जिस तरह से मैं अपनी नौकरी पर हूं! मैं यहां उन स्टेप्स को स्पष्ट करना चाहता हूं, दोनों सॉफ्टवेयर के लिए, जो इस पूरे “Coding” चीज से Overwhelmed है, और यह देखने के लिए की यह अन्य अनुभवी डेवलपर्स के उपयोग की प्रक्रिया की तुलना कैसे करता है।

सामान्य तौर पर, मेरा मानना है कि Software development problem को हल करने की प्रक्रिया को 4 स्टेप्स में विभाजित किया जा सकता है:

  • समस्या को पहचानो
  • जानकारी इकट्ठा करना
  • इंटरमीडिएट संभावित समाधान
  • अपने सॉल्यूशन का परीक्षण करें

- Advertisement -

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

ट्विटर पर कैसे एक प्रभावशाली व्यक्ति कैसे बनें?

आपके पास कोडिंग प्रॉब्लम्स को सॉल्व Solve करने के लिए Step-By-Step प्लान है।

ध्यान दें कि जब मैं एक सॉफ्टवेयर डेवलपमेंट प्रॉब्लम के बारे में बात कर सकता हूं, तो मेरा मतलब किसी भी साइज और दायरे की समस्या है:

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

यह कुछ मामलों से दूसरों की तुलना में आसान है! कभी-कभी आपको एक सीधी Error मैसेज मिलता है और आपको एहसास होता है कि आपने एक साधारण गलती की है: एक सिंटैक्स Error, एक पैकेज में Import करने की अपेक्षा करते हुए, आपको फंक्शन में आवश्यक सभी चर पास करना भूल जाते हैं।

दूसरी ओर, कभी-कभी Error पूरी तरह से चौंकाने वाली होती है! अक्सर एक Bug अपने आप को चमकती Red lights के साथ Presented नहीं करेगा – प्रोग्राम सिर्फ वह नहीं करता है जो आप इसे करना चाहते हैं।

- Advertisement -

जब भी ऐसा होता है, तो आप कोडिंग प्रॉब्लम्स को सॉल्व करने की पूरी कोशिश कर सकते हैं! अपने आप से निम्नलिखित प्रश्न पूछें (और शायद उत्तर भी लिख दे):

  • मैं क्या करने की कोशिश कर रहा हूं?
  • मैंने पहले ही क्या किया है?
  • मुझे क्या लगता है कि प्रोग्राम क्या करना चाहिए?
  • यह वास्तव में क्या कर रहा है?

कोडिंग प्रॉब्लम्स को सॉल्व करने की एक मेथड

यह विधि George Polya की किताब How To Solve It से है! यह बेसिक रूप से 1945 में निकला और इसकी 10 लाख से अधिक Copies बिंकी।

चलों

उनकी समस्या को सुलझाने की विधि का उपयोग कई प्रोग्रामर्स द्वारा किया गया है! कंप्यूटर साइंस प्रोफेसरों ( Udacity Intro to CS Course taught by Professor David Evans) से लेकर Colt steel जैसे आधुनिक वेब डेवलपमेंट शिक्षकों तक।

चलो Four-steps प्रॉब्लम्स समाधान  पद्धति का उपयोग करके एक सरल कोडिंग प्रॉब्लम्स को सॉल्व करने के माध्यम से चलते हैं! यह हमें सिखाने की विधि को देखने की अनुमति देता है! हम अपनी पसंद की भाषा के रूप में जावास्क्रिप्ट का उपयोग करेंगे! यहां समस्या है:

- Advertisement -

एक फंक्शन बनाएं जो दो संख्याओं को एक साथ जोड़ता है और उस Values को लौटता है।

कोडिंग प्रॉब्लम्स को सॉल्व करने की मेथड के 4 स्टेप हैं:

  • समस्या को समझें।
  • एक प्लान तैयार करें।
  • प्लान को आगे बढ़ाएं।
  • पीछे देखो।

चलिए शुरुआत एक स्टेप से करते हैं।

स्टेप 1: समस्या को समझें।

हालांकि, इस रिक्वेस्ट का विरोध करने का प्रयास करें! सुनिश्चित करें कि आप वास्तव में प्रॉब्लम्स को समझने से पहले से हल करने के साथ शुरू करते हैं।

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

- Advertisement -

हालांकि, इस रिक्वेस्ट का विरोध करने का प्रयास करें! सुनिश्चित करें कि आप वास्तव में प्रॉब्लम्स को समझने से पहले से हल करने के साथ शुरू करते हैं।

प्रॉब्लम के माध्यम से पढ़ें! यदि आप एक interviewee में हैं, तो आप प्रॉब्लम्स को जोर से पढ़ सकते हैं यदि यह आपको धीमा करने में मदद करता है।

जैसे कि आप प्रॉब्लम के माध्यम से पढ़ते हैं! इसके किसी भी हिस्से को स्पष्ट करें जिसे आप नहीं समझते है! यदि आप एक Interviewee में हैं, तो आप प्रॉब्लम्स के डिस्क्रिप्शन के बारे में अपने Interviewer से सवाल पूछकर ऐसे कर सकते हैं! यदि आप अपने दम पर हैं, तो उस प्रश्न के माध्यम से और / या Google parts के बारे में सोचे जो आप नहीं समझ सकते हैं।

यह पहला स्टेप महत्वपूर्ण है क्योंकि हम अक्सर प्रॉब्लम्स को पूरी तरह से समझने में समय नहीं लेते हैं! जब आप प्रॉब्लम्स को पूरी तरह से नहीं समझते हैं, तो आपको इसे हल करने में बहुत कठिन समय होगा।

प्रॉब्लम्स को बेहतर ढंग से समझने में आपकी Help करने के लिए, खुद से पूछें:

इनपुट्स क्या है?

इस प्रॉब्लम में किस प्रकार के इनपुट जाएंगे? इस उदाहरण में Input logic है कि हमारा कार्य करेगा।

- Advertisement -

अभी तक प्रॉब्लम डिस्क्रिप्शन पढ़ने से, हम जानते हैं कि इनपुट नंबर होंगे! लेकिन Input क्या होंगे, इसके बारे में और अधिक विशिष्ट होने के लिए, हम पूछ सकते हैं:

  • क्या Input हमेशा तो नंबर के होंगे? यदि हमारे फंक्शन को Input तीन संख्या के रूप में प्राप्त होता है तो क्या होना चाहिए।
  • यहां हम Interviewer से स्पष्टीकरण के लिए पूछ सकते हैं या समस्या के Description को आगे देख सकते हैं।

कोडिंग प्रॉब्लम्स में यह कहते हुए एक Note हो सकता है! “आपको केवल फंक्शन में दो Input की उम्मीद करनी चाहिए!” यदि हां, तो आप आगे बढ़ना जानते हैं! आप अधिक Specific प्राप्त कर सकते हैं, जैसे कि आपको पता हो कि आपको किस प्रकार Input received करने की आवश्यकता है! इस पर अधिक प्रश्न पूछने जा सकता है।

क्या Input हमेशा नंबर होंगे? यदि हमें “A” और “B” Input प्राप्त होते हैं तो हमारा कार्य क्या करना चाहिए? यह क्लियर करें कि क्या हमारा कार्य हमेशा Number में होगा या नहीं।

वैकल्पिक रूप से, एक Code Comment में संभावित Input को लिख सकते हैं ताकि वे समझ सके कि वे क्या दिखेंगे:

//inputs:2, 4

अगला, पूछें:

- Advertisement -

आउटपुट क्या है?

यह Summer क्या लौटेगा? इस स्थिति में, Output एक Number होगा जो दो नंबर Input का रिजल्ट है! सुनिश्चित करें कि आप समझते हैं कि आपके Output क्या होंगे।

कुछ उदाहरण बनाएं।

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

एक सरल उदाहरण या Potential input और Output के दो से शुरू करें! आइए हमारे Additional function पर लौटते हैं।

चलो उदाहरण Input क्या है? उदाहरण Input हो सकता है:

//add (2,3)

- Advertisement -

इसके लिए Output क्या है? उदाहरण Output लिखने के लिए, हम लिख सकते हैं:

//add (2,3) --->5

यह इंगित करता है कि हमारा फंक्शन 2 और 3 के Input में ले जाएगा और 5 को इसके Output के रूप में लौटाएगा।

जटिल उदहारण बनाएँ

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

उदाहरण के लिए, यदि संख्या के बजाय हमारे Input Strings है तो हमें क्या करना चाहिए? क्या होगा यदि हमारे पास Input के 2 Strings हैं, उदाहरण के लिए, (‘a’, ‘b’) जोड़ें?

आपका इंटरव्यूअर संभवत: आपको एक Error मैसेज लौटाने के लिए कह सकता है! यदि कोई Input हैं जो संख्या नहीं है! यदि हां, तो आप इस मामले को संभालने के लिए Code comment जोड़ सकते हैं! यह आपको यह याद रखने में मदद करता है कि आपको यह करने की आवश्यकता है।

- Advertisement -

/return error if inputs are not numbers

आपका साक्षात्कारकर्ता आपको यह मानने के लिए कह भी सकता है कि आपके Input हमेशा नंबर होंगे, इस स्थिति में आपको इस विशेष Input Edge मामले को संभालने के लिए कोई अतिरिक्त कोड लिखने की आवश्यकता नहीं है।

यदि आपके पास एक interviewer नहीं है और आप इस समस्या को हल कर रहे हैं, तो समस्या यह कह सकती है कि जब आप Invalid input दर्ज करते हैं तो क्या होता है।

उदाहरण के लिए, कुछ समस्याएं कहेंगी, “यदि Zero input है, तो Undefined लौटें!” इस तरह के मामलों के लिए, आप वैकल्पिक रूप से एक कॉमेंट लिख सकते हैं।

// check if there are no inputs.

// if no inputs, return undefined.

हमारे उद्देश्यों के लिए, हम मानेंगे कि हमारे इनपुट हमेशा नंबर होंगे! लेकिन आमतौर पर किनारे के मामलों के बारे में सोचना अच्छा है।

- Advertisement -

कंप्यूटर साइंस के प्रोसेसर Evans लिखते हैं कि डेवलपर्स क्या Creative code कहते हैं! इसके बारे में सोचे कि क्या गलत हो सकता है और आपका कोड Potential error से कैसे बचाव कर सकता है।

QWERTY कीबोर्ड बटन के बजाय ABCD के क्रम मे क्यों नहीं होते? क्या कोई कारण है या गलती?

स्टेप 2 पर जाने से पहले, हम स्टेप 1 को संक्षिप्त करते हैं, समस्या को समझते हैं:

  • समस्या के माध्यम से पढ़ें।
  • क्या इनपुट है?
  • क्या है आउटपुट?
  • सरल उदाहरण बनाएं, अधिक जटिल बनाएं।

स्टेप 2: समस्या के समाधान के लिए एक प्लान तैयार करें।

इस प्लान को तैयार करे कि आप समस्या का समाधान कैसे करेंगे! जैसे कि आप एक प्लान तैयार करते हैं, इसे Proxy Code में लिखें।

इसके बाद, इस प्लान को तैयार करे कि आप समस्या का समाधान कैसे करेंगे! जैसे कि आप एक प्लान तैयार करते हैं, इसे Proxy Code में लिखें।

- Advertisement -

Proxy Code एक एल्गोरिथ्म में स्टेप्स का एक Plain language description हैं! दूसरे शब्दों में, समस्या को कैसे हल किया जाए, इसके लिए आपका Pseudocode आपकी step-by-step प्लान है।

समस्या को हल करने के लिए, आपको जो Step उठाने की आवश्यकता है, उसे लिखें! अधिक जटिल प्रॉब्लम के लिए, आपके पास अधिक स्टेप होंगे! इस समस्या के लिए, आप लिख सकते हैं:

// create a sum variable.

// add the first input to the second input using the addition operator.

// store value of both inputs into sum variable.

- Advertisement -

अधिक जटिल प्रॉब्लम्स के लिए, प्रोफ़ेसर Evans ने नोट किया, “Systematically consider how the human solves the problem.” यही है, यह भूल जाएं कि आपका Code एक पल के लिए कोडिंग प्रॉब्लम्स को कैसे सॉल्व कर सकता है, और सोचे कि आप इसे मानव के रूप में कैसे हल करेंगे! इससे आपको स्टेप्स को अधिक स्पष्ट रूप से देखने में मदद मिल सकती है।

स्टेप 3: प्लान को पूरा करें (समस्या का समाधान करें!)

प्रॉब्लम को सुलझाने की रणनीति में अगले स्टेप कोडिंग प्रॉब्लम्स को सॉल्व करना है! अपने गाइड के रूप में अपने Proxy Code का उपयोग करते हुए, अपना वास्तविक कोड लिखें।

प्रॉब्लम को सुलझाने की रणनीति में अगले स्टेप कोडिंग प्रॉब्लम्स को सॉल्व करना है! अपने गाइड के रूप में अपने Proxy Code का उपयोग करते हुए, अपना वास्तविक कोड लिखें।

प्रोफेसर Evans एक सरल, Mechanical solution पर ध्यान केंद्रित करने का सुझाव देते हैं! आपका सॉल्यूशन जितना शान और सरल होगा, उतना ही संभव है कि आप ही से सही ढंग से प्रोग्राम कर सकें।

हमारे Proxy Code को लेते हुए, अब हम इसे लिख सकते हैं;

Function add(a, b) { const sum = a + b; return sum; }

- Advertisement -

प्रोफेसर Evans कहते हैं, समय से पहले Customization न करना याद रखें! यही है, आपको यह कहने के लिए लुभाया जा सकता है,”रुको, मै यह कर रहा हूं और Disabled code होने जा रहा है।

सबसे पहले, बस अपना सरल, Mechanical solution निकालें।

क्या होगा यदि आप पूरी कोडिंग प्रॉब्लम्स को सॉल्व नहीं कर सकते हैं? क्या होगा अगर इसका एक हिस्सा है जो आपको अभी भी नहीं पता है कि कैसे सॉल्व करना है?

Colt Steele यहां बहुत सलाह देता है: यदि आप प्रॉब्लम्स का हिस्सा सॉल्व नहीं कर सकते हैं, तो उस कठिन भाग को अनदेखा करे जो आपको ट्रिप कर रहा है! इसके बजाय, बाकी सब पर ध्यान केंद्रित करे जो आप लिखना शुरू कर सकते हैं।

Temporarily उस प्रॉब्लम के उस कठिन हिस्से को अनदेखा करें जिसे आप अन्य भागों से काफी समझते हैं और लिखते नहीं हैं! एक बार जब यह किया जाता है, तो कठिन भाग पर वापस आ जाओ।

यह आपको कम से कम कुछ प्रॉब्लम को समाप्त करने की अनुमति देता है! और अक्सर, आपको एहसास होगा कि प्रॉब्लम कि उस कठिन हिस्से से कैसे निपटना है! जब आप इसे वापस आते हैं।

फ्री ईमेल प्रोवाइडर जो जीमेल और याहू मेल से बेहतर हैं!

- Advertisement -

स्टेप 4: आपने जो किया है उस पर पीछे मुड़कर देखें

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

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

जैसा कि आप अपने काम को देखते हैं, यहां कुछ प्रश्न दिए गए हैं! कोल स्टील सुझाव देता है की आप आप अपने आप से पूछे की आप अपने समाधान में सुधार कैसे कर सकते हैं:

  • क्या आप रिजल्ट को अलग तरह से प्राप्त कर सकते हैं! अन्य कौन से दृष्टिकोण है जो Behavior हैं।
  • इसे एक नजर में समझ सकते हैं? क्या इसका कोई मतलब निकलता है?
  • क्या किसी अन्य प्रॉब्लम के लिए रिजल्ट या विधि का उपयोग कर सकते हैं।
  • अपने समाधान के परफॉर्मेंस में सुधार कर सकते हैं।
  • रिफ्लेक्टर करने के अन्य तरीकों के बारे में सोच सकते हैं?
  • अन्य लोगों ने इस समस्या को कैसे सॉल्व किया है?

अपने कोड को अधिक संक्षिप्त बनाने के लिए हम अपनी प्रॉब्लम को दूर कर सकते हैं: अपने Variable को हटाकर Vested returns का उपयोग करते हुए:

function add(a,b) { return a + b; }

- Advertisement -

स्टेप 4 के साथ, आपके प्रॉब्लम कभी समाप्त नहीं होंगे! यहां तक की महान डेवलपर्स अभी भी कोड लिखते हैं जिसे वे बाद में देखते हैं और बदलना चाहते हैं! ये ऐसे गाइडलाइन सवाल है जो आपकी मदद कर सकते हैं।

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

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

Wrapping Up

इस पोस्ट में, हमने कोडिंग प्रॉब्लम्स को सॉल्व करने के लिए 4 स्टेप की समस्या सुलझाने की रणनीति बनाई है।

आइए उनकी रिव्यू यहां करें:

  1. प्रॉब्लम को समझें।
  2. आप इसे कैसे सॉल्व करेंगे, इसके लिए Step-by-Step प्लान बनाएं।
  3. प्लान को पूरा करें और Actual code लिखें।
  4. पीछे मुड़कर देखें और संभवतः अपने समाधान को रिफ्लेक्टर करें यदि यह बेहतर हो सकता है।

इस समस्या को सुलझाने के तरीके का अभ्यास करने से मुझे अपने Technical interviews में और डेवलपर के रूप में मेरी नौकरी में काफी मदद मिली।

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

आगे क्या होगा?

ये वे स्टेप है जो मैं कोडिंग करते समय प्रॉब्लम्स को सॉल्व करने के लिए उठाता हूं और जब मैं Students और Junior डेवलपर्स को प्रोवाइड करने की कोशिश करता हूं! जब मैं उन्हें एक मुद्दे के साथ मदद कर रहा हूं! मैं अधिक Coding education program देखना चाहता हूं – चाहे Academic computer science में, बूटकैंप्स, या सेल्फ बुक ट्यूटोरियल – इस प्रक्रिया के लिए अपने स्वयं के निर्देश प्रोवाइड करें।

सटीक प्रक्रिया व्यक्ति, संगठन और उस कार्य पर निर्भर करेगी जो वे कर रहे हैं – लेकिन समस्या को हल करने के बारे में जानना एक प्रोग्रामर होने के लिए एक Basic skills है! यदि आप स्टूडेंट्स या कम अनुभवी डेवलपर्स के साथ काम करते हैं, तो देखा कि आप इस स्किल को विकसित करने में मदद करने के लिए क्या कर सकते हैं।

- Advertisement -

Subscribe to our newsletter
Sign up here to get the latest news, updates and special offers delivered directly to your inbox.
You can unsubscribe at any time

- Advertisement -

- Advertisement -

Leave a comment