Executando verificação de segurança...
3
lopro
1 min de leitura ·

Bases para um bom programador?

Em todo canal de tecnologia que assisto sempre concluem a mesma coisa:

programadores iniciantes hoje em dia sofrem por não saber a "base".

Muitas das vezes nem se quer citam algo relacionado a essas bases para uma pesquisa.

Mesmo não sabendo o que é essa tal "base", e olhando um pouco pro meu dia a dia como usuário de ubuntu posso concluir que se eu soubesse para que significa uma pasta sys, bin, var, proc e etc... talvez eu seria um usuário ubuntu mais feliz quando fosse instalar ou configurar algo.

Quero realmente entender o que é essa tal base, ou pilares que possam sustentar uma carreira mais "grande".

Carregando publicação patrocinada...
4

Base/fundamento é basicamente entender como as coisas funcionam. E isso não vale só para programação, vale para qualquer área. Todo tópico estudado tem uma base por trás, então estudar as bases é um estudo regressivo.


Exemplo:

  1. Como aprender a programar?

Estude uma linguagem de programação como Python, C, JavaScript ou Haskell por exemplo.

  1. Tá, mas como entender como elaborar algoritmos nessa linguagem?

Estude o paradigma da linguagem, onde o paradigma imperativo é o que as pessoas erroneamente chamam de "lógica de programação" aqui no Brasil. Também estude estrutura de dados e algoritmos. E pratique muito!

  1. Tá, mas como entender como linguagens de programação funcionam?

Estude Programming Language Theory, o que inclui estudar compiladores.

  1. Tá, mas como entender como o código gerado pelo compilador funciona?

Estude sobre Assembly, máquinas virtuais, bytecode, algoritmos de otimização de código, paradigma funcional, linguagens intermediárias, máquinas abstratas etc.

  1. Tá, mas como entender como essas coisas rodam na prática?

Estude sobre como sistemas operacionais funcionam, o que inclui estudar como executáveis funcionam e como os processos são executados.

  1. Tá, mas como entender como sistemas operacionais funcionam no computador?

Estude arquitetura de processadores, o que inclui estudar código de máquina mais todo o processo de execução de código em um processador multicore. E também como o sistema operacional faz configurações e gerenciamentos (de memória, tarefas etc.) em uma arquitetura de processador (ISA).

  1. Tá, mas como entender como isso funciona no hardware?

Estude sobre portas lógicas, linguagens de descrição de hardware e eletrônica digital. Também pode estudar sobre FPGA de bônus para poder fazer uns projetos caseiros.

  1. Tá, mas e para entender como isso tudo funciona?

Estude elétrica.

  1. E para entender elétrica?

Estude física e matemática.

  1. E para entender matemática?

Estude filosofia, a base de tudo. 😄


Ok, agora você pode estar se perguntando por que entender como as coisas funcionam?

A maioria dos programadores não querem sequer entender como o framework que ele usa funciona, muito menos vai querer entender de Assembly e porta lógica.

Só que quanto mais você entende como as coisas funcionam, melhor fica sua capacidade cognitiva para fazer análise, engenharia e ter ideias sobre o assunto que você entende.

É essa capacidade analítica que faz um programador ser visto como "foda". Não é escrever umas instruções em Assembly, não é decorar o que leu em um livro de design patterns ou clean code, não é dar uma explicação tecnicamente imprecisa quando alguém pergunta como um processador funciona.

É parar, pensar e ter ótimas ideias sobre àquilo. Isso é um bom programador: o programador que tem capacidade de criar soluções e não meramente decorar as soluções que leu em um livro, documentação, ChatGPT, stack overflow etc.

E para ter essa capacidade você precisa ter muitas informações sobre como as coisas funcionam. Quanto mais informações você tem, melhor você se torna em criar soluções.

E estudar como as coisas funcionam também é estudar como alguém resolveu um determinado problema. Porque as coisas não foram feitas de determinada forma por mero acaso, decisões em projetos sérios não são tomadas jogando uma moeda para o alto ou por meio de votação (como se a maioria soubesse de alguma coisa 😛).

Então isso também te dá insights para ter ideias de como resolver problemas semelhantes. Então até mesmo estudar como coisas funcionam em áreas diferentes também serve para esse propósito, por exemplo: biologia, física, matemática, psicologia ou neurociência.

Pare para pensar em quantas soluções da computação surgiram do estudo de outras áreas. Pensa por exemplo em aviões, helicópteros, foguetes, I.A., algoritmos de ordenação, segurança da informação etc.

1
1

É porque não existe nome mesmo, eu descrevi o estudo não nomeei ele. Igual quando as pessoas falam "contagem regressiva", ninguém está dando nome para a contagem. Está apenas informando o fato de que a contagem será feita em ordem regressiva.

Do mesmo jeito eu informei o fato de que estudo de base é regressivo (é uma característica, não um nome). Todo tópico que você estuda tem uma base, incluindo os próprios tópicos de base. Então você estuda a base de X, depois estuda a base da base de X, depois estuda a base da base da base de X etc... Regressivamente.

0
1

Você não prestou atenção quando eu falei que era um estudo regressivo nem prestou atenção no exemplo que eu dei. Onde no exemplo qual era o primeiro ponto? Exatamente: aprender uma linguagem de programação. Ou seja, não seria daqui há 10 anos mas sim hoje.

Com todo o respeito mas tenta prestar atenção no que as pessoas escrevem antes de criticar o que elas disseram. Evite criar um espantalho.

0

Brother, você claramente não consegue entender o que relevante em uma resposta. O amigo kht deu a resposta mais relevante possível (lógica, algoritmos e estrutura de dados). Tu tá sugerindo pro cara estudar física e elétrica em uma pergunta sobre base de programação HAHAHAHAHA. E duvido que tu tenha estudado tudo isso que tu falou pro rapaz pra melhorar tua base em programação. É como diz o ditado "faça o que eu digo, não o que faço".

1

Eu NÃO (repito: NÃO!) sugeri estudar física e elétrica para obter base para programação, como eu já falei isso foi um espantalho que você criou na sua cabeça. Se você não tem capacidade de interpretar o texto da minha resposta, pelo menos se esforce agora que você sabe que interpretou errado.

É só ler palavra por palavra, com calma.

3

De forma bem resumida: lógica, algoritmos, estruturas de dados.

Na verdade, tem algo mais básico ainda: matemática, comunicação, interpretação de texto (sim, muita coisa é feita da maneira errada porque a pessoa não entendeu o que era pra fazer).

Ou seja, tudo aquilo que muita gente acha "teoria chata e inútil". O problema é que muitas dessas coisas só te ajudam indiretamente e vc só percebe muito tempo depois.

1

super concordo, hoje vejo que 80% das minhas soft skills eu desenvolvi na escola. E onde tavam as pessoas que não quiseram fazer apresentações, teatro, dança, escrita ? rodaram feio certeza

2

A base mesmo é a matemática, comunicação e expressão e ciências. A pessoa não se desenvolve bem em qualquer área que exija qualificação e não seja só repetição sem isso.

Depois vem a base da computação. Que é tudo. Quando falam que falta a base significa que a pessoa pula o aprender a computação e a engenharia de software. A pessoa decora receitas de bolo e aprende a usar certas tecnologias. Mas usa errado, mesmo 'que dê algum resultado e funcione, mas assim:

Fiat 147 todo detonado andando pelas ruas

Quando você começa aprender o que precisa, um tema leva a outro. Se a pessoa não está conseguindo estruturar isso, ela precisa de um curso muito bom. Ou ela faz bem sozinha ou procura ajuda pessoal. Muitas evzes é questão de atitude aprender a base.

Veja mais.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Para mim, a base da base é o inglês. Outras coisas que acho muito importante é "gostar de solucionar problemas" (pensamento lógico) e compreender os algoritmos "raiz" (sort, linked list, tree, etc).

1

A base da programação não é uma coisa só, mas diversas "diciplinas" importantes.

  • Algoritmos
  • Logica booleana
  • Estrutura de dados
  • Paradigmas de programação: imperativo, declarativo, funcional, orientado a objetos, maquina de estados (sendo o último muito util para firmwares de microcontroladores)

Nota: Eu ia adicionar Matemática na lista (já foi discutido sobre aqui), mas ao meu ver é algo fundamental, elementar que toda profissão exige, em maior ou menor grau.

Essas são hard-skills necessárias se você quiser sentir que sabe o que está fazendo.

No entanto existem algumas soft-skills importantes ao meu ver:

  • Inglês tecnico
  • Boa comunicação
  • Capacidade de destrinchar problemas grandes em menores
  • Organização (pessoal, temporal e de codigo)
1

A base de um programador é logica de programação. Criar variaveis, funções, condicionais(if, else), loops... É muito importante ter uma base, o que é mais importante ainda é buscar o proximo nível e apreder o que será realmente util. Falo isso por experiência propria, perdi muito tempo tentando entender conseitos. Sendo que já podia está avançando um nível e caso necessário estudar ou revisar coseitos do nível anterior.
É muito normal não saber por onde começar. Isso acontece com todo mundo num assunto novo, porque normalmente você nem sabe que não sabe.

Um rodmap muito massa que estou utilizando como um guia:
https://roadmap.sh/

Espero ter ajudado!

1
1

Acho que hoje em dia para ser um programador bom na carreira e com destaque, eu diria que são esses os pilares;

  • Boa comunicação
  • Orientação a objetos
  • Saber lidar com críticas e pressão gerencial

Acho que com isso você possui um bom destaque entre os demais.

1

no meu trabalho tenho que lidar com devs juniors. delegar tarefas, orientar, ensinar, etc. tem alguns juniors que estão na faculdade e tem alguns que são auto didatas, e percebo uma diferença na base de conhecimento teórico entre quem passou ou está na faculdade e quem aprendeu por conta própria.

geralmente quem aprendeu por conta própria vai direto colocando a mão na massa e deixa de estudar as teorias, lógica de programação, os paradigmas, estrutura de dados, etc. isso faz com que quando eu vou revisar o trabalho deles, eu percebo que poderia ter sido feito de maneira mais simples.

outra coisa que me chama bastante atenção em quem tá começando é que é difícil pegaram o hábito de ler a documentação

1
1

Uma coisa que vi que tenho deficiência agora que consegui o trabalho como junior: SQL.

Você que está lendo esse comentário, aprenda SQL, estude sobre sql, cheire sql, vista sql. Essa porra não é usada somente em ciências de dados não. A maioria das empresas usam sql, não é NoSQL, não é firebase, não é supabase, não é mongodb e definitivamente não é GraphQL.

Instalem o MySQL, Postgres ou MSSQL e aprendam essa porra. kkkkkk

1
0
1

Gostaria de contribuir com algo que tem me ajudado. Numas buscas na internet me deparei com uma série do Fábio Akita sobre "Programação para Iniciantes" e num vídeo que ele pontua os conhecimentos básicos para iniciantes em programação. A série trata de quem quer começar aos 40 anos. No entanto, penso que serve para todo início, pq trata do que é básico.
Segue o link do vídeo: https://youtu.be/sx4hAHhO9CY