Algumas coisas importantes que aprendi sobre desenvolvimento Web desde que eu comecei
Primeiramente, sou apenas um Junior, tenho cerca de 4 anos na área e já trabalhei em algumas empresas. Então apesar de eu estar compartilhando algumas coisas que eu considero serem importantes de aprender durante a jornada dos desenvolvedores, peço que complementem ou me corrijam caso algo esteja errado ou em falta.
Bom, vamos lá!
Use SQL como sua escolha principal
Muitos cursos e tutoriais escolhem o MongoDB para usar, é bom porque é simples de entender quando você está começando. Mas quando você está começando, você deve aprender sobre tabelas, relacionamentos e como escrever boas consultas SQL.
As pessoas costumam dizer que "Mongo é mais rápido que bancos de dados SQL", mas quando você está iniciando no mundo de desenvolvimento, provavelmente seus aplicativos não precisam ser mais rápidos, eles precisam ser consistentes. Provavelmente PostgreSQL ou MySQL podem resolver seus problemas.
Aprenda um pouco sobre segurança
A maioria dos desenvolvedores não pensa nem um pouco sobre segurança. Mas é muito importante, você não precisa ser o Elliot do Mr. Robot, mas conhecer as vulnerabilidades mais comuns, vai te ajudar a desenvolver um código mais seguro. Você pode começar a aprender sobre XSS, CSRF, SQLi, rate limit etc.
Você pode ler o OWASP Top 10 para que fique por dentro das vulnerabilidades mais exploradas.
Aprenda Typescript
Um desenvolvedor web sempre usará Javascript, seja no front-end ou no back-end. No começo, o Typescript pode ser difícil e chato (era assim para mim por um tempo), mas usar o Typescript economizará tempo para você no futuro eliminando problemas bobos que poderiam acontecer caso você estivesse usando Javascript.
Sempre opte por usar transações (transactions)
As transações (transactions) garantirão que sua leitura/gravação no banco de dados permaneça "atômica" e "consistente". Leia sobre o ACID.
Uma maneira simples de explicar é pensar em uma transferência bancária, você precisa ter certeza de que o dinheiro quando sai da conta A, chega na conta B. Se ocorrer um erro antes do dinheiro chegar na conta B, o dinheiro precisa retornar conta A. Basicamente, a transação fará um rollback se ocorrer um erro e um commit se a transação for bem-sucedida.
Muitos ORMs como o Prisma possuem por padrão transactions ativadas mas é sempre bom conferir.
Use alguma forma de cache
Se você precisar melhorar o desempenho e a escalabilidade do seu aplicativo, não precisará alterar o banco de dados como do MySQL para o MongoDB. Você pode simplesmente adicionar algum banco de dados de cache. Redis é uma boa opção para iniciantes, mas tem muitas opções. Um banco de dados em cache pode remover grande parte do tráfego em seu banco de dados principal, você faz a pesquisa primeiro no cache, se os dados existirem retorna, senão você pesquisa em seu banco de dados principal e salva no cache. Por um tempo, toda pesquisa retornará o que está no banco de dados de cache.
Use Cloudflare
O Cloudflare tem muitas utilidades, ela vai ser o seu primeiro mecanismo de segurança contra hackers e também serve para servir de cache de arquivos estáticos do seu site. Portanto, sempre que você colocar seu site online, use o Cloudflare.
Mesmo eu não sei tudo o que o Cloudflare pode fazer de tantas possibilidades e serviços.
Use Filas (Queues)
As filas (Queues) são indispensáveis em muitos momentos do aplicativo, basta pensar em uma festa, imagine todas as pessoas tentando entrar de uma vez. Isso é quase impossível. As filas resolvem isso. É o mesmo para aplicativos web, seja quando seu aplicativo recebe uma quantidade inesperada de usuários ou quando algo demora um tempo considerável, como gerar relatórios ou realizar pagamentos através de terceiros.
Esses foram os tópicos que escolhi para falar, são coisas que você pode usar independente da sua linguagem de programação. Você aprenderá muito mais coisas ao longo do tempo e com os problemas que surgirão, esta é apenas uma lista para você conhecer algumas coisas que existem e usá-las quando necessário. Espero ter te ensinado algo novo.
Obrigado!
Outro ponto importante também pra quem está começando de fato nesse mundo da programação, é ter uma boa base de conhecimento sobre as funções nativas da linguagem, elas podem te ajudar no futuro.
Posso usar como exemplo a dificuldade que passei no começo desse ano é por não entender o que a função split() do Javascript fazia no sistema da empresa que estou estagiando, depois que eu entendi como funciona tudo fica mais claro.
Funções recursivas também me deram um trabalho pra entender e implementar.
bom resumo! adicionaria (ou talvez trocaria) essa parte do cache. gerir o cache normalmente torna-se um problema dependendo dos padrões de consumo e frequencia de atualização dos dados, vc invariavelmente vai começar a esbarrar em casos que a informação mudou mas o cache ainda esta mostrando a antiga pq nao foi devidamente invalidado. focaria em entender o funcionamento das chaves e indices do banco de dados, da para resolver boa parte de problemas de performance nos bancos ajustando indices e criando novos para atender melhor a maneira como vc está consultando os dados.
Conteúdo de qualidade, me identifico muito com a parte de TS, a minha empresa está criando uma nova aplicaçāo baseado em React com TS, realmente é mais chato, porém evita muitos erros bobos, como mensionado.