segunda-feira, 6 de fevereiro de 2023

Começando a programar em nova linguagem

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
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:
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.
Uma linguagem para o back-end. Existem várias, fica a seu critério: qual linguagem
você quer aprender (C#, JAVA, Node.js, Python, PHP, etc…)? Particularmente eu curto
muito o Java e o NetBeans é foda!
Um banco de dados. Neste caso o mais indicado seria um modelo relacional como o SQL
Server, por exemplo.
Como opcional indico também:
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.
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 vai por mim.
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:
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.

Nenhum comentário:

Postar um comentário