Técnicas para aumentar a lógica na programação [fechado]

21

Estou em programação desde os últimos 3 anos. Mas parece que estou perdido nisso. Eu não sou capaz de ser bom nisso, mesmo que eu codifique todos os dias.

suponha que eu resolva um problema, andarei de solução em solução e implementarei outra solução. Não consigo me concentrar muito. Tenho muitos defeitos no código que escrevo. Eu tenho medo de código, não sei por que, se não terminar a tempo, meu chefe me demitirá etc. Gosto de codificar, mas não o tempo todo. Como aumentar a paciência?

Eu sempre me pergunto como me tornar o melhor codificador, como muitos programadores excepcionais. Eu sei que isso parece subjetivo, mas acho que isso ajudará a comunidade de programadores a se aperfeiçoar, especialmente para a média como eu ou programadores iniciantes.

Umesh Kacha
fonte
8
É comum se sentir assim. Nem todos nós escrevemos compiladores ou seremos programadores hardcore. Não tenho treinamento formal em programação, mas a solução de problemas é fundamental. Com a tecnologia mudando muito rapidamente, é muito difícil permanecer acima da água. Eu me esforço para a melhoria contínua. Esse é o meu objetivo. Entenda que essa profissão é muito diferente, se esforce para fazer o melhor e siga em frente. Sempre levo algum tempo toda semana para aprender ou entender algo novo. Enquanto você mantiver essa atitude, ficará melhor.
22611 Jon Raynor
“Eu tenho medo do código ... se eu não terminar a tempo, meu chefe me demitirá etc.” - Esse não é um ótimo ambiente para desfrutar e, portanto, melhorar a programação.
Paul D. Waite
@ PaulD.Waite É verdade que não é ótimo, mas é muito, muito comum.
Pramesh Bajracharya

Respostas:

12

Eu, pessoalmente, sugeriria começar com obstáculos menores; tente assumir a codificação em pedaços menores e obtenha mais nas vitórias intermediárias. Parece que você fica sobrecarregado ou entediado se algo dura muito tempo ou não mostra progresso. Posso dizer definitivamente que estive no mesmo barco.

Pense nisso como atacar um sanduíche: você não come a coisa toda de uma só vez, quebra-a. Faça o mesmo com seus projetos, tarefas, etc. Dependendo do nível em que você está, peça ao seu supervisor / gerente que o descreva para você. Se você é responsável por sua própria carga de trabalho, defina pequenas linhas de chegada que são realizáveis ​​(não defina uma meta que você nunca alcançará, isso só o deixa mais desanimado e o coloca em uma posição indesejável). ou seja, "Ao meio-dia, quero ter essa classe definida", "Às 2 horas, quero que essa interface seja implementada", etc.

Minha empresa é notória por começar e se preparar para um projeto, permitindo que eu atinja a marca de 90% e, em seguida, deslize o tapete por baixo de mim para passar para a "próxima grande novidade". Começo a ficar desanimado por nunca fazer nada e me deixa em um "funk" (se você quiser). Finalmente eu empurrei para trás e disse a eles que não estava seguindo em frente até terminar o que estava quase terminando. Isso fez maravilhas pela minha estima, moral e energia (embora eu não possa dizer o mesmo sobre meus empregadores: encolher os ombros :)

Brad Christie
fonte
7

Minha sugestão seria conseguir um mentor.

Quando você receber um novo projeto, decida o caminho a seguir: como será o design geral; quais algoritmos você vai usar; como você planeja desenvolvê-lo para poder testar cedo e com frequência; et cetera.

Leve esses planos ao seu mentor e converse com ele. Se eles virem você no caminho errado ou se você perdeu algo importante, revise seus planos e tente novamente.

Agora que você tem um plano aprovado, cumpra-o. Não altere seus planos, a menos que algo totalmente desastroso ocorra e volte a revisá-los, obtendo aprovação e reiniciando. Caso contrário, atenha-se ao seu plano e faça exatamente o que você decidiu fazer. Entre em contato regularmente com seu mentor para validar sua implementação e certifique-se de escrever e usar testes ao longo do caminho.

Se você fez tudo isso com êxito, entregou um projeto no prazo e com os resultados corretos. Se você quiser voltar e refatorar parte do projeto, terá todos os testes que você criou, bem como uma cópia de trabalho do programa a partir do qual construir.

Parece-me que você está um pouco disperso demais e sem concentração. Talvez se você puder consertar essas áreas e trabalhar com alguém que você respeita, você estará no caminho certo em breve.

Boa sorte para você.

antitônico
fonte
6

Acredito que estou exatamente na mesma posição que você e não é bom estar lá. Pode ser desmoralizante e, para ser honesto, bastante deprimente às vezes. No entanto, como em qualquer outra coisa, acredito que há certas coisas que você pode fazer para ajudar a aliviar isso e, assim, progredir para uma carreira profissional mais saudável e feliz.

  1. Você precisa mudar e melhorar. Se você está se sentindo assim, mas não está preparado para se esforçar para melhorar suas habilidades, então não há ninguém que qualquer ferramenta / processo possa fazer por você.

  2. Algumas pessoas são naturalmente brilhantes. Algumas pessoas trabalham duro para serem brilhantes. A maioria das pessoas trabalha duro para se esforçar para ser brilhante. Se você não é naturalmente talentoso (programando ou não), o trabalho duro pode levá-lo até lá. Apenas o nível de trabalho duro varia. Nada é impossível.

  3. Aceite suas deficiências e procure melhorar. Um dos maiores obstáculos que vejo são as pessoas que têm medo de aceitar que seu caminho não é um bom caminho e, portanto, nunca procuram conselhos ou discutem outras maneiras de fazer as coisas. Portanto, eles nunca aprendem melhores práticas e, portanto, continuam cometendo os mesmos erros repetidamente.

  4. Peça conselhos daqueles que você considera bons programadores. Nunca tenha medo de conversar e pedir conselhos aos colegas. No entanto, sempre siga seus conselhos pelo valor nominal e decida se concorda ou não com eles. Não importa o quão brilhante alguém seja, sempre há muitas maneiras de programar um loop.

  5. Ler ler ler. Leia grupos de notícias. Poste perguntas em sites como este (bem feito). Compre livros que você ouviu serem bons ou peça recomendações em contrário.

  6. Explicidade aplique os princípios de design em pequenas etapas e depois se orgulhe do que você fez. Se você se orgulha do que codifica, é menos provável que haja espaço para erros e bugs.

  7. Aberto para sugestões e ajuda. Fechado ao pensamento unidimensional. Esteja aberto a muitas possibilidades e métodos. Cuidado com aqueles que pensam que há um caminho para tudo. Um pouco como 4.

  8. Ser um programador brilhante não é o mesmo que ser um funcionário brilhante. Se você quer ser um programador brilhante, então, para ser honesto, talvez você nunca chegue lá. No entanto, todo mundo tem a capacidade que acredito ser um funcionário e uma pessoa brilhantes. Trabalhe em coisas que podem ajudá-lo a chegar lá.

dreza
fonte
Ótima resposta. Parece que esses pontos vêm de um grande mentor. Observe-me senpai !! _ / _
Pramesh Bajracharya
4

Se após 3 anos de codificação diária, você estiver enfrentando problemas básicos, precisará considerar seriamente a possibilidade de que essa não seja a profissão certa para você.

Isso não é uma coisa ruim. A programação não é para todos, encontre o que você é bom e faça, em vez de forçar algo em si mesmo que não é natural.

Se o que você está dizendo é verdade ... você nunca será um "programador excepcional". Tudo bem, apenas aceite.

Idiotas
fonte
Comentaristas : os comentários destinam-se a buscar esclarecimentos, não a discussões prolongadas. Se você tem sua própria solução, deixe uma resposta. Se você acha que essa resposta é boa, faça um voto positivo. Se você não acha que é bom, faça um voto negativo. Se você quiser discutir esta questão com outras pessoas, use o bate-papo . Veja o FAQ para mais informações.
Vamos lá, ninguém se torna "excepcional" em três anos.
JacquesB
3

Tente entrar em um estado mental de fluxo . Esse é o fator mais importante que já vi em ser um bom desenvolvedor. Para fazer isso, você precisa enfrentar desafios que você sabe que pode fazer, mas que são difíceis. Você precisa encontrar o nível certo de desafio para se envolver nele; então você pode aumentá-lo gradualmente à medida que melhora. Ter tarefas fáceis ou difíceis demais será prejudicial.

configurador
fonte
3

Divida-o em pequenos pedaços.
Deixe-me demonstrar como fazer um sanduíche PB&J.

Descobrir o processo básico geral.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

Em seguida, quebre cada uma delas

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

repita o processo de quebra até entender completamente a lógica envolvida.

Isso facilitará a compreensão. E mais fácil de identificar processos comuns. Antes de começar a codificar, verifique se a lógica já foi definida. Cometer erros não é apenas ok, é esperado. Encontrá-los antes de implementá-los é muito mais fácil de corrigir.

Muitas vezes, a lógica é a parte mais difícil da programação. É por que nem todo mundo quer fazer isso. Se você não gosta da lógica, mas adora o design da interface do usuário, existem funções especializadas nisso, onde você pode encontrar mais prazer. Não há nada de errado com isso. Pessoalmente, prefiro a lógica à interface do usuário. Existem outras funções também, se a lógica não estiver onde você quer descobrir onde quer estar.

SoylentGray
fonte
2

Eu já tive esse tipo de problema antes .. Aconteceu logo antes de eu me esgotar e não poder programar em um nível produtivo por quase um ano depois (e eu tinha apenas 19 anos na época).

Enfim, olhando para trás, o problema que eu tinha era falta de direção e gerenciamento. Eu trabalhava na implementação de algo por um mês ou dois e, quando estava quase pronto, subitamente precisava ser feito de uma maneira completamente diferente. Esse foi um grande golpe para a minha auto-estima, pois tenho muito orgulho de todas as linhas de código que escrevo. Além disso, a gerência consistia principalmente de algumas horas de discussão sobre como algo deveria funcionar e, em seguida, alguns dias sem discutir nada. Parte disso também foi minha culpa, é claro. Isso também foi agravado pelo fato de que, em algum momento, o trabalho ficou extremamente tedioso e eu senti que estava apenas digitando código e não sendo realmente criativo.

Diretrizes gerais:

  1. Se você sentir falta de direção, traga-a à tona. Peça ao seu superior mais estrutura para onde as coisas estão indo
  2. Se você tiver que excluir o código o tempo todo (e não de uma maneira boa como a refatoração), pergunte seriamente por que não há um plano mais completo construído antes da implementação
  3. Se você é um iniciante super pequeno e trabalha como desenvolvedor "líder", quando claramente não é experiente, engula seu orgulho e diga ao gerente que você é realmente um desenvolvedor júnior.
  4. O tédio geralmente é causado pela aparência de nenhum trabalho sendo realizado. Realize suas tarefas em pequenos pedaços e acompanhe seu progresso. Isso ajudará a sentir que você está fazendo algo
  5. Se tudo mais falhar, você pode começar a se inscrever em outro lugar, especialmente se o seu gerente não parece se importar com o fato de você estar se encaminhando para um esgotamento
Earlz
fonte
-1

Encontre um jogo de lógica indutiva como o Zendo e jogue no seu tempo livre. A sério. A lógica indutiva é o coração da depuração.

Malaquias
fonte