"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फुलस्टैक डेवलपमेंट: जावास्क्रिप्ट डेवलपर्स के रूप में पायथन सीखना

फुलस्टैक डेवलपमेंट: जावास्क्रिप्ट डेवलपर्स के रूप में पायथन सीखना

2024-09-02 को प्रकाशित
ब्राउज़ करें:488

Fullstack Development: Learning Python as JavaScript Developers

यात्रा शुरू होती है

मैं 8 वर्षों से अधिक समय से फ्रंटएंड डेवलपर के रूप में काम कर रहा हूं, और पिछले 2 वर्षों में, मैंने अपने करियर पर पुनर्विचार करने का फैसला किया है और मैं कैसे बढ़ सकता हूं। मैंने पाया कि फ्रंटएंड तकनीक बार-बार बदलती रहती है: विभिन्न ढांचे, अवधारणाएं, और रिएक्ट क्लास घटकों और हुक के बीच का अंतर। मुझे एहसास हुआ कि यह सब केवल व्यावसायिक आवश्यकताओं और व्यक्तिगत दृष्टिकोण को व्यक्त करने के लिए उपयोग की जाने वाली अमूर्तता है। इस बिंदु से, मैंने अपना करियर पथ बदलने और एक पूर्ण-स्टैक डेवलपर बनने का निर्णय लिया।

जैसा कि हम सभी जानते हैं, फ्रंटएंड डेवलपमेंट आजकल पूरी तरह से जावास्क्रिप्ट के बारे में है, यही कारण है कि मैंने Node.js और इसके मुख्य ढांचे को सीखने का फैसला किया। सभी फ्रंटएंड डेवलपर्स एक या दूसरे तरीके से Node.js का सामना करते हैं, और एक वरिष्ठ फ्रंटएंड डेवलपर के रूप में, आपको एक्सप्रेस या किसी अन्य लाइब्रेरी के साथ Node.js में बुनियादी एंडपॉइंट लिखने में सक्षम होना चाहिए। Node.js पर 2 साल के सक्रिय विकास के बाद, जब मेरा काम फ्रंटएंड और बैकएंड के बीच 50/50 हो गया, तो मुझे पता चला कि अधिकांश परियोजनाएं खुद को केवल एक भाषा तक सीमित नहीं रखती हैं।

Node.js हर चीज़ के लिए आदर्श उपकरण नहीं है, खासकर जब आप किसी बड़ी कंपनी में काम कर रहे हों। अलग-अलग भाषाएँ अलग-अलग समाधान प्रदान करती हैं या विशिष्ट व्यावसायिक मामलों को सुलझाने के लिए अधिक इष्टतम हैं। यही कारण है कि मैंने शोध करना शुरू कर दिया कि मैं अपनी दूसरी बैकएंड भाषा के रूप में क्या सीख सकता हूं और भविष्य में इसका उपयोग कैसे कर सकता हूं।

मैं अपना अनुभव साझा करना चाहता हूं और क्यों मैंने रस्ट (ज्यादातर वेब विकास के लिए नहीं), स्विफ्ट (जो मुख्य रूप से एक मोबाइल-पहला समाधान है), और गोलांग सीखने की कोशिश करने के बाद पायथन के साथ बने रहने का फैसला किया। यहां, आप जानेंगे कि मेरा मानना ​​​​है कि पायथन फ्रंटएंड डेवलपर्स के लिए सीखने का एक शानदार अवसर है और इसका उपयोग कैसे शुरू करें।

पायथन क्यों?

आजकल, AI एक ऐसी चीज़ है जिसके बारे में हर कोई बात कर रहा है। अपने अनुभव के हिस्से के रूप में एक साक्षात्कार में इसका उल्लेख करने से आपको हमेशा अतिरिक्त अंक मिलते हैं। लगभग सभी कंपनियां अपने उत्पादों में एआई को शामिल करने की कोशिश कर रही हैं, और पायथन एआई और मशीन लर्निंग के साथ-साथ चलता है। पायथन सीखकर, आपको न केवल Django, फ्लास्क और फास्टएपीआई जैसे फ्रेमवर्क के साथ वेब एप्लिकेशन लिखने का अवसर मिलता है, बल्कि आप मशीन लर्निंग और एआई सेवाओं के साथ भी काम करना शुरू कर सकते हैं।
एक ओर, यदि आप एक बेहतर प्रोग्रामर बनना चाहते हैं तो रस्ट, गो या एलिक्सिर जैसी अधिक जटिल भाषाएँ सीखना एक अच्छा विचार है। हालाँकि, करियर के नजरिए से, एक पूरी तरह से अलग भाषा, जिससे आप कम परिचित हैं, के साथ बैकएंड डेवलपर बनना आसान बदलाव नहीं है।

पायथन एक गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषा है। एक जावास्क्रिप्ट डेवलपर के रूप में, जिसने आपके करियर का एक महत्वपूर्ण हिस्सा इसी तरह के माहौल में बिताया है, इससे आपको डरना नहीं चाहिए, क्योंकि आप पहले से ही जानते हैं कि कोड में किस प्रकार के मुद्दों की अपेक्षा की जा सकती है।
पायथन के साथ, आप न केवल वेब एप्लिकेशन लिखना शुरू कर सकते हैं बल्कि एआई-संबंधित क्षेत्रों में अपने कौशल का लाभ भी उठा सकते हैं, जो दूसरी भाषा के रूप में पायथन को एक महत्वपूर्ण लाभ देता है।

सीखने की अवस्था

सीखने की प्रक्रिया सीधी थी। पायथन में, आपको निश्चित रूप से कुछ बुनियादी अवधारणाएँ सीखने की ज़रूरत है। यदि आपके पास जावास्क्रिप्ट का अनुभव है तो यह कोई बड़ी बात नहीं होनी चाहिए।

पायथन में कोड उदाहरण यहां दिया गया है:

import random

def guess_the_number():
    number_to_guess = random.randint(1, 100)
    attempts = 0
    guessed = False

    print("Welcome to the Number Guessing Game!")
    print("I'm thinking of a number between 1 and 100. Can you guess what it is?")

    while not guessed:
        user_guess = int(input("Enter your guess: "))
        attempts  = 1

        if user_guess  number_to_guess:
            print("Too high! Try again.")
        else:
            print(f"Congratulations! You guessed the number {number_to_guess} in {attempts} attempts.")
            guessed = True

guess_the_number()

मुझे नहीं लगता कि आपको यहां कुछ भी जटिल मिलेगा। भले ही आपने पहले पायथन नहीं सीखा हो, आप दस्तावेज़ीकरण को पढ़े बिना लगभग सभी पंक्तियों को समझ सकते हैं।

सबसे बड़ा अंतर जो आप देखेंगे वह यह है कि पायथन घुंघराले ब्रेसिज़ के बजाय कोड ब्लॉक को परिभाषित करने के लिए इंडेंटेशन का उपयोग करता है। यह अजीब लग सकता है, और मुझे अभी भी यह थोड़ा असामान्य लगता है, लेकिन थोड़ी देर के बाद, आपको इसकी आदत हो जाती है, और कोड पढ़ना आसान हो जाता है।

इसके अलावा, पायथन में कई अवधारणाएं जावास्क्रिप्ट के समान हैं। कंसोल.लॉग के बजाय, आप प्रिंट का उपयोग कर सकते हैं, और स्ट्रिंग इंटरपोलेशन के लिए, आप स्ट्रिंग की शुरुआत में एफ जोड़ सकते हैं और जावास्क्रिप्ट के समान लगभग समान सिंटैक्स का उपयोग कर सकते हैं।

यहां उपरोक्त कोड का जावास्क्रिप्ट संस्करण है:

function guessTheNumber() {
    const numberToGuess = Math.floor(Math.random() * 100)   1;
    let attempts = 0;
    let guessed = false;

    console.log("Welcome to the Number Guessing Game!");
    console.log("I'm thinking of a number between 1 and 100. Can you guess what it is?");

    while (!guessed) {
        const userGuess = parseInt(prompt("Enter your guess: "), 10);
        attempts  ;

        if (userGuess  numberToGuess) {
            console.log("Too high! Try again.");
        } else {
            console.log(`Congratulations! You guessed the number ${numberToGuess} in ${attempts} attempts.`);
            guessed = true;
        }
    }
}

guessTheNumber();

बाधाओं पर काबू पाना: प्रमुख अवधारणाएँ

आप पायथन में कई अलग-अलग अवधारणाएँ सीख सकते हैं। एक जावास्क्रिप्ट डेवलपर के रूप में मैंने अपने लिए सबसे भ्रमित करने वाला दिखाया।

इंडेंटेशन-आधारित सिंटैक्स

एक जावास्क्रिप्ट डेवलपर के रूप में, आप if/else और अन्य ऑपरेटरों के साथ कोड ब्लॉक का उपयोग करने से परिचित हो सकते हैं। अधिकांश मामलों में आप बस {} जोड़ते हैं और बस इतना ही। पायथन की इंडेंटेशन-आधारित प्रणाली मुश्किल हो सकती है।

आइए जावास्क्रिप्ट कोड देखें:

if (role === "admin") {
    const posts = getDraftPosts()

    if (posts.length === 0) {
        throw NotFound()
    }   

    return posts
}

पायथन एनालॉग:

if role == "admin":
    posts = get_draft_posts()

    if posts.length == 0:
        raise NotFound()

    return posts

जैसा कि आप देख सकते हैं कि पायथन में ब्लॉकों की पठनीयता पहले दृश्य से चुनौतीपूर्ण हो सकती है। यही कारण है कि मेरे लिए गहरे नेस्टेड ब्लॉकों से बचना महत्वपूर्ण था क्योंकि इसे पढ़ना कठिन है और सही इंडेंटेशन को मिस करना आसान है। ध्यान रखें कि इंडेंटेशन छूट जाने के कारण पायथन आपके कोड को गलत कोड ब्लॉक में संलग्न कर सकता है।

सिस्टम टाइप करें

पायथन एक गतिशील टाइपिंग भाषा है लेकिन मैं पायथन में निर्मित प्रकार एनोटेशन को देखकर आश्चर्यचकित था।

def add(x: int, y: int) -> int:
    return x   y

आपको अतिरिक्त सुविधाएं स्थापित करने की आवश्यकता नहीं है, केवल वही सुविधाएं स्थापित करने की आवश्यकता है जो आपको Python *3.5 और उससे ऊपर में चाहिए।*

और भी जटिल प्रकारों को टाइपस्क्रिप्ट के बराबर वर्णित किया जा सकता है:

# enums
from enum import Enum # import enum for built in lib

class Season(Enum): # extend class to mark it as enum
    SPRING = 1
    SUMMER = 2
    AUTUMN = 3
    WINTER = 4

print(Season.SPRING.name) # SPRING
print(Season.SPRING.value) # 1

# or generics
def first(container: List[T]) -> T:
    return container[0]

list_two: List[int] = [1, 2, 3]
print(first(list_two)) # 1

इन प्रकारों का उपयोग करने के लिए आपको कुछ भी इंस्टॉल करने या इस कोड को ट्रांसपाइल करने की आवश्यकता नहीं है। यह कुछ ऐसा है जो मुझे जावास्क्रिप्ट में याद आ गया, कम से कम Node.js. मुझे पता है कि Node.js निकटतम संस्करण में कुछ बुनियादी प्रकार जोड़ रहा है (नोड.js अंतर्निहित प्रकार समर्थन के बारे में मध्यम पोस्ट देखें) लेकिन यदि आप इसकी तुलना Python से करते हैं तो यह अब खराब दिखता है।

पायथन का ग्लोबल इंटरप्रेटर लॉक (जीआईएल)

जावास्क्रिप्ट एक इवेंट-संचालित, गैर-अवरुद्ध मॉडल का उपयोग करता है, जबकि पायथन का ग्लोबल इंटरप्रेटर लॉक (जीआईएल) बहु-थ्रेडेड कार्यक्रमों में एक भ्रमित करने वाली अवधारणा हो सकता है।
पायथन ग्लोबल इंटरप्रेटर लॉक (जीआईएल) एक तंत्र है जो यह सुनिश्चित करता है कि एक समय में केवल एक थ्रेड पायथन कोड निष्पादित करता है। भले ही आपके पायथन प्रोग्राम में एकाधिक थ्रेड हों, जीआईएल के कारण एक समय में केवल एक थ्रेड ही पायथन कोड निष्पादित कर सकता है।
जावास्क्रिप्ट के साथ, आप वेब वर्कर्स के साथ मल्टीथ्रेडिंग प्राप्त कर सकते हैं, लेकिन पायथन में, आपको इसे पूरा करने के लिए अतिरिक्त लाइब्रेरी का उपयोग करने की आवश्यकता है।

एक पायथोनिक मानसिकता

जावास्क्रिप्ट का "इसे करने के कई तरीके" दर्शन पायथन में उतना अच्छा काम नहीं करता है क्योंकि पायथन इस अवधारणा का अधिक बारीकी से पालन करता है "इसे करने का एक - और अधिमानतः केवल एक - स्पष्ट तरीका होना चाहिए।"
जावास्क्रिप्ट दुनिया में, प्रत्येक कंपनी अक्सर अपनी स्वयं की कोड शैली मार्गदर्शिका बनाती है, और यह भाग्यशाली है यदि वह बुनियादी जावास्क्रिप्ट शैली अनुशंसाओं का पालन करती है। वास्तव में, अर्धविराम का उपयोग करने जैसी प्रथाएं व्यापक रूप से भिन्न हो सकती हैं, इस हद तक कि एक प्रोजेक्ट अर्धविराम का उपयोग कर सकता है और दूसरा नहीं।
पायथन में, PEP 8 (पायथन की स्टाइल गाइड) से पायथोनिक सिद्धांतों का पालन करने की अत्यधिक अनुशंसा की जाती है। यह मार्गदर्शिका पायथन कोड लिखने के बुनियादी नियमों की रूपरेखा बताती है।
बेहतर कोड लिखने के लिए, समुदाय के साथ जुड़ना और मुहावरेदार पायथन प्रथाओं को सीखना आवश्यक है जो स्पष्टता और सरलता को प्राथमिकता देते हैं।

निर्भरता और आभासी वातावरण का प्रबंधन

यह भाग भ्रमित करने वाला भी हो सकता है। जावास्क्रिप्ट में, आप आमतौर पर एक पैकेज मैनेजर जोड़ सकते हैं और बिना किसी समस्या के निर्भरता स्थापित करना शुरू कर सकते हैं। हालाँकि, पायथन के पाइप और आभासी वातावरण नई अवधारणाएँ हो सकते हैं।

पायथन में, अतिरिक्त निर्भरता का उपयोग करते समय, एक अलग आभासी वातावरण का उपयोग करने की अत्यधिक अनुशंसा की जाती है। आपके वातावरण में पाइप (जावास्क्रिप्ट में एनपीएम के बराबर पायथन) के साथ निर्भरता स्थापित करने से सिस्टम उपयोगिताओं या ओएस को संभावित रूप से नुकसान हो सकता है, क्योंकि सिस्टम पायथन इंटरप्रेटर (जो आपके ऑपरेटिंग सिस्टम के साथ पहले से इंस्टॉल आता है) का उपयोग ओएस द्वारा किया जाता है और अन्य सिस्टम उपयोगिताएँ।

समाधान के रूप में, आप वेनव मॉड्यूल के साथ एक आभासी वातावरण बना सकते हैं:

python -m venv myenv
myenv\Scripts\activate # for windows
source myenv/bin/activate # for Mac

वर्चुअल वातावरण में प्रवेश करने के बाद आप अपने रूट वातावरण के लिए किसी भी समस्या या खतरे के बिना सभी निर्भरताएं स्थापित कर सकते हैं।

समर्थन और संसाधन ढूँढना

मैंने पाइथॉन कैसे सीखा

नई भाषा सीखना हमेशा चुनौतीपूर्ण होता है। मैंने एक ऑनलाइन प्लेटफ़ॉर्म पर पायथन की मूल बातें सीखना शुरू किया, जहाँ मैंने कुछ छोटी परियोजनाएँ भी पूरी कीं। यहां वह योजना है जिसका उपयोग मैंने अपनी सीखने की प्रक्रिया के दौरान किया था:

  • पायथन मूल बातें।
  • उन्नत पायथन अवधारणाएं (मॉड्यूल प्रणाली, प्रकार, पर्यावरण, एसिंक कोड)।
  • Django, फ्लास्क और फास्टएपीआई जैसे सबसे लोकप्रिय ढांचे की मूल बातें सीखना।
  • FastAPI के साथ अपना पहला एपीआई सर्वर लिख रहा हूं।
  • एक डेटाबेस जोड़ना और पायथन में डेटाबेस के साथ काम करना सीखना।
  • एप्लिकेशन को निःशुल्क होस्टिंग सेवा पर परिनियोजित करना।

सहायता कहाँ से प्राप्त करें

सीखने के दौरान आपको Reddit समुदायों या डिस्कॉर्ड सर्वर में बहुत मदद मिल सकती है। मैं ज्यादातर Reddit उपयोगकर्ता हूं और Python और आपके द्वारा अपने पहले एप्लिकेशन के लिए उपयोग किए जाने वाले फ्रेमवर्क के लिए सबरेडिट ढूंढने का सुझाव दूंगा।

आधिकारिक दस्तावेज़ का उपयोग करना याद रखें। मेरी राय में, यह जबरदस्त लगता है, और अगर मैं किसी अवधारणा पर अटक जाता हूं तो ज्यादातर समय, मैं संबंधित लेख ढूंढने का प्रयास करता हूं।

पढ़ना सुनिश्चित करें PEP 8 — पाइथॉन कोड के लिए स्टाइल गाइड, जहां आप पायथन कोड लिखने के बारे में बुनियादी नियम पा सकते हैं।

पीछे और आगे की ओर देखना

जैसा कि मैं एक जावास्क्रिप्ट डेवलपर से लेकर पायथन को अपनाने तक की अपनी यात्रा पर विचार करता हूं, मुझे कोई पछतावा नहीं है। इस परिवर्तन ने रोमांचक अवसर खोले हैं, विशेष रूप से एआई और मशीन लर्निंग के क्षेत्र में, जिसका मैं अब अपनी परियोजनाओं में, विशेष रूप से बैकएंड पर बड़े पैमाने पर लाभ उठाता हूं।

आगे देखते हुए, पायथन के साथ संभावनाएं बहुत अधिक हैं। चाहे वह वेब विकास, डेटा विज्ञान, स्वचालन, या एआई और मशीन लर्निंग में गहराई से उतरना हो, पायथन नए क्षितिज बनाने और तलाशने के लिए एक शक्तिशाली और बहुमुखी आधार प्रदान करता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/oversec/fullstack-development-learning-python-as-javascript-developers-l6l?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3