प्रत्येक Java प्रोग्रामरला सॉफ्टवेअर डेव्हलपमेंटची मूलभूत माहिती असणे आवश्यक आहे. तर "मूलभूत" काय मानले जाते यावर एक नजर टाकूया.

1. मूलभूत अल्गोरिदम

प्रोग्रामिंग (फक्त जावा नाही) शिकण्यास सुरुवात करताना पहिली गोष्ट म्हणजे मूलभूत गोष्टी समजून घेणे. उदाहरणार्थ, अल्गोरिदम.

त्यांची संख्या असीम आहे, आणि शक्य तितक्या अल्गोरिदम शिकण्याचा प्रयत्न करून तुम्ही तुमच्या आयुष्यातील संपूर्ण वर्षे मारून टाकू नयेत: त्यापैकी बहुतेक तुमच्यासाठी उपयुक्त ठरणार नाहीत. आपण "ग्रोकिंग अल्गोरिदम" या पुस्तकातून आवश्यक किमान ज्ञान मिळवू शकता. तुम्‍हाला सुरुवात करण्‍यासाठी हे पुरेसे आहे, परंतु तुम्‍हाला हवे असल्‍यास रॉबर्ट सेजविक आणि केविन वेन यांच्‍या "स्ट्रक्चर्स अँड अल्गोरिदम" किंवा "जावामधील अल्गोरिदम" या पुस्तकातून शिकू शकता.

2. Java सिंटॅक्स

अल्गोरिदमच्या मूलभूत गोष्टी शिकल्यानंतर, आपल्याला जावा वाक्यरचना शिकणे आवश्यक आहे. शेवटी, तुम्ही जावा प्रोग्रामर बनण्याचा अभ्यास करत आहात, बरोबर? यासाठी CodeGym कोर्स योग्य आहे.

तुम्ही अगणित कार्ये करत असताना, तुमचा हात जावा सिंटॅक्सवर येईल आणि नंतर, जास्त संकोच न करता, तुम्ही जावा कोड लिहा/वाचाल जणू ती तुमची मूळ भाषा आहे.

सरावाच्या पलीकडे, आपण काय करत आहात हे समजून घेण्यासाठी आपल्याला सिद्धांताकडे देखील पाहण्याची आवश्यकता आहे. हे करण्यासाठी, आपण पुस्तके वाचू शकता. उदाहरणार्थ, खालीलपैकी एक:

  • "हेड फर्स्ट जावा",
  • बॅरी बर्डचे "जावा फॉर डमीज";
  • हर्बर्ट शिल्ड द्वारे "जावा: एक नवशिक्या मार्गदर्शक".

ही पुस्तके वाचल्यानंतर, तुम्ही कठीण पुस्तकांवर उतरू शकता:

  • "जावा मध्ये विचार," ब्रूस एकेल;
  • जोशुआ ब्लोच द्वारे "प्रभावी जावा";
  • हर्बर्ट शिल्ड द्वारे "जावा: संपूर्ण संदर्भ".

शेवटची तीन पुस्तके नवशिक्यांसाठी वाचणे सोपे नाही, परंतु ते जावा सिद्धांतामध्ये एक भक्कम पाया प्रदान करतात.

3. डिझाइन नमुने

डिझाईन नमुने हे काही पुनरावृत्ती करण्यायोग्य नमुने आहेत जे वारंवार समोर येणाऱ्या संदर्भांमध्ये समस्या सोडवतात. त्यामध्ये मूलभूत, साधे नमुने समाविष्ट आहेत जे प्रत्येक स्वाभिमानी प्रोग्रामरला माहित असले पाहिजेत. हा विषय समजून घेण्यासाठी, "हेड फर्स्ट डिझाइन पॅटर्न" हे पुस्तक घ्या.

हे मूलभूत डिझाइन पॅटर्न सुलभ मार्गाने स्पष्ट करते. परंतु हे पुस्तक जावा बद्दल बरेच काही बोलते, म्हणून जेव्हा तुम्ही हे पुस्तक वापरता तेव्हा तुम्हाला या प्रोग्रामिंग भाषेत ओघ देखील आवश्यक असेल.

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

याकडे लक्ष द्या, विशेषत: स्प्रिंगमध्ये वापरल्या जाणार्‍या नमुन्यांकडे, कारण हा एक लोकप्रिय मुलाखत प्रश्न आहे.

4. प्रोग्रामिंग प्रतिमान. कोड स्वच्छता

मानक डिझाइन नमुन्यांव्यतिरिक्त, विविध तत्त्वे आणि पॅराडिग्म्स आहेत ज्यांची माहिती असणे आवश्यक आहे (SOLID, GRASP).

तुम्हाला तुमचा कोड स्वच्छ आणि वाचनीय ठेवणे देखील आवश्यक आहे. प्रत्येक गोष्टीसाठी, तुम्हाला या विषयाबद्दल माहिती असणे आवश्यक आहे, रॉबर्ट मार्टिनचा क्लीन कोड पहा किंवा स्टीव्ह मॅककॉनेलचा "कोड पूर्ण" पहा.

5. SQL

आमची पुढची पायरी म्हणजे रिलेशनल डेटाबेस - SQL साठी भाषेचा अभ्यास करणे.

डेटाबेस म्हणजे वेब ऍप्लिकेशनद्वारे वापरलेली माहिती (डेटा) साठवली जाते. डेटाबेसमध्ये अनेक टेबल्स असतात (तुमच्या फोनवरील अॅड्रेस बुक हे एक साधे उदाहरण आहे).

Java डेव्हलपर्स केवळ Java ऍप्लिकेशनसाठीच नव्हे तर ते ज्या डेटाबेसशी संवाद साधतात आणि त्याचा डेटा कोठे संग्रहित करतात यासाठीही जबाबदार असतात.

रिलेशनल डेटाबेसेसमध्ये (जे सर्वात सामान्य प्रकार आहेत), सर्व परस्परसंवाद स्ट्रक्चर्ड क्वेरी लँग्वेज किंवा SQL नावाच्या विशेष भाषेद्वारे होतात.

हा विषय समजून घेण्यासाठी, तुम्हाला फक्त यापैकी एक पुस्तक वाचण्याची आवश्यकता आहे:

  1. अ‍ॅलन ब्युलियु द्वारे "लर्निंग एसक्यूएल";
  2. ख्रिस फेहिली द्वारे "SQL";
  3. लिन बेघलीचे "हेड फर्स्ट एसक्यूएल".

पण सिद्धांताशिवाय सरावाने ते कमी होत नाही, नाही का? आणि मुलाखतींमध्ये तुम्ही तुमच्या SQL च्या ज्ञानाच्या चाचणीची अपेक्षा करू शकता. मुलाखत घेणारे सहसा (जवळजवळ नेहमीच) एक किंवा दोन कार्ये देतात ज्यात SQL क्वेरी लिहिणे समाविष्ट असते.

परिणामी, स्वत:ला चांगल्या प्रकाशात दाखवण्यासाठी तुमची व्यावहारिक SQL कौशल्ये सुधारणे खूप महत्त्वाचे आहे.

6. MySQL/PostgreSQL

SQL भाषा शिकल्यानंतर, तुम्हाला विशिष्ट डेटाबेस अंमलबजावणीशी परिचित होणे आवश्यक आहे. डेटाबेसवर अवलंबून, काही आदेश नाटकीयरित्या बदलू शकतात. आणि डेटाबेस क्षमतांमध्ये लक्षणीय फरक आहेत.

सर्वात सामान्य रिलेशनल डेटाबेस म्हणजे MySQL आणि PostgreSQL. MySQL खूप सोपे आहे, परंतु PostgreSQL मध्ये खूप विस्तृत क्षमता आहेत. त्यापैकी किमान एकाशी परिचित असणे प्रारंभ करण्यासाठी पुरेसे आहे.

तुम्ही तुमची गुगलिंग कौशल्ये वापरत असल्यास तुम्ही डेटाबेस अंमलबजावणीचा अभ्यास करू शकता — YouTube वर संबंधित लेख आणि ट्यूटोरियल शोधा. तुम्हाला ज्या प्रश्नांची उत्तरे हवी आहेत त्यांच्यासाठी योग्य शोध क्वेरी तयार करण्याची तुमची क्षमता विकसित करणे आवश्यक आहे. शेवटी, प्रोग्रामर म्हणजे गुगलिंगमध्ये ब्लॅक बेल्ट असलेली व्यक्ती.

7. मावेन/ग्रेडल

तुम्हाला Gradle किंवा Maven फ्रेमवर्क शिकण्याची गरज आहे. ते प्रकल्प तयार करण्यासाठी आहेत आणि तुमच्यासाठी, Java आता केवळ दोन वर्गांच्या कामांसाठीच नाही तर पूर्ण-प्रगत अनुप्रयोग लिहिण्याची भाषा देखील आहे.

तुम्हाला प्रोजेक्ट कसा तयार करायचा, बिल्ड टप्पे काय आहेत, थर्ड-पार्टी कोडसह आवश्यक बाह्य लायब्ररी कशी लोड करायची आणि बरेच काही समजून घेणे आवश्यक आहे.

Gradle नवीन आणि अधिक संक्षिप्त आहे हे असूनही, Maven बहुतेक प्रकरणांमध्ये वापरले जाते. म्हणून, मावेन बिल्ड लाइफसायकलकडे विशेष लक्ष द्या.

8. गिट

गिट ही वितरित आवृत्ती नियंत्रण प्रणाली आहे. हे तंत्रज्ञान विकसकांना एकमेकांमध्ये हस्तक्षेप न करता एकाच अनुप्रयोगावर सहयोग करू देते.

अर्थात, इतर आवृत्ती नियंत्रण प्रणाली आहेत. उदाहरणार्थ, सबव्हर्जन. परंतु गिटचा वापर मोठ्या प्रमाणावर केला जातो आणि तुम्हाला त्यासह कार्य करण्यास सक्षम असणे आवश्यक आहे. Git बद्दलच्या अनेक लेखांव्यतिरिक्त तुम्ही ऑनलाइन शोधू शकता, YouTube कडे तुम्हाला या तंत्रज्ञानावर, टप्प्याटप्प्याने प्रभुत्व मिळवण्यात मदत करण्यासाठी पुरेसे व्हिडिओ आहेत.

सुरुवातीला, काही प्रकारचे GUI अंमलबजावणी करण्याऐवजी कमांड लाइनवरून Git वापरणे चांगले आहे, कारण तुम्हाला कमांड वापरून सर्वकाही करण्यास भाग पाडले जाईल. मुलाखतींमध्ये, लोकांना सहसा काही Git कमांड्सबद्दल विचारायला आवडते, म्हणून मी शिफारस करतो की तुम्ही त्या लिहून ठेवा आणि कुठेतरी जवळ ठेवा.

9. JDBC

हे तंत्रज्ञान तुमचा Java अनुप्रयोग आणि रिलेशनल डेटाबेस कनेक्ट करते. मूलभूत गोष्टींसाठी कोणतेही JDBC ट्यूटोरियल वाचा.

JDBC चे स्पष्टीकरण देणारे आणि प्राथमिक उदाहरणे देणारे लेख भरपूर आहेत, जरी आता कोणीही नग्न JDBC थेट वापरत नाही.

10. जेपीए. हायबरनेट

JPA हा JDBC प्रमाणेच Java ऍप्लिकेशन आणि डेटाबेस यांच्यात कनेक्शन स्थापित करण्याचा एक मार्ग आहे. परंतु त्याच वेळी, जेपीए एक उच्च-स्तरीय तंत्रज्ञान आहे आणि म्हणून वापरण्यास सोपे आहे.

परंतु जेपीए केवळ एक तपशील आहे, अंमलबजावणी नाही. त्याची ठोस अंमलबजावणी आवश्यक आहे. त्यापैकी बरेच अस्तित्वात आहेत, परंतु JPA आदर्शांच्या सर्वात जवळचे, सर्वात लोकप्रिय आणि सर्वात विकसित हायबरनेट आहे.

तुमच्या सॉफ्टवेअर डेव्हलपमेंट करिअरमध्ये तुम्हाला हे तंत्रज्ञान एकापेक्षा जास्त वेळा आढळेल. म्हणून, लेख वाचून या तंत्रज्ञानाशी परिचित होण्याव्यतिरिक्त, पुस्तक वाचण्याचा विचार करणे योग्य असू शकते, उदाहरणार्थ, "Java Persistence API".

11. वसंत ऋतु

तुम्ही जावा डेव्हलपर झाल्यावर, स्प्रिंग यापुढे तुमच्यासाठी फक्त एक शब्द नाही. हे फ्रेमवर्क जाणून घेणे आता Java सिंटॅक्स जाणून घेण्याइतकेच महत्त्वाचे आहे. तुम्ही म्हणू शकता की स्प्रिंगला एक भावंड आहे, म्हणजे Java EE. परंतु Java EE जुने झाले आहे आणि यापुढे नवीन प्रकल्पांवर वापरले जाणार नाही.

जावा डेव्हलपरचे बहुसंख्य आता Java-स्प्रिंग डेव्हलपर आहेत, म्हणून काही मूलभूत स्प्रिंग तंत्रज्ञान जाणून घेणे आवश्यक आहे.

स्प्रिंग फक्त एक फ्रेमवर्क नाही तर फ्रेमवर्कची संपूर्ण फ्रेमवर्क आहे:

आणि हे स्प्रिंग प्रदान केलेल्या फ्रेमवर्कचा फक्त एक उपसंच आहे. नवशिक्यासाठी, त्यापैकी फक्त काही जाणून घेणे पुरेसे आहे:

स्प्रिंग कोर

तुम्ही हे प्रथम स्थानावर ठेवले पाहिजे, जेणेकरून तुम्ही स्प्रिंग म्हणजे काय हे समजू शकाल — सर्व काही स्प्रिंग कंटेनर, बीन्स, DI, IoC इत्यादींबद्दल. स्प्रिंग वापरण्याचे तत्वज्ञान समजून घेणे, म्हणून बोलणे. स्प्रिंग फ्रेमवर्कचा तुमचा पुढील अभ्यास या बेसच्या वर तयार होईल. कदाचित तुम्ही तुमचा स्वतःचा छोटा ऍप्लिकेशन तयार केला पाहिजे ज्यामध्ये तुम्ही हळूहळू सर्व नवीन शिकलेल्या तंत्रज्ञानाचा समावेश करू शकता.

वसंत JDBC

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

JDBC चा नग्न (थेट) वापर करून, तुम्ही तंत्रज्ञानाला खालच्या पातळीवर पाहू शकता आणि त्यातील समस्या आणि कमतरता समजून घेऊ शकता. मग जेव्हा तुम्ही Spring JDBC शिकण्यास सुरुवात कराल, तेव्हा तुम्हाला हे समजेल की ही फ्रेमवर्क नेमके काय सुधारते, ऑप्टिमाइझ करते आणि लपवते.

वसंत ऋतु हायबरनेट

नग्न जेडीबीसीच्या परिस्थितीशी साधर्म्य असलेले, हे फ्रेमवर्क विद्यमान तंत्रज्ञानाचा लाभ घेते, या प्रकरणात, हायबरनेट. जर तुम्ही स्प्रिंगशिवाय हायबरनेट वापरण्याचा विचार केला तर तुम्हाला स्प्रिंग हायबरनेटचे फायदे नक्कीच जाणवतील.

वसंत ऋतु JPA

यापूर्वी आम्ही JPA बद्दल बोललो आणि नमूद केले की ते फक्त एक तपशील आहे, जरी त्यात विविध अंमलबजावणी आहेत. या अंमलबजावणींपैकी, हायबरनेट आदर्शाच्या सर्वात जवळ येते.

स्प्रिंगची स्वतःची आदर्श JPA अंमलबजावणी आहे जी हुड अंतर्गत हायबरनेट वापरते. हे जेपीए तपशीलाच्या आदर्शाच्या शक्य तितके जवळ आहे.

त्याला स्प्रिंग जेपीए म्हणतात. एका शब्दात, ते डेटाबेस ऍक्सेस मोठ्या प्रमाणात सुलभ करते.

तुम्ही जेडीबीसी, हायबरनेट, स्प्रिंग जेडीबीसी किंवा स्प्रिंग हायबरनेट न शिकता फक्त जेपीए शिकू शकता. परंतु जर तुम्ही हा दृष्टीकोन घेतला तर डेटाबेसला कसे जोडायचे याचे तुमचे ज्ञान खूप वरवरचे असेल.

स्प्रिंग MVC

हे तंत्रज्ञान वापरकर्त्यांना आमच्या ऍप्लिकेशनचा वेब इंटरफेस प्रदर्शित करणे आणि इंटरफेस आणि उर्वरित ऍप्लिकेशन दरम्यान संवाद सुलभ करणे शक्य करते. जेव्हा तुमच्याकडे डिस्प्ले हाताळण्यासाठी जबाबदार असलेले अॅप्लिकेशन असेल आणि तुम्ही RESTful तंत्रज्ञान वापरून अॅप्लिकेशनशी संवाद साधत असाल तेव्हा डिस्प्लेशिवाय देखील तंत्रज्ञान वापरले जाऊ शकते.

लेख आणि YouTube व्याख्याने व्यतिरिक्त, वसंत ऋतु बद्दल माहिती अधिक चांगल्या प्रकारे भिजवण्यासाठी, तुम्ही अनेक पुस्तके वाचू शकता. उदाहरणार्थ, क्रेग वॉल्सचे "स्प्रिंग इन अॅक्शन". स्प्रिंगवरील आणखी एक उत्तम पुस्तक म्हणजे "व्यावसायिकांसाठी स्प्रिंग 5". ते अधिक दाट आहे. कव्हर टू कव्हर वाचण्यापेक्षा जवळ ठेवणे अधिक मौल्यवान असलेल्या संदर्भासारखे.

स्प्रिंग बूट

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

प्रथम, स्प्रिंग फ्रेमवर्क कसे कार्य करते हे अधिक चांगल्या प्रकारे समजून घेण्यासाठी, आपण नियमित स्प्रिंग वापरावे आणि नंतर स्प्रिंग बूट वापरण्याचे सर्व उच्च फायदे घ्या.

तुम्ही स्वतःला स्प्रिंग सिक्युरिटी आणि स्प्रिंग एओपी बद्दल देखील परिचित केले पाहिजे. परंतु वरील तंत्रज्ञानाच्या विपरीत, या दोघांचे सखोल ज्ञान अद्याप आवश्यक नाही.

हे तंत्रज्ञान नवशिक्यांसाठी नाही. मुलाखतींमध्ये, कनिष्ठ देवांना त्यांच्याबद्दल विचारले जाणार नाही (एक वरवरचा प्रश्न वगळता, कदाचित). ही तंत्रज्ञाने काय आहेत आणि त्यांच्या कार्यामागील तत्त्वांचे विहंगावलोकन वाचा.

तुम्हाला जितके अधिक माहिती असेल तितक्या लवकर तुम्हाला तुमची पहिली नोकरी मिळेल.