English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Cómo ser un mejor programador (parte 05): Aprendiendo a desarrollar más rápido

Cómo ser un mejor programador (parte 05): Aprendiendo a desarrollar más rápido

MetaTrader 5Ejemplos | 19 octubre 2021, 09:56
1 107 0
Omega J Msigwa
Omega J Msigwa


Introducción

Como desarrolladores, siempre queremos tener la capacidad de crear más rápido programas y entregar estos con mayor calidad. Cualquier desarrollador puede adquirir dicha habilidad, independientemente de su experiencia de codificación, su capacidad de cálculo, las herramientas en su espacio de trabajo o la velocidad de escritura del teclado.

El presente material es un artículo ampliado de la parte anterior: le recomendamos leer esta en primer lugar, si aún no lo ha hecho.

         cómo codificar más rápido


CONTENIDO:

  1.   Planifique su trabajo
  2.   No reinvente la rueda
  3.   Haga solo lo que se requiere
  4.   Acepte mayores desafíos
  5.   Viva de forma sana
  6.   Hágalo ahora
  7.   No se exceda
  8.   La calidad no es constante
  9.   Márquese siempre una fecha límite
  10.   Conozca su hora pico
  11.   La reflexión es la clave
  12.   Mida objetivamente 
  13.   Explore fuera del trabajo
  14.   Realice pruebas más rápidas


01: Planifique su trabajo

"Si usted no planifica, está planeando fracasar"
— Benjamin Franklin

Como desarrolladores, solemos pensar que la velocidad y las prisas a la hora de escribir el código nos harán terminar nuestros proyectos más rápido, pero esta idea es en el fondo muy negativa, porque la velocidad a la que escribimos nuestro código no es ni mucho menos uno de los factores que más nos ralentizan: en la mayoría de los casos, la causa principal es la ausencia de un plan, o al menos de un plan eficiente para nuestro proyecto.


Por qué es vital planificar nuestro trabajo

  1. Para empezar, porque aumenta la capacidad de concentración, y sin ella, nos llevaría mucho tiempo terminar incluso los proyectos más simples. Cuanto más concentrados estemos en nuestro proyecto, más rápido lo terminaremos.
  2. Asimismo, confiere claridad a nuestro trabajo. Si tenemos un plan determinado, podremos comprender mejor lo que se espera de nosotros y cómo de urgente es la tarea.
  3. Además, el plan minimizará el pensamiento confuso. Como la mayoría de las veces creamos programas para uno de los ámbitos más difíciles de predecir en el mundo, el mercado Fórex, siempre somos bombardeados por muchas ideas diferentes en cuanto fracasamos con la primera que pretendíamos implementar. Básicamente, si queremos terminar nuestro proyecto más rápido, será mejor ceñirse a lo que planeamos con anticipación.

Antes de comenzar cualquier viaje, deberemos saber en líneas generales hacia dónde nos dirigimos. Resulta vital que dediquemos el tiempo suficiente a la preparación de nuestro proyecto, de manera que no omitamos detalles esenciales y tengamos claro qué deseamos: entonces será el momento de empezar a escribir código en el teclado.


02: No reinvente la rueda

En proyectos grandes, el comienzo desde cero puede resultar difícil y frustrante, por lo que una de las mejores maneras de empezar sería utilizar trabajos anteriores de otros en CodeBase, el Mercado o en cualquier otro lugar.

Es probable que alguien ya haya creado antes el mismo proyecto que estamos intentando implementar, así que usarlo como punto de partida podría ayudarnos a empezar rápidamente sin partir de cero.

NOTA: No todos los trabajos anteriores pueden servirnos de ayuda: deberá elegir el proyecto correcto.

Cosas a considerar para elegir el proyecto correcto.

Elegir el trabajo correcto puede hacer que las cosas funcionen rápidamente, pero elegir alguno incorrecto podría hacer de nuestro trabajo un esperpento. A continuación, veremos algunos de los factores a considerar.

  • Asegúrese de que contenga pocos errores, o mejor, ninguno. No queremos iniciar un proyecto con errores iniciales (Verifíquelo/depúrelo).
  • Deberá tener una documentación clara y bien explicada, pues necesitamos comprender prácticamente todo en el trabajo elegido: la documentación deberá ser correcta y legible, clara como los conceptos básicos de MQL5 que leíamos cuando éramos principiantes.
  • El código deberá estar actualizado; el lenguaje MQL5 se actualiza de vez en cuando, por lo que algunos de los métodos e implementaciones compilados y trabajados en años anteriores probablemente no funcionarán igual el año en curso. Obviamente, esto se debe a que el  lenguaje evoluciona y experimenta actualizaciones. Por ello, asegúrese siempre de que el código utilizado en ese proyecto sea reciente. La mejor forma de comprobarlo es compilar el código en el MetaEditor  para verificar si se ejecuta sin errores.

 

Por ejemplo, si queremos crear un indicador que dibuje líneas basadas en el cálculo de la media móvil y algunos otros cálculos, podremos descargar un indicador de media móvil de CodeBase, y luego modificarlo o añadir algunos búferes para darle la forma que deseemos.

En CodeBase podemos encontrar casi cualquier código para casi todas las tareas básicas que deseemos realizar, así que no tendremos problema en eligir el más adecuado.


03: Haga solo lo que se requiere

Como desarrolladores, a menudo olvidamos lo que se supone que debemos hacer en nuestro proyecto, y tendemos a priorizar la codificación de cosas que no afectan directamente a lo que queremos lograr principalmente con nuestro proyecto.

Por ejemplo: animaciones pomposas de gráficos, objetos gráficos y botones en asesores expertos.

Como podemos ver, los elementos mencionados no influyen directamente en ninguna de nuestras actividades comerciales y, la mayoría de las veces, nuestros asesores estarán mejor sin ellos.

Como los objetos se crean bajo el método incorporado ObjectCreate(), podría requirir mucho tiempo codificarlos (no digamos ya organizarlos) para que todos aparezcan bien en el gráfico, por lo que el proceso ocupa gran parte de nuestro tiempo

Sinceramente, no recomiendo usar objetos gráficos y animaciones sofisticadas en los asesores (cuando queremos desarrollar más rápido), a menos que queramos crear un asistente comercial.

Digamos que un cliente en freelance  quiere que usted codifique un asesor experto con Bandas de Bollinger con algunas otras características como Trailing Stop: haga solo eso, ni más, ni menos.

No resulta aconsejable usar toda nuestra energía codificando cosas menores: luego llega la fecha límite y nos damos cuenta de que hemos perdido el tiempo porque el programa está lleno de basura.

Tampoco es prudente comenzar con cosas menores cuando nuestra mente está entusiasmada y creativa, y pasar a lo importante al final, cuando ya hemos perdido las fuerzas: terminaremos precipitándonos en una carrera por terminar nuestro proyecto que podría provocar aún más errores.

"Aprenda a separar lo importante de lo que menos importa. A muchas personas les va mal simplemente porque se especializan en cosas menores" - Jim Rohn

Comience siempre por las tareas principales (y a veces complejas) que tienen un impacto directo en lo que desea; después, si no ha alcanzado la fecha límite, podrá comenzar a hacer todas esas cosas menores que le han parecido interesantes.


04: Acepte mayores desafíos

Como ya dije en mi primer artículo, los desarrolladores más rápidos son aquellos que demuestran flexibilidad y se sienten cómodos en lo que están haciendo. Entonces, en este punto, la clave será sentirse cómodo como desarrollador para llegar a ser más rápido.

Eso suena bien, pero ¿cómo puede alguien llegar a sentirse cómodo?

Probablemente, el lector haya jugado antes a algún videojuego. Si ha jugado con éxito al nivel más difícil o ha vencido al jugador más habilidoso en ese juego en particular, jugar a los niveles medios/bajos se volverá sencillo y vencer al jugador promedio será pan comido.

Este principio es excelente, y  no solo se aplica a los videojuegos, también se aplica a la codificación.

Elija un área en la que quiera ser bueno, y luego planifique un programa complicado que nunca antes haya hecho. Por ejemplo, para ser bueno en el desarrollo de asesores, planifique funciones múltiples, como estrategias múltiples, indicadores múltiples, exceso de objetos de gráficos, modificaciones comerciales múltiples, etc.  Poco después, usted podría terminar la planificación de ese duro proyecto, estableciendo plazos ajustados e intentando terminar antes de que estos se cumplan.

Si tiene éxito, muchos proyectos que encontrará en el futuro le resultarán más sencillos, se encontrará más cómodo y, como resultado, su velocidad de desarrollo eventualmente aumentará.

Acepte el desafío más difícil y el resto le será fácil — ” Steve Chandler ”

El objetivo aquí no es lastimarse, sino hacernos vulnerable a los desafíos difíciles que podríamos experimentar en nuestra carrera, y que tal vez necesiten ser resueltos rápidamente. 


05: Viva de forma sana

Si desea ser productivo en esta carrera, será clave mantener una buena salud.

La carrera de codificación requiere mucho trabajo mental para aprender el código, recordarlo, ser creativo, mantenerse concentrado, etc.

  • Aprender sin recordar lo que aprendes es no hacer nada
  • Codificar sin concentración es una pérdida de tiempo.
  • Sin creatividad no hay innovación, diferenciación ni oportunidades, y los problemas complejos son difíciles de resolver

No soy un experto en salud. Si desea profundizar en el tema, le recomiendo leer este  blog 

A continuación, le mostraré mis consejos de salud para mejorar su productividad y lograr un desarrollo más rápido.

Conozca el valor de alejarse de su código.

Si nos dedicamos a la codificación las 24 horas del día y los 7 días de la semana, es posible que no notemos que no estamos siendo creativos y no estamos concentrados todo el tiempo, porque para el ser humano promedio del siglo XXI, la concentración es un problema importante.

Algunos  estudios que datan de la década de los 90 sugieren que, debido a variaciones naturales en nuestro ciclo de alerta, no podemos concentrarnos por más de 90 minutos antes de necesitar un descanso de 15 minutos.                                                                                        

Aunque los expertos en salud recomiendan tener una sesión de codificación de 90 minutos,

yo codifico en sesiones aleatorias dependiendo de cómo veo mi productividad. A veces, puedo codificar durante muchas horas sin tomar un descanso, pero algunos días simplemente no puedo concentrarme mucho y me encuentro haciendo descansos aleatorios para actualizar mi mente. Creo que tenemos diferentes periodos de atención, así que planifique y configure una sesión de codificación correcta que funcione para usted.

Duerma lo suficiente para que su cerebro funcione al máximo.

Duerma al menos 7 horas diarias.

Coma mejor y haga ejercicio.

Ir a correr a primera hora de la mañana es la mejor forma de mejorar su ánimo para el día entero. Pruébelo, si no lo ha hecho ya, y verá cómo su productividad aumenta todo el día.

La gente muerta no escribe código, y la gente enferma escribe código incorrecto: así que cuídese.


06: HÁGALO AHORA

Cada vez que se le ocurra una idea sobre su próximo gran proyecto, no la retrase: póngase manos a la obra ya, comenzando a planificar el proyecto como hemos comentado en el primer punto. A menos que tenga algo más importante que hacer, deberá comenzar a trabajar de inmediato.

Hágalo AHORA: a veces, MÁS TARDE significa NUNCA

Comenzar de inmediato no solo le ayudará a terminar antes de la fecha límite, sino que también evitará demoras innecesarias, en su mayor parte causadas por las distracciones su mente, que juega con ese periodo de tiempo antes del límite.

"El tiempo pasa, así que, sea lo que sea lo que vaya a hacer, hágalo ahora" Robert de Niro

En lo que respecta al desarrollo, los retrasos tienen consecuencias negativas. Resulta muy fácil olvidar lo que planeábamos hacer la primera vez que se nos ocurrió una idea (especialmente si no la escribimos entonces). Además, retrasa la salida del producto y sus mejoras.


07: No se exceda con el trabajo

La carrera de codificación está llena de cosas de diferentes tipos, y de muchísimas más que debemos aprender. Debemos reconocer que no vamos a ser excepcionalmente bueno en todas ellas, porque son demasiadas.

La clave para un desarrollo más rápido, aunque no resulte positivo en todas las áreas de su proyecto, es no intentar hacer todo por su cuenta. Ya hablé de todo esto en el tercer artículo: Punto #05. Puede hacer que su proyecto sea de código abierto, para que así la gente pueda compartir sus puntos de vista sobre ese proyecto en particular.

Pero ese proceso en sí requiere exposición (es posible que algunas personas no la necesiten), y la gente puede tardar un poco en comenzar a contribuir, especialmente si las personas que han abordado el tema no estaban muy interesadas.

Suponiendo que queramos terminar muy rápido, la mejor manera podría ser contratar a alguien en la bolsa freelance.

El tema aquí es que contratamos a alguien para que trabaje como socio (para ayudarnos en áreas en las que no somos expertos)

Por ejemplo:

personalmente, yo no soy bueno en el campo de los indicadores; apenas entiendo los búferes y otro tipo de cosas relacionadas con los indicadores, ya que no soy fan de ellos (por motivos personales), pero soy un experto en asesores, scripts y muchas otras cosas. Si siento que necesito un indicador en mi proyecto, tendré que contratar a alguien que lo haga por mí, y yo me encargaré del resto.

Si el proyecto es grande, podemos dividirlo en secciones y contratar a más desarrolladores. Cuantos más desarrolladores independientes participen en él, más rápido se completará.

Este método es bastante caro, pero merece la pena. Creo que, probablemente, es la forma más rápida de todas; por eso las empresas tecnológicas o innovadoras nunca contratan a un programador (a veces ni siquiera menos de 1000), porque entienden este principio.


08: La calidad no es constante

En lugar de apresurarnos en terminar un proyecto, debemos considerar lo que necesitamos a fin de cuentas: un PRODUCTO DE BUENA CALIDAD.

La finalidad del trabajo no es conseguir un producto de mala calidad: esto implicará que realicemos mejoras a medida que pasa el tiempo y, por lo tanto, el trabajo no tendrá fin.

Antes de continuar con el siguiente paso, asegúrese de implementar el código y las ideas de la mejor forma posible, así como de crear una buena arquitectura y diseño, y un código libre de errores, de forma que, una vez terminado, no haya vuelta atrás.

El proceso de creación de un producto de alta calidad puede parecer lento, pero no lo es tanto, y lo que la mayoría de los desarrolladores no notan es que un código deficiente y una mala arquitectura siempre nos perseguirán deseando que los mejoremos.

Un PRODUCTO DE ALTA CALIDAD no implica que hablemos del Santo Grial. Siendo breves, significa que:

  • Se ha hecho como planeábamos
  • No tiene errores
  • Se ha diseñado y estructurado correctamente, y ha sido claramente explicado
  • Es fácil de usar y fácil de pasar a otro.

Estoy totalmente de acuerdo con "Robert C. Uncle Bob" cuando dijo

"La única forma de ir rápido es hacerlo bien. Cada vez que cedemos a la tentación de cambiar calidad por velocidad, reducimos la velocidad. Cada vez".


09: Márquese siempre una fecha límite

¿Y si no hubiera final para los partidos de fútbol? ¿Qué pasaría con los jugadores?

No habría entusiasmo ni esfuerzo, el juego no sería divertido y ¡no habría ningún juego en absoluto!

Tiene que haber un final para todo lo que hacemos en la vida, de lo contrario, no podríamos tomarlo en serio.

Cuando hayamos planificado el trabajo, deberemos establecer una fecha límite para el proyecto. La fecha límite también se usará para medir nuestra velocidad de codificación una vez que lleguemos al final del proyecto.

Además, establecer una fecha límite indicará que somos desarrolladores maduros, y también mostrará nuestro compromiso para terminar ese proyecto en particular.

Existe una fecha límite para cualquier trabajo en la bolsa Freelance, (no se aplica estrictamente, sin embargo), y debemos hacer lo mismo en nuestros propios proyectos: no tiene que salir perfecto, pero tendremos tiempo de mejorar.

Recuerde

Si no hay fecha límite, tampoco hay un final para nuestro proyecto.


10: Conozca su hora pico

Todo el mundo tiene su hora pico, es decir, momentos en los que su productividad y aprendizaje se dan a un nivel alto. Pueden tener lugar en ciertos días de la semana o en ciertas horas del día; esto se debe a que nuestros cerebros se encuentran en diferentes estados. Por ejemplo, mis horas más productivas son desde las 4:00 am, cuando me despierto, hasta las 7 u 8 am. Esas son las horas que uso para aprender cosas nuevas y realizar tareas difíciles. 

Otros pueden emplear otras horas, por la mañana, por la tarde, a medianoche, etc. Encuentre sus horas productivas y utilícelas de manera efectiva para hacer avanzar su proyecto.

Trabajar en estas horas puede resultar excelente para aquellos que están ocupados haciendo otras cosas, como ir al trabajo, y tienen poco tiempo para trabajar en sus proyectos de programación.


11: La reflexión es la clave

Debemos dedicar el tiempo necesario a la inspección de nuestro código, para asegurarnos de que aprendemos de nuestros errores y así no perder tiempo la próxima vez tropezando en la misma piedra.

Elimine los puntos ciegos en el ámbito de su aplicación. A veces, tenemos que confiar en nuestro instinto: cuando hemos implementado algo y sentimos que no lo entendemos, debemos investigar si podría ser cierto o acaso no lo hemos implementado de la mejor forma posible.


12: Mida objetivamente

Considere la posibilidad de realizar un autoexamen detallado mientras trabaja durante un par de días, analice sus actividades y pregúntese: ¿dónde estoy invirtiendo mi tiempo?

Supongamos que se da cuenta de que la mayor parte de su tiempo lo está dedicando a leer código, en lugar de a escribir código. Entonces, tendremos que aprender a leer código más rápido.


13: Explore fuera del trabajo

Me gustaría denominar esto Calentamiento Los deportistas lo hacen en sus carreras, así que nosotros también podemos hacerlo.

Mientras no esté trabajando en su proyecto, explore nuevas bibliotecas, indicadores, scripts, herramientas y técnicas que puedan ayudarlo a aumentar su productividad.

Puede trabajar en proyectos de código abierto que de alguna manera sean similares a su proyecto o que tengan varios aspectos similares.

Esto lo preparará para el proyecto real: si lo hace bien, notará que su proyecto se vuelve más fácil y que su velocidad aumenta notablemente.


14: Pruebas más rápidas

La prueba es una de las áreas cruciales en las que uno debe ser bueno, ya que estaremos realizando pruebas mucho tiempo después de escribir bloques de código adicionales, para asegurarnos de que todo funcione como se espera.

Además de escribir y leer código, las pruebas son el área en la que desperdiciaremos la mayor parte de nuestro tiempo, a menos que no nos equivoquemos.

La prueba de sus programas podría depender de alguna forma de los recursos de hardware en su PC  y varias configuraciones de software.

Por ejemplo, (con configuraciones específicas), si su CPU tiene 5 núcleos, no espere realizar pruebas tan rápidas como alguien con 7 o 9 núcleos. Eso por no mencionar otros factores como la memoria, la configuración del simulador de estrategias, la configuración de los agentes y el programa que vaya a probar. 

Ese tema es demasiado grande para tratarlo en este artículo: le recomiendo que consulte todas las fuentes a continuación.

A continuación, encontrará algunos consejos sencillos sobre cómo realizar pruebas más rápido.

DESMARQUE el modo visual con ayuda de la casilla de verificación para mostrar los gráficos, indicadores y transacciones.

 DESCARGO DE RESPONSABILIDAD: desmarcando esta casilla, se ocultarán todas las transacciones que acostumbramos a ver en el gráfico durante la prueba. Haga esto si ya está seguro de cómo funciona su programa en segundo plano.

ELIJA  la opción de modelado solo precios abiertos

DESCARGO DE RESPONSABILIDAD: este método es para asesores que controlan explícitamente la apertura de la barra. Por alguna razón, este método no funciona con asesores que reciben señales de símbolos múltiples y marcos temporales múltiples Es posible que obtenga errores de CopyRates y errores de WRONG TIMEFRAME REQUEST en el modo de precios abiertos.

COMPRUEBE   la casilla de verificación del beneficio en pips para realizar cálculos más rápidos

DESCARGO DE RESPONSABILIDAD: todas las ganancias/pérdidas de las transacciones estarán en pips reales, no en dinero.

Larga historia en breve.

Pruebas de MT5 más rápidas

La forma más rápida de probar/optimizar sus estrategias en máquinas potentes sin sufrir la molestia de configurar todo y sin tener que preocuparse por los recursos de hardware en su PC, es utilizar MQL5 Cloud Network 


Conclusión

Le deseo lo mejor en su viaje para convertirse en un buen desarrollador, eso es todo para este artículo. Si tiene algún consejo que desee compartir conmigo o con otras personas, no dude en escribir en la sección de comentarios al presente artículo.

Gracias por su atención.


Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/9840

Gestionando el Horario (Parte 1): Fundamentos Gestionando el Horario (Parte 1): Fundamentos
Funciones y fragmentos de código que simplifican y aclaran el manejo del tiempo, la diferencia con el bróker y los cambios en el horario de verano o invierno. La sincronización precisa puede ser un elemento crucial en el trading. A la hora actual, ¿la bolsa de valores de Londres o Nueva York está ya abierta o sigue cerrada? ¿Cuándo comienza y finaliza el horario comercial para el trading en Fórex? Para un tráder que comercia de forma manual y en vivo, esto no supone un gran problema.
Gráficos en la biblioteca DoEasy (Parte 83): Clase de objeto gráfico abstracto estándar Gráficos en la biblioteca DoEasy (Parte 83): Clase de objeto gráfico abstracto estándar
En el presente artículo, crearemos la clase de objeto gráfico abstracto. Este objeto constituirá la base para crear las clases de objetos gráficos estándar. Los objetos gráficos tienen muchas propiedades y hoy, antes de crear una clase de objeto gráfico abstracto, necesitaremos hacer mucho trabajo preparatorio: registrar estas propiedades en las enumeraciones de la biblioteca.
Gráficos en la biblioteca DoEasy (Parte 84): Clases herederas del objeto gráfico abstracto estándar Gráficos en la biblioteca DoEasy (Parte 84): Clases herederas del objeto gráfico abstracto estándar
En este artículo, analizaremos la creación de las clases herederas del objeto gráfico abstracto estándar del terminal. El objeto de esta clase describirá las propiedades comunes para todos los objetos gráficos, es decir, se tratará simplemente de un cierto objeto gráfico. Para aclarar su pertenencia a un objeto gráfico real, necesitaremos heredar de él, y en la clase del objeto heredado, escribir las propiedades inherentes a ese objeto gráfico en particular.
Perceptrón Multicapa y Algoritmo de Retropropagación (Parte II): Implementación en Python e integración en MQL5 Perceptrón Multicapa y Algoritmo de Retropropagación (Parte II): Implementación en Python e integración en MQL5
Se ha puesto a disposición un paquete de Python con el propósito de desarrollar la integración en MQL, lo que abre las puertas a numerosas posibilidades como la exploración de datos, la creación y el uso de modelos de aprendizaje automático. Esta integración nativa de MQL5 en Python abre las puertas a muchas posibilidades de uso que nos permiten construir desde una simple regresión lineal a un modelo de aprendizaje profundo. Entendamos cómo instalar y preparar el entorno de desarrollo y usar algunas de las bibliotecas de aprendizaje automático.