Executando verificação de segurança...
7

Pensando como um programador

Nesse conteúdo eu gostaria de pedir a ajuda dos mais experientes e claro aos menos experientes que se interessem em me ajudar(O que vai estar ajudando alguém que também possa estar passando pelo mesmo problema que eu), eu venho estudando programação há um tempo, tive contato com linguagens como java, python e até C(O básico do básico), também sei bastante sobre estrutura de dados, algoritmos e etc. Mas aí que vem o problema, eu me considero já experiente quando falamos da teoria, sei bastante, e até consigo explicar as coisas sobre tais assuntos para outras pessoas, porém na hora de desenvolver a resolução de um problema eu simplismente travo e tudo aquilo que eu já sei(teoricamente falando) acaba não valendo de muita coisa pois não consigo aplicar em código. Sempre que tento resolver algum problema, mesmo sendo básico, eu acabo precisando fazer consultas para chegar a uma resolução, então minha pergunta é: COMO PENSAR COMO UM PROGRAMADOR?

Carregando publicação patrocinada...
6

A pratica faz a perfeição.

Modele, modele, modele.

Vc esta na fila da farmacia. Como vc estruturaria um programa para cobrança no caixa?

Vc esta na fila do hospital. Como vc desenharia um programa de gestão da fila de pacientes?

Vc ta jogando fifa? Como vc modelaria um banco de dados para salvar os dados dos times e jogadores?

Pega papel, caneta, bloco de notas e vai brincar. Até trnte codar alguma coisa. Vai ficar uma bosta, mas nao tem problema. A cada tentativa, a bosta vai ficar menor.

O quanto de filas, pilhas e listas vc consegue usar nessas brincadeiras?

Esse tipo de brincadeira me ajudou bastante. Quando vc estiver pedindo um carro no Uber e pensando em quais metodos e atributos tem a classe CarroDoUber, vc estará pensando como um programador.

3

Tem livro: https://www.amazon.com.br/Think-Like-Programmer-Introduction-Creative/dp/1593274246 (que aliás preciso ler pelo menos para ver se é bom).

Pensando como um cientista e/ou um engenheiro é o caminho básico, porque todo profissional qualificado em resolver problemas, que usa técnicas que envolvem ciências, precisam entender isso muito bem.

Ninguém vai pensar como programador se não pensa direito as cosias mais básicas que foram ensinadas na escola, ou deveriam ter sido ensinadas (isso é um enorme problema porque a escola já não está fazendo tudo o que deveria). E quando pula certas partes não é fácil consertar, a pessoa acostuma. Cuidado com atalhos, eles são perigosos e cobram um preço alto. Infelizmente até a escola está dando atalhos para as pessoas.

Se tivesse que resumir eu falaria no método científico.

Eu consulto muita coisa para resolver problemas, eu não decoro muita coisa. Mas eu sei o que consultar, como pesquisar, sei selecionar oque é bom ou não, sei o qaunto tenho que me aprofundar ou parar. Não acerto em tudo, mas acerto muito. Não é quem conulta menos que sabe mais e produz melhor resultado, pelo contrário , geralmente será alguém que acha que já sabe tudo que não consulta.

Gostar do que está fazendo, sendo curioso, persistente, e praticando muito vai melhorando a forma de fazer. Só não pode ter pressa, não pode querer fazer tudo de uma vez. Dê um passo atrás do outro, sem parar.

Se liga em algo que falo sempre e não cometa o erro (não deixa de ser método científico):

  • A pessoa aprende errado
  • Ela treina o erro
  • Sempre executa o erro com a validação de quem faz o mesmo
  • E ensina o erro, briga por ele e encontra validação nisso.

Se tudo está falhaando pode ser que o método de ensino esteja ruim. Pode ser que precise de ajuda profissional para corrigir isso.

Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)


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).

2

Em resumo, um programador pensa em um algoritmo que de forma lógica resolve um problema, quanto mais complicado e específico, ele recorre pra frameworks ou linguagens que facilitam isso. Não sou o mais experiente mas tenho certeza que ninguém daqui sabe exatamente como é o código nem o método mais eficiente e fácil de solucionar um problema, mas a senioridade trás uma bagagem de estruturas de dados, arquiteturas, design patterns, e experiências passadas que facilitarão ele a planejar e criar uma solução.

O ponto em que quero chegar é que você vai precisar pesquisar, testar e por a mão no código para sentir na pele os erros e como consertá-los, busque por pequenos desafios, no beecrowd existem diversos e de diversas linguagens. Recomendaria fortemente estudar C, mexer com ponteiros, arquivos, alocação de memória, tenta criar uma API em C, tenta criar um "sistema de banco".

Talvez seja um tapa na cara, mas a menos que você tenha devorado livros de computação e estrutura de dados, você não é experiente em teoria, estude lógica e pratique sempre que possível.

Boa sorte :)

2

Eu estava passando pela mesma situação (sou iniciante), em questão de estudar teorias e mais teoria.

você sente a sensação que esta aprendendo tudo e ta entendo tudo, porém quando chega na hora de colocar em pratica nada faz sentido, você nao consegue colocar no código tudo aquilo que estudou.

eu percebi que as vezes pode ser medo de colocar a mao no código e sentir a sensação de errar, entao a melhor solução pra isso e colocar a mão na massa, tem muitos videos no YouTube que fala a mesma coisa que a pratica leva a perfeição( ja assisti um monte e nunca levei a sério)...

mas hoje to fazendo isso e percebi uma evolução imensa, porque nenhuma teoria que vc estudou vai se perder.

entao meu conselho é, nao tenha medo de erra, pratique! pratique! escreva muitos codigos, se o codigo ta um lixo apaga tudo e faz melhor, nao tenha medo de jogar codigo fora.