CodeGym /Java Blog /यादृच्छिक /प्रोग्रामिंग भाषा निवडणे
John Squirrels
पातळी 41
San Francisco

प्रोग्रामिंग भाषा निवडणे

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
मी प्रथम शाळेत, संगणक विज्ञानाच्या धड्यांमध्ये प्रोग्रामिंगला भेटलो. यामध्ये n-ary संख्या प्रणाली कशा कार्य करतात याचे काही कंटाळवाणे स्पष्टीकरण होते. आणि, अर्थातच, एक चाचणी होती ज्यासाठी तुम्हाला तुमची स्वतःची वेबसाइट लिहायची होती. यापेक्षा कंटाळवाणा व्यवसाय असूच शकत नाही, असे त्या वेळी वाटले. मी किती चुकीचा होतो! दुर्दैवाने, हायस्कूल संगणक विज्ञान कार्यक्रम IT कार्याचे संपूर्ण चित्र प्रदान करत नाही आणि प्रोग्रामिंग भाषा कशी निवडावी हे स्पष्ट करत नाही. "मी कोणती प्रोग्रामिंग भाषा शिकली पाहिजे?" हे विचारण्यापूर्वी, नवशिक्याने स्वतःला ओळखले पाहिजे की तेथे कोणत्या भाषा आहेत आणि त्या एकमेकांपासून कशा वेगळ्या आहेत. प्रोग्रामिंग भाषा निवडणे - १

प्रवेश थ्रेशोल्ड: उच्च, निम्न, मध्यम

प्रोग्रामर सहसा "एंट्री थ्रेशोल्ड" बद्दल बोलतात - एक संकल्पना जी कोणत्याही "कनिष्ठ विकासकाला" प्रोग्रामिंग भाषेवर प्रावीण्य मिळवण्यासाठी आवश्यक असलेले प्रयत्न प्रतिबिंबित करते आणि त्याचा पहिला गंभीर प्रोग्राम लिहिण्यासाठी आणि नोकरी शोधण्यासाठी. "एंट्री थ्रेशोल्ड" मध्ये खालील गोष्टींचे ज्ञान असते:
  • वाक्यरचना वैशिष्ठ्य आणि भाषेतील बारकावे
  • लायब्ररी
  • अल्गोरिदम आणि डेटा संरचना.
एक्सेलमध्ये काम करणे याला एक प्रकारचे प्रोग्रामिंग देखील म्हटले जाऊ शकते. तसे, हा परिचित ऑफिस प्रोग्राम दिसतो तितका सोपा नाही. एका वापरकर्त्यासाठी, एंट्री थ्रेशोल्ड ही टेबल तयार करण्याची क्षमता असू शकते. दुसर्‍यासाठी, ते जटिल सूत्र आणि मॅक्रोचे ज्ञान असू शकते. दोन्ही बाबतीत, हा थ्रेशोल्ड लहान आहे. पुढे अर्ध-भाषा येतात, जसे की 1C -programming. मग शिकण्यासाठी सर्वात सोप्या भाषा आहेत, उदा. PHP . पुढे, आमच्याकडे मूळ वाक्यरचना असलेल्या (सामान्यतः इंग्रजीतून व्युत्पन्न केलेल्या) भाषा आहेत ज्यासाठी तुम्हाला मेमरी व्यवस्थापन हाताळण्याची आवश्यकता नाही, उदा Java आणि JS . मग अशा भाषा आहेत ज्यांना मेमरी, डेटा स्ट्रक्चर्स आणि अल्गोरिदमची अत्यंत काळजीपूर्वक हाताळणी आवश्यक आहे, उदाहरणार्थ, सी आणिC++ . यंग मल्टी-पॅराडाइम लँग्वेज, उदाहरणार्थ, स्काला , मध्ये कदाचित सर्वात जास्त एंट्री थ्रेशोल्ड आहे, कारण त्यामध्ये प्रभुत्व मिळवण्यासाठी तुम्हाला अनेक प्रोग्रामिंग पॅराडाइम्समध्ये खोलवर जावे लागते. परंतु तुम्ही भाषा निवडण्यापूर्वी, तुम्हाला पुढे काय करायचे आहे ते तुम्ही ठरवले पाहिजे: वेब, एंटरप्राइझ, डेस्कटॉप किंवा मोबाइल डिव्हाइससाठी विकसित करा.

वेब किंवा वेब नाही?

वेब

वेब प्रोग्रामर फ्रंटएंड आणि बॅकएंड डेव्हलपरमध्ये विभागले जाऊ शकतात . या अटींचा अर्थ काय आहे ते तुम्ही समजून घेतले पाहिजे. फ्रंटएंड डेव्हलपर क्लायंटच्या बाजूने गुंतलेले असतात, म्हणजे वापरकर्ता काय पाहतो. "बॅकएंड" डेटा हाताळणे आणि संग्रहित करणे याबद्दल आहे — सर्व्हरवर चालणार्‍या सेवेचा भाग. कोणती प्रोग्रामिंग भाषा शिकायची हे ठरवणार्‍या फ्रंटएंड डेव्हलपरसाठी , JavaScript आणि JavaScript फ्रेमवर्क (Angular JS, React आणि इतर) आवश्यक आहेत. CoffeeScript आणि TypeScript सारख्या JS बोली, त्यांच्या पालकांसारख्या लोकप्रिय नाहीत, परंतु त्या उपयुक्त देखील असू शकतात. फ्लॅश एएस देखील आहे, आणि तेथे जेस्क्रिप्ट आणि व्हीबीएसस्क्रिप्ट असायचे, परंतु फक्त डायनासोर हे लक्षात ठेवतात =) या सर्वांशिवाय, तुम्हाला एचटीएमएल समजून घेणे आवश्यक आहेआणि CSS . प्रोग्रामिंग भाषा निवडणे - 2बर्‍याच नवशिक्यांना असे वाटते की JavaScript आणि Java जवळजवळ समान गोष्ट आहेत. या भाषांमध्ये गोंधळ घालू नका. JS पूर्वी "LiveScript" म्हणून ओळखले जात असे आणि त्याचे सध्याचे नाव केवळ "Java" शब्दाच्या लोकप्रियतेमुळे मिळाले. वेब बॅकएंड डेव्हलपरसाठी , PHP, Python, Ruby, Perl आणि Java योग्य आहेत. येथे मला PHP वर लक्ष केंद्रित करायचे आहे (आम्ही इतर भाषांबद्दल नंतर बोलू). कमी एंट्री थ्रेशोल्ड असलेली, शिकण्यासाठी PHP ही सर्वात सोपी भाषा आहे. सुप्रसिद्ध वेब डेव्हलपर्सच्या सर्वेक्षणानुसार, रुबी हळूहळू परंतु निश्चितपणे लोकप्रिय होत आहे — ती त्याच्या संक्षिप्तपणा आणि सौंदर्यासाठी प्रिय आहे.

वेब नाही (एंटरप्राइझ, डेस्कटॉप, मोबाइल)

मी जाणूनबुजून या श्रेणीमध्ये खालील प्रोग्रामिंग भाषा एका विचित्र नावाने एकत्र केल्या आहेत. एंटरप्राइझ, डेस्कटॉप आणि अगदी मोबाईल अॅप्लिकेशन्स लिहिण्यासाठी तुम्ही त्यापैकी बहुतेक वापरू शकता. पायथन ही समजण्यास सोपी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा आहे आणि ग्रोथ मशीन लर्निंग (ML) मुळे अलीकडे अविश्वसनीयपणे लोकप्रिय झाली आहे: ML डेव्हलपर पायथनचा मोठ्या प्रमाणात वापर करतात. एमएलहे IT मधील अगदी नवीन क्षेत्र आहे, आणि जरी आम्ही याला फळ देत असल्याचे पाहिले असले तरी, प्रोग्रामिंग भाषा निवडताना मी या उद्योगात घाई करणार नाही. प्रथम, तुम्हाला गणिताची उत्कृष्ट समज असणे आवश्यक आहे. दुसरे, लोकप्रियतेची लाट "ब्लॉकचेन" किंवा "नॅनोटेक्नॉलॉजी" साठी होती तशीच पास होऊ शकते. ते म्हणाले, तुम्हाला आठवत असेल की वेब डेव्हलपमेंटमध्ये पायथनचा वापर केला जातो. C++: एक उत्कृष्ट भाषा जिथे सर्वकाही "प्लस-प्लस" ऑपरेटरवर तयार केले जाते. ही भाषा सर्व लोकप्रिय ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषांची पूर्वज आहे आणि नवशिक्याने निश्चितपणे त्याकडे लक्ष दिले पाहिजे. त्याचा वापर करून अनेक लोकप्रिय अॅप्लिकेशन्स लिहिले गेले आहेत. परंतु "स्वतःला पायात गोळी मारण्याची" उत्तम संधी आणि समजण्यास अवघड वाक्यरचना यामुळे नवशिक्या प्रोग्रामिंगच्या या मास्टोडॉनमध्ये प्रभुत्व मिळवण्याची शक्यता शून्यावर आणते. कोटलिन, जे हिपस्टर्ससाठी Java सारखे आहे, हे OOP आणि फंक्शनल प्रोग्रामिंगचे विलक्षण मिश्रण आहे. हे अलीकडे लोकप्रिय झाले आहे कारण एक अनुभवी विकसक Java वरून Kotlin वर स्विच करतो तो त्याची उत्पादकता गंभीरपणे सुधारू शकतो. एक अनुभवी विकसक या प्रोग्रामिंग भाषेत त्वरीत आरामदायक होईल. तसे, हीच गोष्ट स्कालाला लागू होते, परंतु कोटलिन Android जगतात लोकप्रिय आहे. जावा नवशिक्यांसाठी शिकणे सोपे आहे. विशेषत: CodeGym =) Java वाक्यरचना समजण्याजोगी आहे आणि "स्वतःला पायात गोळी मारण्याचा धोका असला तरी" ते गंभीर नाही.

ओओपी किंवा पीओपी?

प्रक्रियात्मक दृष्टीकोन

कार्यपद्धती-देणारं दृष्टिकोनामध्ये अनुक्रमिक विधानांचा समावेश असलेला एक प्रोग्राम लिहिणे समाविष्ट आहे जे समस्यांच्या विशिष्ट संचाला प्रभावीपणे सोडवण्यासाठी एका एकीकृत संपूर्णमध्ये एकत्र केले जाऊ शकते. अशा भाषांमध्ये C , PureBasic आणि Pascal यांचा समावेश होतो . दुसऱ्या शब्दांत, हायस्कूलच्या विद्यार्थ्यांना आणि पदवीधरांना निराशा आणणाऱ्या भाषा. तुलनेने तरुण GO देखील आहेइंग्रजी. ते म्हणाले, प्रक्रियात्मक भाषांशी परिचित असणे संभाव्य विकसकासाठी खूप उपयुक्त आहे. प्रक्रियात्मक भाषांमध्ये माझे विसर्जन वोल्फ्राम मॅथेमॅटिका प्रणाली आणि विद्यापीठ संशोधनामुळे झाले. योग्य अल्गोरिदम आणि सोप्या कार्यपद्धती, प्रोग्रामच्या सुरुवातीपासून शेवटपर्यंत रेषीयपणे हलवून, मला आधुनिक सैद्धांतिक भौतिकशास्त्राशी संबंधित मूल्यांची गणना करण्यास अनुमती दिली. ही "अनुक्रमिक" प्रोग्रामिंग भाषा तुम्हाला हे समजण्यात मदत करते की कधीकधी मॅन्युअली गणना करणारे कोड लिहिणे सोपे असते. लर्निंग प्रोसिजर-ओरिएंटेड प्रोग्रामिंग (पीओपी) चांगले अल्गोरिदमिक प्रशिक्षण प्रदान करते, जे एखाद्या नियोक्त्याला नेहमी नोकरीच्या उमेदवारामध्ये पहायचे असते. आयटीमधील सर्व काही प्रक्रियात्मक भाषांच्या पायावर बांधले गेले आहे, म्हणून त्यांना कमी लेखू नका. तसे, कोणती प्रोग्रॅमिंग भाषा शिकायची हे ठरवणारे नवशिक्या सहसा विचार करतात की फक्त OOP भाषा मल्टीथ्रेडिंगला समर्थन देते. हे खरे नाही. प्रक्रियात्मक प्रोग्रामिंग भाषा देखील समांतर गणनांना परवानगी देतात. प्रोग्रामिंग भाषा निवडणे - 3

ऑब्जेक्ट ओरिएंटेड दृष्टीकोन

ज्यांनी प्रक्रियात्मक भाषांपासून सुरुवात केली ते सहसा गणित, अल्गोरिदम आणि डेटा स्ट्रक्चर्समध्ये पारंगत असतात (या क्षेत्रांवर तांत्रिक विद्यापीठांच्या जोरामुळे). तरीही, आजची वास्तविकता अशी आहे की यशस्वी प्रोग्रामर सहसा ते असतात ज्यांनी प्रोग्रामिंगसाठी भिन्न दृष्टीकोन मिळवला आहे: ऑब्जेक्ट-ओरिएंटेड पॅराडाइम. OOP विचारधारा तुम्हाला खरोखर जागतिक प्रणाली तयार करू देते. या दृष्टिकोनाचे वैशिष्ट्य म्हणजे वास्तविक जगाशी समानता:
  • विविध वस्तू एकमेकांशी संवाद साधतात आणि एकमेकांपासून स्वतंत्रपणे अस्तित्वात असतात.
  • वस्तूंना पदानुक्रम असतो आणि ते त्यांच्या पूर्वजांचे वर्तन स्वीकारू शकतात किंवा बदलू शकतात.
  • तुम्ही अमूर्त संकल्पना वापरू शकता, परंतु प्रत्यक्षात अस्तित्वात असलेल्या वस्तूच परस्परसंवाद करू शकतात.

उदाहरण

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

नवीन आणि वापरलेल्या कार आणि ट्रकची विक्री करणाऱ्या कार डीलरशिपचे वर्णन करणाऱ्या प्रोग्रामची कल्पना करा. प्रक्रियात्मक भाषेत, आपल्याला प्रत्येक घटकासाठी डेटाच्या इनपुट किंवा आउटपुटवर प्रक्रिया करणारी कार्ये परिभाषित करणे आवश्यक आहे: एक नवीन कार, नवीन ट्रक, वापरलेली कार आणि वापरलेला ट्रक. OOP काय ऑफर करते? ऑब्जेक्ट-ओरिएंटेड पध्दतीसह, आम्हाला फक्त वाहन आधार वर्ग परिभाषित करणे आवश्यक आहे जे सर्व वाहन प्रकारांद्वारे सामायिक केलेली वैशिष्ट्ये संग्रहित करते:

  • बनवा
  • इंजिन विस्थापन
  • अश्वशक्ती
  • वर्ष
  • नवीन किंवा वापरलेले
  • किंमत

आणि माहिती घेण्याच्या आणि पाठवण्याच्या पद्धती. मग आम्ही वस्तू तयार करतो ज्यांना वाहन वर्गाची वैशिष्ट्ये वारशाने मिळतात: कार आणि ट्रक. त्यामध्ये विशेषत: या प्रकारच्या वाहनांशी तसेच इनपुट/आउटपुट पद्धतींशी संबंधित माहिती असते.

अचानक, डीलरशिपचे व्यवस्थापन मोटरसायकल ऑफर करून लाइनअप वाढवण्याचा निर्णय घेते. प्रक्रियात्मक दृष्टीकोनांतर्गत, आम्हाला नवीन आणि वापरलेल्या मोटरसायकलसाठी सर्व तर्क पुन्हा तयार करावे लागतील, तर एक OOP भाषा आम्हाला एक नवीन मोटरसायकल वर्ग तयार करू देते ज्यात वाहन सुपरक्लासची सर्व वैशिष्ट्ये वारशाने मिळतात आणि त्यात मोटरसायकल-विशिष्ट परिष्करण समाविष्ट आहेत.

आणि जर आपण विविध वाहने जोडली तर काय होईल? प्रक्रियात्मक अंमलबजावणीसाठी OOP पेक्षा जास्त काम करावे लागेल. इतकेच काय, लाइनअप जितका मोठा असेल, तितक्या कमी ऑब्जेक्ट्सचा समावेश असलेली ऑपरेशन्स आवश्यक असतील.

तर, ओओपी ही एक प्रोग्रामिंग शैली आहे जी तुम्हाला डेटा आणि पद्धती एकाच घटकामध्ये एकत्र करू देते आणि त्यांच्यासोबत युनिफाइड ऑब्जेक्ट म्हणून कार्य करू देते. घटकांची मांडणी एका पदानुक्रमात केली जाऊ शकते आणि एकमेकांच्या अंतर्गत अंमलबजावणी तपशीलांचा विचार न करता एकमेकांशी संवाद साधता येतो. OOP माझ्यासाठी अधिक प्रगतीशील दृष्टीकोन का आहे याची मी तीन कारणे सांगेन:
  1. OOP मध्ये वैयक्तिक मॉड्यूल्सचा स्वतंत्र विकास समाविष्ट असतो, ज्यामुळे प्रोग्रामर किंवा टीमला संपर्क आणि माहितीच्या देवाणघेवाणीची पद्धत आणि सीमा निवडण्याची परवानगी मिळते.
  2. लहान मॉड्यूल्समध्ये विभागलेला कोड मोनोलिथिक प्रक्रियेपेक्षा वाचणे खूप सोपे आहे. परिणामी, एखादा बाहेरचा माणूस तुमचा कोड पटकन समजू शकतो आणि त्याचप्रमाणे, आवश्यक असल्यास तुम्ही नवीन प्रकल्पात सामील होऊ शकता.
  3. एक वर्ग दुसर्‍याच्या परस्परसंवादावर परिणाम न करता बदलला जाऊ शकतो, परंतु अशा बदलामुळे बाल वस्तूंच्या पदानुक्रमावर परिणाम होऊ शकतो. एकदा तुम्ही या दृष्टिकोनावर प्रभुत्व मिळवल्यानंतर, प्रोग्रामचा विस्तार आणि बदल करणे क्षुल्लक बनते.
लक्षात ठेवा की एक दृष्टीकोन दुसर्‍याशी विरोधाभास नाही, परंतु पदानुक्रमात OOP अजूनही उच्च आहे. तर, मी जावाची शिफारस का करू? मी खालील कारणे हायलाइट करेन:
  1. क्रॉस-प्लॅटफॉर्म.

    Java व्हर्च्युअल मशीन (JVM) मुळे जावा सर्वत्र कार्य करते. या भाषेचा एक मुख्य फायदा म्हणजे त्याचे क्रॉस-प्लॅटफॉर्म स्वरूप: कोणती लायब्ररी जोडायची किंवा विशिष्ट प्रोसेसरचे आर्किटेक्चर याबद्दल विचार करण्याची गरज नाही. "एकदा लिहा, कुठेही धावा."

  2. दस्तऐवजीकरण.

    एक प्रचंड दस्तऐवजीकरण आधार आहे: अधिकृत ओरॅकल दस्तऐवजीकरण, प्रशिक्षण पोर्टल आणि सतत विकसित होत असलेला समुदाय. विकासादरम्यान उद्भवणाऱ्या बहुतेक प्रश्नांची उत्तरे काही मिनिटांत मिळू शकतात. शोध इंजिनमध्ये काय प्रविष्ट करायचे हे समजून घेणे ही मुख्य गोष्ट आहे =)

  3. लोकप्रियता.

    जावा ही जगातील सर्वात लोकप्रिय प्रोग्रामिंग भाषा आहे: उपरोक्त Android आणि वेब विकसकांव्यतिरिक्त, जवळजवळ प्रत्येक एंटरप्राइझ डेव्हलपर Java मध्ये लिहितात. एंटरप्राइझ मोठ्या कॉर्पोरेशनच्या गरजांसाठी आवश्यक अंतर्गत कॉर्पोरेट विकासाचा संदर्भ देते.

    दरवर्षी, द्वेष करणारे "जावाच्या मृत्यूची" भविष्यवाणी करतात. ते म्हणतात, " ओरॅकल त्याचे समर्थन करणे थांबवेल. तुम्ही तुमचा वेळ पूर्णपणे वाया घालवत आहात. " हे खरे नाही! ते दर सहा महिन्यांनी Java च्या नवीन आवृत्त्या सोडण्याचे वचन देतात.

    माझ्यासाठी, जावा 8 मधील लॅम्बडा अभिव्यक्ती क्रांतिकारक आणि एक प्रकटीकरण होते, नवीन आवृत्त्यांबद्दल काहीही म्हणायचे नाही! मी सध्या एका "वारसा" प्रकल्पावर काम करत आहे, म्हणून मी नवीनतम नवकल्पनांचा शोध घेत नाही, परंतु हे सत्य आहे की Java जिवंत आहे.

    प्रोग्रामिंग भाषा निवडणे - 4
  4. अँड्रॉइड.

    गेल्या 4 वर्षांपासून, Android ने सातत्याने मोबाईल फोन मार्केटमध्ये 80% पेक्षा जास्त कब्जा केला आहे . टीव्ही, मीडिया प्लेयर्स आणि अगदी कार इन्फोटेनमेंट सिस्टम या ऑपरेटिंग सिस्टमवर चालतात. आणि या OS साठी अॅप डेव्हलपमेंट प्रामुख्याने Java मध्ये होते. ज्या शक्यता उघडत आहेत त्या कल्पना करा. जेव्हा मला Android विकसक म्हणून नोकरी मिळाली, तेव्हा मला आश्चर्य वाटले की मी विकसित करत असलेल्या उत्पादनाची किंमत किती आहे? हे दिसून आले की, किंमत सुमारे $5 प्रति वर्ष होती. तो प्रश्न विचारतो, "मग या कार्यालयासाठी, पगार, स्नॅक रूम, पिंग-पॉन्ग टेबल, रोबोट्स आणि इतर भत्ते यासाठी पैसे कुठून येतात? उत्तर व्हॉल्यूममध्ये आहे: आमच्या अॅपचे 20 दशलक्ष वापरकर्ते आहेत.

  5. पगार.

    आणि आता आयसिंग ऑन द केक: जावा डेव्हलपरचा पगार उद्योगात सर्वाधिक आहे. शेवटी, तुम्ही एका विशिष्ट उद्देशासाठी प्रोग्रामिंगचा अभ्यास करण्याचा विचार करत आहात: चांगली नोकरी मिळवण्यासाठी.

प्रोग्रामिंग भाषेची लोकप्रियता

माहितीचे अधिकृत स्त्रोत आहेत, म्हणून त्यांच्याकडे वळूया. TIOBE च्या मते , ऑक्टोबर 2019 पर्यंत Java पहिल्या क्रमांकावर आहे. PYPL रँकिंगमध्ये Java दुसऱ्या क्रमांकावर आहे, JS च्या खूप पुढे आहे आणि ट्रेंडी पायथनला टक्कर देत आहे.

निष्कर्ष

एक नवशिक्या प्रोग्रामिंग भाषा निवडण्याचा विचार करत असताना, त्याने किंवा तिने याकडे लक्ष दिले पाहिजे:
  • लोकप्रियता (जावा सातत्याने अग्रगण्य स्थान व्यापते)
  • एंट्री थ्रेशोल्ड (जावासाठी, ते मध्यम आहे: नियोक्त्यांना कौशल्यांची विस्तृत श्रेणी आवश्यक आहे)
  • उपलब्ध साहित्य (CodeGym =))
  • अर्जाची फील्ड: प्रोग्रामिंग भाषा जितकी जास्त फील्ड वापरली जाते तितके जास्त विशेषज्ञ बाजारात आवश्यक असतात. जावा क्रॉस-प्लॅटफॉर्म डेव्हलपमेंटला कसे समर्थन देते हे मी आधीच नमूद केले आहे, परंतु मी त्याची पुनरावृत्ती करण्यास कधीही कंटाळलो नाही.
अर्थात, सर्वत्र त्रुटी आहेत, परंतु जो एक पाऊल उचलतो तो पुढे जातो: कोणती प्रोग्रामिंग भाषा निवडायची हे केवळ आपणच ठरवू शकता. शिकण्यात शुभेच्छा!
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION