CodeGym /Java Blog /यादृच्छिक /एक खेळ म्हणून कोडिंग. स्पर्धात्मक प्रोग्रामिंगसाठी एक लहा...
John Squirrels
पातळी 41
San Francisco

एक खेळ म्हणून कोडिंग. स्पर्धात्मक प्रोग्रामिंगसाठी एक लहान मार्गदर्शक

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
आम्ही, मानव, आम्ही जे काही करतो त्यामध्ये एकमेकांशी स्पर्धा करण्याची प्रवृत्ती आहे आणि हे कदाचित एक प्रजाती म्हणून आमच्या यशाचे मुख्य कारण आहे. प्रोग्रामिंग अपवाद नाही. कोडिंग ही एक जटिल, बहुस्तरीय आणि मागणी करणारी शिस्त असल्यामुळे, कोडर सर्वात सक्षम कोण आहे हे शोधण्यासाठी एकमेकांशी स्पर्धा करण्यास उत्सुक असतात यात आश्चर्य वाटायला नको. एक खेळ म्हणून कोडिंग.  स्पर्धात्मक प्रोग्रामिंगसाठी एक लहान मार्गदर्शक - १

स्पर्धात्मक प्रोग्रामिंग म्हणजे काय?

स्पर्धात्मक प्रोग्रामिंग हा एक प्रकारचा मनाचा खेळ आहे ज्यामध्ये सहभागींना त्यांच्या प्रोग्रामिंगमधील कौशल्ये आणि अल्गोरिदम आणि डेटा स्ट्रक्चर्स सारख्या सीएस विषयांचे ज्ञान वापरून कोडिंग समस्या सोडवल्या जातात.. अशा स्पर्धांमधील सहभागी, ज्यांना स्पोर्ट प्रोग्रामर देखील म्हणतात, त्यांना विविध निर्बंधांनुसार आणि प्रदान केलेल्या वैशिष्ट्यांनुसार कोड लिहिणे आवश्यक आहे. जिंकण्यासाठी, स्पोर्ट प्रोग्रामरने कोड आणणे आवश्यक आहे जे प्रदान केलेल्या कार्याचे समाधान असेल. विजेते घोषित केले जातात जसे की घालवलेला वेळ, अंतिम कोडची गुणवत्ता, अंमलबजावणीची वेळ, कार्यक्रमाचा आकार इ. अनेक मोठ्या टेक कंपन्या, जसे की Google, Facebook, Amazon, Microsoft आणि इतर , स्पर्धात्मक प्रोग्रामिंगला समर्थन द्या आणि स्पर्धा आयोजित करण्यात सहभागी व्हा, तसेच प्रतिभावान क्रीडा प्रोग्रामरची नियुक्ती करा. १९७० च्या दशकात सुरू झालेली इंटरनॅशनल कॉलेजिएट प्रोग्रामिंग स्पर्धा (ICPC) ही सर्वात जुनी स्पर्धात्मक प्रोग्रामिंग स्पर्धा म्हणून ओळखली जाते.

स्पर्धात्मक प्रोग्रामिंगचे फायदे

प्रोफेशनल कोडर म्हणून स्पर्धात्मक प्रोग्रामिंगमध्ये सहभागी होऊन तुम्हाला मिळू शकणार्‍या फायद्यांची एक द्रुत सूची येथे आहे.
  • सुधारित प्रोग्रामिंग कौशल्ये, जसे की तर्कशास्त्र आणि अल्गोरिदम, मूलभूत गणित, डेटा संरचना, संगणकीय विचार, डीबगिंग आणि असेच.
  • तुमच्या व्यावसायिक पोर्टफोलिओ आणि CV मध्ये उत्तम भर.
  • बाजारातील नेत्यांच्या लक्षात येण्याची आणि काही आकर्षक नोकरीच्या ऑफर मिळण्याची शक्यता.
  • कोडिंगच्या विविध पैलूंचा सराव करण्याचा मार्ग.
  • डेव्हलपर समुदायामध्ये सामाजिक कनेक्शन आणि नेटवर्किंग.
  • रोमांचक आणि स्पर्धात्मक स्पर्धा.

स्पर्धात्मक प्रोग्रामिंग प्लॅटफॉर्म

हे इंटरनेटवर उपलब्ध असलेले काही सर्वात लोकप्रिय स्पर्धात्मक प्रोग्रामिंग प्लॅटफॉर्म आहेत. CodeChef हा एक स्पर्धात्मक प्रोग्रामिंग समुदाय आहे ज्यामध्ये प्रत्येक महिन्यात शेकडो आव्हाने आणि अनेक नवीन स्पर्धा असतात. Codewars प्रोग्रामिंग आव्हानांसह कोडिंग ऑनलाइन समुदाय आहे. तुम्हाला तुमची स्वतःची आव्हाने सबमिट करण्याची अनुमती देते, ज्यांचे इतर वापरकर्त्यांद्वारे मूल्यांकन केले जाईल. तेथील सर्वात लोकप्रिय स्पर्धात्मक प्रोग्रामिंग प्लॅटफॉर्मपैकी एक. हे दरवर्षी नियमित स्पर्धात्मक प्रोग्रामिंग मॅरेथॉन आयोजित करते आणि डझनभर आव्हाने देते. HackerEarth कडे 10,000 पेक्षा जास्त प्रोग्रामिंग आव्हाने आहेत ज्या प्रत्येकासाठी उपलब्ध आहेत. Codeforces हे रशियन स्पर्धात्मक प्रोग्रामिंग प्लॅटफॉर्म आहे ज्यात शेकडो प्रोग्रामिंग आव्हाने आहेत आणि वारंवार सर्व प्रकारच्या स्पर्धा आयोजित केल्या जातात. संगणक विज्ञानाच्या विविध डोमेनमध्ये प्रोग्रामिंग आव्हाने ऑफर करते आणि वार्षिक कोडप्रिंट आणि इतर स्पर्धात्मक प्रोग्रामिंग स्पर्धांचे आयोजन करते.

स्पर्धात्मक प्रोग्रामिंग स्पर्धा

दरवर्षी डझनभर स्पर्धात्मक प्रोग्रामिंग स्पर्धा आयोजित केल्या जातात. येथे काही सर्वात लोकप्रिय आणि प्रतिष्ठित आहेत.
  1. ICFP प्रोग्रामिंग स्पर्धा
1998 पासून दरवर्षी जून किंवा जुलैच्या आसपास आंतरराष्ट्रीय प्रोग्रामिंग स्पर्धा आयोजित केली जाते.
  1. टॉपकोडर मॅरेथॉन सामने
लक्षणीय रोख पारितोषिकांसह स्पर्धात्मक प्रोग्रामिंग समुदाय स्पर्धांमध्ये लोकप्रिय. टॉपकोडरचे मॅरेथॉन साधारणतः दोन आठवडे चालतात, ज्यामुळे सहभागींना त्यांचे निराकरण सुधारण्याची संधी मिळते. प्रत्येक सामन्याची भिन्न स्कोअरिंग यंत्रणा असते जी प्रत्येक समाधानाची गुणवत्ता आउटपुट करेल.
  1. CodeChef लाँग चॅलेंज
CodeChef Long Challenge ही मासिक स्पर्धा आहे जी 10 दिवसांपर्यंत चालते.
  1. फेसबुक हॅकर कप
हॅकर कप ही फेसबुकची वार्षिक खुली प्रोग्रामिंग स्पर्धा आहे. जगभरातील सहभागींसाठी खुले आहे, यात अनेक फेऱ्यांचा समावेश आहे ज्यामध्ये मोठ्या प्रमाणात बक्षिसे आहेत.
  1. Google Code Jam
Google Code Jam ही Google ने होस्ट केलेली आणि प्रशासित केलेली आंतरराष्ट्रीय प्रोग्रामिंग स्पर्धा आहे. 2003 पासून दरवर्षी आयोजित.
  1. अमेरिकन कॉम्प्युटर सायन्स लीग (ACSL)
अमेरिकन कॉम्प्युटर सायन्स लीग (ACSL) मध्यम आणि उच्च माध्यमिक विद्यार्थ्यांसाठी संगणक विज्ञान आणि प्रोग्रामिंग स्पर्धा आयोजित करते.
  1. इंटरनॅशनल कॉलेजिएट प्रोग्रामिंग कॉन्टेस्ट (ICPC)
इंटरनॅशनल कॉलेजिएट प्रोग्रामिंग स्पर्धा ही महाविद्यालयीन विद्यार्थ्यांसाठी अल्गोरिदमिक प्रोग्रामिंग स्पर्धा आहे. तेथील सर्वात जुन्या स्पर्धात्मक प्रोग्रामिंग स्पर्धांपैकी एक.

टिपा आणि शिफारसी

आपण स्पर्धात्मक प्रोग्रामिंगमध्ये प्रवेश करण्यास इच्छुक असल्यास काही टिपा आणि शिफारसींसह समाप्त करू या.
  • प्रोग्रामिंग भाषा निवडा.
हे अगदी स्पष्ट आहे, परंतु तरीही उल्लेख करण्यासारखे आहे. स्पर्धात्मक प्रोग्रामिंगमध्ये वापरण्यासाठी तुम्हाला सर्वात सोयीस्कर असलेली प्रोग्रामिंग भाषा निवडण्यापासून सुरुवात करावी. C++, Java, Python हे बहुसंख्य स्पर्धात्मक प्रोग्रामिंग स्पर्धांमध्ये सर्वात सामान्य आणि सर्वत्र स्वीकृत आहेत.
  • डेटा संरचना आणि अल्गोरिदमचे चांगले ज्ञान विकसित करा.
स्पर्धात्मक प्रोग्रामिंग आव्हाने यशस्वीरित्या सोडवण्यासाठी डेटा स्ट्रक्चर्स आणि अल्गोरिदमची किमान मूलभूत माहिती जाणून घेणे आवश्यक आहे. या विषयांवरील शिक्षण सामग्रीच्या लिंकसाठी अल्गोरिदम आणि डेटा स्ट्रक्चर्सवरील आमचे लेख पहा .
  • तुमची कोडींग शैली आणि प्रोग्रामिंग आव्हानांकडे पाहण्याचा दृष्टिकोन शोधा.
स्पर्धात्मक प्रोग्रामिंग आव्हानांमध्ये सहभागी झालेल्या बहुसंख्य आव्हानांना एकापेक्षा जास्त उपाय आहेत. इष्टतम उपाय शोधणे हे ध्येय आहे. त्यामुळे तुमची अनोखी कोडींग शैली विकसित करण्यावर आणि या प्रोग्रामिंग आव्हानांचा दृष्टीकोन विकसित करण्यावर लक्ष केंद्रित करणे अर्थपूर्ण आहे जे तुम्हाला वेळेच्या दृष्टीने सर्वोत्तम उपाय कोड करण्यास अनुमती देईल आणि तुमच्या कोडच्या अंमलबजावणीसाठी आवश्यक आहे.
  • विविध स्पर्धात्मक प्रोग्रामिंग वेबसाइट आणि स्पर्धा वापरून पहा.
जरी सर्व स्पर्धात्मक कोडिंग स्पर्धांमध्ये आणि आव्हानांमध्ये तुम्हाला अल्गोरिदमिक समस्या सोडवण्याची आवश्यकता असेल, तरीही या समस्यांची शैली आणि स्पर्धकांच्या गरजा अनेक प्रकारे भिन्न असू शकतात, अडचण आणि वेळ-संवेदनशीलतेपर्यंत. त्यामुळे सर्वसाधारणपणे स्पर्धात्मक प्रोग्रामिंगची चांगली भावना येण्यासाठी किमान अनेक वेगवेगळ्या समस्यांचा प्रयत्न करण्याची शिफारस केली जाते.
  • प्रोग्रामिंग समस्या नियमितपणे सोडवत रहा.
कोणत्याही गोष्टीत यशस्वी होण्यासाठी नियमित सराव महत्त्वाचा आहे, परंतु स्पर्धात्मक प्रोग्रामिंगमध्ये हे विशेषतः खरे आहे. कोडिंग समस्यांकडे योग्य मानसिकता आणि दृष्टीकोन विकसित करण्यासाठी बरेच नियमित प्रशिक्षण घ्यावे लागते. तुम्हाला वर सूचीबद्ध केलेल्या विशेष प्लॅटफॉर्मवर स्वतःला मर्यादित ठेवण्याची गरज नाही, विशेषत: सुरुवातीला जेव्हा स्पर्धात्मक प्रोग्रामिंग समस्या खूप आव्हानात्मक वाटू शकतात. तुम्ही CodeGym चा वापर त्याच्या 1200 हून अधिक Java कोडिंग टास्कसह सराव करण्यासाठी, तसेच कोडिंग गेम्स किंवा तांत्रिक मुलाखत प्रीप प्लॅटफॉर्मसह करू शकता .
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION