como comecar a programar?

como comecar a programar?

Alpha19i

Fazer escolhas

É incrível que esse seja o primeiro tópico desse artigo, mas tem se mostrado necessário, porque muitos dos indivíduos que me abordam atualmente querendo "aprender a programar" e não tem nenhum objetivo, além de ser programador (que é um conceito abstrato) ou ganhar dinheiro que ao meu ver não são objetivos. Objetivo na programação seria algo que você queira fazer com código, se você não pensou nisso ainda provavelmente você não quer programar, para você o ideal seria tentar entender do que se trata esse meio que está querendo se inserir, através de:

• Perguntar a programadores, veja as áreas deles e analise se são do seu interesse.

• Ler sobre tecnologia, você quer viver disso então tenha interesse em a entender, boa parte do seu dia-a-dia vai ser envolto por isso.

• Pesquise sobre algum aplicativo que você acha interessante e observe as tecnologias empregadas nele.

• E principalmente, teste as coisas que for descobrindo, um programador que não tem curiosidade nunca irá tão longo quanto os outros.

Nem eu, nem ninguém pode decidir o que você vai querer para sua vida, essa deve ser uma escolha totalmente SUA.

"Não terceirize suas decisões"

Fabio Akita

Primeira linguagem

Existe um encanto nesse assunto, a famigerada primeira escolha, muitos vão lhe glorificar e diversos outros a demonizar. E bom, eu te direi que não é bem assim que banda toca, se você for um bom programador um dia essa será sua primeira, mas duvido muito que seja a única.

Porém não se engane pois realmente tem algo de especial nela: é onde você irá aprender a sua base; provavelmente você vai se apegar a ela e criará vícios durante seu uso; tem uma grande chance de ser a responsável pelo seu primeiro emprego.

Pois bem, agora vem o contraponto, sua primeira linguagem é especial pra você, mas isso não faz dela a melhor que existe e nem faz dela adequada pra desenvolver qualquer coisa, faça um favor a si mesmo, não seja dos malucos que tentam apregar parafuso com martelo. Linguagens tem propósito, atente-se ao que foi dito no tópico anterior, entenda pra que serve a que você escolheu.


"Linguagens de programação são ferramentas, trate-as como tal"


Autor Desconhecido


Conhecimento mínimo necessário para dizer que sabe uma linguagem

Ah se eu ganhasse um moeda para cada vez que ouvi um juvenil me dizer que entendia uma linguagem e que falhou totalmente em fazer algo básico, certamente não estaria em uma situação financeira tão precária. Piadas a parte, vou tentar nesse tópico pontuar os aspectos básico de o que se tem que saber para entender o código que você escreve:


• Entrada e saída/input and output

Vejo pouca gente tocando nesse assunto, imagino que seja por acreditarem que é algo óbvio, mas que não é tão evidente para quem tá se aventurando em fazer código pelo que eu vejo. Tudo em um computador funcionando baseado em entrada e saída de dados (o famoso I/O, iniciais desses termos em inglês, Input e Output), imagino que você que está lendo já deve ter feito o seu primeiro "Hello, world!"; que é primeiro exemplo de saída de dados que muitos que começam tem, se foi um pouquinho mais audacioso fez um código que pega seu nome e imprime na tela; fazendo seu primeiro programinha I/O, e isso é o mesmo que acontece quando se faz login; ou se clica em um link; ou digita um texto; em todos esses casos independente dos passos temos uma informação que entra e outra que sai. Esse é primeiro ponto sobre esse assunto justamente pra trazer a vocês que não importa o quão complexo seja um sistema, a base dele é receber informações e devolver informações.


•Tipagem

Seguindo o que foi explicado no ponto acima todo computado é uma máquina abstrata de escrita e leitura, mas o computador tem uma linguagem propria (o código binário), e ele só entende isso e mais nada, aí vem uma pergunta a mente: Como então temos tantas informações diferentes em um computador?

Bom, seguimos padrões predefinidos, basicamente definimos que tal valor em binário representa tal coisa, e gravamos na memória do computador e guardamos a posição onde colocamos e o tipo de coisa que ela é. Isso que eu acabei de explicar de uma forma extremamente grosseira se chama de tipagem, mais específicamente eu quero fazer referência aos tipos primitivo, acredito que ainda não disse isso nesse texto mas tudo aqui é uma base pra você se aprofundar mais pesquisando ( principalmente esse tópico, tipagem não é um assunto que meu forte ).

Assim sim como tudo que já foi escrito até agora o motivo desse assunto também é a clara dificuldade que pessoas novatas tem em entender que tipos distintos só podem ser usados para certas coisas, então não tente multiplicar strings e nem somar inteiros com booleanos ou vai receber uma enorme pilha de erro na sua cara, evite esse estresse. Os tipos existem pra facilitar sua vida, então faça um favor a si mesmo, aprenda quais são eles e como sao tratados na sua questionável linguagem, ou não se você for um sadomasoquista.


•Operadores lógicos e aritméticos

"Meus Deus, vai ser complicado tem matemática envolvida", é o que já pensou o fofo que tá querendo se aventurar no código e diz que não precisa saber nem o básico de matemática. Mas operações lógicas e operações aritméticas são algo que é comum na vida de qualquer pessoa, ou você nunca ouviu um:

• Quando falamos de lógica:

Se não chover hoje vamos ao parque;

Caso você passe direto você ganha uma viagem;

Temos que limpar a casa e lavar a roupa para então ver o filme a noite;

• Quando falamos de aritmética:

Tá aqui os seu troco de 5, sua dívida era somente 45;

Temos que dividir os 12 salgados, 3 pra cada;

Seu salário é 500 mais 10 para cada de peças que você vender;

A maioria das linguagens tem os seus operadores, e é como você pode adicionar condições ao seu código e calculos, então para o seu bem aprenda 🙃.


•Contexto

Um, então vocês querem contexto?😏

Tem dias em que aparecem uns sujeitos que vem pra testar minha paciência, o tipo de pessoa que você pergunta o que o código dele faz e o infeliz diz "não sei", porque ele pegou pronto de algum lugar e bagunçou e nem sabe o que. Eu sei, é muito legal ver a parada rodando, mas se você não entende o que tá acontecendo não adianta nada para o seu aprendizado, fazer isso só vai te tornar supersticioso do tipo que vem com o papo de : "não pode mexer em um código depois que ele rodou", mesmo cheio de bugs.

Entenda o que comporta o seu programa, assim você não vai sair retirando o que não deve, nem colocando o que não precisa. É o seu trabalho entender o contexto do que VOCÊ tá fazendo, ou eu tô errado?


• Blocos de codigo

Se tem duas certezas que eu tenho quando se trata de programar é que você vai repetir código e se tiver mais de dois neurônios vai querer organizar suas funcionalidades. Assim chegando no assunto que quero tratar aqui, tem vários nomes e farias formas:

  • procedimento
  • rotina
  • sub-rotina
  • função
  • método

Eu vou chamar de blocos de codigo, para que assim fique mais claro para vocês o que eles são. Alguns deles são sinônimos, outros são de contextos específicos, não vou me aprofundar nisso e se quiser entender a diferença (e é bom que queira) dê uma pesquisada sobre eles.

O conceito base é você tem o bloco de código, você lhe dá um nome e pode chamá-lo onde precisar, seja por organização ou seja para evitar repetições. Qualquer linguagem, a não ser as muito incomuns, você vai ter uma estrutura dessas e você vai precisa usar. É muito comum iniciantes presos nisso, apesar de ser básico, por não entenderem o conceito, espero que tenha ficado claro aqui, mas aínda fica a você a obrigação de estudar mais sobre.


• Repetição

Vai chegar em um ponto onde você vai precisar um código seja executado múltiplas vez, que comumente chamamos de loops (que com toda a certeza, vai ter algumas vezes que você vai usar errado, criando um programa que não para kkkk), o princípio é um bloco de código que você executa uma quantidade de vezes predeterminada ou repente até que alguma condição seja verdade. Como tudo mostrado até agora, não vou trazer nenhum exemplo praticos, mas você devia ir atrás de alguns.

Não existe apenas uma forma de fazer um loop, cada linguagem ou paradigma de programação tem o seu, mas todos tem o mesmo objetivo repetir um trecho de código até conseguir a informação necessária, e advinha só, todo tem suas particularidades e para as entender você vai pesquisar também kk.


• Isso é só o básico

Não fui claro é nem muito detalhista em nada aqui (ainda sim ficou enorme), e mesmo assim ainda a ficou uma infinidade de coisas de fora, que cada um daria outro tópico por si só, como por exemplo paradigmas de linguagem (que se minha coragem me permitir um dia vou fazer outro artigo só sobre).

Com o que eu foi colocado aqui você vai conseguir se virar (eu acho), mas tá longe de adequado. Já sabemos o que vem agora, você vai ter que continuar indo atrás, pesquisar, estudar, ler e fazer cursos sobre programação, é o mínimo que se espera se você realmente tem interesse em ser um programador.


"sabe qual a diferença da mosca pra abelha
é que a mosca só vive na merda
e a abelha fabrica o mel
e você? só quer mamão? só quer mel?
acha que é fácil fabricar papel?
só quer presente, só quer noel?
acha que é fácil fabricar o mel?
cê acredita em papai noel?
vai na luta se quiser troféu
não fica olhando para cima
por quê além de bonito
só cai água do céu"

Stepherson Mendonça


Bate papo maroto

Sei que coloquei bastante coisa técnica aqui e quis dá uma (lá ele) de cagador de regra, mas isso aqui é basicamente o que eu gostaria de ter ouvido quando comecei, acabei dando muitas voltas nessas coisas básicas que eu coloquei aqui, levei mais deu um ano e meio pra conseguir assimilar isso errando muito sozinho, então não leva a tiração pro lado pessoal.

Alguns de vocês chegam muito emocionados falando em programação, mas no fim das contas é mais uma profissão como qualquer outra, e se destaca quem é bom, e ser bom requer dedicação. Não é fácil como dizem, não tem emprego garantido coisa nenhuma, mas sim existem vagas, em que você tem entregar algo pra empresa, quem te contratou não tá fazendo caridade.

E por último um conselho, eu sei que você aprendeu umas duas coisinhas no âmbito do desenvolvimento, mas isso não te faz especialista, então cuidado em ficar querendo ser o dono da razão por aí, não é todo mundo que vai ter paciência com você e a internet é uma terra de leis controversas. Se poupe de levar uma comida de rabo dos mais experientes, afinal você é um estudante ainda.


"É você o estudante? Sabe voar, estudante?"

Capitão Nascimento


Recomendações

Não fiz indica de nenhuma linguagem ou objetivo que você possa ter de escolha, apesar disso aqui vou deixar alguns links para cursos e plataforma treino de codigo, vou tentar colocar apenas conteúdo gratuito, e boa parte provavelmente não vou ter feito, só que vale a máxima do "Se você não sabe onde quer ir, qualquer caminho serve", então só aceita:

Cursos

freeCodeCamp

Spring Academy 🌱

Erick Wendell

Cod3r

Cisco Network Academy


Plataformas de Prática

Codewars

Hackerrank

Exercism



"O que eu fiz aqui? Dei as chaves do castelo, fiz a cama, facilitei. Agora, pega o texto, deita e entende.
Por que? Não tem porquê não entender.
Entrou aqui, tem coisa, tem o professor, tem comida, tem tudo. O resto é só preguiça e covardia."

Clóvis de Barros Filho


Conclusão

Pois é, mucho texto, foi o meu primeiro e pela falta de coragem tem uma grande chance de ser o último. Não pretendo englobar tudo aqui, apesar que esse artigo nunca vai está pronto de verdade, sempre que achar necessário vou colocar ou tirar coisas daqui, e o feedback de quem ler vai me ser útil (se é que alguém vai ler). Abaixo um Servidor do Discord que pode entrar em contato:


Se você leu até aqui saiba que já tens o meu respeito, e obrigado por contribuir para que esse desempregado não desista das pessoas. Conhecimento é poder e é a única coisa que não podem tirar de você.


"Apenas.... Busquem conhecimento!"

E.T. Bilú


Report Page