código mais rápido: 53 dicas dos prós

quer saber como programar mais rápido para que você possa entregar o software mais rápido? Claro, quem não gosta? A internet está cheia de dicas para desenvolvedores—centenas, milhares, talvez até Milhões deles. O problema é que há muito mais por aí do que alguém tem tempo para ler, por isso, reduzi-os para ti.Aqui estão 53 dicas que representam o melhor conselho que encontrei. Mas, antes de te dizer o que encontrei, preciso de explicar o que quero dizer com “programação mais rápida” e “dicas”.”

the problem with “faster”

To code faster, one has to be efficient; that is, no wasted effort or motion. Isto pode significar tudo, desde dactilografia a ferramentas ao pensamento. Mas a maioria do nosso trabalho como programadores não está escrevendo, ou compilando—está pensando. Para pensar mais rápido, você tem que aprender mais padrões e relacionamentos. Este é o conhecimento e sabedoria que a experiência constrói. O que você precisa para ir mais rápido vai mudar ao longo do tempo.

o problema com “dicas”

a maioria das dicas que eu leio só se aplica em certos pontos da minha viagem, e não necessariamente se aplica a todos. Muitos destes caem nas categorias” viagem pessoal “ou” o que funcionou para mim”. Mas o meu caminho não deve ser o teu caminho. Enquanto algumas das coisas mecânicas que funcionam para mim provavelmente funcionarão para você, muitas das escolhas de domínio e padrão que eu fiz podem não ser de uso.

o material mecânico é muito fácil de otimizar; as opções são limitadas. Mas a aprendizagem não tem limites. Nunca ninguém saberá de tudo. Você deve fazer escolhas estratégicas e táticas, e estar preparado para aproveitar as oportunidades quando elas surgirem.

a utilidade das pontas cai como uma função da especificidade. As dicas mais específicas não se aplicam a todos, mas as dicas gerais são muito, bem, general. São muito mais difíceis de transformar em acção. O que queres mesmo quando dizes que queres ir mais depressa?”Eu digo-te.

o que você quer é fluxo

o que todo programador quer, especialmente na era de DevOps, é fluxo. O estado de fluxo maximiza o rendimento e aumenta o gozo incorporando apenas o nível certo de desafio; um permanece totalmente envolvido no momento e no trabalho (isto não deve ser confundido com o pico de Ballmer). Manter o estado de fluxo requer um ambiente adequado e um processo sem fricções.Estado de fluxo quando o emparelhamento é como se cada um de vocês tivesse um cérebro extra. Infelizmente, muitos ambientes de desenvolvedores, como escritórios abertos, são hostis ao fluxo.

as suas opções podem ser limitadas

quando encontrar algo sub-óptimo sobre o seu processo, ou a si próprio, as escolhas de como lidar com tais restrições são limitadas:

  • ignora. Talvez melhore por si só.Evite. É mesmo necessário?
  • Automate it. Faz a máquina fazê-lo.
  • delega. Raramente possível, isto é passar a responsabilidade. Mas é uma opção legítima quando disponível.
  • moer para baixo. Todos temos que fazer isso de vez em quando (diariamente). Alguns empregos são maiores do que outros.

se a sua dactilografia for mais lenta do que gostaria, leve um pouco de tempo e nivele. Se seu ambiente de desenvolvimento integrado é confuso e inútil (ou talvez muito útil), Tente Algo diferente ou mais simples. Se você não pode fugir dela, saiba mais sobre ela; você pode encontrar outra maneira, ou pelo menos aprender os limites.

existem inúmeras maneiras de aprender. O Google é seu amigo, assim como livros, vídeos, posts de blogs, questões de fluxo de pilha, e, claro, outras pessoas. Algumas coisas que você quer aprender podem estar escondidas; outras podem ser maiores do que parecem. Equilibre o benefício com o esforço e seja paciente consigo mesmo. Celebrem todas as conquistas e continuem a andar.

dicas de topo para uma programação mais rápida

uma maneira de agrupar e olhar para as dicas abaixo é aplicando algumas categorias de alto nível como uma forma de desenhar generalizações interessantes a partir da coleção:

  • reflectir. O que você quer, o que você realmente faz; inclui Medição e otimização.
  • Flow. Sem atrito de ferramentas, processos, ambiente ou conhecimento; buscar desafio contínuo, mas não muito.
  • aprenda. Fundamental: línguas, ferramentas, padrões, práticas, etc., de todos (especialmente aqueles dispostos a ensinar); aprender como você aprende, e aprender continuamente.
  • Teach. Ensina aos outros. Ter de explicar as coisas força a simplificação, e a transformação de pensamentos para expressões verbais ou visuais produz percepções.
  • Express and explore. Olhe fora de seus deveres normais; desenhar,escrever, blog, ir para reuniões, assistir e fazer apresentações, falar com Wilson o voleibol, se necessário.

as dicas abaixo são simplesmente pontos de dados, coisas a ponderar—Não uma trapaça para a vida ou uma lista de tarefas para a sua carreira como programador. Comecei com uma lista de 183 dicas, agrupei-as em categorias, atribuí uma prioridade baseada na repetição e preconceito pessoal, e tomei os poucos mais importantes de cada.

that’s right, bias. Eu sei o que faz um programador bom ou rápido, por isso tudo o que li filtrei através do meu preconceito. Especificamente, sou tendenciosa para:

  • Métodos Ágeis.
  • design orientado pelo domínio.
  • testes automáticos.Melhoria contínua .
  • soluções mínimas.
  • ferramentas sem fricção.
  • trabalhar em estado de fluxo tanto quanto possível.

and I strongly agree with Robert C. “Uncle Bob” Martin’s statement on “vehement mediocrity”:

“a única maneira de ir rápido é ir bem. Toda vez que você se rende à tentação de trocar qualidade por velocidade, você abranda. Sempre.”

tome as seguintes dicas (e tudo o mais que você ler na internet) com um grão de sal. Manter e adaptar o que funciona; descartar o que é inútil.

E aqui está minha dica para a programação mais rápida: foco na qualidade, e velocidade seguirá.

a reflexão é a chave

a reflexão é a chave para a auto-melhoria:

  • melhore continuamente seu processo de tomada de decisão; aprenda com seus erros sem censura.Eliminar os pontos cegos na sua compreensão de todo o âmbito da sua aplicação e do seu ambiente de execução.
  • não persiga a cauda; identifique e elimine os sumidouros do tempo.

medida objectivamente

por vezes sabe qual é a sua maior restrição, e por vezes tem de a medir.

  • considere fazer uma auditoria detalhada de si mesmo como você trabalha por um par de dias.
  • é como otimizar qualquer pedaço de código. Registar tudo, identificar pontos críticos e melhorá-los.Para onde vai o seu tempo? Muitos programadores passam muito mais tempo lendo código do que escrevendo código; como você aprende a ler código mais rápido?

Practice, practice, practice

There is no getting around some level of practice, on a variety of challenges.

  • Write lots of software.
  • escrever programas maiores.
  • Write review-ready code from the get-go.
  • há muitos lugares para praticar, incluindo topcoder.com, projecto Euler, hackerrank.com escolhe um e vai-te embora.

Design for success

Learning design techniques should be a given, part of the mastery of your thinking tools. Além disso,:

  • compreender o utilizador; compreender o seu problema, o verdadeiro problema; e depois resolvê-lo. O conhecimento do domínio ajuda imensamente.
  • fale com colegas e especialistas de domínio sobre o problema, solução e design.
  • reduzir a carga cognitiva desenhando ou escrevendo enquanto pensa e codifica.
  • ao projetar para longevidade e manutenção, lembre-se que os dados sobrevivem ao código.
  • sabe quando reinventar a roda e quando não deve (normalmente não).
  • nomeie as coisas propositadamente; este é o único link do código de volta para o domínio.

prego o processo

gastamos muito tempo em processos de nossa própria construção; não tenha medo de mudá-los.

  • tornam os erros impossíveis pelo design. Falhar rapidamente, usar exceções em vez de verificações nulas, usar o sistema de tipo para evitar erros de dados, e usar testes automatizados.Se não sabe por onde começar, Comece pela parte que melhor entende.
  • escreva o código que realmente faria um produto primeiro, não importa o quão tolo ou pequeno esse produto é.
  • não ignore erros; cada erro significa algo.
  • siga uma abordagem ágil ao desenvolvimento.
  • retire abstracções apenas se fizerem sentido e se forem realmente reutilizadas.
  • fique sobre os ombros de gigantes; use bibliotecas de código aberto, soluções de terceiros, e assim por diante.
  • otimize por simplicidade; o melhor código é o código que você não tem que escrever.
  • Automate testing and practice test-driven development (TDD)
  • Use smart tools such as IDEs, code generation utilities, etc. mas não tenhas medo de mudar de turno se eles estiverem a atrapalhar-te.
  • esteja extremamente familiarizado com a sua língua e biblioteca padrão. Quanto menos tempo passares a rastejar na documentação, melhor.
  • Use o controlo da fonte-mesmo sozinho.
  • utilize um profiler. Optimize apenas o que é necessário
  • Aprenda a tocar-tipo. Programadores digitar muito, e não apenas código; isso reduz a carga cognitiva de Digitação a zero, e melhora a velocidade e precisão

criar o ambiente de trabalho certo

interrupções constantes, circunstâncias desconfortáveis, e reuniões intermináveis desencorajam o fluxo.

  • certifique-se de que está num ambiente que não o distrairá; torne impossível que as distracções o interrompam.Conhece-te a ti próprio e trabalha durante o teu horário de pico-não a de outra pessoa — .

explorar fora do trabalho

nem tudo o que queira saber está no seu escritório ou na Internet.

  • exponha-se a novas ferramentas e técnicas. Mantém o que funciona.
  • trabalhar em projectos paralelos e projectos de código aberto.

Keep it healthy

Dead people write no code. Pessoas doentes escrevem um código mau. Cuida-te.

  • sabe o valor de se afastar do seu código.
  • dormir mais, comer melhor e trabalhar menos horas.
  • meditar.

desenvolver bons hábitos de aprendizagem

a aprendizagem é um processo ao longo da vida para os programadores, mas advertimos: a internet está cheia de coisas brilhantes.

  • Master the fundamentals: paradigmas e práticas de programação como DRY( não se repita) e SOLID (responsabilidade única, open-closed, substituição de Liskov, segregação de interface e inversão de dependência), padrões e anti-padrões, algoritmos, teoria dos Dados, Teoria dos grafos, etc.
  • aprender fazendo. Brinca sempre com o código enquanto aprendes.
  • encontre um mentor.
  • Explore diferentes formas de aprender a ver o que funciona para si.

a qualidade não é constante

a qualidade abrange muito terreno, desde a legibilidade do Código até à sua estrutura modular e complexidade, até à forma como expressa as suas intenções de domínio.

  • Focus on quality, not speed.
  • aceitar que o código ” qualidade “em qualquer momento é” o melhor que você pode fazer com o que você tem e sabe.”
  • faça sempre o seu melhor; é uma boa prática.
  • apenas em extremo (i.e. prototipagem/exploração/código de lançamento) e circunstâncias temporárias se você deixar a qualidade do seu código cair abaixo do nível de “o melhor que você pode fazer” (e você deve se sentir um pouco envergonhado em fazê-lo.)

Soft skills matter

I didn’t find a lot of tips about people skills, but people are pretty much inevitable; those I did find were quite helpful.Saber interagir com as pessoas permite-lhe aprender e ensinar com menos fricção e mais alegria aqueles que o rodeiam.Aprender a escrever e a falar vai ajudá-lo a passar as suas ideias mais depressa.

vá em frente e Código

então é isso, meu resumo do melhor conselho lá fora para programar mais rápido. Siga estas dicas e você estará bem em seu caminho para melhorar suas habilidades de programação—e codificação mais rápido.

Deixe uma resposta

O seu endereço de email não será publicado.