Assim como eu, acredito que muitos programadores e desenvolvedores já receberam esse tipo de mensagem diversas vezes ou até mesmo como iniciantes e aspirantes já enviaram essa mensagem muitas vezes. A falta de orientação é realmente frustrante para quem quer se iniciar. Há muito conteúdo disponível online, mas a má compreensão dos algoritmos de pesquisa e da complexa maquinaria que é a Internet frustra as hipóteses de obter facilmente os melhores resultados.
Há um ano, quando leccionei o curso de programação web no CFITEL, recebi muitos entusiastas em bruto da matéria. Embora tenha ultrapassado esta dificuldade com uma ou duas aulas introdutórias para construir pequenas bases, vi-me obrigado a orientá-los mesmo depois do curso e a obrigá-los a voltar aos princípios básicos da lógica e a aprender linguagens mais simples, como Python, por exemplo.
Neste artigo descrevo do meu ponto de vista, o que considero ser uma receita saudável e funcional para quem quer escrever o seu primeiro código e evoluir como programador/desenvolvedor.
1. BASES SÓLIDAS EM LÓGICA MATEMÁTICA E DE PROGRAMAÇÃO
É sabido que a informática está intrinsecamente ligada à matemática desde os seus primórdios, pelo que é muito importante dominar as preposições e conjunções matemáticas, construir um pensamento lógico e crítico e treinar a mente para que os resultados possíveis sejam apenas verdadeiros ou falsos, omitindo assim o talvez.
A lógica de programação oferece aos entusiastas conceitos práticos em português, sobretudo, que serão úteis na aprendizagem de uma linguagem de programação de baixo ou alto nível.
Na programação, a lógica é central, pois muitas operações só funcionam devido a operadores como os condicionais, quando a execução de um determinado trecho de código (conjunto de instruções) depende de um conjunto de condições que se verificam ou não, as estruturas condicionais devolvem um resultado booleano (verdadeiro ou falso), no final é só isso, ou é verdadeiro ou é falso, tão simples como beber água. As estruturas condicionais utilizam operadores de comparação conhecidos na matemática como:
-Maior que: a > b
-Menor que: a < b
-Maior que ou igual: a >= b
-Menor ou igual: a <= b
-Igual: existem duas ou mais formas, = ou == consoante a linguagem ou a tecnologia...
Não só os operadores de comparação são importantes, como as conjunções, que também geram a famosa tabela de verdade, são frequentemente utilizadas em condições para juntar duas ou mais condições: Ou, E, Negação, etc.
Algoritmo "Exemplo Lógica de Programação (VisualG)"
// Descrição : Exemplo sobre Lógica de Programação com VisualG
// Autor(a) : Manuel António Luvuvamo
// Data atual : 23/09/2024
Var
// Seção de Declarações das variáveis
a, b, c, d:inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
a <- 5
b <- 10
c <- 2
d <- 0
se a > b ENTAO
escreval("Opção 1")
senao
se c > d ENTAO
escreval("Opção 2")
senao
escreval("Opção 3")
fimse
fimse
Fimalgoritmo
Recomendação: Curso de Algoritmos de Gustavo Guanabara
2. LINGUAGENS DE PROGRAMAÇÃO DE BAIXO NÍVEL
Depois de ter uma boa base em lógica de programação, é altura de aprender uma linguagem de baixo nível (mais próxima da linguagem de máquina), que abre portas e, em muitos casos, diferencia os programadores dos desenvolvedores (talvez uma conversa para outro artigo).
Depois do Assembly, COBOL, BASIC, Pascal e outras, surgiu a linguagem C, que ainda hoje é muito utilizada. Essa poderosíssima linguagem oferece inúmeros mecanismos para consumir e manipular recursos de hardware, manipular memória e assim por diante. Eu particularmente comecei com uma linguagem similar e igualmente poderosa, o C++, mas ainda assim recomendo fortemente que se aprenda pelo menos até a manipulação de arquivos ou mesmo recursividade (C++ por permitir estruturas de classes e métodos) com essas linguagens.
Recomendações: Cursos do YouTube, Udemy e livros, especialmente os antigos (algumas coisas são como o vinho, quanto mais velho melhor).
3. DIFERENTES ÁREAS E MERCADOS DE ACTUAÇÃO
Agora que já sabes o básico, é fundamental pesquisar e definir que tipo de profissional queres ser no mundo da programação. Ser um nómada tecnológico não é tarefa fácil e pode levar a arrependimentos, por isso, fazer alguma pesquisa sobre benefícios, oportunidades e talvez salários médios é um cupão para evitar arrependimentos, pois cada ramo tem as suas ramificações e nunca acaba.
Defina quem você quer ser: um programador ou um desenvolvedor.
- Programador: algumas literaturas os definem como profissionais que sabem escrever código, enquanto outras os definem como profissionais que se concentram em codificar projetos com especificações detalhadas previamente fornecidas por um analista ou engenheiro de software, podendo inclusive codificar soluções com linguagens de baixo ou alto nível, desktop ou mobile.
- Desenvolvedor: também conhecido como desenvolvedor de software, é responsável por todo o ciclo de vida do software, desde a sua conceção até à sua implementação. São os profissionais que concebem e criam soluções. São especializados na criação de soluções completas de software.
Noutras literaturas podemos ainda encontrar que um programador codifica soluções de baixo nível que são utilizadas por outros técnicos (programadores, analistas, etc.) tais como SO, IDE, Editores de Código, etc. Quem sabe qual é a abordagem correta? Eu acredito que sou um desenvolvedor de software...
Recomendação: Leia artigos, livros, veja vídeos e participe em debates para esclarecer as suas dúvidas, sem esquecer que, no final, o objetivo é escolher o mercado em que vai actuar.
4. ROADMAPS:
Finalmente, depois de dominar a lógica de programação, aprender uma linguagem de baixo nível e ter uma ideia do tipo de profissional que se quer ser, está na altura de seguir algumas trilhas de estudo. Felizmente, o site Roadmap.sh já nos oferece algumas trilhas criadas, a criação de trilhas por IA ou, quem sabe, talvez um dia eu crie uma trilha personalizada.
Conceitos frequentemente utilizados para diferenciar ambientes e tipos de soluções: desktop para executáveis em computadores, mobile para executáveis em smartphones e finalmente web acessível na internet por navegadores.
Atenção: O Rodmap não oferece cursos, ele oferece trilhas de estudo com recomendações sobre o que estudar e, em alguns casos, onde estudar.
5. BÓNUS - LINGUAGEM DE ALTO NÍVEL VS LINGUAGEM DE BAIXO NÍVEL
As linguagens de baixo nível são aquelas cujas instruções estão mais próximas da linguagem de máquina, linguagem binária (zeros e uns). Exemplos: Assembly, C (embora seja considerada uma linguagem de nível intermédio), etc.
As linguagens de alto nível são aquelas cujas instruções se assemelham mais à linguagem humana, com uma lógica e uma coerência linguística que permitem aprender facilmente novas linguagens (instruções mais intuitivas). Eu já programei python sem saber python e isso até me valeu uma vitória numa Maratona de Programação com apenas um exercício, hilariante. Exemplos: C#, Java, Python, PHP, etc...
“A programação é uma competência que melhora com a prática constante. Comece com pequenos passos, compreenda a lógica e, com o tempo, verá que os desafios se tornam oportunidades de aprendizagem. Boa sorte na sua jornada!
REFERÊNCIAS
1.Pratica Internet. (n.d.). Qual é a diferença entre programador e desenvolvedor? Recuperado em 23 de setembro de 2024, de https://www.sitesrecife.com/blog/qual-e-a-diferenca-entre-programador-e-desenvolvedor
2.Lopes, J. (n.d.). Programador, desenvolvedor ou engenheiro de software: qual a diferença? Recuperado em 23 de setembro de 2024, de https://www.dio.me/articles/programador-desenvolvedor-ou-engenheiro-de-software-qual-a-diferenca