Curso empresarial de Node.js na HexSchool
Algumas reflexões e pensamentos após concluir o curso empresarial de Node.js na HexSchool (um bootcamp de programação em Taiwan).
Por que escolhi este curso? Que problema ele resolve?
É um curso bem caro, e considerando a natureza da HexSchool (por razões comerciais, eles não podem recusar ninguém que se inscreva), o conteúdo do curso inevitavelmente acaba sendo mais básico.
Olhando essas condições, se inscrever não parece o melhor investimento. Mas na prática, existem alguns aspectos que valem a pena considerar:
Trabalho em equipe
Desde o início do curso é preciso trabalhar em equipes. Como a maioria dos inscritos vem do frontend e quase ninguém tem experiência real com backend, é uma boa oportunidade de praticar comunicação e coordenação no desenvolvimento backend.
Visto por outro ângulo, os colegas com quem você colabora podem se tornar contatos profissionais para o futuro, uma forma de construir sua rede de conexões.
Custo afundado
Como mencionei, é um curso caro. Mesmo se você for tão preguiçoso quanto eu, se não quiser perder esse investimento, vai ter que dedicar tempo depois do expediente para acompanhar o ritmo do projeto e cumprir os deadlines. Isso garante que você não perca seu dinheiro e, de quebra, te ajuda a ser mais disciplinado.
Novas perspectivas
Todo o projeto é desenvolvido do começo ao fim: da concepção do design ao desenvolvimento completo. Embora objetivamente o conteúdo seja bem básico, permite que todos os membros experimentem o fluxo completo de PM, UI/UX, frontend e backend, o que traz novas perspectivas para o trabalho futuro.
Conteúdo do curso
Quanto ao conteúdo, além das operações básicas de MongoDB e da implementação de API com Node.js, o mais valioso na minha opinião são as integrações com serviços de terceiros, como login social e gateways de pagamento. Essa parte é bem mecânica e exige tempo para ler a documentação do provedor, então ter um instrutor que te guie economiza bastante tempo.
Além disso, parte do design do curso ainda usa MVC como exemplo, então a equipe precisa fazer a separação frontend-backend por conta própria durante o projeto, o que também exige reflexão.
Algumas seções do curso foram ministradas por instrutores externos em formato de livestream, o que pode gerar certas discrepâncias. Por exemplo, o conteúdo sobre testes unitários era voltado para o frontend, então se você quisesse praticar testes unitários no backend, tinha que resolver por conta própria como equipe.
Desenvolvimento do projeto (opinião bem subjetiva)
O projeto prático é, na minha opinião, a parte mais valiosa deste curso. E o mais importante de tudo é a colaboração e o planejamento interno da equipe.
Seja honesto antes de formar os grupos
Antes de montar as equipes, há uma autoavaliação de habilidades. Se houver áreas que você não domina, seja honesto. Se a diferença de nível dentro da equipe for grande demais, surgem conflitos sérios que podem travar o projeto.
Deixe tempo de folga no desenvolvimento
Como a maioria vem do frontend para o mundo do backend, existem muitos detalhes que antes não te afetavam e que vão desacelerar o desenvolvimento. Por exemplo, depois de integrar o gateway de pagamento, inevitavelmente é preciso lidar com pedidos, e pedidos envolvem questões de timestamps de transações.
Para um desenvolvedor frontend, essas coisas não eram algo que você precisava considerar antes. Afinal, seu trabalho era consumir APIs e mostrar listas. Mas no backend, tudo isso precisa ser levado em conta.
O objetivo é colocar o projeto no ar
Por favor, considere seriamente estes pontos:
- Os membros da equipe têm emprego em tempo integral e só podem dedicar tempo limitado (você não pode prever se terão urgências ou hora extra no trabalho)
- Os deadlines são muito apertados, o tempo real de desenvolvimento é limitado
- A maioria não tem experiência com backend, então inevitavelmente vai perder tempo resolvendo problemas inesperados
Então o objetivo da primeira fase deve ser criar um produto funcional, não um perfeito. Não comece a pensar em arquitetura, otimização ou testes nesta etapa, isso vem depois.
Se você buscar a perfeição, além de travar o desenvolvimento, o pior é que pode provocar uma ruptura na equipe (conflitos potenciais de todo tipo, especialmente quando você não sabe se seus colegas estão sob pressão no trabalho). Uma vez que a equipe se divide, o projeto tem 94,87% de chance de fracassar. Fazer primeiro algo feio mas funcional pode motivar enormemente a confiança de todos.
É especialmente importante evitar a expansão infinita de tecnologias. No frontend, não deveria acontecer de usar React e Vue ao mesmo tempo. Mesmo que alguém da equipe domine um framework, isso não significa que os outros conseguem aprender rápido e usar para desenvolver.
Expansão e otimização
Quando o projeto completa a funcionalidade do primeiro papel, normalmente podemos considerar que a primeira fase terminou. Além de poder respirar um pouco, já dá para começar a pensar em outras funcionalidades, incluindo tecnologias que você quer experimentar ou melhorias na experiência do usuário.
No nosso caso, fomos incorporando gradualmente websocket para mensagens em tempo real, PWA, animações, um sistema de check-in, e assim enriquecemos bastante o conteúdo do site.
Conclusão
Para finalizar, aqui estão as URLs de deploy e os repos do nosso projeto (frontend e admin). Fiquem à vontade para dar uma olhada.
Frontend (Client)
Backend (Admin)
<!-- test account & password -->
account : admin
password : 12345678
Links relacionados
Sobre como me tornei coach do curso empresarial de Node.js 2023
