English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

Como se tornar um bom programador (Parte 4): agilizando a velocidade de programação

MetaTrader 5Exemplos | 23 novembro 2021, 15:16
1 449 0
Omega J Msigwa
Omega J Msigwa

Introdução

Penso que todo desenvolvedor quer escrever código mais rapidamente e, ao mesmo tempo, manter uma alta qualidade. Essas são habilidades que qualquer programador pode desenvolver, independentemente da experiência prévia, da capacidade do computador, das ferramentas de trabalho ou da quantidade de texto digitado com o teclado.

Este artigo é uma continuação do tópico iniciado na parte anterior. Por isso, recomendo a leitura da primeira parte primeiro.

         Como escrever código mais rápido


Sumário:

  1. Planeje seu trabalho
  2. Não reinvente a roda
  3. Faça só o que tem de ser feito
  4. Assuma tarefas desafiadoras
  5. Leve um estilo de vida saudável
  6. Aqui e agora
  7. Não recicle
  8. A qualidade é variável
  9. Estabeleça prazos
  10. Determine seu tempo de pico de desempenho
  11. Olhe para trás
  12. Seja objetivo
  13. Aprenda coisas recentes
  14. Como testar mais rápido


1. Planeje seu trabalho

“Se você falha em planejar, está planejando falhar” (Benjamin Franklin).

Às vezes, nós desenvolvedores sentimos que precisamos pegar rapidamente o teclado e começar a escrever nosso código o mais rápido possível para concluir o projeto. Mas é aqui que reside o grande erro e uma das principais razões que explicam o ritmo de trabalho lento é a falta de um plano preliminar ou um muito fraco e afastado do projeto.


Por que é tão importante saber elaborar um plano de trabalho?

  1. O plano de trabalho ajuda você a se manter concentrado. Se você não se concentrar em seu trabalho, pode demorar muito tempo para concluir mesmo projetos simples. Quanto mais focado você estiver em seu projeto, mais rápido você o terminará.
  2. O planejamento dá clareza ao caminho. Fazer um plano ajuda a entender melhor o que precisa ser feito e em que linhas.
  3. O plano minimiza o caos e a confusão em sua cabeça. Como você e eu escrevemos software para uma das áreas mais difíceis de previsão, isto é, o mercado forex, novas ideias estão constantemente surgindo em nossas cabeças, especialmente se a ideia inicial não parece ser a mais bem-sucedida. Contudo, para terminarmos o projeto mais rapidamente, devemos respeitar o caminho optado e bem planejado.

Antes de embarcar em qualquer viagem, precisamos ter uma ideia de para onde estamos indo. Por esse motivo, reserve tempo suficiente para preparar seu projeto com antecedência e certifique-se de não esquecer nada. É só quando você tem uma ideia clara do que quer é hora de sentar-se diante do computador e começar a escrever código.


2. Não reinvente a roda

Começar do zero é sempre difícil, especialmente quando se trata de um grande projeto. Existe uma maneira mais eficaz de utilizar os desenvolvimentos existentes, tais como os códigos prontos para uso gratuito do CodeBase.

É provável que alguém já tenha enfrentado o mesmo obstáculo, assim uma solução semelhante pode ser um bom ponto de partida, ja que você já estará partindo de uma linha de base, e parte do caminho já terá sido feito.

Atenção! Nem todos os projetos que vemos atualmente são adequados para o uso, daí que é preciso ter muito cuidado ao escolher.

O que procurar ao escolher a base para seu projeto.

Escolher o modelo certo como base para a continuação do trabalho ajudará a acelerar a redação de seu próprio projeto, porém a escolha errada pode arruinar tudo. Abaixo estão alguns pontos a serem considerados quando fazemos essa escolha.

  • O código não deve apresentar erros. Começar um projeto imediatamente com erros não é uma boa ideia. Por isso, o código deve ser sempre testado, depurado.
  • Se você toma qualquer trabalho como base, deve entendê-lo o mais completamente possível. Para isso, o código deve ter uma descrição completa e, se possível, uma documentação boa e clara.
  • O código deve estar atualizado. Visto que a linguagem MQL5 é atualizada periodicamente, com novas funções, métodos e atualizações do compilador, não é garantido que o código escrito e compilado há vários anos ainda funcione da mesma maneira. Por isso é imperativo garantir que o código esteja atualizado. A melhor maneira de controlar isso é compilar o código no MetaEditor e assegurar que ele funcione sem erros.

Imaginemos que se queira criar um indicador que desenhe linhas com base na média em outros cálculos. Neste caso, é possível baixar um indicador de média móvel da biblioteca CodeBase, editar o código e adicionar os buffers necessários.

CodeBase tem o código certo para quase todas as tarefas básicas, por isso vale sempre a pena procurar nele.


3. Faça só o que tem de ser feito

Pode acontecer que um desenvolvedor esqueça o que deveria estar fazendo no projeto. Ele pode se distrair e fazer coisas que não afetarão diretamente o objetivo principal do projeto. Por exemplo, ele pode querer adicionar animações interessantes, objetos e botões adicionais nos gráficos do EA. Todos esses embelezamentos não têm efeito direto sobre a capacidade de negociação do EA. Além disso, na maioria dos casos, os EAs funcionam melhor sem eles.

Como os objetos são criados no método embutido ObjectCreate(), criá-los pode consumir bastante tempo, sem falar em desenhá-los e exibi-los no gráficos corretamente. Portanto, estas características extras podem demandar muito tempo..

Francamente, não recomendo o uso de objetos gráficos ou animações fofas nos EAs (se você ainda quiser terminar o projeto mais rápido), a menos que você crie um assistente de negociação.

Por exemplo, um cliente dentro do Freelance pode encomendar o desenvolvimento de um Expert Advisor baseado no indicador Bollinger Bands com funções adicionais, como um trailing stop. Um EA desse tipo só precisa da funcionalidade necessária, nem mais nem menos..

É irracional usar toda sua energia para escrever coisas que não são importantes - há uma chance de se deixar levar e não cumprir prazos, por estourar tempo com códigos que não são realmente necessários.

Também não é uma boa ideia começar com coisas mais pequenas e sem importância quando você ainda está cheio de energia e sua mente está pronta para trabalhar. Depois, ao passar para a parte mais importante, você pode estar já cansado e não ter forças para terminar o projeto dentro do prazo.

"Aprenda a separar o importante do insignificante. Muitas pessoas não têm sucesso porque se concentram em coisas insignificantes" (Jim Rohn).

Comece sempre com as tarefas essenciais e, às vezes, mais difíceis que estão diretamente relacionadas com sua missão principal e, se restar tempo, você pode gastá-lo em pequenas coisas adicionais agradáveis.


4. Assuma tarefas desafiadoras

Como escrevi no primeiro artigo, um desenvolvedor se torna mais rápido quando se torna confiante no que está fazendo, de modo que se permite ser flexível. Ou seja, você precisa se tornar mais autoconfiante para trabalhar mais rápido.

Mas como?

Você provavelmente joga ou já jogou videogames. Uma vez que você tenha conquistado o nível mais difícil ou vencido o jogador mais forte num determinado jogo, jogar em níveis médios/fáceis torna-se canja, e nem falar em vencer um adversário mais fraco.

Este é um ótimo princípio e funciona não apenas em videogames, mas também em programação.

Escolha uma área em que deseja treinar e planeje um programa desafiador para você mesmo, fazendo coisas que nunca fez antes. Por exemplo, para melhorar o desenvolvimento de EAs, você pode trabalhar em multifunções, como o uso de múltiplos indicadores, de objetos no gráfico, de modificações de múltiplas ordens, etc. Defina um prazo concreto para seu projeto de desenvolvimento e tente concluí-lo a tempo.

Se você for bem-sucedido nessa tarefa, projetos futuros serão mais fáceis para você e, como resultado, sua velocidade de desenvolvimento aumentará.

"Assuma tarefas desafiadoras, e as outras serão fáceis" (Steve Chandler).

O objetivo desse tipo de tarefa não é fazer mal, mas enfrentar o desafio agora mesmo, para que se você tiver que encarar uma tarefa semelhante no futuro, você possa fazê-la mais rapidamente.


5. Leve um estilo de vida saudável

Se você quer trabalhar produtivamente e fazer muito, você precisa de boa saúde para que nenhuma indisposição possa distraí-lo ou perturbá-lo.

Uma carreira como programador requer muito trabalho mental, memorização, criatividade, concentração, etc.

  • Tem que ter uma boa memória, senão para que estudar?
  • Ao programar, é muito importante ser capaz de se concentrar.
  • Sem criatividade, não se pode criar nada novo, diferente do existente, não dá para encontrar uma abordagem criativa e resolver problemas complexos.

Não sou profissional em saúde. Mas se você estiver interessado neste ponto e quiser saber mais, confira esse link.

Aqui estão algumas dicas de saúde. Elas me ajudam a manter o alto desempenho.

Às vezes, vale a pena fazer uma pausa.

Se você permanecer sentado e escrever código 24 horas por dia, você pode não perceber que sua criatividade e concentração diminuem.

Pesquisas realizadas nos anos 90 mostraram que, devido aos ciclos naturais de rotação da atenção, somos capazes de nos concentrar por não mais do que 90 minutos, após os quais é necessário um intervalo de 15 minutos.

Os especialistas em saúde recomendam não exceder essas sessões de 90 minutos no trabalho.

No entanto, eu mesmo acho difícil seguir essas recomendações, porque na maioria das vezes, tudo depende da minha produtividade. Às vezes, posso escrever código por várias horas sem interrupção. Às vezes é o contrário, não consigo me concentrar e preciso de mais pausas para descontrair. Provavelmente, todos têm suas próprias capacidades de concentração e atenção, portanto, vale a pena escolher a duração adequada das sessões cada um.

Durma o suficiente para manter o cérebro funcionando no máximo.

São necessárias pelo menos sete horas de sono por noite.

Preste atenção à sua dieta e ao exercício.

Começar o dia com uma corrida matinal leve é a melhor maneira de se sentir à vontade. Experimente e veja como isso afeta sua produtividade.

Pessoas mal dispostas escrevem código defeituoso, já pessoas mortas não escrevem absolutamente nenhum código. Por isso, cuide de si mesmo.


6. Aqui e agora

Quando você tiver a ideia para o próximo grande projeto em sua cabeça, não a adie. Comece agora a escrever um plano (ver ponto um). E se você não tiver nada mais importante a fazer, pode começar a implementar sua ideia imediatamente.

Você tem que fazer isso aqui e agora. E "mais tarde" às vezes pode significar "nunca".

Começar um projeto imediatamente não só permitirá concluí-lo mais rapidamente, como também ajudará seu cérebro. O tempo não funciona a seu favor e pode diminuir a importância de sua idéia, reduzir sua confiança na mesma.

"O tempo urge. Por isso, faça o que quer que você vá fazer" (Robert de Niro).

A procrastinação na programação não leva a nada de bom. É tão fácil esquecer o que você planejou fazer no exato momento em que teve a ideia (especialmente se você não a anotar). Quanto mais tarde você começar, mais tarde você conseguirá seu produto.


7. Não recicle

A carreira como programador envolve todos os tipos de coisas e infinitas possibilidades de estudo e desenvolvimento. E naturalmente você não pode ser igualmente bom em todas as áreas, simplesmente porque há muitas delas.

É importante compreender e aceitar que você não conseguirá ter sucesso em tudo. Por isso, é absolutamente normal não tentar fazer tudo sozinho. Abordei este ponto no terceiro artigo, na seção 5 falamos em tornar o projeto aberto, para que diferentes usuários possam trocar ideias.

Ao fazer isso, você deve mostrá-lo a todos, gastar tempo, e nem todos os usuários podem estar interessados em seu projeto ou nem todos terão a competência correta.

Às vezes, se você precisar terminar um projeto mais rápido, talvez seja melhor contratar alguém no serviço Freelance. O objetivo é encontrar um parceiro de desenvolvimento para ajudá-lo em áreas onde você se sinta inseguro.

Aqui está um exemplo. Pessoalmente, não sou muito bom em indicadores. Tenho uma vaga ideia sobre buffers e outras coisas relacionadas a indicadores, simplesmente porque não sou um fã (por razões pessoais). Dito isto, sou bom em EAs, scripts e outras coisas. Se por acaso eu precisar de um indicador para meu projeto, definitivamente contratarei alguém para essa parte do projeto e farei o resto eu mesmo.

Se o projeto for grande, divida-o e envolva mais desenvolvedores. Quanto mais freelancers você contratar, mais rápido você obtém os resultados financeiros.

Este é um método caro, mas vale a pena. Parece-me que este método é o mais rápido. É por isso que as empresas de tecnologia e inovação nunca contratam um único programador (e às vezes há pelo menos 1 000).


8. A qualidade é variável

Ao tentar concluir um projeto o mais rápido possível, é importante lembrar que, no final, é importante obter um produto de qualidade.

O desenvolvimento de um projeto não termina se o produto for de pouca qualidade. Você precisará de tempo extra para corrigir, melhorar e continuar o desenvolvimento, que pode não terminar.

Antes de prosseguir para o próximo passo, certifique-se de ter um bom código sem erros, uma boa implementação da ideia, da arquitetura, do design, etc. Uma vez que você tenha terminado, não há como voltar atrás.

O processo de criação de um produto de qualidade pode parecer lento, mas não é. Muitas pessoas não percebem que o mau código e a má arquitetura nos assombrarão ainda mais, esperando por nós para consertar as coisas.

Um produto de qualidade não tem que ser o Santo Graal. Ele deve ser um produto que

  • Desenvolvido de acordo com um plano
  • Não contém erros
  • Está bem pensado, estruturado e explicado
  • Fácil de usar para todos

Eu concordo totalmente com Robert Martin, que disse

"A única maneira de ir rápido é andando corretamente. Cada vez que você sucumbe à tentação de trocar qualidade por velocidade, você diminui a velocidade. Todas as vezes".


9. Estabeleça prazos

Se uma partida de futebol durasse indefinidamente, como os jogadores se comportariam?

Eles não teriam entusiasmo, nem esforço, o jogo não seria divertido e não haveria jogo nenhum!

Tudo tem que ter uma estrutura, um fim, para que tenha algum sentido.

Uma vez feito um plano de trabalho, estabeleça um prazo para o fim do projeto. Esta marca também o ajudará a medir a velocidade do desenvolvimento no futuro.

Além disso, estabelecer um prazo é um sinal de maturidade e profissionalismo, mostrando que você está levando a sério a conclusão de um determinado projeto.

No Freelance, são estabelecidos prazos (embora não rígidos) para cada trabalho. Da mesma forma, você deve estabelecer prazos ao trabalhar em seus próprios projetos.

Lembre-se:

um projeto sem um prazo pode não ter um fim.


10. Determine seu tempo de pico de desempenho

Todos nós temos momentos de pico de desempenho - momentos em que a produtividade e a capacidade de aprender estão em um alto nível. Alguns têm certas horas, outros têm dias da semana. Por exemplo, para mim meu horário mais produtivo é entre 4:00 e 7:00-8:00 da manhã. É quando eu aprendo algo novo ou trabalho em tarefas complexas.

Para outros, essas horas podem ser de manhã, à tarde ou à noite. Identifique os tempos mais produtivos para você e use-os da melhor maneira possível.

É especialmente importante identificar estas horas se você tiver outras coisas a fazer, como ir trabalhar e ter pouco tempo para trabalhar em seu próprio projeto.


11. Olhe para trás

Passe tempo analisando seu código. O objetivo desta verificação é garantir que você aprenda com seus próprios erros, que da próxima vez tenha mais cuidado e não perca tempo com o mesmo erro que você já enfrentou.

Elimine pontos cegos no escopo de seu aplicativo. Às vezes você tem que confiar em seu instinto, como quando você implementa algo e sente que não o entende. Você deve ainda descobrir se esta é realmente uma boa solução ou se existe uma maneira melhor.


12. Seja objetivo

Faça uma introspecção, examine seu trabalho, analise suas atividades e pergunte-se: em que gasto o meu tempo?

Você pode descobrir que a maior parte do seu tempo é gasto lendo o código em vez de escrevê-lo. E então ficará claro em que pontos você precisa trabalhar.


13. Aprenda coisas recentes

Isto pode ser comparado ao aquecimento dos atletas. Os programadores também podem se aquecer.

Mesmo que você não esteja trabalhando num projeto, aprenda coisas novas, conheça novas bibliotecas, indicadores, scripts, ferramentas e técnicas que poderão ajudar a melhorar sua produtividade.

Você pode trabalhar em projetos Open Source que estão próximos ao que você está fazendo e que podem proporcionar experiência útil.

O conhecimento e a prática preparam-no para projetos do mundo real. Ao trabalhar hoje, você está melhorando e contribuindo para o futuro, e o resultado já será visível no seu próximo projeto.


14. Como testar mais rápido

Os testes são uma parte importante do processo de desenvolvimento, que também afeta a velocidade, porque exigem muito tempo para que funcione. Para isso, periodicamente testamos o código adicionado para ter certeza disso.

Além de escrever e ler o código, o teste é a área onde mais se desperdiça tempo.

A realização de testes de programas pode depender das capacidades de seu computador e das configurações do software. Por exemplo, com certas configurações, os testes em um processador de 5 núcleos serão mais lentos do que em um computador com 7 ou 9 núcleos. Além disso, a velocidade é afetada pela memória, configurações do testador de estratégias, configurações do agente e o programa que está sendo testado.

Este é um tópico enorme, digno de um artigo próprio. Eu recomendaria o estudo dos materiais listados abaixo:

Aqui estão algumas dicas úteis para ajudá-lo a testar mais rapidamente.

Desative o modo de teste visual - indicadores e negócios exibidos no gráfico..

Atenção: ao desativar esta opção, todas as operações serão ocultadas, de modo que não haverá nada no gráfico. Se a visualização no gráfico for importante para você, não a desative.

Usemodo de simulação Somente preços de abertura

Atenção: este modo é projetado para EAs que gerenciam a abertura da barra. Por alguma razão, este método não funciona em EAs multissímbolo e multiperíodo. Nesse caso, você pode receber um erro de período de solicitação incorreto em CopyRates no modo de preços de abertura.

Selecione a opção de lucro em pips para acelerar os cálculos

Atenção: neste modo, todos os valores de lucros e perdas serão mostrados em pips e não em dinheiro.

Veja como fica isso:

Acelerando os testes no MetaTrader 5

No entanto, a maneira mais rápida de testar/optimizar estratégias, que dão acesso a computadores poderosos e que não exigem nenhuma configuração extra, é usar a rede em nuvem MQL5 Cloud Network


Conclusão

Desejo a você muito sucesso na programação, novos projetos interessantes e ótimos resultados. Este artigo tem tudo. Se você tiver suas próprias dicas, compartilhe-as nos comentários do artigo.

Obrigado pela atenção!


Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/9840

Use canais e bate-papos em grupo da MQL5.community Use canais e bate-papos em grupo da MQL5.community
O site MQL5.com reúne traders de todo o mundo que publicam artigos, códigos e produtos gratuitos no Mercado, desenvolvem projetos para outros usuários no serviço Freelance e copiam sinais de negociação. Você pode se comunicar com eles no fórum, nos bate-papos para traders e nos canais MetaTrader.
Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados Gráficos na biblioteca DoEasy (Parte 85): coleção de objetos gráficos, adicionamos recém-criados
Neste artigo, finalizaremos a criação das classes herdeiras da classe abstrata do objeto gráfico e iniciaremos a implementação do armazenamento desses objetos na classe-coleção. Em particular, criaremos a funcionalidade para adicionar à classe-coleção objetos gráficos padrão recém-criados.
Gráficos na biblioteca DoEasy (Parte 86): coleção de objetos gráficos, controlamos a modificação de propriedades Gráficos na biblioteca DoEasy (Parte 86): coleção de objetos gráficos, controlamos a modificação de propriedades
Este artigo analisa o rastreamento de modificações nos valores de propriedades, remoção e renomeação de objetos gráficos dentro da biblioteca.
Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão Gráficos na biblioteca DoEasy (Parte 84): classes herdeiras do objeto gráfico abstrato padrão
Neste artigo, veremos como se criam classes herdeiras do objeto gráfico abstrato padrão do terminal. O objeto deste tipo de classe descreve propriedades comuns a todos os objetos gráficos, isto é, ele é apenas um tipo de objeto gráfico. Para entender se pertence a um objeto gráfico real, precisamos gerar herança a partir dele, já na classe do objeto herdeiro precisamos escrever as propriedades que são específicas do objeto gráfico em particular.