Trabalho como desenvolvedor frontend há mais de 8 anos e, nos últimos 2 anos, decidi repensar minha carreira e como posso crescer. Descobri que a tecnologia frontend muda frequentemente: diferentes estruturas, conceitos e a lacuna entre os componentes da classe React e os ganchos. Percebi que tudo isso é apenas abstração usada para expressar necessidades de negócios e visão pessoal. A partir daí, decidi mudar minha carreira e me tornar um pouco um desenvolvedor full-stack.
Como todos sabemos, o desenvolvimento frontend hoje em dia gira em torno de JavaScript, por isso decidi aprender Node.js e seus principais frameworks. Todos os desenvolvedores front-end encontram o Node.js de uma forma ou de outra e, como desenvolvedor front-end sênior, você deve ser capaz de escrever endpoints básicos em Node.js com Express ou outra biblioteca. Após 2 anos de desenvolvimento ativo no lado do Node.js, quando meu trabalho passou a ser 50/50 entre frontend e backend, descobri que a maioria dos projetos não se limita a apenas uma linguagem.
Node.js não é a ferramenta ideal para tudo, especialmente quando você trabalha em uma empresa maior. Diferentes idiomas fornecem soluções diferentes ou são mais ideais para resolver casos de negócios específicos. É por isso que comecei a pesquisar o que poderia aprender como minha segunda linguagem de back-end e como poderia utilizá-la no futuro.
Quero compartilhar minha experiência e por que decidi continuar com Python depois de tentar aprender Rust (principalmente não para desenvolvimento web), Swift (que é principalmente uma solução mobile-first) e Golang. Aqui, você descobrirá por que acredito que Python é uma ótima oportunidade para desenvolvedores front-end aprenderem e como começar a usá-lo.
Hoje em dia, IA é algo de que todo mundo fala. Mencioná-lo em uma entrevista como parte de sua experiência sempre lhe dá pontos extras. Quase todas as empresas estão tentando incorporar IA em seus produtos, e Python anda de mãos dadas com IA e aprendizado de máquina. Ao aprender Python, você não apenas terá a oportunidade de escrever aplicativos da web com estruturas como Django, Flask e FastAPI, mas também poderá começar a trabalhar com aprendizado de máquina e serviços de IA.
Por um lado, aprender linguagens mais complexas como Rust, Go ou Elixir é uma boa ideia se você deseja se tornar um programador melhor. No entanto, do ponto de vista de carreira, não é uma transição fácil para se tornar um desenvolvedor backend com uma linguagem completamente diferente com a qual você está menos familiarizado.
Python é uma linguagem de programação de tipo dinâmico. Como desenvolvedor JavaScript que passou uma parte significativa de sua carreira em um ambiente semelhante, isso não deve intimidá-lo, pois você já sabe que tipos de problemas esperar no código.
Com o Python, você pode não apenas começar a escrever aplicativos da web, mas também aproveitar suas habilidades em áreas relacionadas à IA, o que dá ao Python uma vantagem significativa como segunda linguagem.
A curva de aprendizado foi direta. Em Python, você precisa aprender alguns conceitos básicos com certeza. Se você tem experiência com JavaScript, isso não deve ser um grande problema.
Aqui está o exemplo de código em 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()
Não acho que você encontrará nada muito complexo aqui. Mesmo que você não tenha aprendido Python antes, você pode entender quase todas as linhas sem ler a documentação.
A maior diferença que você notará é que Python usa recuo para definir blocos de código em vez de chaves. Isso pode parecer estranho, e ainda acho um pouco incomum, mas depois de um tempo, você se acostuma e a leitura do código fica mais fácil.
Além disso, muitos conceitos em Python são semelhantes aos de JavaScript. Em vez de console.log, você pode usar print e, para interpolação de string, pode adicionar f no início da string e usar quase a mesma sintaxe do JavaScript.
Aqui está a versão JavaScript do código acima:
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();
Você pode aprender muitos conceitos diferentes em Python. Mostrei o que há de mais confuso para mim como desenvolvedor JavaScript.
Como desenvolvedor JavaScript, você deve estar familiarizado com o uso de blocos de código com if/else e outros operadores. Na maioria dos casos basta adicionar {} e pronto. O sistema baseado em indentação do Python pode ser complicado.
Vamos ver o código JavaScript:
if (role === "admin") { const posts = getDraftPosts() if (posts.length === 0) { throw NotFound() } return posts }
Python analógico:
if role == "admin": posts = get_draft_posts() if posts.length == 0: raise NotFound() return posts
Como você pode ver, a legibilidade dos blocos em Python pode ser um desafio à primeira vista. É por isso que para mim foi importante evitar blocos profundamente aninhados porque é difícil de ler e fácil perder o recuo correto. Tenha em mente que o Python pode anexar seu código a um bloco de código errado devido a um recuo perdido.
Python é uma linguagem de digitação dinâmica, mas fiquei surpreso ao encontrar a anotação de tipos integrada do Python.
def add(x: int, y: int) -> int: return x y
Você não precisa instalar recursos adicionais, apenas o que você precisa no Python *3.5 e superior.*
Tipos ainda mais complexos poderiam ser descritos como iguais ao Typescript:
# 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
Para usar esses tipos não é necessário instalar nada ou transpilar este código. Isso é algo que perdi no JavaScript, pelo menos no Node.js. Eu sei que o Node.js está adicionando alguns tipos básicos na versão mais próxima (consulte a postagem média sobre o suporte a tipos integrados do node.js), mas parece ruim agora se você compará-lo com o Python.
Bloqueio Global de Interpretador do Python (GIL)
O Python Global Interpreter Lock (GIL) é um mecanismo que garante que apenas um thread execute código Python por vez. Mesmo que o seu programa Python tenha vários threads, apenas um thread pode executar código Python por vez devido ao GIL.
Com JavaScript, você pode obter multithreading com web workers, mas em Python, você precisa usar bibliotecas adicionais para fazer isso.
No mundo JavaScript, cada empresa geralmente cria seu próprio guia de estilo de código, e será uma sorte se ele seguir as recomendações básicas de estilo JavaScript. Na realidade, práticas como o uso de ponto e vírgula podem variar amplamente, a ponto de um projeto poder usar ponto e vírgula e outro não.
Em Python, é altamente recomendado seguir os princípios Pythonic do PEP 8 (guia de estilo do Python). Este guia descreve as regras básicas de como escrever código Python.
Para escrever um código melhor, é essencial interagir com a comunidade e aprender práticas idiomáticas do Python que priorizam a clareza e a simplicidade.
Em Python, ao usar dependências adicionais, é altamente recomendado usar um ambiente virtual separado. Instalar dependências com pip (o equivalente Python do npm em JavaScript) em seu ambiente pode potencialmente quebrar os utilitários do sistema ou o próprio sistema operacional, já que o interpretador Python do sistema (aquele que vem pré-instalado com seu sistema operacional) é usado pelo sistema operacional e outros utilitários do sistema.
Como solução, você pode criar um ambiente virtual com o módulo venv:
python -m venv myenv myenv\Scripts\activate # for windows source myenv/bin/activate # for MacDepois de entrar no ambiente virtual você pode instalar todas as dependências sem nenhum problema ou perigo para o seu ambiente raiz.
Encontrando suporte e recursos
Lembre-se de usar a documentação oficial. Na minha opinião, parece complicado e, na maioria das vezes, tento encontrar artigos relacionados se fico preso a um conceito.
Certifique-se de ler
PEP 8 — Guia de estilo para código Python, onde você pode encontrar regras básicas sobre como escrever código Python.
Olhando para trás e para frenteOlhando para o futuro, as possibilidades com Python são vastas. Quer se trate de desenvolvimento web, ciência de dados, automação ou aprofundamento em IA e aprendizado de máquina, Python fornece uma base poderosa e versátil para construir e explorar novos horizontes.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3