Fala #dev tentando ajudar a comunidade e conseguir o máximo de pessoas me xingando numa thread do twitter, decidi pegar minha exp profissional com mais de 20 linguagens para listar os principais prós e contras de cada linguagem para quem está iniciando, segue o 🧵👇
🟨 JavaScript (prós):
✅ Popular e versátil, ótimo para frontend e backend (Node.js)
✅ Ecossistema gigante com muitas bibliotecas e ferramentas
✅ Grande comunidade e demanda no mercado de trabalho
✅ Event Loop permite lidar bem com operações assíncronas
🟨 JavaScript (contras):
❌ Tipagem fraca e conversões implícitas podem gerar bugs
❌ Assincronia pode ser confusa para iniciantes
❌ Muitas maneiras de fazer a mesma coisa, exigindo boas práticas
❌ Algumas APIs do navegador podem ser inconsistentes
🟨 JavaScript (dicas):
💡 Aprenda a versão moderna (ES6+) e domine conceitos de assincronia (callbacks, promises, async/await)
💡 Use frameworks e bibliotecas populares, como React, Vue.js, Express e Axios
💡 Conheça o gerenciamento de pacotes (npm, yarn) e bundlers como Webpack
🐍 Python (prós):
✅ Sintaxe fácil e legível, ótimo para iniciantes
✅ Versátil: web, ciência de dados, IA, automação
✅ Grande comunidade e vasta gama de bibliotecas
✅ Aplicação em diversas áreas fora de Desenvolvimento de Software
🐍 Python (contras):
❌ Velocidade inferior a linguagens compiladas
❌ Gerenciamento de pacotes e ambientes pode ser confuso
❌ Diferenças entre as versões 2.x e 3.x podem causar problemas
❌ GIL (Global Interpreter Lock) limita a concorrência nativa
🐍 Python (dicas):
💡 Siga o PEP 8
💡 Aprenda bibliotecas populares como NumPy, Pandas, TensorFlow, Keras, Django e Flask
💡 Use ambientes virtuais (virtualenv, conda) para gerenciar dependências de projeto
💡 Aprofunde-se em list comprehensions e decorators
🥽 GO (prós):
✅ Rápido e eficiente, ótimo para servidores, microservices e CLIs
✅ Fácil concorrência com goroutines e channels
✅ Boa biblioteca padrão e suporte a documentação
✅ Criado pelo Google, garantindo estabilidade, atualizações e mercado
🥽 GO (contras):
❌ Menos popular para desenvolvimento web comparado a outras linguagens
❌ Comunidade menor que JavaScript e Python
❌ Menor quantidade de guias em português
❌ Menos bibliotecas disponíveis que outras linguagens populares
🥽 GO (dicas):
💡 Domine goroutines e channels para lidar com concorrência eficiente
💡 Aprenda a usar a biblioteca padrão e siga as melhores práticas
💡 Sempre tente resolver seus problemas da maneira mais simples, não recorra diretamente à libraries e frameworks
☕ Java (prós):
✅ Portabilidade e maturidade, ótimo para sistemas corporativos e desenvolvimento Android
✅ Grande comunidade e vasto ecossistema
✅ Orientação a objetos e gerenciamento automático de memória
✅ Boa performance e suporte a multithreading
☕ Java (contras):
❌ Verbosidade na sintaxe
❌ Velocidade de inicialização e consumo de memória podem ser altos
❌ Atualizações frequentes e licenciamento Oracle podem causar confusão
❌ Menos popular em áreas como ciência de dados e IA
☕ Java (dicas):
💡 Aprenda Orientação a Objetos e padrões de projeto (ex: Singleton, Factory)
💡 Explore frameworks e bibliotecas populares como Spring, Hibernate, JavaFX e Android SDK
💡 Use ferramentas de build e gerenciamento de dependências como Maven ou Gradle
🐘 PHP (prós):
✅ Popular para desenvolvimento web, especialmente com CMS (WordPress)
✅ Curva de aprendizado suave para iniciantes
✅ Grande comunidade e vasta quantidade de recursos disponíveis
✅ Melhorias recentes na linguagem (PHP 7+)
🐘 PHP (contras):
❌ Reputação prejudicada por práticas antigas e inseguras
❌ Menos demanda no mercado comparado a outras linguagens modernas
❌ Performance inferior em comparação com linguagens compiladas
❌ Organização e estrutura de projetos podem ser confusas
🐘 PHP (dicas):
💡 Aprenda a usar o PHP moderno (7+) e siga boas práticas (PSR)
💡 Explore frameworks populares como Laravel, Symfony e CodeIgniter
💡 Use o Composer para gerenciar dependências e pacotes
♯ C# (prós):
✅ Desenvolvimento em Windows e jogos com Unity
✅ Sintaxe similar ao Java, facilitando a transição entre as linguagens
✅ Suporte da Microsoft e integração com Azure
✅ Boa performance e recursos modernos
♯ C# (contras):
❌ Menos popular fora do ecossistema Microsoft
❌ Limitações em plataformas não Windows, embora .NET Core esteja melhorando isso
❌ Curva de aprendizado maior para iniciantes em comparação com Python e JavaScript
❌ Licenciamento e custos podem ser um problema
♯ C# (dicas):
💡 Aprenda .NET Core e .NET 5+ para desenvolvimento multiplataforma
💡 Explore frameworks como ASP.NET, Entity Framework e Xamarin
💡 Domine o uso de LINQ e async/await para lidar com coleções e assincronia
🔩 C++ (prós):
✅ Alta performance e controle preciso sobre a memória
✅ Uso em sistemas críticos, jogos e aplicações gráficas
✅ Padrão em bibliotecas gráficas e APIs como OpenGL e Vulkan
✅ Evolução contínua da linguagem (C++11, C++14, C++17, C++20)
🔩 C++ (contras):
❌ Curva de aprendizado íngreme, especialmente para iniciantes
❌ Gerenciamento manual de memória pode causar bugs e vazamentos
❌ Menos popular em áreas como desenvolvimento web e ciência de dados
❌ Sintaxe e recursos avançados podem ser complexos
🔩 C++ (dicas):
💡 Domine ponteiros, alocação de memória e gerenciamento de recursos
💡 Aprenda a usar a STL (Standard Template Library) e bibliotecas gráficas
💡 Mantenha-se atualizado sobre as versões recentes do C++ e suas melhorias
💎 Ruby (prós):
✅ Sintaxe elegante e fácil de ler, ótimo para iniciantes
✅ Ruby on Rails impulsionou sua popularidade no desenvolvimento web
✅ Comunidade amigável e forte foco em testes
✅ Metaprogramação facilita a criação de código dinâmico
💎 Ruby (contras):
❌ Performance inferior a linguagens compiladas
❌ Menos popular e demanda no mercado em comparação com JavaScript e Python
❌ Curva de aprendizado íngreme para metaprogramação
❌ Ruby on Rails pode ser opressor para desenvolvedores novatos
💎 Ruby (dicas):
💡 Domine o uso de blocos, lambdas e procs
💡 Aprenda Ruby on Rails e outros frameworks como Sinatra
💡 Utilize testes unitários e TDD com RSpec e Minitest
🦀 Rust (prós):
✅ Alta performance e segurança de memória, ótimo para sistemas e aplicações críticas
✅ Sem vazamentos de memória graças ao sistema de ownership e borrowing
✅ Adotado por grandes empresas, como Mozilla e Microsoft
✅ Comunidade amigável e em rápido crescimento
🦀 Rust (contras):
❌ Curva de aprendizado íngreme, especialmente para iniciantes
❌ Ecossistema e bibliotecas ainda em desenvolvimento
❌ Menos popular em áreas como desenvolvimento web e ciência de dados
❌ Compilador rigoroso pode ser frustrante no início
🦀 Rust (dicas):
💡 Entenda o sistema de ownership, borrowing e lifetimes
💡 Aprenda a usar as ferramentas de desenvolvimento, como Cargo e rustfmt
💡 Explore a documentação e recursos disponíveis para se familiarizar com o ecossistema
🦉 Swift (prós):
✅ Linguagem oficial para desenvolvimento iOS e macOS
✅ Sintaxe moderna e fácil de aprender, ótimo para iniciantes
✅ Interoperabilidade com Objective-C e bibliotecas Apple
✅ Open-source e em constante evolução
🦉 Swift (contras):
❌ Principalmente limitado ao ecossistema Apple
❌ Menos popular e demanda no mercado fora do desenvolvimento Apple
❌ Ferramentas e recursos para plataformas não Apple ainda estão em desenvolvimento
❌ Curva de aprendizado para frameworks e APIs da Apple
🦉 Swift (dicas):
💡 Domine o uso de optionals, closures e enums
💡 Aprenda frameworks e bibliotecas Apple, como UIKit, SwiftUI e Cocoa
💡 Explore a criação de testes unitários e UI com XCTest e XCUITest
Não tem como falar de todas as linguagens aqui, mas acho que as mais comuns puderam ser abordadas, se tem alguma linguagem que você quer saber sobre, deixa aí nos comentários! Pra quem quiser ver o vídeo sobre esse assunto:
Lembra de deixar o like! <3
⚗️ Elixir (prós):
✅ Baseado na linguagem Erlang e BEAM VM
✅ Excelente para sistemas distribuídos, escaláveis e tolerantes a falhas
✅ Suporte nativo para concorrência e comunicação entre processos
✅ Phoenix Framework para desenvolvimento web
⚗️ Elixir (contras):
❌ Comunidade menor e menos demanda no mercado em comparação com outras linguagens
❌ Paradigma funcional pode ser difícil para iniciantes
❌ Ecossistema e bibliotecas ainda em crescimento
⚗️ Elixir (dicas):
💡 Domine conceitos de programação funcional e processos em Elixir
💡 Aprenda o Phoenix Framework para desenvolvimento web
💡 Explore o uso de OTP (Open Telecom Platform) para criar sistemas resilientes
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Layoffs e muita gente nesse processo de transicao na carreira #tech achei importante trazer alguns pontos que o pessoal da mentoria acabou perguntando com certa frequência, segue o 🧵aí #dev:
🔴 - O melhor momento pra conseguir aumento salarial é na troca de empresas, seja num momento favorável ou numa recolocacão.
Tenha isso em mente na hora de negociar seu salário com a nova empresa, uma boa métrica é aumentos entre 10 a 35% do salário anterior.
🔴 - A etapa da negociacao de salários é extremamente importante. Sei que muita gente tem receio de jogar o rate pra cima, mas lembrem que o ônus de processos seletivos é enorme, a empresa já te selecionou e nao vai deixar de te contratar por pedir um salário maior...
Trazendo aqui para você #dev uma série de hábitos que adquiri durante toda minha carreira e tento passar para vários mentorandos
(A maioria ajudou bastante gente a progredir na carreira!)
Segue o 🧶
0⃣1⃣ - Independente de estar empregado ou não, sempre tire um tempo da sua semana para cuidar de seu portfolio / linkedin / currículo.
É infinitamente mais fácil colocar sua carreira em ordem sem ter urgência pra fazer isso, use seu tempo com sabedoria e se prepare pro pior...
0⃣2⃣ - Pare de quantificar principalmente seu tempo de estudo de maneira objetiva, utilizando horas:
Sei que muita gente aderiu ao método pomodoro para conseguir estudar, mas pensar menos em "vou estudar x minutos" e mais em "vou estudar este tópico, e depois parar" pode ser bom
#dev não quero que você seja passado pra trás, então vem comigo pra te contar algumas práticas obscuras que rolam por aí.
(Várias coisas que ninguém te fala ou não quer que você descubra)
Segue o 🧶
1⃣ - Layoffs geralmente são discutidos pela direção e coordenação com 1 quarter de diferença pro executado.
(Seu chefe recebe a notícia com 3 meses para te fazer organizar o máximo possível a casa antes de te comunicar)
2⃣ - Várias empresas de tecnologia utilizam uma técnica de ascensão vertical direcionada ao "business" pra tirar os cargos de Desenvolvedor dos funcionários, afim de impedir propostas de competidores.
A "promoção" pra "Gerente xyz" é pra tirar o Desenvolvedor do seu linkedin