Ebook Full Stack JS-v1
Ebook Full Stack JS-v1
Ebook Full Stack JS-v1
PROGRAMADOR
Full Stack Javascript
O Guia para você se tornar um
Programador(a) Full Stack acima da média
onebitcode
PROGRAMADOR
FULL STACK JAVASCRIPT
1. O Início
2. O treinamento
6. HTML: O essencial
7. CSS: O essencial
9. SASS: O essencial
18. A conquista
Se você está aqui, significa que você já sabe como o mundo da programação
é interessante, cheio de oportunidades e que através dele você pode criar
coisas realmente impressionantes, ganhar bem e trabalhar de onde quiser.
Para que ao final dessa jornada você esteja apto(a) a aproveitar todas essas
oportunidades e sinta-se extremamente orgulhoso(a).
Nosso compromisso
● Suporte de primeira
Seguindo esses passos, não tem erro, com certeza você vai ter sucesso nessa
jornada e vai se tornar um Programador(a) Full Stack acima da média.
O OneBitCode
🤘
vindo(a). Estamos animados para receber o seu depoimento de sucesso ao
final do treinamento
A metodología C.O.D.E
C = CLAREZA
O = ORIENTAÇÃO
D = DOMÍNIO
E = ÊXITO
Esta é a metodologia usada neste treinamento, que vai guiar o seu progresso
de aprendizado e te levar aos seus objetivos na programação.
Agora que você já entendeu como o meu compromisso com você é sério,
como o OneBitCode realmente pode impulsionar a sua carreira e como a
metodologia C.O.D.E vai te ajudar a dominar a programação de verdade, nós
podemos dar Start tanto no livro quanto no treinamento.
Então
JavaScript
bora
🤘 começar a nossa jornada rumo a dominar o Full Stack
Você, assim como eu, já deve ter assistido muitos filmes e/ou lido muitos
livros, então você já sabe que antes do herói ou da heroína triunfarem, eles
precisaram passar por um grande treinamento.
1 - As Aulas:
Nas aulas você vai ter os vídeos + textos de acompanhamentos (divididos por
módulos), que vão te ensinar os conceitos detalhadamente, te propor
exercícios com resolução e te guiar na criação de dois grandes projetos
(falarei sobre eles na próxima seção).
2 - O livro:
Uma das mais perigosas armadilhas para quem está se aventurando pelo
mundo da Programação é a falta de clareza, e um dos aspectos mais
intensos dela é: Não saber o que e quando estudar.
Esse plano não é obrigatório, você pode fazer o treinamento no seu tempo,
porém, eu recomendo fortemente que você siga ele, porque ele vai servir
como um guia e como estímulo para estudar todos os dias.
(citado anteriormente)
As tecnologias
Neste treinamento nós sugerimos e ensinamos uma Stack que é muito forte
no mercado, tem muitas oportunidades e traz muita agilidade e qualidade
aos projetos.
Caso você não compreenda ainda algum termo usado ou não conheça
alguma das tecnologias, não se preocupe, falaremos sobre tudo isso durante
o decorrer do guia e do treinamento.
Principal:
● HTML 5
● CSS 3 + SASS
● Bootstrap
● Git e GitHub
● TypeScript
● NodeJs (ExpressJS)
● NextJs (React)
Extras:
● Bulma
● MongoDB
● ElectronJS
● ExpressJS (nodeJs)
● NextJs
● Bootstrap 5
● Sequelize
● PostgreSQL
● ExpressJs (nodeJs)
● React
● Bulma
● Mongoose
● MongoDB
Esses projetos vão te dar conhecimento prático, uma visão mais ampla e
confiança para fazer projetos para você e para outras pessoas/empresas.
Que graça tem jogar um jogo onde você não sabe se está progredindo e não
pode mostrar o resultado das suas conquistas para o mundo? Bem pouca.
Por isso, nós desenvolvemos as provas com certificado por módulo, ou seja,
ao final de cada módulo você vai ter uma prova referente ao que foi
ensinado. Sendo aprovado(a), você vai receber o nosso certificado
personalizado com seu nome, o nome do módulo e a carga horária.
O guia de carreira
Mas isso não vai acontecer aqui, porque eu sei que você está nesse
treinamento porque quer desenvolver as suas habilidades para que depois
possa utilizá-las, seja criando projetos para você mesmo(a) ou criando uma
carreira de sucesso na programação.
correta)
● E muito mais
Esse módulo vai te dar a base necessária para atingir os seus objetivos
através da Programação, então depois que finalizar a base técnica e os
projetos completos, mergulhe nele.
🤘
Então, agora que você já sabe o que teremos no treinamento, podemos
seguir a nossa jornada
É fundamental que você tenha uma visão de porque e para onde está indo,
então eu quero te apresentar a programação e o mercado de Programação
(de forma leve e sem blá blá blá).
Exemplo, o conjunto de instruções que faz com que o seu Browser exiba a
página do Google ou o conjunto de instruções que faz com que o despertador
do seu smartphone toque.
As especializações
Alguns exemplos:
Incrível né?
O programador raiz:
perguntar aos outros porque sabe que 90% das respostas estão lá.
melhor dele
O programador reclamão:
sem nexo
● Reclama do mercado de T.I e fica falando que está saturado por isso
"O que seria de um(a) guerreiro(a) sem a sua espada e o seu escudo?"
Vamos falar aqui sobre as ferramentas básicas que você vai precisar na sua
jornada, lembrando que nós ensinamos sobre elas e sobre como instalá-las
na parte em vídeo, então aqui é apenas um reforço com algumas adições.
Inclusive, para tornar ele um projeto Desktop, ou seja, que pode ser
instalado no Computador, foi usado a biblioteca ElectronJs, no final do
treinamento temos uma aula em vídeo ensinando como usar esse framework
incrível.
Tenho certeza que você e ele vão se tornar melhores amigos em breve.
Porém, agora que você é um(a) programador(a) você precisa entender que
existem mais coisas no seu browser do que parece.
Se você for no Chrome (browser que indico), você pode clicar no menu
superior em “ver”, depois em “desenvolvedor” e por fim em “ferramentas
para desenvolvedores”.
Mas calma, você vai ver o uso prático desse menu na parte em vídeo, a
minha ideia aqui é apenas te mostrar que existem ferramentas incríveis de
desenvolvimento no seu browser.
O terminal (console)
Geralmente quem vê esse tipo de cena, imagina que programação seja algo
complexo, para alguns poucos malucos que tem coragem de entrar na área,
mas isso não está nem perto de ser verdade.
O terminal, é uma ferramenta que vem no seu sistema operacional, com ele
é possível dar comandos em texto para o seu computador, exemplo:
Hoje em dia, é possível usar o terminal do Linux (que é mais flexível) dentro
do Windows, nós mostramos como fazer isso em detalhes dentro das aulas
em vídeo, também ensinamos como usar os principais comandos.
Essas são as ferramentas que você vai usar na maior parte do tempo, então,
instale elas como indicado (na parte em vídeo) e brinque um pouco com elas
até se familiarizar.
Quando você está programando, nem tudo ocorre como esperado, erros
acontecem, a dificuldade em estruturar soluções acontece e às vezes o caos
se faz presente.
Neste guia nós vamos falar sobre algumas atitudes que você pode/deve
tomar para solucionar essas dificuldades comuns no dia a dia de um(a)
Programador(a).
Você está lá, tranquilamente, incluindo uma nova função no seu projeto e de
repente, surge uma mensagem em vermelho sangue dizendo “Parameters
not defined in line 10”.
O coração bate mais rápido, a veia da testa já fica aparente, o suor escorre e
você pensa: “E agora, o que eu vou fazer?”
Um exemplo, imagine que você queira criar uma barra de navegação usando
Bootstrap (Bootstrap é um framework que ajuda a criar interfaces web
responsivas), mas você não faz ideia de como começar a sua barra, o que
você faz?
Caso você não encontre, você deve pesquisar no google "barra de navegação
com bootstrap”, existe uma grande chance de que você encontre tutoriais
em texto e vídeo demonstrando como criar essa barra.
Quando isso acontece, a primeira coisa que você precisa fazer é respirar,
relaxar e pensar o seguinte: “Eu tenho tempo de ajustar essa bagunça
agora?”.
Se a resposta for não, é bom você arranjar um tempo assim que possível
para arrumar a bagunça, mas se a resposta for sim, aí é hora de botar a
mão na massa.
Primeiro, o caos se instala geralmente por que grande parte dos projetos
nascem sem planejamento, ou seja, você não tinha uma definição em texto
(ou visual) do objetivo e das features que deveriam estar no seu código.
Só com o plano na cabeça, fica fácil tudo virar uma bagunça, então é
fundamental usar técnicas de planejamento de projeto antes de começar
(Nos APPs completos do treinamento, eu ensino como planejar de forma
profissional).
Caso você tenha um plano e mesmo assim o seu projeto virou um caos,
provavelmente é porque os códigos não foram bem estruturados, aí é hora
da famosa refatoração.
Se você masterizar esses três pontos, como reagir quando Bugs aparecem,
como pesquisar quando não sabe como desenvolver algo e como organizar
seu projeto quando o caos reina, você vai chegar em um novo nível na
programação.
Então, sempre que tiver algum desses problemas, volte nessa parte do guia,
leia com calma e implemente o que eu disse, tudo que eu indiquei é fruto de
mais de 10 anos de experiência lutando com essas adversidades.
O HTML é essencial para todas as páginas web, ele permite que nós
estruturemos nossas páginas (usando as famosas tags </>), colocando
textos, botões, campos para digitar informações e etc tudo de forma
organizada.
Você não precisa de nada especial para usar o HTML, basta poder editar um
arquivo .html para inserir as tags de marcação desejadas e um browser,
onde você possa abrir o documento criado.
● https://developer.mozilla.org/pt-BR/docs/Web/HTML
● https://www.w3schools.com/tags
Você acabou de ver sobre o html, que é a estrutura da nossa página. O css é
o visual da nossa página. Enquanto o html vai servir para você colocar uma
imagem, um botão, um texto, com o css você vai definir o tamanho da
imagem, definir a cor do botão e também qual a fonte que você quer no
texto.
Se trouxermos um exemplo de uma casa, você pode pensar que o html vai
ser a estrutura da casa. Apenas com html a casa fica funcional, você até
consegue morar lá, porém não vai ser agradável visualmente. Agora, se você
coloca uma pintura, uma decoração, a casa já ganha outro estilo, e é isso o
que o css faz.
Como já foi dito, o css é o estilo da sua casa, você não quer ter uma casa
feia e sem graça, certo? Então você usa o css em toda página que fizer.
Porém, seu uso não é obrigatório em todo elemento da página. Você pode
deixar textos, cores e outros itens com o padrão inicial.
Assim como o html, você não precisa de nada especial para usar. Utilizando
um editor de texto, você vai criar um arquivo .css e vai modificar ele de
acordo com o que quiser. Para modificar os elementos na página, nós
usamos os identificadores dentro do html (Classes de ids).
Links importantes
● https://developer.mozilla.org/en-US/docs/Web/CSS (Documentação
oficial)
Com o css e o html, você já tem um poder grande em mãos, é possível criar
algumas páginas legais para treinar e fixar o conteúdo.
O layout padrão das páginas é vertical, onde nós vamos ter um item abaixo
do outro, seja ele uma div, um texto, uma imagem (posição de coluna), entre
outros. Com o flexbox, podemos deixar esses itens em linha, fazendo eles
ficarem um ao lado do outro. E é desse jeito que podemos deixar os layouts
ainda mais bonitos, com imagens e outros elementos lado a lado.
Além disso, nós podemos usar ele quando queremos imagens ou textos um
ao lado do outro, fazendo essa mesma adaptação, como por exemplo a
página da netflix.
Para usar eles, você precisa saber sobre css e html o suficiente para montar
layouts simples e legais.
Até pegar a ideia e perfeição deles, você vai precisar praticar muito, então
quando surgirem as primeiras dificuldades, não se preocupe, é normal. Você
não deve desistir ou desanimar, lembre-se que todos nós já passamos por
isso com flexbox e grid, e você vai agradecer por não desistir. o/
Links importantes
● Flexbox:
https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Flexible_Bo
x_Layout/Basic_Concepts_of_Flexbox
● Grid:
https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Grid_Layo
ut/Basic_Concepts_of_Grid_Layout
Você não necessariamente precisa usar SASS, mas ao utilizar, você vai ter
em vários pontos uma produtividade maior, fazendo com que o projeto fique
mais rápido de criar, atualizar ou dar manutenção.
Quando você termina de manipular um sass, você vai “traduzir” ele para
css, chamamos isso de transpilação.
Links importantes
● Sass compiler
● Live sass - Tanto essa como a de cima servem para você transpilar
para o css de forma rápida.
Usando o Bootstrap, você não precisa criar cada elemento, você pode utilizar
o que já está pronto e criar apenas o essencial para suas páginas, tendo
mais produtividade.
O bootstrap pode ser usado em toda aplicação que você criar, fazendo você
ter muito menos dor de cabeça e muito mais agilidade.
Você precisa saber html e css, não precisa de javascript para usar bootstrap
pois o javascript já vem pronto.
Sabendo bem o HTML, você já pode criar diversas coisas, e usando flexbox e
grid que tem dentro do bootstrap, agilizará ainda mais o seu processo de
criação.
Ou seja, seguindo todos os passos até aqui, você consegue uma ótima base
para usar bootstrap.
Links importantes
● Bootstrap snippets
O javascript foi criado em 1995 por Brendan Eich para ser uma linguagem
capaz de funcionar no navegador Netscape, um dos primeiros navegadores
web e que era muito popular na época. O motivo para a criação do javascript
era justamente permitir que as páginas HTML, que até aquele ponto eram
apenas documentos estáticos, pudessem permitir mais interações por parte
dos usuários, que naquele momento eram apenas leitores. Com o passar dos
anos o javascript evoluiu e se transformou em um padrão utilizado por
todos os navegadores e toda a web, se consolidando como uma das
linguagens mais populares do mundo.
Para conseguir isso, somente HTML e CSS não serão o suficiente, e é nessa
hora que entra o javascript. Ele permitirá que você crie uma galeria com
imagens em movimento, efeitos de transição entre as imagens, um botão
para pausar e continuar a apresentação e tudo mais que sua imaginação
quiser. Isso é apenas um exemplo bem pequeno de como e quando podemos
usar o javascript. Considerando o quanto os sites de hoje buscam ser mais
atrativos e interessantes para prender a atenção dos usuários, você irá
utilizar muito o javascript.
Vale destacar aqui que o javascript possui muito potencial, então nós
podemos usá-lo para poucas coisas simples ou para coisas incrivelmente
complexas. Com isso, é muito importante que para utilizar o javascript o
programador tenha sólidos conhecimentos de lógica de programação,
conheça bem a linguagem e os seus principais comandos e tenha uma boa
Links importantes
● https://developer.mozilla.org/pt-BR/docs/Web/JavaScript
● https://www.w3schools.com/js/
● Babel Javascript
Essa é uma extensão que serve para synax highlighting, que é quando
o editor de texto muda a cor dos comandos para que possamos
visualizar melhor o código e entendê-lo mais rápida e intuitivamente.
Ela expande as funcionalidades padrão do VS Code para entender
melhor os comandos e recursos das versões mais modernas do
javascript.
4. Calculadora
5. Site que consome uma API pública para listar seu conteúdo (GitHub
API, The Movie Database, PokéAPI, etc)
6. Um jogo simples
Por fim, é importante ter uma boa noção de como utilizar os recursos do
typescript, como os type aliases, as interfaces, os tipos genéricos,
decorators, etc, e tentar não fugir do uso deles. Existem situações onde
poderá ser complicado utilizar o typescript da forma correta e o typescript
possui meios para “anular” esses recursos de forma que não precisemos
utilizá-los. No entanto, se começarmos a fazer isso com frequência, terá sido
inútil escolher o typescript, sendo melhor se manter utilizando apenas o
javascript.
● https://www.typescriptlang.org/
Mas, para deixar algumas dicas de projetos mais convencionais você pode
desenvolver:
2. Plataforma de EAD
2. Clone do Trello
3. Rede social
Imagina que você está desenvolvendo um projeto e que ele esteja salvo na
sua máquina local. Caso essa máquina pare de funcionar ou você perca o
acesso a ela, você perde seu projeto inteiro! Quando se trata de projetos
pessoais, isso pode ter um impacto menor, mas quando o projeto é um
produto para um cliente, o prejuízo é muito maior.
Por isso, utilizamos os versionadores de código, que são sistemas que não
apenas armazenam os projetos em um servidor remoto, mas também fazem
esse controle seguro das alterações que são realizadas em todos os arquivos.
Agora, para ficar mais claro, vamos entender como o GIT e o GitHub podem
ajudar a solucionar esse problema do controle de versões.
O Git precisa ser instalado no seu computador antes de você usar, já que ele
é um software de controle de versão. O GitHub é uma plataforma online, ou
seja, nada precisa ser instalado. A única coisa que você vai precisar fazer, é
criar uma conta.
Para nenhuma das duas ferramentas você precisa ter conhecimento prévio.
Links importantes
● GitHub - https://github.com/
Existem algumas extensões para facilitar nosso trabalho com o Git e alguns
até conectam os projetos com a conta do GitHub para agilizar o processo de
envio de informações. Uma das mais utilizadas que podemos citar é a Git
Extension Pack, que vem com um kit de extensões úteis.
● Git History (git log) - Para ver o histórico do Git, arquivo ou uma linha
específica.
Entendendo tudo isso, o React é uma biblioteca que foi criada para facilitar
a interação com o DOM, além de tornar fácil a criação de elementos na tela
com o uso do seu sistema de componentes. Os componentes são como
pequenos blocos de HTML, mas que utilizam a sintaxe JSX, que permite
definir a estrutura da página utilizando um misto de javascript e XML, que é
uma outra linguagem de marcação. Após escrevermos um componente, o
React nos permite renderizá-lo facilmente na tela de acordo com as
necessidades da aplicação.
● https://pt-br.reactjs.org/
1. Lista de tarefas
● Postgresql
● MySQL
● Oracle
● SQL Server (Possui versão gratuita e paga, mas não é Open Source)
Links importantes
-Postgresql: https://www.postgresql.org/
-MySQL: https://dev.mysql.com/doc/
-Oracle: https://www.oracle.com/br/database/
-SQL Server:
https://www.microsoft.com/pt-br/sql-server/sql-server -downloads
● HTML 5
● CSS 3
● Bootstrap
● JavaScript
Algumas tarefas não são suportadas diretamente por ele, como por exemplo
se você quiser que sua aplicação gerencie rotas para diferentes URLs, ou
utilize templates para exibir as respostas. Você terá muito trabalho para
fazer isso apenas com NodeJS. Será muito mais rápido e fácil se você utilizar
um framework, que é uma estrutura pronta, capaz de trazer essas e outras
funcionalidades e possibilidades para você só utilizar, sem precisar ficar
desenvolvendo do zero. Um exemplo de framework é o Express, que é
utilizado para agilizar o desenvolvimento de quem trabalha com o Node.
Alguns exemplos:
Além dessas situações, estas são algumas empresas que utilizam NodeJs e o
Express nos seus sistemas:
● Netflix
● Uber
● IBM
● PayPal
● Walmart
Links importantes:
● Express: https://expressjs.com/
● Node.js: https://nodejs.org/pt-br/docs/
1. Criar projetos de backend, como as APIs. Por exemplo, uma API para
uma biblioteca ou para controlar cadastros de clientes e produtos em
estoque. Veja uma explicação simplificada do que é uma API:
https://www.instagram.com/p/CjLnNyAOj7p/
Neste capítulo eu vou falar sobre 3 aspectos que vão te ajudar nisso.
Então, depois de ler esse capítulo, vá para a parte em vídeo ver o módulo
especial de carreira.
Ou simplesmente, veja uma página que te agrade e tente replicar ela do zero
usando as tecnologias que aprendeu.
Dessa forma, você vai conseguir identificar os pontos que precisam ser
ajustados nas suas habilidades antes de oferecer esses trabalhos.
Imagine que é sexta-feira à noite, você quer comer uma bela pizza mas está
sem ideia de onde pedir, aí você abre um aplicativo para pedir comida e vê
uma infinidade de pizzarias.
Você seleciona as melhores, depois para filtrar entre elas, você manda
algumas mensagens pelo aplicativo para tirar algumas dúvidas, por
exemplo, se é possível tirar a cebola (quem gosta de cebola afinal?).
De certa forma, também é assim que funciona a seleção de uma pessoa para
uma equipe, o departamento de RH analisa vários perfis no LinkedIn (ou
banco de talentos), vê quais deles se apresentam de forma interessante,
quais tem as características desejadas (habilidades), quais tem bons reviews
(depoimentos de colegas de trabalho) e depois chamam essas pessoas para o
processo seletivo.
Você precisa:
Freelancer
Prós:
Contras:
● Trabalho mais isolado (em geral, não vai ter colegas de trabalho)
O freelancer também pode servir como uma renda extra caso você já tenha
um trabalho fixo, então eu realmente recomendo que você tente.
Busca por um template pré pronto, compra por alguns dólares e depois
edita ele como quiser. Bem útil né?
Tem pessoas fazendo 100k reais por mês com vendas de templates, que
podem ser templates para landing pages, blogs e etc.
Uma observação, um aluno do OneBitCode, relatou que fez 300k reais com
a venda de um template simples em um ano! Sim, é algo totalmente
possível.
Como citei acima, o Theme Forest é o maior ecossistema para venda desse
tipo de produto, então se você tem boas ideias e já domina bem o Frontend,
vale a pena investir na pesquisa (do que já existe) e no desenvolvimento de
algo atraente para vender por lá.
Prós
Contras
Mas nem só de bilhões vivem os SAAS, não é necessário que o seu serviço
seja gigantesco para que você consiga lucrar e viver dele.
Prós
Contras
Agora que você já tem uma visão geral do que precisa para começar a
ganhar dinheiro com programação, como ser mais contratável (assim como a
pizzaria vencedora) e que CLT não é o único caminho, recomendo que você
vá para a parte em vídeo, para se aprofundar em tudo isso.
🎉
desafios do caminho e conseguiu finalizar o guia Full Stack JavaScript
do OneBitCode com sucesso
Tenho certeza que você evoluiu demais na jornada, tanto no guia como
também no treinamento em vídeo (caso ainda não tenha finalizado ele, foque
suas energias em finalizar).
Se você finalizou os dois, já está pronto para usar as suas novas habilidades
de programação para dominar o mundo…digo, contribuir com o mundo 😅
Uma observação importante, esse guia pode e deve ser relido sempre que
necessário, é natural absorvermos qualquer coisa ainda melhor na segunda
leitura.
Continue evoluindo
Aproveite que você tem desconto especial por sem aluno(a) e acrescente
esses conhecimentos extras para se destacar no mercado de trabalho.
2 dicas importantes
Hora da glória
Tire uma foto ou um print da imagem a seguir e poste nas suas redes
sociais marcando o @onebitcode para mostrar a sua nova conquista ao
mundo:
Equipe OneBitCode.