Sitio web de resúmenes de películas - Cine coreano - ¿Qué son unas sopas de pollo para el alma de los programadores?

¿Qué son unas sopas de pollo para el alma de los programadores?

1. Antes de culpar a los demás, revisa tu propio código.

Piensa en tus propias suposiciones y las de los demás. Las herramientas de diferentes proveedores pueden tener diferentes supuestos incorporados, e incluso el mismo proveedor puede tener diferentes supuestos para diferentes herramientas.

Cuando otras personas informen sobre un problema que no puedes duplicar, ve a ver qué están haciendo. Es posible que hagan algo en lo que nunca pensaste o que hagan las cosas en un orden completamente diferente al tuyo.

Mi principio personal es que si tengo un error que no puedo determinar, primero consideraré si es un problema del compilador y luego verificaré si la pila está dañada. Esto es especialmente cierto si agregar un código de seguimiento solucionará el problema. Los problemas de subprocesos múltiples son otra fuente de errores que a veces pueden hacer que quieras arrancarte el pelo o dejar caer tu computadora. Cuando el sistema tiene múltiples subprocesos, es mejor inclinarse hacia un código más simple. No podemos confiar en la depuración y las pruebas unitarias para encontrar errores consistentes, por lo que la simplicidad del diseño es primordial.

Entonces, antes de culpar indiscriminadamente al compilador, considere este consejo de Holmes: "Una vez que haya eliminado lo imposible, lo que quede, por inverosímil que sea, debe ser. Esa es la verdad".

2. Sigue aprendiendo

Vivimos tiempos interesantes. A medida que el desarrollo de software se extiende por todo el mundo, descubrirá que hay muchas personas que pueden hacer su trabajo. Por lo tanto, es necesario seguir aprendiendo para seguir siendo competitivo. De lo contrario, se quedará atrás y se estancará hasta que un día el trabajo ya no lo requiera o se subcontratará a alguna fuerza laboral más barata.

Entonces, ¿qué podemos hacer? Algunos empleadores son generosos y ofrecen capacitación para ampliar sus habilidades. Algunas personas también dirán que no tengo el tiempo ni los fondos para recibir formación. Por tanto, la clave está en corregir tu mentalidad y aprender a ser responsable de ti mismo.

Aquí tienes algunas formas de aprender. Y muchos recursos están disponibles gratuitamente en Internet: lea libros, revistas, blogs, cuentas de Twitter y sitios web. Si desea obtener más información sobre el objeto, considere agregarlo a una lista de correo o grupo de noticias. Haga clic aquí para suscribirse a la revista "Happy Coder" por correo electrónico. Si realmente desea aprender una determinada tecnología, escriba el código usted mismo. Intente trabajar con un mentor tanto como sea posible. Si bien puedes aprender algo de cualquiera, puedes aprender aún más de aquellos que son más inteligentes o tienen más experiencia que tú. Si realmente no puede encontrar un mentor así, continúe leyendo. Utilice un mentor virtual. Encuentra autores y desarrolladores en la web que realmente te gusten y lee lo que escriben. Suscríbete a su blog. Comprenda los marcos y bibliotecas que utiliza. Saber cómo funcionan las cosas te ayuda a aplicarlas mejor. Si estás utilizando recursos de código abierto, estás realmente de suerte. Utilice un depurador para revisar su código y ver qué sucede debajo del capó. También puedes ver cómo escriben y revisan el código personas que en realidad son más inteligentes que tú. Cuando cometas un error, corrijas un error o encuentres un problema, intenta entender realmente lo que está pasando. Es muy probable que alguien más haya encontrado el mismo problema y lo haya publicado en línea. Buscar en Google realmente ayuda. Otra buena forma de aprender algo es la llamada "enseñanza y aprendizaje". Cuando los demás te escuchan y te hacen preguntas, tú también aprendes. Se pueden establecer grupos de usuarios o reuniones locales. Únase o inicie un grupo de investigación (comunidad de patrones) para los idiomas y tecnologías que le interesen, o cree un grupo de usuarios local. Asistir a reuniones. Si no puede asistir, también puede verlo en línea. Muchas conferencias publican sus charlas en línea de forma gratuita. Escuche el podcast. ¿Alguna vez ejecutó una herramienta de análisis estático en su código base o revisó su IDE en busca de advertencias? Conozca qué informan y por qué.

Por supuesto, si tienes superpoderes como Neo en "The Matrix", naturalmente todo esto será pan comido para ti. Pero desafortunadamente, todos somos gente común y corriente. Necesitamos tiempo, energía y esfuerzos continuos para promocionarnos y seguir aprendiendo. Sin embargo, no es necesario que estudies todo el día. Siempre que puedas dedicar algo de tiempo a estudiar conscientemente, aunque sea una hora al día, es mejor que nada. La gente no vive para trabajar, tú también deberías tener tu propia vida.

3. No tengas miedo de romper cosas

Cada programador con alguna experiencia en la industria definitivamente ha estado involucrado en proyectos donde el código base estaba en peligro. El sistema apesta y cambiar este lado siempre interrumpirá la funcionalidad no relacionada en el otro lado. Cada vez que se agrega un módulo, los programadores solo pueden pensar en cambiar el código lo menos posible y se aterrorizan cada vez que lo publican. Este rascacielos de software podría colapsar en cualquier momento. La razón por la que cambiar el código es tan estresante es porque el sistema es muy malo. Pero incluso si sabes que hay un problema con el sistema, tienes que dejarlo pasar porque le tienes miedo. Cualquier cirujano sabe que para que una herida sane, es necesario eliminar el esfacelo. Aunque la cirugía será dolorosa, definitivamente es mejor que dejar que la herida se inflame y se pudra.

No tengas miedo de tu código. A nadie le importa si rompes algo temporalmente cuando modificas el código. Mientras los cambios que realices no devuelvan el proyecto al punto donde comenzó, no será aplastante. Invertir tiempo en refactorización lo beneficiará durante todo el ciclo de vida del proyecto. Un beneficio adicional de hacer esto es que, debido a que tiene experiencia con este sistema crítico, comprende bien cómo debería funcionar. Se bueno aplicando este conocimiento y nunca te disgustes con estos preciosos tesoros. Redefina interfaces internas, refactorice módulos, refactorice código de copiar y pegar y simplifique los diseños reduciendo las dependencias. Puede reducir significativamente la complejidad de su código eliminando casos especiales, que a menudo son causados ​​por características de acoplamiento defectuosas. Haga la transición lentamente de la estructura antigua a la nueva, realizando pruebas a lo largo del camino. Si desea completar una gran refactorización a la vez, a menudo considerará darse por vencido a mitad de camino debido a varios problemas frecuentes.

4. Programador Profesional

Una de las características más importantes de un programador profesional es la responsabilidad. Los programadores profesionales son responsables de sus carreras, presupuestos, compromisos de cronograma, errores y habilidades técnicas. Un programador profesional no pasa la responsabilidad a otros.

Si eres un profesional, debes ser responsable de tu propia carrera. Es tu responsabilidad leer y aprender. Es su responsabilidad mantenerse actualizado con las últimas industrias y tecnologías. Pero muchos programadores sienten que éste debería ser el trabajo de sus empleadores. NO, completamente equivocado. ¿Piensas en un médico? ¿Piensas en los abogados? Todos dependen de sí mismos para desarrollarse y formarse. La mayor parte de su tiempo libre lo dedican a leer revistas y periódicos. Siempre están atentos a las últimas novedades. Nosotros también deberíamos hacerlo. La relación entre usted y su empleador se detalla en su contrato de trabajo y, en pocas palabras: su empleador promete pagarle y usted promete hacer un buen trabajo.

Los programadores profesionales asumen la responsabilidad del código que escriben. Los códigos no se publicarán a menos que sepan que funcionan. Ahora, piense en esto: si fuera usted, ¿liberaría el código sin comprenderlo completamente? Un programador profesional no quiere que el control de calidad encuentre ningún error porque él prueba el código antes de publicarlo. Por supuesto, el control de calidad seguirá encontrando algunos problemas porque nadie es perfecto. Pero como programadores profesionales, nuestra actitud debe ser la de no permitir que el control de calidad encuentre defectos.

Los programadores profesionales también son buenos miembros del equipo. Asumen la responsabilidad del resultado de todo el equipo, no sólo de su propio trabajo. Están dispuestos a ayudar a los demás y son buenos aprendiendo unos de otros. Incluso se ayudarán mutuamente cuando sea necesario y trabajarán duro para el proyecto.

5. Aprovechar al máximo las herramientas de análisis de código

El valor de las pruebas es un concepto que se inculca a los desarrolladores de software en las primeras etapas de la programación. En los últimos años, el auge de las pruebas unitarias, el desarrollo basado en pruebas y los métodos ágiles ha confirmado nuestro enfoque en las pruebas en todas las etapas del ciclo de desarrollo. Sin embargo, las pruebas son solo una de las muchas herramientas que puede utilizar para mejorar la calidad de su código.

Mirando hacia atrás, cuando C era un lenguaje nuevo, el tiempo de CPU y cualquier tipo de almacenamiento eran escaso. Los primeros compiladores de C se dieron cuenta de esto y optaron por reducir el número de pases entre códigos eliminando algunos análisis semánticos. Esto significa que en el momento de la compilación, es posible que el compilador solo esté comprobando una pequeña fracción de los errores que pueden detectarse. Para remediar esta deficiencia, Stephen Johnson escribió una herramienta llamada lint, que eliminará algunas de las cosas inútiles de su código, implementando así algunas de las capacidades de análisis estático que se han eliminado de su compilador hermano C.

Sin embargo, las herramientas de análisis estático son elogiadas por su capacidad para advertir sobre una amplia gama de falsos positivos y convenciones de estilo estáticas que no necesariamente se siguen.

El diseño de los lenguajes, compiladores y herramientas de análisis estático actuales es muy diferente al de antes. A medida que la memoria y el tiempo de CPU se vuelven relativamente baratos, los compiladores pueden darse el lujo de buscar más errores. Casi todos los idiomas tienen al menos una herramienta que busca infracciones de la guía de estilo, problemas comunes y algunos errores furtivos que a veces pueden ser difíciles de detectar, como la posible desreferenciación de un puntero nulo. Las herramientas más avanzadas, como C's Splint y Python's pylint, son configurables, lo que significa que puede dejar que la herramienta elija qué errores y advertencias ignorar mediante cambios en la línea de comandos o usando archivos de configuración en el IDE. Splint incluso te permite anotar tu código con comentarios para dar una mejor idea de cómo funciona tu programa.

6. Preocúpate por el código

No hay duda de que los buenos programadores pueden escribir buen código. Los malos programadores... no pueden (si pueden escribir buen código, no son malos programadores, jaja). Siempre están produciendo monstruos que otros tienen que destruir. Tu objetivo es escribir buen código, ¿verdad? Entonces deberías convertirte en un buen programador.

El buen código no surge de la nada, ni puede depender de la suerte y convertirte en un gato ciego y un ratón muerto. Para obtener un buen código, debes trabajar duro para mejorarlo. El proceso es difícil. Pero si realmente te importa el código, definitivamente obtendrás un buen código.

La tecnología por sí sola no constituye una buena programación. He conocido a algunos programadores muy inteligentes que pueden producir algoritmos impresionantes y memorizar estándares de lenguaje, pero que escriben el código más horrible. Este tipo de código es doloroso de leer, doloroso de usar y aún más doloroso de modificar. También he conocido a algunos programadores muy humildes. Debido a que insisten en un código simple, los programas que escriben son más elegantes y más fáciles de expresar. Es muy agradable trabajar con ellos.

Basándome en mis años de experiencia produciendo software, he llegado a la conclusión de que la verdadera diferencia entre un programador mediocre y un gran programador es: Actitud. Una buena programación radica en un enfoque profesional y el deseo de escribir el mejor software posible.

Para ser un buen programador, debes ser responsable de tu propio código y preocuparte realmente por él: desarrolla una actitud positiva. Los grandes códigos son elaborados por maestros, no escritos al azar por programadores descuidados.