Desenvolvimento Web: Guia 2018 com HTML, CSS e JS em 30 dias

Desenvolvimento Web: Guia 2018 com HTML, CSS e JS em 30 dias






Guia Prático de Desenvolvimento Web 2018: Tecnologia e Carreira


Guia Prático de Desenvolvimento Web 2018: Tecnologia e Carreira

Baseado na visão de um desenvolvedor sênior sobre ferramentas, tecnologias, opções de carreira e o cenário da época.

Introdução e escopo do guia

Olá pessoal, este é meu guia prático para desenvolvimento web em 2018, tratando de tecnologia e carreira. Já havia uma versão muito popular para 2017, e houve mudanças em tecnologia e software, bem como na minha própria visão como desenvolvedor ao longo do tempo. Por isso, acredito ser boa ideia fazer uma atualização anual. Caso não tenha visto a versão de 2017, não se preocupe: vamos abordar tudo o que fizemos naquele vídeo e acrescentar mais. Este guia foca no momento presente, o aqui e agora.

Antes de começarmos, algumas considerações importantes: este é um guia de tecnologias e opções disponíveis, e não é necessário aprender tudo o que é mencionado. Na prática, muitas lâminas dizem para escolher uma opção e permanecer com ela. Este guia é baseado em fatos e opiniões; procure outras fontes para orientação adicional, já que este não é o fim de tudo para web development. Além disso, o modo de seguir o guia depende do tipo de desenvolvedor que você deseja ser:

  • desenvolvedor full stack (frente e back-end);
  • especialista em frontend e UI;
  • web designer simples que constrói sites básicos;
  • engenheiro back-end que cria APIs complexas e gerencia bancos de dados.

Este guia, em geral, é voltado para desenvolvedores web full stack. Mas isso não impede que quem deseja ser frontend encontre utilidade no conteúdo, já que vamos abordar também esse aspecto.

Ferramentas e software

Você não precisará de tudo de imediato ao começar. O essencial costuma ser os primeiros dois itens: um editor de texto (ou IDE) e, possivelmente, um editor de código mais leve. A sugestão de três opções é:

  • Visual Studio Code
  • Atom
  • Sublime Text

Estas opções são altamente personalizáveis, rápidas e com muitos recursos. Existem outras opções, também válidas, para explorar.

Editor de código e IDE

Para o desenvolvimento web, o editor de código ou uma IDE são ferramentas centrais para trabalhar com HTML, CSS e JavaScript. A escolha entre editor simples e IDE depende da necessidade de recursos avançados; porém, para a maioria dos projetos web, um editor de código torna-se suficiente.

Navegadores

É aconselhável ter um navegador confiável; o navegador sugerido é o Chrome pela velocidade e pelas ferramentas de desenvolvimento — embora o Firefox também seja uma boa opção.

Edição de imagens

A edição de imagens não é tão essencial quanto antes, pois existem várias ferramentas que aceleram o processo de prototipação diretamente no navegador. No entanto, para designers que buscam sites com aparência mais artística, pode haver a necessidade de mockups com Photoshop, como era feito há alguns anos.

Desdobrando a deployment e o acesso remoto

Ferramentas de deployment podem não ser necessárias no começo, mas, com o tempo, você poderá precisar de um cliente FTP para enviar conteúdo para o host, especialmente em hospedagem compartilhada. Em ambientes Windows, pode-se usar PuTTY para SSH; em Mac ou Linux, o comando SSH já está disponível. A interação com o servidor para implantação é uma parte essencial da prática de desenvolvimento.

Armazenamento em nuvem

O armazenamento em nuvem é opcional, mas recomendado para manter o código disponível de qualquer lugar entre dispositivos. Opções comuns incluem Dropbox e Google Drive, entre outras disponíveis no mercado.

Tecnologias que você precisa aprender

HTML e CSS

HTML e CSS são os blocos de construção da web. Todo site utiliza HTML e CSS, independentemente das tecnologias de back-end. Mesmo que o HTML apareça como parte de estruturas geradas por JavaScript, o resultado final continua sendo HTML e CSS. A boa notícia é que é rápido e relativamente simples de aprender. Embora já tenha comentado antes, a visão evoluiu: deve-se dominar semântica do HTML5 e o layout, enquanto o CSS3 oferece muito, especialmente para animações e transições. Não é obrigatório dominar tudo de CSS, especialmente se não for criar interfaces com animações. O que é essencial é aprender a alinhar elementos com responsividade. Frameworks ajudam, mas é importante saber alinhar sem depender deles. A responsividade é crucial: não construir layouts que não ficam bem em dispositivos móveis. CSS media queries são úteis para adaptar estilos com base na largura do dispositivo.

Com HTML e CSS já dominados o suficiente para criar uma página estática com boa aparência, é hora de introduzir programação real para criar interfaces dinâmicas e manipular o DOM. Isso envolve aprender JavaScript, sem depender de frameworks, para entender a linguagem na prática. Mesmo que você vá trabalhar com back-end em Python, PHP ou outra linguagem, o conhecimento básico de JavaScript é valioso. O ideal é aprender JavaScript vanilla antes de qualquer framework, pois muitas pessoas aprendem framework sem entender o básico da linguagem, o que pode ser prejudicial a longo prazo. Alguns fundamentos a dominar incluem tipos de dados, funções, condicionais, loops e manipulação do DOM, tudo isso sem jQuery. Ajax e Fetch API são usados para requisições assíncronas, mas a necessidade de esses tópicos depende do caminho de aprendizado escolhido. JSON é amplamente usado em várias linguagens e APIs, e vale a pena aprender. Para quem trabalha com JavaScript, ES2015+ (novas funcionalidades de JavaScript) é importante; caso contrário, pode-se focar no essencial, como template strings e const/let.

Implantação básica

Após adquirir HTML, CSS e algum JavaScript, é importante aprender a implantar um site básico. Em termos de implantação, é comum começar com hospedagem compartilhada usando painéis como o cPanel, que é amplamente utilizado. Um cliente FTP como o FileZilla facilita o envio de arquivos para o host. A compreensão de domínio, DNS e servidores de nomes (name servers) é essencial para conectar um domínio a um hosting. O objetivo é publicar um site simples na internet, o que marca o passo de se tornar um web designer ou um desenvolvedor front-end básico com UI funcional. A partir daí, pode-se decidir seguir como freelancer ou buscar uma posição de ingresso.

O passo seguinte

É possível escolher entre tornar-se freelancer ou buscar uma posição júnior. Com as habilidades descritas, as oportunidades podem incluir tarefas simples a médias, com perspectiva de evoluir para desenvolvedor full stack dentro de uma empresa. Em resumo, você pode construir interfaces com base em um design, adicionar interações simples com JavaScript no lado do cliente e, a partir daí, evoluir gradualmente para recursos mais avançados.

O que aprender em seguida

Ao avançar, você pode optar por explorar frameworks de frontend ou manter-se no foco de desenvolvimento full stack. A ciência de dados e o back-end também ganham relevância, especialmente com a integração de REST APIs e serviços de backend com o frontend. A organização do aprendizado varia conforme o objetivo profissional desejado, seja como freelancer, seja como empregado em uma empresa.

Frameworks e bibliotecas frontend

Frameworks de frontend (CSS/UI)

Entre as opções de CSS/UI, destacam-se:

  • Twitter Bootstrap, versão 4, amplamente utilizada para websites e aplicações.
  • Materialize CSS, mais recente, voltado a UI/UX com aparência moderna e visual limpo. A experiência pessoal aponta que o Materialize pode apresentar estética mais agradável que o Bootstrap, embora este último seja mais popular.
  • Bulma, framework muito bom, com sintaxe simples e direta; trata-se de componentes CSS puros, sem dependência de JavaScript ou jQuery.
  • Zurb Foundation, concorrente direto do Bootstrap, mas considerado mais pesado e com um visual por padrão menos agradável no ponto de vista da opinião expressa.
  • Skeleton CSS, não exatamente um framework completo, mas sim um boilerplate muito leve, excelente para prototipação rápida de funcionalidades sem priorizar o visual final.

Frameworks JavaScript de frontend

Para quem pretende trabalhar com aplicativos frontend mais complexos, vale conhecer frameworks JS modernos. Observações gerais:

  • React: excelente para startups, muito rápido e leve; utiliza um gerenciador de estado conhecido como Redux; utiliza JSX para renderizar HTML, em vez de templates tradicionais.
  • Angular: popular em ambientes corporativos, com um conjunto completo de recursos integrados; é mais pesado, mas oferece uma solução abrangente com várias ferramentas internas como o gerenciador de estado NGRX (semelhante ao Redux).
  • Vue.js: considerado um dos favoritos por ser fácil de aprender e direto; o ecossistema inclui Vuex como gerenciador de estado.
  • Aurelia: opção menos popular, mas apreciada pela naturalidade e semelhança com JavaScript puro; permite uso de ES next ou TypeScript (comum em Angular).

Existem ainda outras opções no ecossistema, como Ember, com curva de aprendizado mais íngreme, porém robusto para aplicações completas.

HTML, CSS e frameworks de JavaScript – itens adicionais

Além dos frameworks, existem tecnologias auxiliares que devem ser consideradas simultaneamente com os frameworks, como:

  • Controle de versão com Git (GitHub é o serviço mais popular para repositórios);
  • Uso de linha de comando (CLI) e o gerenciador de pacotes npm;
  • Conceitos de APIs REST e a forma de fazer chamadas HTTP para back-end (Fetch API no frontend, ou bibliotecas próprias de cada framework);
  • Conceitos de SSL/HTTPS para segurança;
  • Pré-processadores de CSS, como SAS e LESS (com ressalva de que SAS tende a ganhar mais tração).

Ferramentas de empacotamento e transpilação

Para quem trabalha com JavaScript moderno, é recomendável entender Webpack e Babel. Webpack atua como um empacotador de módulos para uso de pacotes npm no lado do cliente, enquanto Babel permite compilar features modernas de JavaScript (ES6/ES7) para código ES5, compatível com navegadores mais antigos. Em cenários onde se utiliza Python ou C#, essa parte pode ter menos importância, mas para desenvolvedores JavaScript, é uma área relevante.

Tecnologias do lado do servidor e frameworks

Node.js

Node.js não é uma linguagem, mas sim um ambiente de execução que utiliza JavaScript no servidor. A recomendação é Node.js para a maioria dos desenvolvedores, por ser popular, rápido, escalável e assíncrono. Com ele, surge o gerenciador de pacotes NPM, que permite instalar infinitos pacotes para alcançar a funcionalidade desejada.

Python

Python aparece como uma opção forte para desenvolvimento de backend, com foco em rapidez de desenvolvimento e integração com várias ferramentas. É uma escolha excelente para quem valoriza aproveitamento rápido de recursos e interoperabilidade.

PHP, Ruby e C#

PHP permanece uma opção prática para deploys simples em hospedagens compartilhadas; é a linguagem por trás de WordPress, e o Laravel é um framework muito popular dentro do PHP para desenvolvimento moderno. Ruby on Rails continua relevante como framework MVC para desenvolvimento rápido, apesar de parecer ter perdido um pouco de espaço com o surgimento de Node.js. C# e ASP.NET/Microsoft também entram como alternativas poderosas, especialmente em ambientes corporativos, com uma linguagem forte e um ecossistema sólido.

Banco de dados e serviços relacionados

Bancos de dados tradicionais e NoSQL

É importante escolher entre opções relacionais e não relacionais, dependendo do projeto. MongoDB é destacado como um NoSQL com esquema flexível, muito escalável e compatível com Node.js. MySQL é um banco relacional tradicional amplamente utilizado com várias linguagens; PostgreSQL (Postgres) é similar ao MySQL, mas com recursos adicionais; SQL Server é a implementação da Microsoft; Oracle é muito utilizado no mundo corporativo. Firebase é apresentado como um banco de dados em tempo real mantido pelo Google, com autenticação e armazenamento, útil para certos tipos de aplicações na nuvem.

Considerações sobre Firebase

Firebase não é apenas um banco de dados: ele funciona bem com autenticação, armazenamento e pode ser utilizado como plataforma de hosting. Recomenda-se aprender Firebase em conjunto com outras opções de banco de dados, pois ele complementa bem frameworks como Angular, React e Vue.

Frameworks no servidor por linguagem

JavaScript

Express é destacado como o framework mais popular para Node.js; também existem outras opções como Happy.js, Adonis, LoopBack e Swagger, com foco em construção de REST APIs e serviços de back-end para aplicações full stack.

Python

Django e Flask representam abordagens diferentes: Django é um framework de alto nível com bastante automação, enquanto Flask é mais flexível e menos prescritivo, permitindo maior liberdade ao desenvolver. Existem outras opções como Web2Py e Pylons, dependendo das necessidades do projeto.

PHP

Laravel é extremamente popular pela elegância e facilidade de uso; Symfony serve como base para o Laravel e outros sistemas; CodeIgniter é conhecido pela simplicidade; Yii2 é outra opção com perfil diferente.

Ruby

Ruby on Rails continua como uma opção relevante para desenvolvimento rápido com MVC; Sinatra e Nitro são alternativas menores porém úteis para cenários mais simples ou específicos.

C# e .NET

A família .NET com ASP.NET MVC é poderosa, principalmente em ambientes corporativos, com forte integração com o ecossistema Microsoft.

Sistemas de gerenciamento de conteúdo (CMS)

WordPress, Drupal e Joomla são os CMS mais populares. Embora Drupal e Joomla tenham menor adoção nos últimos anos, o WordPress continua em evidência. Todos são construídos em PHP, o que facilita a implantação em ambientes de hospedagem compartilhada, com capacidade de instalar WordPress com poucos cliques. A escolha de CMS oferece rapidez de desenvolvimento com plugins e temas prontos, além da possibilidade de criar plugins próprios para personalização, o que facilita o lançamento de soluções para clientes sem iniciar uma construção do zero.

DevOps, implantação e produção

Ao projetar aplicações para produção, é necessário aprender sobre implantação. Em termos de implantação de aplicações PHP, costuma-se usar hospedagem compartilhada; para Node.js, Python ou Ruby, a tarefa é mais complexa. A recomendação envolve o uso de servidores dedicados, VPS ou, preferencialmente, serviços em nuvem. Plataformas como DigitalOcean oferecem ambientes pré-configurados para aplicações Node, Mean Stack, entre outros. Heroku e Amazon Web Services (AWS) são opções para deploi de aplicações dinâmicas em diferentes linguagens. Armazenamento em nuvem como o Amazon S3 pode ser necessário, especialmente ao utilizar plataformas que não permitem uploads locais. Em geral, é comum depender de linha de comando e SSH para manutenção de servidores e atualizações, o que é parte essencial do ciclo de vida da aplicação.

Este tópico pode parecer muito amplo; a ideia é ter noção suficiente para colaborar com a equipe de DevOps ou compreender o fluxo de implantação, sem necessariamente dominá-lo em profundidade. O objetivo é ter uma compreensão básica de como tudo funciona, para facilitar a integração entre front-end e back-end, bem como a eventual manutenção de servidores e bancos de dados.

Aplicativos móveis

Aplicativos móveis podem ser desenvolvidos com tecnologias web. Não é necessário dominar Java ou Swift para criar apps nativos com abordagem híbrida ou nativa; existem opções como React Native (usa o ecossistema React para construir apps nativos), NativeScript (usa Angular ou JavaScript puro), Ionic (framework híbrido que utiliza WebView em um container de app) e Xamarin (usa C# para criar apps nativos). O uso de frameworks web para mobile oferece caminhos diferentes de acordo com o objetivo e as restrições do projeto.

O que significa ser um desenvolvedor full stack

Se você passou por grande parte do conteúdo discutido, pode-se considerar que está em caminho para ser um desenvolvedor full stack capaz de criar aplicações web com frontend e backend, com um REST API seguro, capaz de processar requisições e retornar dados de um banco de dados. Também é essencial ser capaz de implantar e manter o aplicativo, bem como administrar bancos de dados. Não é necessário tornar-se um administrador de bancos de dados, mas ter controle de dados e otimizações é importante. A decisão de trabalhar para uma empresa ou empreender por conta própria depende de cada pessoa. O importante é ter confiança em si mesmo e continuar aprendendo conforme a necessidade do projeto.

Este guia não pretende retomar uma visão de carreira para todos os cenários, mas oferece um mapa de caminhos comuns que muitos desenvolvedores seguem. O autor compartilha experiências próprias, lembrando que o objetivo é orientar sem impor regras rígidas, e que o crescimento individual pode ocorrer de formas diversas.

O que mudou desde o ano anterior

Entre as mudanças observadas, destacam-se novas tecnologias que ganharam espaço: Grid CSS, Fetch API, Materialize e Native Script. O foco passou a ser mais voltado para aplicações full stack e na criação de REST APIs, com o frontend consumindo APIs por meio de chamadas assíncronas em vez de renderizar tudo no servidor. Também houve maior ênfase na utilização de JavaScript vanilla aliada aos frameworks, reconhecendo que frameworks são úteis, mas não substituem o entendimento profundo da linguagem. As aplicações de página única (SPAs) continuam populares e em crescimento. Além disso, há uma mudança de ênfase de PHP para Python e C# como escolhas de backend, ainda que PHP permaneça relevante pela praticidade de deploy e pela existência de WordPress.

Novas tecnologias citadas: Grid CSS, Fetch API, Materialize, Native Script. O movimento geral aponta para uma maior adoção de arquiteturas que combinam frontend moderno com APIs REST, em vez de renderização de views no servidor. O aconselhamento prático também enfatiza o aprendizado de JavaScript vanilla antes de se aprofundar em frameworks, visando uma base mais sólida para qualquer framework escolhido no futuro.

O que fazer a partir daqui

Se você não tem emprego, buscar uma oportunidade ou começar seu próprio negócio é o próximo passo. Foque nas tecnologias que a empresa utiliza e mantenha o aprendizado contínuo sem abandonar o foco principal. Aprender ferramentas adjacentes apenas como hobby pode ser útil, mas não substitui a prática nas tecnologias centrais da sua rotina profissional. Mantenha-se atualizado com as tendências atuais de mercado, como lançamentos de Bootstrap, atualizações de Angular e outras inovações relevantes, e dedique tempo para aprender de forma contínua. O melhor caminho é manter a diversão e o interesse pelo que se faz, pois isso facilita o aprendizado constante.

É natural que esse conteúdo pareça intenso; a recomendação é abordar cada tópico gradualmente, avaliando as rotas de tecnologia que você pretende seguir e planejando o aprendizado de acordo com as necessidades do seu ambiente de trabalho ou do seu negócio. A ideia é construir uma base sólida e evoluir com consistência ao longo do tempo.

Mudanças desde o último ano

Algumas mudanças observadas desde a edição anterior incluem a consolidação de Grid CSS, a popularização do Fetch API, o amadurecimento de Materialize e o surgimento de Native Script como opções significativas para desenvolvimento móvel. O panorama aponta para maior foco em aplicações full stack com serviços REST, bem como para a valorização de aprender JavaScript vanilla além de frameworks populares. A ênfase em SPAs permanece estável, e a transição de PHP para Python e C# é perceptível, ainda que PHP permaneça relevante pela praticidade de deploy em ambientes compartilhados.

O que agora?

Você é um desenvolvedor full stack quando consegue criar aplicações web com frontend e backend, incluindo a construção de uma API REST segura, capacidade de buscar dados e interagir com bancos de dados, além de implantar e manter aplicações. A decisão entre seguir carreira em uma empresa ou empreender depende de você. O autor optou pelo caminho do próprio negócio, mas reconhece que muitos seguem em ambientes corporativos. O importante é manter a confiança, continuar aprendendo e seguir o caminho que melhor se alinha aos seus objetivos. E lembre-se: não se deixe dominar pela sensação de sobrecarga – avance passo a passo, avaliando cada tecnologia, e tome decisões baseadas em suas metas.

Para manter o foco, recomenda-se não migrar de ferramenta ou linguagem de forma constante sem necessidade. É aceitável explorar novas opções no tempo livre, desde que não comprometa o desempenho na atividade principal. Além disso, manter-se atualizado sobre tendências atuais — como lançamentos de frameworks ou mudanças de recursos — ajuda a tomar decisões informadas sobre o que aprender a seguir.

Está desenvolvendo um projeto digital e precisa de um site moderno, performático e bem estruturado?
Eu posso te ajudar a transformar essa ideia em uma solução completa — com foco em performance, design e funcionalidade.
Acesse yurideveloper.com.br ou chame no WhatsApp:
(37) 99670-7290.
Vamos criar algo incrível juntos!