Cuando se está iniciando en el mundo de la programación, todos tratamos de tomar información de cualquier lado para poder mejorar, y para esto usamos videos, noticias, blogs, artículos, libros, ChatGPT, y muchos recursos más. Pero algo que ya deberías tener en cuenta es que no toda la información es completamente útil, y muchas veces se generan mentiras que pueden afectar a los que recién empiezan, lo que los hace perder el tiempo o incluso los más experimentados se frustran.
Así que en este video me gustaría mencionarte 20 mentiras muy comunes relacionadas a la programación que puede que te hayas creído en algún momento y que quizás deberías replantearte esta creencia.
¡Vamos a empezar!
1. "Solo necesitas saber programar para ser un buen desarrollador"
Es obvio que el rol fundamental del desarrollador es escribir código, pero si bien puedes conocer mucho de tu lenguaje de programación, esto está muy lejos de ser lo único que necesitas, porque en un proyecto tienes que resolver problemas, claro usando tu lenguaje, pero el diseño de la solución viene antes.
Es decir, implementar sistemas de autenticación, sistemas propios para migrar datos, análisis de datos, o incluso puedes llegar a necesitar implementar dependiendo de tu grado de especialización servicios de la nube, o sistemas de análisis de datos, y todo esto es más que solo escribir código.
Ahora no digo que debas aprender todo esto, sino que dependiendo del proyecto muchas veces también necesitas pensar primero en sistemas y soluciones antes del código, que es la parte de llevar a cabo el sistema a la realidad.
Así que sí, bien invierte tiempo en programar, pero también aprende diseño de sistemas, esto ayudará a ser un mejor desarrollador y volverte un experto en un área incluso. Conocer un lenguaje no garantiza éxito en todos los proyectos; diferentes proyectos requieren diferentes enfoques y tecnologías, y muchas veces necesitar pensar primero cómo funcionan antes de escribir tu primera línea de código.
Puedes ver en más detalle en mi video Conceptos mayor que código.
2. "Una vez que aprendas a programar, siempre tendrás un trabajo seguro"
Es cierto que en el área tech hay mucho trabajo por hacer, y siempre hay demanda de desarrolladores de todo tipo, así que el aprender a programar es una habilidad requerida a este punto, pero no creas que saber programar en un lenguaje ya te da trabajo fijo, porque como el área va cambiando mucho, siempre aparecen nuevas herramientas, y lenguajes y demás, que necesitas estar al tanto de su existencia.
Simplemente porque si muchas empresas empiezan a adoptarlas y tu trabajo depende de estas herramientas, te verás forzado a aprenderlas, así que siempre debes estar al día con las noticias, porque de hecho es también tu trabajo ser competente en lo que haces y esto incluye al menos tener una noción de cómo va evolucionando tu sector.
Y esto por supuesto también te dará una ventaja, porque cuando cambien tu área de trabajo podrás adaptarte y poder seguir trabajando sin problemas.
3. "Los mejores programadores no necesitan ayuda"
Sé que programar puede llegar a parecer un trabajo solitario, es decir, solo pasas tiempo en tu computador y enfocado en terminar tus tareas, pero lo cierto es que muchas veces habrán retos nuevos y de hecho cuando se empiezan es cuando más lo necesitas, así que no tengas miedo o te sientas inferior por pedir ayuda, todos podemos preguntar a un jefe de proyecto, a un amigo más experimentado o si trabajas remotamente, aprende a usar las plataformas para responder preguntas como StackOverflow, Github Pages, comunidades de Discord.
Por ejemplo, muchas veces cuando trabajo con plataformas o estoy implementando algún sistema de algún país lejano al mío prefiero entrar a comunidades como Discord o foros y saber si alguien ya desarrolló ese sistema para darme una idea, algunas veces pueden darte más información de la que esperabas.
La idea de pedir ayuda es de hecho no perder tiempo en un problema que quizás alguien ya solucionó.
4. "Más líneas de código significan más progreso"
Sé que programar lleva escribir código, al igual que crear una historia o un libro necesita que escribamos mucho, pero a diferencia de libros gordos donde se demuestra que el escritor escribió o trabajó mucho, en programación es justamente lo contrario.
Porque muchas veces una pequeña porción de código que puedes escribir hace exactamente lo mismo, que cientos de líneas. Así que el escribir muchas líneas no es sinónimo de productividad o calidad. En mi caso cuando recibo estos días código de programadores, la gran parte del trabajo es quitar código en lugar de añadir, y esto principalmente es por el uso de herramientas de ChatGPT, o GitHub Copilot que su trabajo es cumplir con una tarea, pero no tienen problemas en generar código muy extenso.
Esto ayuda a que tu código sea fácil de leer, y te obliga a estructurar tu proyecto.
Como Leonardo da Vinci decía:
“La simplicidad es la sofisticación definitiva"
5. "Aprender un lenguaje en tiempo récord"
En internet el tiempo es oro, todos quieren programar pero nadie quiere pasar horas estudiando, así que con esta idea en mente, es fácil que te puedas encontrar libros como:
- Aprender a programar en 1 hora, en 1 día, en una semana, en 2 semanas, en un mes, y así.
De hecho esto no es solo en libros, también en cursos en plataformas de educación y videos de YouTube.
La razón es simple: es un título llamativo para que compres o veas el contenido, pero deben tener muy en cuenta que así sea 3 meses o más, el aprender a programar no solo es comprar un libro y aprender de memoria lo que te enseñan allí, y esto es porque el libro no tiene todo el contenido.
Y es simple, tú puedes aprender la sintaxis de un lenguaje, puedes memorizar y repetir, pero es difícil que en este tiempo crees algo útil, es decir, te faltará la experiencia, cosa que solo tendrás cuando crees proyectos, y aquí muchas cosas pasan: errores, desactualizaciones de código, bugs difíciles de encontrar, y esto es lo que hace que te conviertas en un programador, más que el solo saber escribir en un lenguaje. Entender código es una cosa; resolver problemas es otra. La experiencia es clave para ser efectivo.
6. "Necesitas dominar matemáticas para programar"
Hay una entrevista en la que Bill Gates, y otras personas que trabajan en el sector, mencionan algo muy cierto: para programar no es necesario saber matemáticas a profundidad, o hacer ecuaciones o usar cálculo como quizás te pidiera la universidad.
De hecho, la mayoría de programas que usas a diario hacen cálculos de sumar, restar, multiplicar y dividir, algo que es muy común que pueden saber muchos al terminar la escuela.
Por lo que no se necesita ser un genio para crear aplicaciones, de hecho, yo llevo desarrollando mucho tiempo, y gran parte de proyectos se llegan a trabajar solo con operaciones básicas como sumas y restas, para calcular fechas, sumar montos de pagos, crear contadores que suman de uno en uno, y así. De hecho, hasta las mismas instituciones financieras como bancos o empresas de inversión usan cálculos sencillos con fórmulas básicas, y ellos trabajan con números todo el tiempo, además de estadística.
Así que si quieres ser un desarrollador de aplicaciones no es necesario que te presiones mucho en este tema de las matemáticas, porque solo llevarás cosas que entenderás fácilmente.
A menos claro que quieras ser un ingeniero de machine learning, y crear tus propios modelos desde cero, lo que sí es otra cosa y eso lo pueden ver en el Roadmap que hice dedicado a Machine learning. Pero esto no es para todos, y siempre deben tener en cuenta que a futuro pueden seguir aprendiendo mucho más, porque el aprendizaje, como ya deben saber, no terminará.
7. "No se necesita aprender a programar debido a las IA"
Ok, este es un tema relativamente nuevo, principalmente porque con todas las herramientas que generan o autocompletan código, muchos principiantes creen que el generar un jueguito en unos cuantos archivos sea programar, pero en la práctica está muy lejos de lograr que estos tipos de software reemplacen a un programador de lejos, de hecho esto lo trato más a fondo en el video Vale la pena seguir programando, que desde ya les digo que sí vale la pena, y es un campo con mucho futuro, buenos salarios, y sobre todo que cuando trabajes en un entorno de verdad verás que GPT tiene unos límites grandes, aunque esto no resta lo útil que realmente es.
El resumen es simple: los servicios de IA no reemplazarán a programadores, así que sigan estudiando tranquilos, y usen las herramientas para potenciar su aprendizaje y hacer cosas más complicadas.
Todo el hype que ha habido estos dos últimos años, debido a la novedad de estos servicios, y a la enorme promesa y generación de contenido, ha hecho pensar que las máquinas que piensan como un humano ya están aquí, lo que está aún bastante difícil de lograr. Lo que tenemos son solo muy buenos algoritmos de autocompletado y generación de texto, que están aún lejos de ser todo lo que hace un agente realmente inteligente o también llamado AGI (Artificial General Intelligence).
8. "Todo tu código tiene que ser performante"
Es ideal que todo el código de software que escriban sea fácil de leer, use las mejores técnicas, use la sintaxis moderna de tu lenguaje, además que tenga un excelente rendimiento. Pero claro, esto no es fácil de lograr siempre, porque a veces solo tienes que hacer una pequeña funcionalidad pero quizás es más complicada de la que esperabas, así que con que funcione, muchas veces basta, pero lo ideal es que no se quede con ese código siempre, sino que tienes que mejorarlo.
Y menciono esto porque si todo lo que escribes en un proyecto es código con bajo rendimiento, creas algo llamado una Deuda Técnica, lo que quiere decir que luego tendrás que pasar mucho tiempo reescribiendo código para que se ejecute más rápido o simplemente consuma menos recursos del computador.
De hecho, estos días con el GPT veo que los desarrolladores generan más deuda técnica que antes, porque como muchos solo están copiando y pegando, sin revisar, están generando mucho código que luego tendrás que refactorizar, o hasta estoy empezando a ver módulos y proyectos que tienen que ser reescritos porque tienen tanta deuda técnica que es mejor hacerlos desde cero, otra vez.
Así que para que evites perder tiempo, sí prioriza la resolución del problema antes de obsesionarte con la optimización, pero no acumules mucho código a optimizar o tu proyecto lo puede pagar caro en tiempo a la larga.
9. "Cuantos más lenguajes domines, mejor programador eres"
Cuando muchos empiezan a programar creen que deben aprender todos los lenguajes más populares para ser considerados un buen programador, pero lo cierto es que aprenderlos todos sin ninguna razón no tiene mucho sentido, porque cada lenguaje tiene un uso en un contexto, por ejemplo, si eres desarrollador web frontend aprender JavaScript es requerido, si eres backend quizás lenguajes como Python, Go, Node.js, PHP pueden ser buenas opciones o si quieres enfocarte en entornos empresariales aprender C# o Java sería mejor opción. Así que siempre escoge el lenguaje que más se adapte a donde te vas a enfocar.
Todos los lenguajes tienen su propósito, y necesitas tiempo para ganar experiencia en ello, así que decide muy bien cuáles vas a dedicar horas de estudio.
No es necesario conocer muchos lenguajes, sino dominar los que realmente necesitas para tu campo. Aprender lo necesario es más valioso que tratar de conocer todos los lenguajes.
10. "Debes trabajar muchas horas para ser un buen programador"
Existe la idea de que ser un buen programador requiere trabajar largas horas, incluso noches y fines de semana. Y no me lo tomen a mal, a mí me encanta mi trabajo, y me gusta aprender cosas de software, y el pasar mucho tiempo programando o crear proyectos es algo bastante divertido de hecho.
Pero lo cierto es que cuando trabajas en un proyecto de alguna empresa o para un cliente, vas a pasar repitiendo el mismo código, así que ten cuidado en generar una rutina y que esta te termine aburriendo. Porque no es lo mismo programar por gusto propio, que programar por trabajo.
De hecho, este último año he pasado programando alrededor de 8 horas casi todos los días en distintos tipos de proyecto, y en un punto he llegado a estar muy cansado de continuar. Esto también tiene un nombre que es el burnout, y genera toda una serie de dificultades en tu forma de vivir.
Así que no se los recomiendo trabajar de esta forma, lo mejor en mi opinión es tener una buena organización y también planificar el descanso, teniendo días en donde no programes, y los días que tienes que trabajar dale un par de horas al descanso para que no te satures, también el hacer ejercicio, practicar un deporte, aprender un instrumento, leer, escribir, caminar o básicamente variar con cualquier otra actividad te ayudará a estar muy saludable mentalmente.
Así que el equilibrio entre vida personal y laboral es clave para mantener la salud mental.
11. "Si no usas las últimas tecnologías, estás desactualizado"
Lo genial de internet es que hay muchas personas inventando muchos programas, frameworks todos los días por lo que es prácticamente imposible dominar todos. Así que por más que mañana salga un nuevo framework o una nueva biblioteca, no te emociones de inmediato en reemplazar tus lenguajes, frameworks, bibliotecas o SDKs que ya venías usando en lo nuevo solo porque te lo están vendiendo como la última solución.
Porque puedes perder mucho tiempo, dinero y ganas de trabajar en código solo por dejarte llevar por opiniones.
El tema con las herramientas nuevas es que no hay mucha información al inicio, muchas veces tienes que rehacer cosas tú mismo cuando en otras alternativas ya están hechas esas soluciones o a veces simplemente la herramienta es más complicada que otras soluciones, así que debes tomar en cuenta todo esto antes de decidirte a lanzarte por una herramienta nueva.
Lo ideal sería esperar a que la herramienta nueva madure un poco, quizás un año o más, y ver cómo la industria va dando referencias positivas y negativas. Todos los años sitios como Stack Overflow, por ejemplo, lanzan encuestas de las opiniones de todo esto, y siempre es bueno darle un vistazo rápido para saber si vale la pena considerar usarla, y sobre todo para decidir si la tecnología es adecuada para el problema que estás resolviendo, en lugar de simplemente seguir las tendencias.
12. "Es mejor empezar desde cero que trabajar con código legado"
Hay muchos programadores que cuando empiezan a trabajar en un proyecto nuevo, prefieren evitar el código legado, pensando que es mejor empezar un proyecto desde cero porque podrán hacer las cosas bien desde inicio o simplemente quieren entender mejor cada parte, pero lo cierto es que muchas veces no es posible hacer esto, hay proyectos que son muy grandes que solo la reescritura o el reinventar lo mismo lleva tanto tiempo y un costo mayor.
Así que si trabajas en un proyecto conjunto ya sea de empresa, open source o incluso los tuyos propios, no creas que hacer todo desde cero siempre es bueno, porque hay veces que si un sistema ya funciona y parece que seguirá funcionando buen tiempo, es mejor ocuparse de funcionalidades más prioritarias, o ir mudando de a pocos a un proyecto nuevo.
Haciendo que tengas que planificarlo mejor, y también ir moviéndote de forma segura a un sistema con código más actualizado.
13. "Los programadores introvertidos son mejores"
Hay un estereotipo de que los programadores que son introvertidos o trabajan solos son más productivos, y no necesariamente. Ahora, en la práctica a mi modo de ver, muchos programadores sí tienen esta personalidad de ser una persona introvertida o como decían en la serie cómica Silicon Valley, pareciera que tienen como una especie de síndrome de Asperger.
Lo que les da esta personalidad de "genios incomprendidos" que escriben cosas complejas.
Pero lo cierto es que no es necesariamente importante desarrollar una personalidad basada en este estereotipo. La programación es una actividad que beneficia enormemente de la colaboración, y las habilidades interpersonales son tan importantes como las técnicas. Además, si tienes una idea y quieres que esta funcione para vivir de ello, o quieres mantenerte desarrollando durante mucho tiempo, tendrás que comunicarte muchas veces con personas que no son de tu rubro y tendrás que plantearles qué es lo que resuelve tu programa o proyecto.
Así que el saber tener una conversación normal es vital para que también puedas convertirte en algo más que un desarrollador, sino en alguien que va aprendiendo de otros procesos del software que también son vitales para crear proyectos a gran escala.
De hecho, esto también se plantea en la serie Silicon Valley que les menciono, donde el personaje es un ser bastante hermético y poco comunicativo, pero que a medida que su software puede convertirse en un proyecto a escala global, tiene que desarrollar otras habilidades sociales que lo convierten en algo más que un programador.
14. "La programación es una ciencia exacta"
Se piensa a veces que la programación es algo totalmente lógico y sin espacio para la creatividad, como si fueran matemáticas o física, lo cierto es que el escribir código no requiere de un conocimiento técnico tan avanzado, de hecho hay muchos niños, y personas jóvenes que se sienten atraídos por la profesión al ser bastante dinámica, es decir, puedes tener una idea de resolver algo, y puedes usar tus habilidades en algún lenguaje para diseñar y crear una solución.
Lo que también pide que tengas algo de imaginación para crear la interfaz, un buen gusto por saber resolver problemas de forma simple y también la creatividad para plantear un nuevo enfoque.
Esto hace que la programación también pueda ser vista como un arte, donde muchas personas pueden usarlo para más que solo escribir lógica, sino también para transmitir ideas. Esto lo pueden ver mucho mejor en software que genera gráficos, o procesan audio para generar música, o código que genera gráficos en 3D, videojuegos, o incluso en usarlo para crear hardware como pueden ser pequeños robots o aplicaciones de domótica, donde la creatividad y la innovación juegan un papel crucial.
Conclusión
En resumen, muchas de estas "mentiras" pueden afectar a los desarrolladores que están iniciando, quizás desmotivándolos o quizás limitándolos a probar ciertas cosas por miedo a que tienen una idea errónea de ciertos temas, así que la importancia de desmitificar estos conceptos para tener una visión más clara y realista de la programación, es importante para poder seguir mejorando como desarrolladores.
Si ustedes tienen otro mito, déjenlo en los comentarios y esto les puede ayudar a muchas otras personas que creo que también necesitarían de sus opiniones. Nos vemos en un siguiente video.