¿Por qué tengo tanto miedo de escribir mi propio código? Leo mucho código y los entiendo, diablos, casi termino con esta aplicación que estoy creando, usando bibliotecas

En los primeros días de Windows, yo y un colaborador creamos un programa enormemente complejo para navegadores marinos (¡antes de que el término “navegar” fuera apropiado por la industria informática!)

El programa mostraba cartas náuticas, movía el barco sobre la carta o movía la carta mientras mantenía el barco centrado o en la parte inferior o a cada lado de la pantalla (a elección del navegador) usando imágenes ráster de cartas o datos vectoriales de una carta. Le dejo al lector que busque esos términos si no le son familiares.

El programa también proporcionó métodos gráficos y escritos para crear rutas (no hay carreteras en el agua, pero hay muchos peligros que lo matan a usted y a sus pasajeros), mostró el estado de la marea, así como la dirección y la fuerza de la corriente actualizada cada seis minutos para toda la marea y la información actual dentro de las 60 millas de la embarcación, mostraron datos de sonar superpuestos en el gráfico, mostraron imágenes de la cámara desde el interior de la sala de máquinas y desde la parte trasera de la embarcación, giraron una ruta de una pierna desde la punta del Cabo Bacalao a Bishop Rock (un punto de referencia común para ingresar al Canal de la Mancha) en una ruta mucho más corta de gran círculo, encontró la posición del barco utilizando navegación celestial, etc., etc.

La única forma en que nuestra pequeña empresa podía crear un programa tan complejo era comprando pequeños trozos de código creados por programadores para que otros programadores los usaran. Dichos módulos nos costaron desde $ 100 gratis a principios de los 90, pero nos ahorraron literalmente muchos años de codificación. En aquel entonces, dichos módulos se crearon utilizando una DLL de llamadas estándar (biblioteca de enlaces dinámicos) y podrían vincularse a programas más grandes creados en C, C ++ o incluso Visual Basic si sabía lo que estaba haciendo.

La gente siempre preguntaba “¿en qué está escrito tu programa?” Les diría ensamblador para las pantallas de mapas móviles intensivos en gráficos, C y C ++ para llamadas de bajo nivel al sistema operativo y Visual Basic para las pantallas de visualización y la GUI. No nos importaba qué idioma se usaba para escribir los módulos que compramos, siempre que el módulo funcionara exactamente de la manera que el desarrollador dijo que lo haría, y siempre que funcionara dentro de nuestro programa más amplio sin fallas, sobrescrituras de memoria, etc. En lo que a mí respecta, ¡un módulo podría haberse escrito y compilado en Fortran!

Sin las docenas de módulos que compramos a otros, nuestro producto nunca habría llegado al mercado y se convertiría en una de las opciones populares para automatizar la navegación en la industria marina.

Por lo tanto, no se sienta menos programador por haber utilizado los módulos de otras personas. Pero pruebe cada módulo y la combinación de módulos para asegurarse de que sus programas totales funcionen correctamente y tengan una excelente interfaz humana. Entonces ve a ganar algo de dinero.

Por cierto, recibí muchos comentarios desdeñosos de programadores “profesionales” cuando mencioné Visual Basic para la GUI. Sonreí hasta el banco.

Durante mi carrera como desarrollador de software, he observado este mismo fenómeno. La mayor parte del código está escrito por otra persona en forma de bibliotecas y marcos. Y debido a esto, las personas solo quieren buscar una biblioteca para resolver todos sus problemas, y luego pueden elegir una y piratearla para “resolver” el problema que tenían sin comprender realmente cuál era el problema. Puede sonar absurdo, pero lamentablemente suele ser cierto. De esta manera, muchos programadores saben cómo pegar piezas pegadas (¡todavía es copiar y pegar si está en la biblioteca!) Sin saber cómo resolver los problemas. Por supuesto, hay dificultades para decidir cuándo usar un código extranjero y cuándo reinventar la rueda . También es problemático cuando las bibliotecas cambian o tienen errores: no tiene idea de cómo solucionar estos problemas porque es un código externo que no ha escrito. Deberíamos tener algún tipo de forma de estandarizar el código de software para tomar decisiones acertadas sobre qué bibliotecas usar.

Estaba usando el estándar C ++ 98, eso es lo que me enseñaron en la escuela y seguí aprendiendo en él, hasta el mes pasado. Cada vez que usaba el código de otra persona, solía estar en el estándar C ++ 11 o C ++ 14. Sentí que mi código no está tan actualizado como el de ellos. Debido a esto, mi código nunca fue aceptado en SPOJ y Codechef. Puedo entender que puede temer escribir código pensando que no es el mejor escrito. Pero con los días aprendí algo, es mejor escribir algo de código en lugar de nada. Los nuevos estilos y estándares se pueden aprender fácilmente con el tiempo y la práctica si conoce algún estándar antiguo.

Este no fue el único problema al que me enfrenté. Tuve que leer el código de otro. No podía escribir o, a veces, ni siquiera conocía algoritmos para varias cosas. El algoritmo que solía derivar generalmente aumentó el límite de tiempo. Pero hoy, aunque todavía no estoy del todo bien, tengo confianza, ya que conozco algoritmos y formas de codificar en el último estándar C ++ 14. Tengo curiosidad por el lanzamiento del estándar C ++ 17 y también lo aprendo.

Entonces, solo sigue practicando y siempre trata de aprender el último estándar y algún día serás bueno.

Cómo manejar el miedo: esto es lo que hago.

1. Tome un papel y escriba las razones de su miedo. En su caso, tenga miedo de escribir su propio código. P.ej . 1. El código puede no funcionar. 2. Mis amigos se reirían de mi código y demás.

2. Escriba los peores escenarios de cada miedo. Ej. 1. Debido a que el código no funciona, tendría que volver a escribir todo. 2. Como los amigos se reían de mí, me daba vergüenza.

3. Escriba la probabilidad de cada escenario en el tipo de camiseta.
1. Más probable. 2.Muy menos probable.

Ahora,
1. Separe los escenarios que considere probables, muy probables y superiores. Intenta abordarlos uno por uno. Si no puede encontrar la solución a algún problema, intente pedir las soluciones a sus amigos / colegas / ancianos / Quora.

2. Enumerar los miedos eliminará el miedo a lo desconocido. A veces, sus temores son de cosas reales, debe enfocarse específicamente en cada causa y eliminarla.

3. Incluso después de hacer todo esto, existe la posibilidad de fallar.
Pero nunca será tan malo como temías. Has trabajado duro y valientemente has superado tu miedo y lo has intentado.

Ahora que ha aprendido una Nueva forma de no hacerlo, intente nuevamente, ¡tendrá éxito!

En caso de código, no trato de hacer todo de una vez. Dividir en partes pequeñas y completar cada parte, obtendrá una sensación de satisfacción, ¡ágil es la palabra!

Está perfectamente bien usar bibliotecas existentes en su código. Incluso iría tan lejos como para decir que es mejor reutilizar el código existente en lugar de implementar lo mismo . ¿Por qué?

  • En lugar de codificar lo mismo que otra persona antes que usted, se ahorra algo de trabajo y puede centrarse en otros aspectos de su aplicación;
  • Muchas bibliotecas ofrecen código bien probado y optimizado, cuya producción le llevaría aún más tiempo y trabajo.

Por supuesto, hay excepciones cuando las bibliotecas disponibles no pueden ofrecerle lo que necesita, pero es menos probable.

Así que no tengas miedo. Solo puedes codificar mejor y, por lo que escribes, estás en el camino correcto.

Probablemente porque tiene miedo al fracaso (de si su código funcionaría o no o si obtendría algunos errores mortales) o porque no ha experimentado la alegría del éxito al lograr que un código funcione sin problemas.

Sugeriría que empieces a escribir pequeños códigos. Experimenta la alegría de una codificación exitosa. Poco a poco ganará coraje para escribir fragmentos de códigos más grandes. Con la ola del tiempo, perderá el miedo a la codificación.

Las bibliotecas son impresionantes. El ahorro de tiempo es excelente, no es necesario depurarlos y te permiten crear cosas que hubieran sido imposibles de hacer en una vida normal. Todos los buenos codificadores usan bibliotecas porque le ahorra el producto más valioso: el tiempo.