Começando a programar em nova linguagem

Um dos métodos que utilizo ao aprender uma nova linguagem é a criação de um CRUD colocando em prática algo útil para minha vida

Caíque Fortunato
Caíque Fortunato
6 min readOct 23, 2019

--

Como aprender uma nova linguagem de programação sozinho(a) sem ter alguém pra te ensinar? Cada pessoa pode ter um método diferente, hoje irei falar do qual utilizo na maioria das ocasiões: através de um CRUD.

CRUD é acrônimo do inglês Create, Read, Update and Delete que são as quatro operações básicas (criação, consulta, atualização e destruição de dados) utilizadas em bases de dados relacionais fornecidas aos utilizadores do sistema. Quando você acessa o Facebook, por exemplo, os posts são exibidos (SELECT), você pode criar uma postagem (INSERT), editar a ação feita anteriormente (UPDATE) ou apagar uma informação (DELETE). De maneira extremamente simplificada te forneci um simples exemplo de CRUD.

É importante saber que nem todo sistema precisa ter esse tipo de arquitetura ou ação, vai depender muito de qual seu objetivo. Uma API, por exemplo pode não se encaixar neste cenário. Entretanto, estarei falando especificamente de uma aplicação simples que algumas pessoas denominam de “sistema de padaria”, mas considero que é importante começar pelo básico.

Comece por uma ideia simples que vai ser útil em sua vida: Torne-se um usuário

Como fã de livros tenho cerca de 450 exemplares em minha estante (isso antes de comprar meu Kindle — Vale a pena comprar um Kindle?). Se você me perguntar se eu tenho determinado título eu posso não saber te responder de antemão. Quando o assunto é a localização do livro na estante a mente ajuda menos ainda, é preciso olhar livro por livro, no pior caso a complexidade é percorrer os n livros — O(n). Identificou um problema? Melhor deixar que o sistema procure pra mim o item em um array e ele que se vire e me dê a resposta em segundos.

Estou falando de uma solução extremamente simples e que coloquei em prática para aprender uma nova linguagem. Escutei muitos comentários como:

— Existem vários sistemas que já fazem isso!

— Que perda de tempo! Use o Skoob!

Ok, talvez você pode estar pensando justamente isso. Mas, primeiro: nenhum sistema fará as coisas do jeito que eu quero (justificativa pessoal) e segundo: prefiro começar por algo simples antes de ir para algo mais complicado. Acredite em mim: não é perda de tempo.

Meu sistema nunca ficará tão bom quando um Skoob (que é uma estante virtual e rede social dos leitores) que está no ar e tendo manutenção há anos. No entanto, aprenderei muito com o desenvolvimento e poderei gerenciar minha “biblioteca particular”.

Escolha suas tecnologias

Retomemos então o exemplo prático da construção de uma aplicação para controle dos livros. No primeiro momento meu objetivo seria: cadastrar (INSERT), listar (SELECT), editar (UPDATE) e remover (DELETE) um livro. Ou seja, observe que a base da aplicação será um simples CRUD.

De antemão o que importa é um sistema funcional com o mínimo de sofisticação. Se eu fosse construir uma casa não iria começar com uma mansão, iria levantar paredes dos principais cômodos. Pintura, piso ficaria para depois.

Para começar eu indico os seguintes conhecimentos:

  1. HTML, CSS para construir o front-end para deixar o sistema apresentável, mas lembre-se que a beleza nesse momento não é o fundamental. Um pouco de JavaScript também pode ser necessário.
  2. Uma linguagem para o back-end. Existem várias, fica a seu critério: qual linguagem você quer aprender (C#, JAVA, Node.js, PHP, etc…)? Particularmente eu curto muito o C# e o Visual Studio é foda!
  3. Um banco de dados. Neste caso o mais indicado seria um modelo relacional como o SQL Server, por exemplo.

Como opcional indico também:

  1. Usar algum repositório para gerenciamento de código, o GitHub talvez seja o mais famoso. Assim você compreenderá um pouco sobre Git e versionamento.
  2. Usar algum aplicativo para gerenciamento de tarefas. Aqui você pode começar a aprender a metodologia Ágil usando o Kanban no Trello.

Observe que só com esse projeto simples você aprenderia um pouco de CSS3, HTML5, JavaScript, SQL Server, Git (!= GitHub), Agile e a linguagem do back. Sabe aquelas vagas de emprego que pedem várias tecnologias? Às vezes está tudo interligado.

Se você souber bem pouco ou até mesmo nada da maioria das tecnologias que estou falando indico o site W3 Schools.

Levante requisitos e desenhe sua aplicação

Prototipação, a melhor forma de testar e validar um projeto

Suponhamos que você já tenha escolhido qual será o sistema que irá desenvolver e as linguagens relacionadas. Agora é hora de desenhar o sistema, prototipando as telas e modelando o banco, caso necessário. É essencial saber de maneira bem clara o que será desenvolvido para ter maior foco, determinação e compreender o que você estará fazendo, afinal, o projeto será gerenciado por você mesmo.

Particularmente considero essa parte bem legal, mas é necessário começar pelo simples, sem recursos complexos ou eventos mirabolantes. Desafios são ótimos mas têm o momento correto. Comece por recursos essenciais, cortando o que no momento pode não ser tão importante.

Gosto muito de dividir o projeto por versões, entregando as funcionalidades por etapas. Por exemplo, a primeira versão para o sistema de livros seria o cadastro, exclusão e visualização dos títulos. Para a segunda versão poderia considerar a edição. Sempre que termino um passo, testo e enxergo como uma versão que poderia ser entregue ao cliente. Sim, algo parecido (de longe) com um scrum.

Observe que tudo poderia ser muito mais simples, mas o legal de seguir essas etapas é que você treina desde o início a fazer algo maior, ter organização e ter controle das atividades, código e sistema.

Comece a programar

Agora é hora de colocar a mão na massa e começar a programar. O foco será principalmente na linguagem de back-end escolhida por você uma vez que ela será o “coração” do sistema. Será necessário dedicar um tempo para configurar o ambiente em sua máquina, ou seja, instalar IDE, banco, linguagem, servidor caso necessário.

Para todas as atividades registre no seu aplicativo de gerenciamento de tarefas. Por exemplo:

Interface do trello utilizando o Kanban

Ao começar a programar, sempre que chegar em um checkpoint (bem gammer) faça um commit para registrar a versão e salvar o código na nuvem. Sempre que precisar reverter ou continuar o trabalho em outra máquina basta contar com a ferramenta.

Piadinha sem graça sobre Git.

Onde buscar informações?

Eu gosto de começar com o CRUD porque existe uma infinidade de materiais aqui no Medium e na internet em geral para praticamente qualquer tipo de linguagem e tecnologias em geral. Por exemplo:

Strings de busca: Como fazer um CRUD usando <Back-end> e <banco de dados>

  • Como fazer um CRUD usando Node.js e MongoDB?
  • Como fazer um CRUD usando JAVA e SQL?

Ao seguir o tutorial tudo que você precisará fazer será ajustar o exemplo para o seu contexto, alterando a modelagem do banco, a interface, variáveis, entre outros.

Espero que tenha ajudado a você a ter ao menos uma ideia do ponto de partida para começar a aprender algo novo, ou pelo menos criar uma força de vontade que muitas vezes nos falta.

--

--

Caíque Fortunato
Caíque Fortunato

Dev apaixonado por tecnologia. Troco filmes por livros (não se for do MCU/Pixar), gosto de escutar músicas/podcasts, escrever, fazer uns rabiscos e jogar.