प्रतिस्पर्धी प्रोग्रामिंग कैसे शुरू करें? [बन्द है]


17

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

यदि हाँ, तो मुझे कैसे शुरू करना चाहिए और मैं किन वेब साइटों से (जैसे टॉपकोडर ) का उपयोग कर सकता हूं ? मैं स्पष्ट रूप से अभी के लिए बहुत मुश्किल समस्याओं को हल करने में सक्षम नहीं होगा। मुझे क्या करना चाहिए?

यदि नहीं, तो मुझे और क्या करना चाहिए?

मुझे एक और समस्या है कि मैं कोडिंग सीखना चाहता हूं लेकिन बात यह है कि मुझे लगता है कि मैं इसमें बहुत अच्छा नहीं हूं। मुझे क्या करना चाहिए? यह मुझे अंदर से गुस्सा दिलाने जैसा है।

मुझे पता है कि कुछ लोगों को यह जानकारी ज्ञानवर्धक नहीं लग सकती है लेकिन कृपया कम से कम मुझे उत्तर पाने की अनुमति दें।


1
सहयोगी प्रोग्रामिंग के मूल्य को कम मत समझो। हमने अपनी टीम में कुछ समस्याओं को अधिक प्रतिस्पर्धा के कारण देखा है - इंजीनियरिंग / पारस्परिक मुद्दों पर। इसलिए प्रतिस्पर्धात्मक प्रोग्रामिंग आपकी मदद कर सकती है, लेकिन इसलिए एक ओपन सोर्स प्रोजेक्ट में भाग ले सकती है, या दिमाग वाले दोस्तों की तरह एक प्रोजेक्ट विकसित कर सकती है।
गैविन हॉवेन

जवाबों:


19

[सकता है] प्रतिस्पर्धी प्रोग्रामिंग मुझे सुधारने में मदद करता है [गति]?

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

मुझे कैसे शुरू करना चाहिए और TopCoder जैसी साइट से क्या करना चाहिए?

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

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


बहुत बहुत धन्यवाद @dasblinkenlight!
वैभव अग्रवाल

10

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

विभिन्न प्लेटफार्मों और व्यावसायिक डोमेन पर कोड विकसित करने के मेरे 25+ वर्षों में, मुझे कभी ऐसा मामला नहीं मिला जहां मेरे कोड लेखन की गति मेरे कोड की गुणवत्ता और स्थिरता से अधिक महत्वपूर्ण थी।


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

@ LCDkMoose यह अच्छा है, लेकिन क्या आप मुझे यह भी सुझाव दे सकते हैं कि प्रतिस्पर्धात्मक प्रोग्रामिंग कैसे शुरू करें, कहाँ से शुरू करें?
वैभव अग्रवाल

@VahavhavAgarwal प्रोजेक्ट यूलर समस्याएं 1 से 50: जबकि यह प्रतिस्पर्धी नहीं है (जब तक कि आप सबसे हाल की समस्या को हल करने वाले पहले लोगों में से एक होने की कोशिश नहीं कर रहे हैं), यह चुनौतीपूर्ण है और एक कोडिंग प्रतियोगिता में प्रश्न के प्रकार की उम्मीद कर सकते हैं या साक्षात्कार प्रक्रिया।

@ वैभव, मैं प्रतिस्पर्धी प्रोग्रामिंग शुरू करूंगा जिस तरह से मैं किसी अन्य प्रतियोगिता को शुरू करूंगा: अभ्यास, अभ्यास, अभ्यास।
cdkMoose

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