đ Manual para ser um desenvolvedor FullStack
Um desenvolvedor FullStack nada mais é do que alguém que pode trabalhar tanto no lado do frontend, quando no do backend e até mesmo nos dois.
Ou seja, para se tornar Fullstack basta ter conhecimento nessas duas ĂĄreas (front|back).
Eu decidi pesquisar afundo sobre essas duas åreas, e percebi que ambas possuem suas especialidades (sim, especialidades), essas que estou falando são linguagens, frameworks, libs e até mesmo padrÔes de desenvolvimento.
EntĂŁo vou mostrar alguns dos resultados que obtive, assim vc pode analisar em qual desses "nĂveis" vc estĂĄ.
Eu busquei colocar os nĂveis em uma sequĂȘncia, dessa forma ficarĂĄ mais facil saber qual serĂĄ o prĂłximo nĂvel.
(LEMBRETE) Antes de partir para o Backend certifique-se de ter terminado pelo menos o nĂvel 1 de Frontend...
- HTML5
- CSS3
- JavaScript (JS/ECMAScript)
- Sass ou Less
- npm ou yarn
- Webpack ou gulp, ou os dois
- Um framework CSS, tipo Bootstrap ou Tailwind
- Node.js ou PHP
- React ou Vue ou Angular, ou os trĂȘs
- TypeScript
- Chart.js ou relacionado
- DomĂnio bĂĄsico de SVGs
- Monetização de websites
- UX e UI
- Photoshop ou outro software de edição de imagem e de vĂdeo
- Figma ou outro relacionado
- Notion, Trello ou relacionado
- DomĂnio avançado de SVGs
- DomĂnio avançado de design patterns (no plural mesmo)
- Backend APIs como Firebase ou Backendless
- Ferramentas de animação como: Anime.js, Motion ou relacionado
- Ferramentas de teste unitĂĄrio como Mocha ou relacionado
- Ferramentas de teste de UI como PhantomCSS ou relacionado
- Ferramentas de segurança como: DOMPurify ou jsxss
- Criação de plugins, bibliotecas e/ou frameworks avançados
- Conhecimento de båsico à avançado em backend
- etc... (o céu é o limite)
Depois de ter feito ao menos o nĂvel 1 em Frontend, agora vc tem o suficiente para iniciar o Backend
- Escolha uma linguagem de programação, e pratique bastante, até perceber que jå domina o suficiente
- Utilize bastante o exercism
- Orientação à objetos é primordial
- Terminal, seja ele linux, mac, windows (cmd), ou relacionado
- Design e princĂpios de desenvolvimento
- Conhecimento avançado em JSON e como utilizå-lo em sua linguagem
- Banco de dados relacionais, como: mysql, postgres, etc...
- Banco de dados nĂŁo relacinais como MongoDB
- IDE (mesmo que vc nĂŁo utilize uma)
- CĂłdigos de Status (status code), como: 404, 403, 500, etc...
- Protocolos... TCP, IP, UDP, etc...
- Conhecimento em apache, nginx ou relacionado
- Utilização de um ou mais frameworks Backend como: Laravel, Ruby on Rails, etc...
- Testes automatizados
- Desenvolvimento de APIs
- Organização dos projetos
- Ter conhecimentos avançados em banco de dados
- Ter bastante tempo de experiĂȘncia e resolução de bugs no Backend
- ExperiĂȘncia bastante experiĂȘncia com redes de computadores
- Conhecimento avançado em servidores de hospedagem
- Conhecimento avançado em ssh e conexÔes remotas
- CI/CD
- Search Engines
- Penetration Testing
- Hardware
- Conhecimento de båsico à avançado em frontend
- Conhecimento geral em gerenciamento de processos
- GraphQL
- Websockets
- Message Brokers
- Mais de 10 anos de experiĂȘncia
- O céu é o limite
OK, agora fique tranquilo(a) que esse Ă© sĂł um ponto de vista meu, entĂŁo pra mim o necessĂĄrio para se tornar um dev FullStack BĂĄsico Ă© ter pelo menos o nĂvel 3 do Frontend e pelo menos o nĂvel 2 do Backend, aĂ o resto vc vai saber quando chegar lĂĄ (pelo menos Ă© o que eu acho).