00:00:00जानते हैं प्रोजेक्ट बनाने से ज़्यादा निराशाजनक क्या है? यह न जानना कि क्या बनाया जाए।
00:00:04डेवलपर के तौर पर अपनी यात्रा में, एक समय पर आप इस अजीब दौर में पहुँच जाते हैं।
00:00:08किसी जावास्क्रिप्ट फ्रेमवर्क के साथ एक और CRUD ऐप बनाना उबाऊ लगता है,
00:00:11लेकिन स्क्रैच से ऑपरेटिंग सिस्टम बनाना असंभव लगता है। आप बीच में फँस गए हैं।
00:00:16आप इसे आसान नहीं चाहते। आप असंभव भी नहीं चाहते। आप बस कुछ सार्थक बनाना चाहते हैं।
00:00:21कुछ ऐसा जो आपको बेहतर बनाने के लिए पर्याप्त चुनौतीपूर्ण हो, लेकिन इतना भारी न हो कि आप बीच में ही छोड़ दें।
00:00:26मेरा विश्वास करें, मैं भी वहीं था। इसलिए इस वीडियो में, मैं आपको कुछ बेहतरीन प्रोजेक्ट आइडिया देने जा रहा हूँ।
00:00:32मैंने इन्हें तीन स्तरों में विभाजित किया है। लेवल एक: अपनी नींव बनाना। लेवल दो: स्टोरेज,
00:00:38डेटाबेस और डेटा सिस्टम। और लेवल तीन: एडवांस सिस्टम और इंटरनल्स।
00:00:44अगर आप ये प्रोजेक्ट बनाते हैं, तो आप केवल कोडिंग में ही बेहतर नहीं होंगे, बल्कि आप एक
00:00:49इंजीनियर की तरह सोचना शुरू कर देंगे। चलिए लेवल एक से शुरू करते हैं। पहला प्रोजेक्ट है
00:00:55शून्य से अपना खुद का HTTP सर्वर बनाना। अगर आप यह देख रहे हैं, तो शायद आप जानते होंगे कि HTTP सर्वर क्या है।
00:01:01हर बार जब आप कोई वेबसाइट खोलते हैं या API कॉल करते हैं, तो पर्दे के पीछे एक रिक्वेस्ट और रिस्पांस होता है।
00:01:06लेकिन अब तक, आपने केवल एक्सप्रेस जैसे फ्रेमवर्क के माध्यम से इसके साथ काम किया है। अपना खुद का मिनी
00:01:12HTTP सर्वर बनाना आपको यह समझने पर मजबूर करता है कि वास्तव में इसके नीचे क्या हो रहा है। आप सीखेंगे कि TCP सॉकेट्स
00:01:19डेटा कैसे भेजते और प्राप्त करते हैं, HTTP रिक्वेस्ट कैसे पार्स की जाती हैं, रिस्पांस कैसे फॉर्मेट होते हैं, और कैसे
00:01:25एक साथ कई रिक्वेस्ट संभाली जाती हैं। अगर आप पहले से ही इस बात से परेशान हैं कि आप
00:01:30इन प्रोजेक्ट्स को कैसे पूरा करेंगे, तो वीडियो के अंत में मेरे पास आपके लिए एक छोटा सा समाधान है। उसे मिस न करें।
00:01:35अब दूसरे प्रोजेक्ट की ओर चलते हैं। अपना खुद का शेल बनाना। आपने सैकड़ों बार
00:01:40cd, ls, pwd जैसे कमांड्स का उपयोग किया होगा। लेकिन क्या आपने कभी सोचा है कि वास्तव में उन
00:01:46कमांड्स को प्रोसेस कौन करता है? जब आप अपना खुद का शेल बनाते हैं, तो आप खुद उस सिस्टम को बनाते हैं।
00:01:52आप यूजर इनपुट को पढ़ना और पार्स करना, प्रोसेस को निष्पादित करना और सिस्टम कॉल को संभालना,
00:01:58और प्रोसेस और कमांड जैसे OS स्तर के कॉन्सेप्ट्स को समझेंगे। स्क्रैच से अपना खुद का शेल बनाकर,
00:02:04आप कंप्यूटर को गहराई से समझेंगे। अब चीजें और दिलचस्प होने लगी हैं। चलिए देखते हैं कि
00:02:09लेवल दो में कौन से प्रोजेक्ट्स हैं। यहाँ पहला प्रोजेक्ट है अपना खुद का Redis बनाना। Redis एक
00:02:15इन-मेमोरी डेटा स्टोर है जिसका उपयोग कैश, डेटाबेस, मैसेज ब्रोकर और बहुत कुछ के रूप में किया जाता है। यह अविश्वसनीय रूप से तेज़ है।
00:02:21लेकिन जब तक आप खुद इसे नहीं बनाते, आप वास्तव में नहीं समझ पाएंगे कि क्यों। जब आप अपना खुद का Redis
00:02:26क्लोन बनाएंगे, तो आप सीखेंगे कि इन-मेमोरी डेटा स्ट्रक्चर कैसे काम करते हैं। आप बुनियादी Redis कमांड्स लागू करेंगे।
00:02:32आप Redis प्रोटोकॉल को समझेंगे। आप इवेंट लूप्स का उपयोग करके कुशलतापूर्वक कई क्लाइंट कनेक्शन मैनेज करेंगे।
00:02:38ये तो बस कुछ खास बातें हैं। इस पर काम शुरू करने के बाद आप और भी बहुत सी चीजें सीखेंगे।
00:02:43आपको एहसास होगा कि सॉफ्टवेयर इंजीनियरिंग केवल CRUD एप्लिकेशन बनाने से कहीं बढ़कर है।
00:02:48अगला प्रोजेक्ट है अपना खुद का GIT बनाना। आप हर दिन GIT का उपयोग करते हैं। लेकिन क्या आप वास्तव में जानते हैं कि यह कैसे काम करता है?
00:02:54जब आप खुद एक सरल वर्जन कंट्रोल सिस्टम बनाते हैं, तो सब कुछ स्पष्ट हो जाता है। आप समझेंगे कि
00:03:00कमिट्स को आंतरिक रूप से कैसे स्टोर किया जाता है। आप हैशिंग और कंटेंट एड्रेसेबल स्टोरेज को लागू करेंगे।
00:03:05आप फ़ाइल स्नैपशॉट्स को कमिट ट्री में व्यवस्थित करेंगे। और भी बहुत कुछ है जिसे आप सीखेंगे और लागू करेंगे।
00:03:11और स्क्रैच से बनाने की सबसे अच्छी बात यह है कि आप इसे अपनी इच्छानुसार काम करने के लिए बदल सकते हैं।
00:03:16अंत में, हमारा तीसरा प्रोजेक्ट अपना खुद का SQLite डेटाबेस बनाना है। SQLite एक सर्वरलेस
00:03:22डेटाबेस इंजन है जो सब कुछ एक ही फ़ाइल में स्टोर करता है। MySQL या Postgres के विपरीत, इसमें कोई
00:03:29अलग सर्वर प्रोसेस नहीं होती। यह हल्का है लेकिन अविश्वसनीय रूप से शक्तिशाली है। जब आप अपना वर्जन बनाएंगे,
00:03:34तो आप समझेंगे कि B-trees जैसे स्ट्रक्चर्स का उपयोग करके डेटा कैसे व्यवस्थित किया जाता है। आप सरल क्वेरीज
00:03:39को पार्स और निष्पादित करेंगे। आप तेज़ डेटा प्राप्ति के लिए इंडेक्सिंग लागू करेंगे। एक डेवलपर के रूप में,
00:03:45आप डेटाबेस से बच नहीं सकते। लेकिन एक बार जब आप समझ जाते हैं कि कोई डेटाबेस अंदर से कैसे काम करता है, तो आप कुछ खास डेवलपर्स में शामिल हो जाएंगे।
00:03:52अब लेवल तीन में, हम और गहराई में जाएंगे। यहाँ पहला प्रोजेक्ट अपनी खुद की मिनी प्रोग्रामिंग लैंग्वेज बनाना है।
00:03:58हाँ, आपकी अपनी भाषा। आप कुछ ऐसा बनाएंगे जो कोड को पढ़ता है, उसे समझता है और निर्देशों
00:04:04को निष्पादित करता है। और हालाँकि यह डरावना लग सकता है, यह आपके द्वारा बनाए जा सकने वाले सबसे संतोषजनक प्रोजेक्ट्स में से एक है।
00:04:10आप लेक्सर, पार्सर और एब्सट्रैक्ट सिंटैक्स ट्री जैसी चीजें सीखेंगे और लागू करेंगे। सबसे महत्वपूर्ण बात यह है कि आप
00:04:17समझेंगे कि इंटरप्रिटर्स और कंपाइलर्स वास्तव में कैसे काम करते हैं। यह एक बेहतरीन प्रोजेक्ट है क्योंकि आप अंततः
00:04:22समझ पाएंगे कि हम वास्तव में कंप्यूटर से कैसे बात करते हैं। और आप यह भी दिखावा कर सकते हैं कि आपने
00:04:27एक प्रोग्रामिंग लैंग्वेज बनाई है और उसे जो चाहें नाम दे सकते हैं। तो दूसरा प्रोजेक्ट अपना खुद का
00:04:32BitTorrent क्लाइंट बनाना है। यहाँ डिस्ट्रीब्यूटेड सिस्टम की भूमिका आती है। BitTorrent एक पीयर-टू-पीयर
00:04:38फ़ाइल शेयरिंग सिस्टम है जहाँ यूजर एक ही सर्वर के बजाय कई पीयर्स से फ़ाइल के टुकड़े डाउनलोड करते हैं।
00:04:44जब आप इसे बनाएंगे, तो आप पीयर डिस्कवरी लागू करेंगे, नोड्स के बीच कनेक्शन मैनेज करेंगे, फ़ाइलों को
00:04:50टुकड़ों में बांटेंगे, फ़ाइल की अखंडता सुनिश्चित करेंगे और डिस्ट्रीब्यूटेड कम्युनिकेशन को संभालेंगे। यह कोई आसान प्रोजेक्ट नहीं है।
00:04:57मुझे यकीन है कि मैंने अभी जो कुछ कहा, उसमें से आधा भी आपको समझ नहीं आया होगा। लेकिन यह सिखाता है कि
00:05:02बड़े पैमाने के डिस्ट्रीब्यूटेड सिस्टम वास्तव में कैसे काम करते हैं। और अंत में, हमारा आखिरी प्रोजेक्ट अपना खुद का कोडिंग
00:05:08असिस्टेंट बनाना है। क्लॉड कोड जैसा कुछ। आधुनिक AI टूल्स बेहतरीन लगते हैं। लेकिन हुड के नीचे, वे
00:05:14लार्ज लैंग्वेज मॉडल्स को पारंपरिक सॉफ्टवेयर आर्किटेक्चर के साथ जोड़ने वाले सिस्टम हैं। जब आप
00:05:20खुद एक बनाएंगे, तो आप एक LLM API को एक एप्लिकेशन में एकीकृत करेंगे। आप संदर्भ प्रदान करने के लिए
00:05:27प्रोजेक्ट फ़ाइलों को पार्स और इंडेक्स करेंगे। आप प्रॉम्ट्स को मैनेज करेंगे और रिस्पांस को कंट्रोल करेंगे। आप एक ऐसा सिस्टम
00:05:32डिजाइन करेंगे जो AI को वास्तविक इंजीनियरिंग सिद्धांतों के साथ मिलाता है। और इस पर काम शुरू करने के बाद, आप
00:05:38समझेंगे कि ये लोकप्रिय AI कोडिंग टूल्स वास्तव में हुड के नीचे कैसे काम करते हैं। और सिर्फ इतना ही नहीं, क्योंकि AI आज
00:05:44इतना चर्चा में है, यह एक बहुत ही शानदार और चुनौतीपूर्ण प्रोजेक्ट है जो आपको भीड़ से अलग खड़ा कर सकता है। अब ईमानदार रहें।
00:05:50इनमें से कुछ प्रोजेक्ट्स कठिन हैं। अपना खुद का Redis, Git या BitTorrent क्लाइंट बनाना ऐसा
00:05:55नहीं है जिसे आप बस एक वीकेंड में खत्म कर दें। आप कहीं अटकेंगे। आप खुद पर शक करेंगे। कभी-कभी
00:06:01आपको पता भी नहीं चलेगा कि आप इसे सही तरह से लागू कर रहे हैं या नहीं। और यहीं पर ज्यादातर लोग
00:06:05हार मान लेते हैं। तो इससे निपटने के लिए, CodeCrafters नाम का एक प्लेटफॉर्म है। यह एक प्रोजेक्ट-आधारित लर्निंग
00:06:11प्लेटफॉर्म है जहाँ आप Redis, SQLite, DNS सर्वर, HTTP सर्वर जैसे टूल्स को कदम दर कदम फिर से बनाते हैं। वे
00:06:19आपको समाधान नहीं देते। वे आपको टेस्ट और स्ट्रक्चर्ड माइलस्टोन्स देते हैं। और आप सब कुछ खुद
00:06:23लागू करते हैं। मैंने खुद इन प्रोजेक्ट्स पर काम करते समय इसका इस्तेमाल किया है। और सच कहूँ तो, उस स्ट्रक्चर्ड
00:06:29दिशा ने हार मानने और काम पूरा करने के बीच बड़ा अंतर पैदा किया। तो अगर आपको ये प्रोजेक्ट आइडिया पसंद आए हैं लेकिन
00:06:34खुद काम करते हुए मार्गदर्शन भी चाहते हैं, तो मैं डिस्क्रिप्शन में एक लिंक छोड़ दूँगा। लेकिन चाहे आप
00:06:39किसी प्लेटफॉर्म का उपयोग करें या पूरी तरह अकेले बढ़ें, महत्वपूर्ण बात यह है कि आप वास्तव में खुद निर्माण करें। अगर आप
00:06:45भी इंटरनेट पर अगला प्रोजेक्ट खोजने के लिए भटक रहे थे, तो मुझे आशा है कि इससे आपको स्पष्टता मिली होगी।
00:06:51यह शुरू में डरावना लग सकता है, लेकिन ठंडा पानी तब तक गर्म नहीं होता जब तक आप उसमें कूद न जाएं। अगर आपको इस
00:06:57तरह के वीडियो पसंद आए, तो लाइक और सब्सक्राइब करना न भूलें, और मुझे बताएं कि आप किस प्रोजेक्ट से शुरुआत करने वाले हैं।
00:07:02मैं आपसे अगले वीडियो में मिलूँगा।