Hi everyone, I am Harshit Rehan and I am working at Atlassian as a software engineer and मैंने 11-12 में C++ पढ़ी थी and दो साल C++ पढ़ने के बाद भी मैंने college में DSA Java साइज टार्ट करी and ऐसा इसलिए क्योंकि Java सीखने के काफी सारे benefits हैं आपको pointers का ध्यान नहीं रखना होता pointers actually में memory allocation के काम आते हैं and C++ में ये काफी important and confusing topic सिर्फ in pointers की वज़े से काफी सारी silly mistakes हो जाते हैं code के अंदर जिनने debug करना भी काफी सारी काफी मुश्किल होता है. But Java language में pointers का concept नहीं है. जिस वज़े से इस language में errors होने की possibility काफी कम हो जाती है.
इसके साथ Java में memory management भी internally handled होती है. आपको कुछ से memory allocate और deallocate करने की जरूरत ही नहीं है. Java में कुछ से memory allocate भी हो जाती है. और अगर कोई memory काफी time से use नहीं होई है then garbage collector उस memory को deallocate भी करते थे.
And finally सबसे important बात यह है that Java is heavily used in the industry. Java की industry usage काफी और इस वजह से जावा में DSA सीखना आपके लिए अधिक जावा बेनिफिशियल होने वाला है LinkedIn और YouTube पर मुझे बहुत सारे स्कूलेंट्स रिचाइट करते हैं और उनके यही कुछ ज़र्मी विशेष होते हैं और भाई ज़र्मी विशेष वि for learning DSA in Java so without much wait let's get started मैंने college में coding second year से start करी थी and तब मैंने coding करने के लिए C++ language को ही choose किया था क्योंकि मैंने C++ 11-12 में 2 साल पढ़ रही थी and साथ ही साथ मुझे C++ के basics भी clear थे जब मैंने DSA C++ में करना start किया तब मेरी pointers की वज़े से काफ़ी ज़रीली mistakes हुआ करती थी and यही same issue मेरे कुछ friends भी face कर रहे थे and यह हम सब के लिए बहुत ज़ादा frustrating था एरर आ जाता था तो उस एरर को डीबग करके रिजॉल्व करने में हम सबको बहुत टाइम लगता था तभी हमें से किसी एक ने सिजेस किया कि जावा लैंगुज के अंदर कॉइंट टेस का कॉंचेप्ट ही नहीं होता और इसलिए हम सबको जावा लैंगुज में कोड करना स् और मेरे debug करने में time भी गम लगेगा C++ भी काफी अच्छी language है C++ जादा fast है, जादा secure है और उसकी और भी काफी जारे benefits है जिनको मैं deny नहीं कर रहा बट उस time मेरे major focus DSA सीखने पर था और DSA C++ से सीखना मेरे लिए tough था और at the same time मुझे काफी से errors भी आ रहे थे मैंने java में switch करने का decision लिए बट DSA, java में start करने से पहले मुझे java language के basics basics like कि java के अंदर variables कैसे declare करने करते हैं, कौन-कौन से data types होते हैं, syntax क्या होता है, functions कैसे declare करते हैं, object oriented programming के concepts like classes, inheritance, polymorphism, etc. यह सब Java के अंदर implement कैसे होते हैं, इन सब की knowledge होना मेरे लिए बहुत ज़्यादा important था, क्योंकि अगर मुझे language के basics ही नहीं पता होंगे, language का syntax ही नहीं पता होगा, तो इसमें मैं आगे चलके coding कैसे करूँगा, तो इसलिए Java के इनी सारे basics को clear करने के लिए, मैं चला गया था Java T-Point पर, यह एक बहुत अच्छी website है, इसके तरह आपको Java की basics, जावा की इस्तेमाल्ट जा वैसे तक problem solving की होती है आप किसी भी language में DSA सीखकर उसे अपनी language में code कर सकते हो बट अगर हमें कोई ऐसा resource मिल जाए जो DSA जावा में सिखाता हो तो वो हमारे लिए काफी beneficial हो जाएगा क्योंकि उसमें हमें syntax भी पता जाएगा और उसके साथ हमारे time and efforts भी बच जाएगे और ऐसा ही perfect resource मुझे मिला by the name of pep coding pep coding का YouTube channel है जिसके नार आपको DSA जावा में सिखा रखी है आप अगर उनकी YouTube channel में playlist section में जाओगे और bottom पे scroll करोगे DSA Level 1 नाम की एक playlist मिलेगी, जिसके अंदर आपको data structures and उनसे related questions समझा रखे हैं, and at the same time, Java में ही code करा रखे हैं. मैंने भी उसी playlist को follow किया था, जिसकी वज़े से मैं DSA भी सीख पाया, and उसके साथ मुझे Java के syntax में भी कोई issue नहीं आया.
मैंने सबसे पहले start किया arrays and strings से, then उसके बाद आया stacks and queues पर, stack and queues तक आते आते, मुझे Java language का syntax काफ़ी clear हो गया था, and अब मैं उस पर comfortably code कर सकता था, and यही normal behavior भी हो गया है, भी होता है आप किसी भी language क अच्छे से practice करते रहो, then आप almost one month के अंदर, उसी language के अंदर काफी comfortably code करना लगोगे. And similarly, मैं भी almost one month के अंदर, Java language के अंदर, काफी comfortably code करना लग गया था. Then, Stag and Queues खतम हुआ, and मैंने start किया HashMaps पर.
And HashMaps... अच्छे से पढ़ने और उन पर enough questions लगाने के बाद मैंने basic data structures को अच्छे से cover कर लिया था and अब बारी थी advanced data structures पर move करने की advanced data structures के अंदर आते हैं trees, graphs, dynamic programming, etc. and इन सबी data structures के अंदर recursion काफी heavily use होती है तो इसीलिए इन data structures में बढ़ने से पहले मैंने recursion का concept अच्छे से पढ़कर clear कर लिया था so अब मैंने data structures पढ़ लिये थे and उनसे related problems भी solve कर लियी and और questions practice करने के लिए मैं चला गया था interview bit की site पर जिसकी programming वाले section में आपको हर एक data structure के important questions दे रखे हैं मैंने उन सारे ही data structure के questions को java में ही code करके solve किया and almost two months के अंदर मैंने उन सारे ही questions को complete कर दिया था अब इस point तक मेरी DSA and java दोनों की knowledge काफी improve हो गई थी मुझे सभी data structures के बारे में पता था and मैंने उनसे related काविजरी problems भी solve कर ली थी and at the same time मुझे java language के भी syntax, libraries, functioning इन सब के बारे में भी पता था and अब बारी थी interview level DSA java में prepare करने की जिसके लिए मैं चला गया था lead code पर and वहाँ पर जाकर lead code की top 150 interview questions list को मैंने solve करना start किया जिसके अंदर 150 questions होते हैं and वो सारे ही questions इतने important है जा चुके हैं और उसी को कंपाइल करकर लिट कोड एक लिस्ट में आ रखी है जिसके अंदर आपको सारी डाइटर स्क्रिप्स भी कवर होते हैं एंड आपको सीम टाइम आपको मोस्ट इंपोर्टेंट के बारे में पता लगता है तो इसीलिए मुझे वह अगर कभी कोई question solve हो भी जाता था तब भी मैं उस discussion टैप पे आता था और उसी most voted solution को देखता था ताकि अगर उस question को solve करने की कोई और optimized approach भी है तो वो मुझे approach पता चल सकें और अगर उस question को solve करने की कोई और optimized approach भी है तब भी मुझे approach पता चल सकें लीड कोड पर वीकली और बाइवीकली कॉंटेस्ट होते हैं और अगर आपको कोई कॉंटेस्ट मिस हो जाए तो वो पास्ट कॉंटेस्ट की फॉर्म में अवेलिबल रहता है इन कॉंटेस्ट की मदद से मेरी DSA की प्राक्टिस भी हुई एटलाशन, जस्पे, बीन्वे मिलिन, टीसीएस, इंफोसिस और बड़ी अधिक परिणाव पर आपको पूर्ण देख रहे हैं इन जावा एंड आपके पास भी एक ट्रियर पार्ट एंड रिसोर्सेस है फॉर लर्निंग डीएसे इन जावा आयो बात किस वीडियो से पुछ सीख पाए कुछ समझ पाए एंड दाट्स ऑल फॉर माय साइड इस अश्लील तरह एंड साइनिंग आपके पास पाए एंड मैं आपक