„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Fullstack-Entwicklung: Python als JavaScript-Entwickler lernen

Fullstack-Entwicklung: Python als JavaScript-Entwickler lernen

Veröffentlicht am 02.09.2024
Durchsuche:670

Fullstack Development: Learning Python as JavaScript Developers

Die Reise beginnt

Ich arbeite seit mehr als 8 Jahren als Frontend-Entwickler und habe in den letzten 2 Jahren beschlossen, meine Karriere und meine Weiterentwicklung zu überdenken. Ich habe festgestellt, dass sich die Frontend-Technologie häufig ändert: unterschiedliche Frameworks, Konzepte und die Lücke zwischen Komponenten und Hooks der React-Klasse. Mir wurde klar, dass dies alles nur eine Abstraktion ist, die dazu dient, geschäftliche Bedürfnisse und persönliche Visionen auszudrücken. Von diesem Zeitpunkt an beschloss ich, meinen Karriereweg zu ändern und ein wenig zum Full-Stack-Entwickler zu werden.

Wie wir alle wissen, dreht sich bei der Frontend-Entwicklung heutzutage alles um JavaScript, weshalb ich mich entschieden habe, Node.js und seine wichtigsten Frameworks zu lernen. Alle Frontend-Entwickler kommen auf die eine oder andere Weise mit Node.js in Berührung, und als Senior Frontend Developer sollten Sie in der Lage sein, grundlegende Endpunkte in Node.js mit Express oder einer anderen Bibliothek zu schreiben. Nach zwei Jahren aktiver Entwicklung auf der Node.js-Seite, als mein Job 50/50 zwischen Frontend und Backend wurde, stellte ich fest, dass sich die meisten Projekte nicht auf nur eine Sprache beschränken.

Node.js ist nicht für alles das ideale Tool, insbesondere wenn Sie in einem größeren Unternehmen arbeiten. Unterschiedliche Sprachen bieten unterschiedliche Lösungen oder sind optimaler für die Lösung spezifischer Geschäftsfälle. Aus diesem Grund begann ich zu recherchieren, was ich als meine zweite Backend-Sprache lernen und wie ich sie in Zukunft nutzen könnte.

Ich möchte meine Erfahrungen teilen und warum ich mich entschieden habe, bei Python zu bleiben, nachdem ich versucht habe, Rust (hauptsächlich nicht für die Webentwicklung), Swift (das in erster Linie eine Mobile-First-Lösung ist) und Golang zu lernen. Hier erfahren Sie, warum ich glaube, dass Python eine großartige Gelegenheit für Frontend-Entwickler ist, es zu lernen und wie man damit beginnt.

Warum Python?

Heutzutage ist KI in aller Munde. Wenn Sie es in einem Vorstellungsgespräch als Teil Ihrer Erfahrung erwähnen, erhalten Sie immer zusätzliche Punkte. Fast alle Unternehmen versuchen, KI in ihre Produkte zu integrieren, und Python geht Hand in Hand mit KI und maschinellem Lernen. Durch das Erlernen von Python erhalten Sie nicht nur die Möglichkeit, Webanwendungen mit Frameworks wie Django, Flask und FastAPI zu schreiben, sondern können auch mit maschinellem Lernen und KI-Diensten arbeiten.
Einerseits ist das Erlernen komplexerer Sprachen wie Rust, Go oder Elixir eine gute Idee, wenn Sie ein besserer Programmierer werden möchten. Aus beruflicher Sicht ist es jedoch kein einfacher Übergang zum Backend-Entwickler mit einer völlig anderen Sprache, mit der Sie weniger vertraut sind.

Python ist eine dynamisch typisierte Programmiersprache. Als JavaScript-Entwickler, der einen erheblichen Teil Ihrer Karriere in einer ähnlichen Umgebung verbracht hat, sollte Sie das nicht einschüchtern, da Sie bereits wissen, mit welchen Problemen Sie im Code rechnen müssen.
Mit Python können Sie nicht nur mit dem Schreiben von Webanwendungen beginnen, sondern auch Ihre Fähigkeiten in KI-bezogenen Bereichen nutzen, was Python als Zweitsprache einen erheblichen Vorteil verschafft.

Die Lernkurve

Die Lernkurve war unkompliziert. In Python müssen Sie auf jeden Fall einige grundlegende Konzepte erlernen. Wenn Sie Erfahrung mit JavaScript haben, sollte das keine große Sache sein.

Hier ist das Codebeispiel in Python:

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()

Ich glaube nicht, dass Sie hier etwas zu Komplexes finden werden. Selbst wenn Sie Python noch nie gelernt haben, können Sie fast alle Zeilen verstehen, ohne die Dokumentation zu lesen.

Der größte Unterschied, den Sie bemerken werden, besteht darin, dass Python zur Definition von Codeblöcken Einrückungen anstelle von geschweiften Klammern verwendet. Das mag seltsam erscheinen und ich finde es immer noch etwas ungewöhnlich, aber nach einer Weile gewöhnt man sich daran und das Lesen von Code wird einfacher.

Abgesehen davon ähneln viele Konzepte in Python denen in JavaScript. Anstelle von console.log können Sie print verwenden und für die String-Interpolation können Sie f am Anfang des Strings hinzufügen und fast dieselbe Syntax wie in JavaScript verwenden.

Hier ist die JavaScript-Version des obigen Codes:

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();

Hindernisse überwinden: Schlüsselkonzepte

Sie können viele verschiedene Konzepte in Python lernen. Ich habe für mich als JavaScript-Entwickler das Verwirrendste gezeigt.

Einrückungsbasierte Syntax

Als JavaScript-Entwickler sind Sie möglicherweise mit der Verwendung von Codeblöcken mit if/else und anderen Operatoren vertraut. In den meisten Fällen fügen Sie einfach {} hinzu und das war’s. Das einrückungsbasierte System von Python kann schwierig sein.

Sehen wir uns den JavaScript-Code an:

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

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

    return posts
}

Python-Analogon:

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

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

    return posts

Wie Sie sehen, kann die Lesbarkeit von Blöcken in Python auf den ersten Blick eine Herausforderung sein. Aus diesem Grund war es für mich wichtig, tief verschachtelte Blöcke zu vermeiden, da diese schwer zu lesen sind und die korrekte Einrückung leicht übersehen wird. Bedenken Sie, dass Python Ihren Code aufgrund fehlender Einrückung an einen falschen Codeblock anhängen könnte.

Typensystem

Python ist eine dynamische Typisierungssprache, aber ich war überrascht, in Python eine integrierte Typanmerkung zu finden.

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

Sie müssen keine zusätzlichen Funktionen installieren, sondern nur das, was Sie in Python *3.5 und höher benötigen.*

Noch komplexere Typen könnten als gleichwertig mit Typescript beschrieben werden:

# 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

Um diese Typen zu verwenden, müssen Sie nichts installieren oder diesen Code transpilieren. Das habe ich in JavaScript vermisst, zumindest in Node.js. Ich weiß, dass Node.js in der nächsten Version einige grundlegende Typen hinzufügt (siehe mittlerer Beitrag über die Unterstützung integrierter Node.js-Typen), aber es sieht jetzt schlecht aus, wenn man es mit Python vergleicht.

Pythons Global Interpreter Lock (GIL)

JavaScript verwendet ein ereignisgesteuertes, nicht blockierendes Modell, während Pythons Global Interpreter Lock (GIL) in Multithread-Programmen ein verwirrendes Konzept sein kann.
Die Python Global Interpreter Lock (GIL) ist ein Mechanismus, der sicherstellt, dass jeweils nur ein Thread Python-Code ausführt. Selbst wenn Ihr Python-Programm über mehrere Threads verfügt, kann aufgrund der GIL jeweils nur ein Thread Python-Code ausführen.
Mit JavaScript können Sie Multithreading mit Web-Workern erreichen, in Python müssen Sie jedoch zusätzliche Bibliotheken verwenden, um dies zu erreichen.

Eine pythonische Denkweise

JavaScripts „mehrere Möglichkeiten, es zu tun“-Philosophie funktioniert in Python nicht so gut, weil Python sich stärker an das Konzept hält: „Es sollte einen – und vorzugsweise nur einen – offensichtlichen Weg geben, es zu tun.“
In der JavaScript-Welt erstellt jedes Unternehmen oft seinen eigenen Code-Styleguide, und es ist ein Glück, wenn es grundlegende JavaScript-Style-Empfehlungen befolgt. In der Realität können Praktiken wie die Verwendung von Semikolons stark variieren, bis zu dem Punkt, an dem ein Projekt möglicherweise Semikolons verwendet und ein anderes möglicherweise nicht.
In Python wird dringend empfohlen, die Pythonic-Prinzipien aus PEP 8 (Pythons Styleguide) zu befolgen. In diesem Handbuch werden die Grundregeln zum Schreiben von Python-Code beschrieben.
Um besseren Code zu schreiben, ist es wichtig, mit der Community zusammenzuarbeiten und idiomatische Python-Praktiken zu erlernen, bei denen Klarheit und Einfachheit im Vordergrund stehen.

Verwalten von Abhängigkeiten und virtuellen Umgebungen

Dieser Teil könnte auch verwirrend sein. In JavaScript können Sie normalerweise einen Paketmanager hinzufügen und mit der Installation von Abhängigkeiten problemlos beginnen. Allerdings könnten Pythons Pip und virtuelle Umgebungen neue Konzepte sein.

In Python wird bei der Verwendung zusätzlicher Abhängigkeiten dringend empfohlen, eine separate virtuelle Umgebung zu verwenden. Die Installation von Abhängigkeiten mit pip (dem Python-Äquivalent von npm in JavaScript) in Ihrer Umgebung könnte möglicherweise Systemdienstprogramme oder das Betriebssystem selbst beschädigen, da der System-Python-Interpreter (der in Ihrem Betriebssystem vorinstalliert ist) vom Betriebssystem und verwendet wird andere Systemdienstprogramme.

Als Lösung können Sie eine virtuelle Umgebung mit dem Venv-Modul erstellen:

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

Nachdem Sie die virtuelle Umgebung betreten haben, können Sie alle Abhängigkeiten ohne Probleme oder Gefahr für Ihre Root-Umgebung installieren.

Unterstützung und Ressourcen finden

Wie ich Python gelernt habe

Eine neue Sprache zu lernen ist immer eine Herausforderung. Ich habe angefangen, Python-Grundlagen auf einer Online-Plattform zu erlernen, wo ich auch einige kleine Projekte abgeschlossen habe. Hier ist der Plan, den ich während meines Lernprozesses verwendet habe:

  • Python-Grundlagen.
  • Erweiterte Python-Konzepte (Modulsystem, Typen, Umgebung, asynchroner Code).
  • Erlernen der Grundlagen der beliebtesten Frameworks wie Django, Flask und FastAPI.
  • Ich schreibe meinen ersten API-Server mit FastAPI.
  • Eine Datenbank hinzufügen und lernen, wie man mit Datenbanken in Python arbeitet.
  • Bereitstellen der Anwendung auf einem kostenlosen Hosting-Dienst.

Wo Sie Hilfe finden

Sie können beim Lernen viel Hilfe in Reddit-Communitys oder Discord-Servern finden. Ich bin hauptsächlich ein Reddit-Benutzer und würde vorschlagen, Subreddits für Python und das Framework zu finden, das Sie für Ihre erste Anwendung verwenden möchten.

Denken Sie daran, die offizielle Dokumentation zu verwenden. Meiner Meinung nach sieht es überwältigend aus und meistens versuche ich, verwandte Artikel zu finden, wenn ich bei einem Konzept nicht weiterkomme.

Lesen Sie unbedingt PEP 8  –  Style Guide for Python Code, wo Sie grundlegende Regeln zum Schreiben von Python-Code finden.

Blick zurück und nach vorne

Wenn ich über meinen Weg vom JavaScript-Entwickler zum Einstieg in Python nachdenke, bereue ich nichts. Dieser Übergang hat spannende Möglichkeiten eröffnet, insbesondere in den Bereichen KI und maschinelles Lernen, die ich jetzt in meinen Projekten, insbesondere im Backend, umfassend nutze.

Mit Blick auf die Zukunft sind die Möglichkeiten mit Python enorm. Ganz gleich, ob es um Webentwicklung, Datenwissenschaft, Automatisierung oder eine tiefere Auseinandersetzung mit KI und maschinellem Lernen geht, Python bietet eine leistungsstarke und vielseitige Grundlage, auf der Sie aufbauen und neue Horizonte erkunden können.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/oversec/fullstack-development-learning-python-as-javascript-developers-l6l?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3