¿Desea saber cómo programar más rápido para que pueda entregar software más rápido? Claro, ¿quién no? Internet está lleno de consejos para desarrolladores, cientos, miles, tal vez incluso millones de ellos. El problema es que hay mucho más de lo que nadie tiene tiempo para leer, así que los he resumido para ti.
Aquí hay 53 consejos que representan los mejores consejos que he encontrado. Pero, antes de decirles lo que encontré, necesito explicar lo que quiero decir con «programación más rápida» y «consejos».»
- El problema con «más rápido»
- El problema con «consejos»
- Lo que quieres es flow
- Sus opciones pueden ser limitadas
- Consejos principales para programar más rápido
- La reflexión es la clave
- Mida objetivamente
- Práctica, práctica, práctica
- Diseñar para el éxito
- Clavar el proceso
- Crea el entorno de trabajo adecuado
- Explora fuera del trabajo
- Manténgalo saludable
- Desarrollar buenos hábitos de aprendizaje
- La calidad no es constante
- Las habilidades interpersonales importan
- Siga adelante y codifique
El problema con «más rápido»
Para codificar más rápido, uno tiene que ser eficiente; es decir, sin esfuerzo o movimiento desperdiciado. Esto puede significar todo, desde escribir hasta herramientas y pensar. Pero la mayor parte de nuestro trabajo como programadores no consiste en escribir o compilar, sino en pensar. Para pensar más rápido, tienes que aprender más patrones y relaciones. Este es el conocimiento y la sabiduría que la experiencia construye. Lo que necesitas para ir más rápido cambiará con el tiempo.
El problema con «consejos»
La mayoría de los consejos que leo solo se aplican en ciertos momentos de mi viaje, y no necesariamente se aplican a todos. Muchos de ellos caen en las categorías de «viaje personal» o «lo que funcionó para mí». Pero mi camino probablemente no sea el tuyo. Si bien algunas de las cosas mecánicas que funcionan para mí probablemente funcionen para usted, muchas de las opciones de dominio y patrón que tomé pueden no ser útiles.
El material mecánico es bastante fácil de optimizar; las opciones son limitadas. Pero el aprendizaje no tiene límites. Nadie lo sabrá todo. Debe tomar decisiones estratégicas y tácticas, y estar preparado para aprovechar las oportunidades cuando surjan.
La utilidad de las puntas cae en función de la especificidad. Los consejos más específicos no se aplican a todos, pero los consejos generales son demasiado, bueno, generales. Son mucho más difíciles de convertir en acción. Entonces, ¿qué es lo que realmente quieres cuando dices que quieres «ir más rápido»?»Te lo diré.
Lo que quieres es flow
Lo que todo programador quiere, especialmente en la era de DevOps, es flow. El estado de flujo maximiza el rendimiento y aumenta el disfrute al incorporar el nivel adecuado de desafío; uno se mantiene completamente involucrado en el momento y en el trabajo (esto no debe confundirse con el pico Ballmer). Mantener el estado de flujo requiere un entorno adecuado y un proceso sin fricción.
El estado de flujo al emparejar es como si cada uno de ustedes tuviera un cerebro adicional. Desafortunadamente, muchos entornos de desarrollo, como las oficinas abiertas, no son amigables para fluir.
Sus opciones pueden ser limitadas
Cuando encuentra algo subóptimo en su proceso, o en usted mismo, las opciones de cómo abordar tales restricciones son limitadas:
- Ignóralo. Tal vez mejore por sí solo.
- Evítelo. ¿Es realmente necesario?
- Automatizar. Haz que la máquina lo haga.
- Delegarlo. Rara vez es posible, esto es pasar la pelota. Pero es una opción legítima cuando está disponible.
- Molerlo hacia abajo. Todos tenemos que hacer esto de vez en cuando (diariamente). Algunos trabajos son más grandes que otros.
Si su escritura es más lenta de lo que desea, tómese un poco de tiempo y suba de nivel. Si su entorno de desarrollo integrado es confuso e inútil (o quizás demasiado útil), pruebe algo diferente o más simple. Si no puedes alejarte de ella, aprende más sobre ella; puedes encontrar otra manera, o al menos aprender los límites.
Hay muchas maneras de aprender. Google es tu amigo, al igual que libros, videos, publicaciones de blog, preguntas de desbordamiento de pila y, por supuesto, otras personas. Algunas cosas que quieres aprender pueden estar ocultas; otras pueden ser más grandes de lo que parecen. Equilibre el beneficio con el esfuerzo y sea paciente consigo mismo. Celebra cada logro y sigue moviéndote.
Consejos principales para programar más rápido
Una forma de agrupar y observar los consejos a continuación es aplicando algunas categorías de alto nivel como una forma de dibujar generalizaciones interesantes de la colección:
- Reflexiona. Qué quieres, qué haces realmente; incluye medición y optimización.
- Flujo. Sin fricción de herramientas, procesos, entorno o conocimiento; busque desafíos continuos, pero no demasiado.
- Aprender. Fundamental: lenguajes, herramientas, patrones, prácticas, etc., de todos (especialmente de aquellos dispuestos a enseñar); aprende cómo aprendes, y aprende continuamente.
- Enseñar. Enseñar a otros. Tener que explicar las cosas obliga a la simplificación, y la transformación de pensamientos a expresiones verbales o visuales produce ideas.
- Exprese y explore. Mira más allá de tus tareas normales; dibuja, escribe, escribe en un blog, asiste a reuniones, asiste y da presentaciones, habla con Wilson el voleibol si es necesario.
Los consejos a continuación son simplemente puntos de datos, cosas para reflexionar, no una hoja de trucos para toda la vida o una lista de tareas pendientes para su carrera como programador. Empecé con una lista de 183 consejos, agrupados en categorías, asignar una prioridad basada en la repetición y el sesgo personal, y se quedó con el primer par de cada uno.
Así es, sesgo. Sé lo que hace que un desarrollador sea bueno o un programador rápido, por lo que todo lo que leo se filtra a través de mi sesgo. Específicamente, estoy sesgado hacia:
- métodos Ágiles.
- Diseño basado en dominios.
- pruebas Automatizadas.
- mejora Continua.
- Soluciones mínimas.
- Herramientas sin fricción.
- Trabajando en estado de flujo tanto como sea posible.
Y estoy totalmente de acuerdo con la declaración de Robert C. «Tío Bob» Martin sobre «mediocridad vehemente»:
«La única manera de ir rápido es ir bien. Cada vez que cede a la tentación de cambiar calidad por velocidad, disminuye la velocidad. Siempre.»
Tome los siguientes consejos (y todo lo demás que lea en Internet) con un grano de sal. Mantener y adaptar lo que funciona; descartar lo que es inútil.
Y aquí está mi consejo para programar más rápido: Concéntrate en la calidad y la velocidad seguirá.
La reflexión es la clave
La reflexión es la clave para la superación personal:
- Mejore continuamente su proceso de toma de decisiones; aprenda de sus errores sin reproches.
- Elimine los puntos ciegos en su comprensión de todo el alcance de su aplicación y su entorno de ejecución.
- No persiga su cola; identifique y elimine los sumideros de tiempo.
Mida objetivamente
A veces sabe cuál es su mayor restricción, y a veces tiene que medirla.
- Considera hacer una auditoría detallada de ti mismo mientras trabajas durante un par de días.
- Es como optimizar cualquier pieza de código. Registra todo, identifica los puntos de acceso y mejoralos.
- ¿A dónde va tu tiempo? Muchos programadores pasan mucho más tiempo leyendo código que escribiendo código; ¿cómo aprendes a leer código más rápido?
Práctica, práctica, práctica
No hay que sortear algún nivel de práctica, en una variedad de desafíos.
- Escribir un montón de software.
- Escribir programas más grandes.
- Escribir código listo para revisión desde el primer momento.
- Hay muchos lugares para practicar, incluyendo topcoder.com, proyecto Euler, hackerrank.com Elige una y ponte en marcha.
Diseñar para el éxito
Aprender técnicas de diseño debe ser un hecho, parte del dominio de sus herramientas de pensamiento. Además:
- Comprender al usuario; entender su problema, el problema real; y luego resolverlo. El conocimiento del dominio ayuda enormemente.
- Hable con colegas y expertos en dominios sobre el problema, la solución y el diseño.
- Reduzca la carga cognitiva dibujando o escribiendo mientras piensa y codifica.
- Al diseñar para la longevidad y el mantenimiento, recuerde que los datos sobreviven al código.
- Sepa cuándo reinventar la rueda y cuándo no (normalmente no).
- Nombre las cosas a propósito; este es el único enlace del código al dominio.
Clavar el proceso
Pasamos mucho tiempo en procesos de nuestra propia construcción; no tenga miedo de cambiarlos.
- Hacer que los errores sean imposibles por diseño. Falla rápidamente, usa excepciones en lugar de comprobaciones nulas, usa el sistema de tipos para evitar errores de datos y usa pruebas automatizadas.
- Si no sabes por dónde empezar, comienza con la parte que mejor entiendes.
- Escriba el código que realmente haría un producto primero, sin importar cuán tonto o pequeño sea ese producto.
- No ignore los errores; cada error significa algo.
- Siga un enfoque ágil para el desarrollo.
- Extraiga abstracciones solo si tienen sentido y realmente se reutilizarían.
- Ponte sobre los hombros de gigantes; usa bibliotecas de código abierto, soluciones de terceros, etc.
- Optimice para simplificar; el mejor código es el código que no tiene que escribir.
- Automatice las pruebas y practique el desarrollo basado en pruebas (TDD)
- Utilice herramientas inteligentes como IDE, utilidades de generación de código, etc., pero no tengas miedo de bajar el turno si se interponen en tu camino.
- Esté extremadamente familiarizado con su lenguaje y biblioteca estándar. Cuanto menos tiempo pases rastreando la documentación, mejor.
- Utilice el control de código fuente, incluso por su cuenta.
- Utilice un generador de perfiles. Optimice solo lo que sea necesario
- Aprenda a teclear. Los programadores escriben mucho, y no solo código; esto reduce la carga cognitiva de escribir a cero, y mejora la velocidad y la precisión
Crea el entorno de trabajo adecuado
Las interrupciones constantes, las circunstancias incómodas y las reuniones interminables desalientan el flujo.
- Asegúrese de estar en un entorno que no lo distraiga; haga imposible que las distracciones lo interrumpan.
- Conócete a ti mismo y trabaja durante tu hora pico, no la de otra persona.
Explora fuera del trabajo
No todo lo que quieras saber está en tu oficina o en Internet.
- exponerse a nuevas herramientas y técnicas. Mantén lo que funciona.
- Trabaja en proyectos paralelos y proyectos de código abierto.
Manténgalo saludable
Los muertos no escriben código. Los enfermos escriben código malo. Cuídate.
- Conozca el valor de alejarse de su código.
- Duerma más, coma mejor y trabaje menos horas.
- Meditar.
Desarrollar buenos hábitos de aprendizaje
El aprendizaje es un proceso de por vida para los programadores, pero advertimos: Internet está lleno de cosas brillantes.
- Domina los fundamentos: paradigmas y prácticas de programación como DRY (no te repitas) y and SOLID (responsabilidad única, abierto-cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias)para OOP), patrones y anti-patrones, algoritmos, teoría de datos, teoría de grafos, etc.
- Aprende haciendo. Juega siempre con el código mientras aprendes.
- Encuentra un mentor.
- Explore diferentes formas de aprender para ver lo que funciona para usted.
La calidad no es constante
La calidad cubre mucho terreno, desde la legibilidad del código hasta su estructura modular y complejidad, hasta lo bien que expresa sus intenciones de dominio.
- Centrarse en la calidad, no en la velocidad.
- Acepte que la «calidad» del código en cualquier momento es » lo mejor que puede hacer con lo que tiene y sabe.»
- Haz siempre lo mejor que puedas; es una buena práctica.
- Solo en casos extremos (p. ej. creación de prototipos / exploración / código desechable) y circunstancias temporales en caso de que deje que la calidad de su código caiga por debajo del nivel de «lo mejor que puede hacer» (y debería sentirse un poco avergonzado al hacerlo.)
Las habilidades interpersonales importan
No encontré muchos consejos sobre habilidades interpersonales, pero las personas son prácticamente inevitables; los que encontré fueron bastante útiles.
- Saber interactuar con las personas te permitirá aprender y enseñar a quienes te rodean con menos fricción y más alegría.
- Aprender a escribir y hablar con claridad te ayudará a transmitir tus ideas más rápido.
Siga adelante y codifique
, así que eso es todo, mi resumen de los mejores consejos para programar más rápido. Sigue estos consejos y estarás bien encaminado para mejorar tus habilidades de programación y programar más rápido.