नमस्ते! आज हम जावा डेवलपर के विकास के पथ के बारे में बात करेंगे और मांग में होने के लिए उसे क्या पता होना चाहिए। एक साक्षात्कार में, कोई भी डेवलपर नौकरी के उम्मीदवार से पूछताछ कर सकता है। उदाहरण के लिए, वे उन विशिष्ट विषयों के बारे में प्रश्न पूछना शुरू कर सकते हैं जिनका सामना उन्होंने अपने वर्तमान प्रोजेक्ट में किया है। लेकिन सब कुछ न जानना सामान्य है। यह तथ्य कि आप कुछ प्रश्नों का उत्तर नहीं दे सकते, यह भी सामान्य है। एक सामान्य नियम के रूप में, प्रत्येक जावा प्रोग्रामर को सॉफ्टवेयर डेवलपमेंट की बुनियादी समझ होनी चाहिए। तो आइए देखें कि "मूल" क्या माना जाता है।
आपको इसे पहले स्थान पर रखना चाहिए, ताकि आप समझ सकें कि स्प्रिंग क्या है - स्प्रिंग कंटेनर, बीन्स, DI, IoC, इत्यादि के बारे में सब कुछ। वसंत का उपयोग करने के दर्शन को समझने के लिए, बोलने के लिए। स्प्रिंग फ्रेमवर्क का आपका आगे का अध्ययन इस आधार के शीर्ष पर निर्मित होगा। शायद आपको अपना छोटा अनुप्रयोग बनाना चाहिए जिसमें आप धीरे-धीरे सभी नई सीखी गई तकनीकों को शामिल कर सकते हैं।
पहले हमने डेटाबेस कनेक्शन बनाने के लिए एक तकनीक के रूप में JDBC का उल्लेख किया था। सामान्य तौर पर, प्रौद्योगिकी का "नग्न" उपयोग अब परियोजनाओं में नहीं पाया जा सकता है, इसलिए आप यह निष्कर्ष निकाल सकते हैं कि JDBC सीखना आवश्यक नहीं है। यह बिल्कुल सही रवैया नहीं है। JDBC के नग्न (प्रत्यक्ष) उपयोग की खोज करके, आप प्रौद्योगिकी को निचले स्तर पर देख सकते हैं और इसकी समस्याओं और कमियों को समझ सकते हैं। फिर जब आप स्प्रिंग JDBC सीखना शुरू करते हैं, तो आप महसूस करेंगे कि वास्तव में यह ढांचा क्या सुधारता है, अनुकूलन करता है और छुपाता है।
नग्न JDBC के साथ स्थिति के अनुरूप, यह ढांचा मौजूदा तकनीक का लाभ उठाता है, इस मामले में, हाइबरनेट। यदि आप स्प्रिंग के बिना हाइबरनेट का उपयोग करने पर विचार करते हैं, तो आप निश्चित रूप से स्प्रिंग हाइबरनेट के लाभों को महसूस करेंगे।
पहले हमने जेपीए के बारे में बात की थी और उल्लेख किया था कि यह केवल एक विनिर्देश है, हालांकि इसके विभिन्न कार्यान्वयन हैं। इन कार्यान्वयनों में, हाइबरनेट आदर्श के सबसे करीब आता है। वसंत का अपना आदर्श जेपीए कार्यान्वयन है जो हुड के नीचे हाइबरनेट का उपयोग करता है। यह जेपीए विनिर्देश के आदर्श के जितना संभव हो उतना करीब है। इसे स्प्रिंग जेपीए कहा जाता है। एक शब्द में, यह डेटाबेस एक्सेस को बहुत सरल करता है। आप केवल JDBC, हाइबरनेट, स्प्रिंग JDBC या स्प्रिंग हाइबरनेट सीखे बिना ही JPA सीख सकते हैं। लेकिन अगर आप यह तरीका अपनाते हैं, तो डेटाबेस से कैसे जुड़ना है, इसका आपका ज्ञान बहुत ही सतही होगा।
यह तकनीक उपयोगकर्ताओं को हमारे एप्लिकेशन के वेब इंटरफ़ेस को प्रदर्शित करना और इंटरफ़ेस और शेष एप्लिकेशन के बीच संचार की सुविधा प्रदान करना संभव बनाती है। जब आपके पास कोई एप्लिकेशन हो जो डिस्प्ले को संभालने के लिए ज़िम्मेदार हो और आप रेस्टफुल तकनीक का उपयोग करके एप्लिकेशन के साथ इंटरैक्ट कर रहे हों तो तकनीक का उपयोग बिना डिस्प्ले के भी किया जा सकता है। लेखों और YouTube व्याख्यानों के अलावा, वसंत के बारे में बेहतर जानकारी प्राप्त करने के लिए, आप कई पुस्तकें पढ़ सकते हैं। क्रेग वॉल्स की किताब "स्प्रिंग इन एक्शन" मुझे बहुत पसंद आई। यदि आप अच्छी तरह से अंग्रेजी जानते हैं, तो मैं आपको सलाह देता हूं कि आप छठा संस्करण पढ़ें। वसंत पर एक और महान पुस्तक "पेशेवरों के लिए वसंत 5" है। यह अधिक घना है। एक संदर्भ की तरह अधिक जो कवर टू कवर पढ़ने की तुलना में हाथ में रखने के लिए अधिक मूल्यवान है।
यह तकनीक स्प्रिंग के उपयोग को बहुत सरल बनाती है। मैंने इसे सूची के अंत में फुसफुसाते हुए नहीं रखा। दरअसल, यह हुड के नीचे बहुत कुछ छुपाता है, और वैनिला स्प्रिंग से अपरिचित किसी के लिए, कई बिंदु अस्पष्ट या समझ से बाहर हो सकते हैं। सबसे पहले, स्प्रिंग फ्रेमवर्क कैसे काम करता है, इसकी बेहतर समझ के लिए, आपको नियमित स्प्रिंग का उपयोग करना चाहिए, और फिर स्प्रिंग बूट का उपयोग करने के सभी उच्च लाभों को चुनना चाहिए। मैं यह भी अनुशंसा करता हूं कि आप अपने आप को स्प्रिंग सिक्योरिटी और स्प्रिंग एओपी से परिचित कराएं। लेकिन उपरोक्त तकनीकों के विपरीत, इन दोनों के गहन ज्ञान की अभी आवश्यकता नहीं है। यह तकनीक नौसिखियों के लिए नहीं है। साक्षात्कार में, कनिष्ठ देवों से उनके बारे में नहीं पूछा जाएगा (एक सतही प्रश्न को छोड़कर, शायद)। ये प्रौद्योगिकियां क्या हैं और उनके काम के पीछे के सिद्धांत क्या हैं, इसका अवलोकन पढ़ें। इस आलेख में, मैंने बार-बार किताबें पढ़ने का जिक्र किया है। एक ओर, यह अनिवार्य नहीं है। आप एक भी किताब पढ़े बिना, ऑनलाइन लेखों और प्रशिक्षण वीडियो से सभी आवश्यक ज्ञान प्राप्त करके एक प्रोग्रामर बन सकते हैं। दूसरी ओर, नौकरी के बाजार में, नौसिखिए डेवलपर्स के बीच प्रतिस्पर्धा वर्तमान में अधिक है, जो एक शुरुआत करने वाले को जानने की जरूरत के लिए बार उठाता है। इसलिए, जितना अधिक आप जानते हैं, साक्षात्कारकर्ता को अपने ज्ञान के स्तर से प्रभावित करके आप उतनी ही तेजी से अपनी पहली नौकरी पाएंगे। सभी को धन्यवाद, और जावा आपके साथ हो सकता है। जो एक शुरुआत करने वाले को जानने की जरूरत के लिए बार उठाता है। इसलिए, जितना अधिक आप जानते हैं, साक्षात्कारकर्ता को अपने ज्ञान के स्तर से प्रभावित करके आप उतनी ही तेजी से अपनी पहली नौकरी पाएंगे। सभी को धन्यवाद, और जावा आपके साथ हो सकता है। जो एक शुरुआत करने वाले को जानने की जरूरत के लिए बार उठाता है। इसलिए, जितना अधिक आप जानते हैं, साक्षात्कारकर्ता को अपने ज्ञान के स्तर से प्रभावित करके आप उतनी ही तेजी से अपनी पहली नौकरी पाएंगे। सभी को धन्यवाद, और जावा आपके साथ हो सकता है।
1. बुनियादी एल्गोरिदम
प्रोग्रामिंग (सिर्फ जावा नहीं) सीखना शुरू करते समय निपटने वाली पहली बात मूल बातें समझना है। उदाहरण के लिए, एल्गोरिदम। उनमें से एक अनंत संख्या है, और जितना संभव हो उतने एल्गोरिदम सीखने की कोशिश में आपको अपने जीवन के पूरे वर्षों को नष्ट नहीं करना चाहिए: उनमें से अधिकांश आपके लिए उपयोगी नहीं होंगे। आप "ग्रोकिंग एल्गोरिदम" पुस्तक से आवश्यक न्यूनतम ज्ञान प्राप्त कर सकते हैं। यह आपको आरंभ करने के लिए पर्याप्त है, लेकिन यदि आप चाहें, तो आप रॉबर्ट सेडगेविक और केविन वेन की पुस्तक "स्ट्रक्चर्स एंड एल्गोरिदम" या "एल्गोरिदम इन जावा" से सीख सकते हैं। मैं यह भी अनुशंसा करता हूं कि आप कंप्यूटर विज्ञान की बुनियादी बातों के अपने ज्ञान में सुधार करें। यह हार्वर्ड CS50 कोर्स के साथ किया जा सकता है।2. जावा सिंटेक्स
एल्गोरिदम की मूल बातें सीखने के बाद, हमें जावा सिंटैक्स सीखना होगा। आखिरकार, हम सभी यहाँ जावा प्रोग्रामर बनने के लिए अध्ययन कर रहे हैं, है ना? CodeGym कोर्स इसके लिए एकदम सही है। जैसे ही आप अनगिनत कार्य करते हैं, आप जावा सिंटैक्स पर अपना हाथ जमा लेंगे और फिर, बिना किसी हिचकिचाहट के, आप जावा कोड को लिखेंगे/पढ़ेंगे जैसे कि यह आपकी मूल भाषा हो। CodeGym अभ्यास है, लेकिन इससे परे, आपको यह समझने के लिए सिद्धांत को देखने की भी आवश्यकता है कि आप क्या कर रहे हैं। ऐसा करने के लिए, आप किताबें पढ़ सकते हैं। उदाहरण के लिए, निम्न में से एक:- "हेड फर्स्ट जावा",
- बैरी बर्ड द्वारा "जावा फॉर डमीज़";
- "जावा: ए बिगिनर्स गाइड" हर्बर्ट शिल्ड्ट द्वारा।
- "जावा में सोच," ब्रूस एकेल;
- जोशुआ बलोच द्वारा "प्रभावी जावा";
- हर्बर्ट शिल्ड्ट द्वारा "जावा: द कम्प्लीट रेफरेंस"।
3. डिजाइन पैटर्न
डिज़ाइन पैटर्न कुछ दोहराए जाने योग्य पैटर्न हैं जो अक्सर सामने आने वाले संदर्भों में समस्याओं को हल करते हैं। उनमें बुनियादी, सरल पैटर्न शामिल हैं जो प्रत्येक स्वाभिमानी प्रोग्रामर को पता होना चाहिए। इस विषय को समझने के लिए, "हेड फ़र्स्ट डिज़ाइन पैटर्न्स" पुस्तक लें। यह मूल डिजाइन पैटर्न को सुलभ तरीके से समझाता है। लेकिन किताब जावा के बारे में बहुत कुछ बताती है, इसलिए जब आप इस किताब को पढ़ेंगे तो आपको इस प्रोग्रामिंग भाषा में भी निपुणता की आवश्यकता होगी। पैटर्न में गहरी गोता लगाने के लिए, आप गैंग ऑफ फोर से "डिजाइन पैटर्न: एलिमेंट्स ऑफ रियूजेबल ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेयर" भी पढ़ सकते हैं (संपादक का नोट: द गैंग ऑफ फोर लेखकों की एक टीम है जिसमें एरिक गामा, रिचर्ड हेल्म, राल्फ शामिल हैं। जॉनसन, जॉन व्लिससाइड्स।). एक बार जब आप इस विषय का अध्ययन कर लेते हैं, तो आपको अपने कोड में वस्तुतः हर जगह पैटर्न दिखाई देने लगेंगे। इस पर ध्यान दें, विशेष रूप से स्प्रिंग में उपयोग किए जाने वाले पैटर्न पर, क्योंकि यह एक लोकप्रिय साक्षात्कार प्रश्न है।4. प्रोग्रामिंग प्रतिमान। कोड स्वच्छता
मानक डिजाइन पैटर्न के अलावा, ( SOLID , GRASP ) से अवगत होने के लिए विभिन्न सिद्धांत और प्रतिमान हैं। आपको अपना कोड साफ और पठनीय रखने की भी आवश्यकता है। सब कुछ के लिए, आपको इस विषय के बारे में जानने की जरूरत है, रॉबर्ट मार्टिन द्वारा क्लीन कोड देखें, या स्टीव मैककोनेल द्वारा "कोड कम्प्लीट" देखें।5. एसक्यूएल
हमारा अगला कदम संबंधपरक डेटाबेस के लिए एक भाषा का अध्ययन करना है - SQL । डेटाबेस वे होते हैं जहां वेब एप्लिकेशन द्वारा उपयोग की जाने वाली जानकारी (डेटा) संग्रहीत होती है। एक डेटाबेस में कई टेबल होते हैं (आपके फोन पर पता पुस्तिका एक साधारण उदाहरण है)। जावा डेवलपर्स न केवल जावा एप्लिकेशन के लिए जिम्मेदार हैं, बल्कि उस डेटाबेस के लिए भी जिम्मेदार हैं, जिसके साथ वह इंटरैक्ट करता है और जहां वह अपना डेटा स्टोर करता है। रिलेशनल डेटाबेस में (जो सबसे सामान्य प्रकार हैं), सभी इंटरैक्शन स्ट्रक्चर्ड क्वेरी लैंग्वेज या SQL नामक एक विशेष भाषा के माध्यम से होते हैं। इस विषय को समझने के लिए, आपको केवल इनमें से किसी एक पुस्तक को पढ़ने की आवश्यकता है:- एलन ब्यूलियू द्वारा "लर्निंग एसक्यूएल";
- क्रिस फेहिली द्वारा "एसक्यूएल";
- लिन बेघली द्वारा "हेड फर्स्ट एसक्यूएल"।