¿Es difícil programar?
Esta es una pregunta que me hacen muchos no programadores. Esto hace que se sitúe a la altura de preguntas como «¿trabajan los programadores desde casa?» y «¿qué tipo de educación se necesita para ser programador?». Las mentes inquietas quieren saber.
Pero a diferencia de algunas de esas preguntas, ésta es realmente bastante difícil. Es una pregunta sencilla, pero la respuesta tiene muchos matices.
Así que vamos a sumergirnos en ella, en detalle, y a ayudarte a entender si la programación es difícil o no.
¿Es difícil programar? La respuesta corta
Así que, en primer lugar, vamos a abordar la pregunta con una respuesta corta y directa. Esto sentará las bases para el resto del post.
¿Es difícil programar?
Bueno, como les gusta decir a los consultores, «depende». Que la programación sea difícil o no depende de muchos factores, como el tipo específico de programación y la forma en que usted, como individuo, piensa. Así que la respuesta corta es que la programación realmente va desde lo sorprendentemente fácil hasta lo increíblemente difícil.
Piensa de esta manera. Intenta responder a algunas de estas preguntas basándote en tu experiencia:
- ¿Es difícil jugar al baloncesto?
- ¿Es difícil hablar portugués?
- ¿Y conducir un coche? Es difícil?
Puedes ver por qué estoy cubriendo y diciendo, «ehhh… depende.»
La gente tiende a ser demasiado intimidada por la programación
Sin embargo, voy a ofrecer un poco de opinión de calificación. Específicamente, creo que los no programadores tienden a sobrestimar dramáticamente lo difícil que es la programación.
¿Has oído alguna vez a alguien decir algo así:
¡Oh, es que no soy una persona de matemáticas!
Bueno, eso lo oigo mucho. Pero lo mismo escucho sobre la programación más. Y lo considero irónico porque, aunque algunas áreas de la programación realmente requieren matemáticas, muchas no. La programación, en mi opinión, es un conjunto de inquietudes mucho más diverso que las «matemáticas».
Creo sinceramente que mucha gente asume que nunca llegaría a ser programador, pero están completamente equivocados. Es un tema mucho más accesible de lo que el mundo entero parece creer.
Disipemos algunos mitos de la programación, más allá del de las matemáticas
Para llevar realmente el punto a casa, veamos algunos conceptos erróneos adicionales sobre la programación, más allá del mito de que los programadores tienen que ser realmente buenos en matemáticas.
Concepto erróneo 1: Los programadores son hackers de élite, como el tipo de Mr. Robot
Independientemente de tu edad, hay alguna película por ahí de tu época que presenta a los programadores como hackers tipo Bond (o Bond-villano). Para mí, cuando crecí, fue la película Sneakers. Si creciste un poco más tarde que yo, puede que hayas tenido la mala suerte de encontrarte con Hackers o Swordfish. Hoy en día, el género ha mejorado y puede que te guste Mr. Robot.
Pero tanto si la película es impresionante, como Sneakers, como si es terrible, como Hackers, sigues teniendo protagonistas hackers y antagonistas hackers que parecen ser tanto cuasi sociópatas como programadores increíblemente brillantes.
Esto no es la vida real. Ni siquiera es hacking real, y mucho menos programación laboral. Así que no asumas que la programación requiere que muevas cubos por una pantalla, o lo que sea que esté haciendo Hugh Jackman en Swordfish. Por lo general, sólo requiere una gran cantidad de Google.
Misconcepto 2: Usted necesita un grado de Ciencias de la Computación
Hemos cubierto esto con mucho detalle, así que no voy a insistir en el punto aquí. Pero no, no se necesita un título de informática para programar. No necesitas un título profesional, y puede que ni siquiera necesites asistir a un bootcamp.
Todas esas cosas harán que sea más fácil conseguir ese primer trabajo, pero no son necesarias. Así que cuando te preguntas, «¿es difícil programar?», probablemente estás confundiendo los aros por los que tienes que pasar con la actividad. No hay requisitos previos para programar más allá de un Bloc de notas y la descarga de un único intérprete o compilador.
Misconception 3: Los programadores tienen terribles habilidades sociales
Este puede hacer que te rasques un poco la cabeza. Probablemente estés pensando: «¿Qué tiene que ver conmigo la idea de que los programadores tienen terribles habilidades sociales, o con el hecho de que la programación sea difícil?»
Bueno, es sutil, pero real. El mundo ve programas de televisión y películas en las que se puede identificar a los programadores hábiles por su tendencia a ser «frikis».»
Así que la lógica inversa se cuela y piensas: «Si no soy increíblemente torpe socialmente, ¿podría ser un programador ‘de verdad’?»
Sí. Sí, puedes. Los programadores asisten a un montón de conferencias y reuniones, dan charlas, forman comunidades y tienen una vida social estupenda y normal.
Misconception 4: Los programadores son inmediatamente buenos en todas las cosas de la informática
Yo personalmente obtuve un título de informática, y luego un trabajo programando. Y, cuando lo hice, todo el mundo asumió inmediatamente que era un experto en todas las cosas de la informática.
- Erik, mi ordenador está haciendo este extraño sonido-¿qué crees que está mal?
- Oye, estoy recibiendo el error #90314 cuando intento cerrar MS Word. ¿Qué significa eso?
- ¿Cuál de estas tarjetas de vídeo es la mejor?
Todos estos eran los tipos de preguntas que escuchaba. Y básicamente, me limitaba a buscar la respuesta en Google (si no decía «vaya, realmente no lo sé»). Me ganaba la vida escribiendo software, pero eso no significaba que lo supiera todo y cualquier cosa sobre ordenadores.
Menciono esto porque no debes pensar que necesitas saber todo y cualquier cosa sobre ordenadores para ser programador.
Hay mucha variedad en la programación
Habiendo roto algunos mitos, veamos la realidad de la programación. Y la realidad es que es bastante variada. He aquí sólo una pequeña muestra de las cosas que la gente hace bajo el paraguas general de la «programación»:
- Diseñar el diseño y las propiedades visuales de una página web.
- Crear algoritmos de inteligencia artificial.
- Secretar tareas manuales para automatizarlas.
- Modelado estadístico complejo.
- Construir aplicaciones móviles simples y repetibles.
Y eso es sólo una pequeña muestra de los diferentes tipos de programación. Ni siquiera aborda todos los diferentes roles que podrías ocupar y que contribuyen en estos esfuerzos.
Hay tanta variedad en «ser un programador» como en «ser una persona de negocios.»
Algunos roles de programación son más accesibles
Dada esa variedad, me gustaría profundizar un poco en qué roles podrían parecer más accesibles.
Voy a alejarme un poco del espectro «de fácil a difícil», sólo porque eso depende mucho de lo que tú, como individuo, encuentres difícil. Por ejemplo, siempre me han ido muy bien las matemáticas y los algoritmos, pero soy francamente terrible en el diseño y la maquetación. Puede que tengas inclinaciones opuestas y pienses que es ridículo decir «programar un algoritmo de ordenación es fácil» y rebatirlo con algo que yo encontraría igualmente ridículo: «maquetar una bonita página web es fácil»
Así que entiende que no estoy llamando categóricamente a las cosas fáciles o difíciles. En lugar de eso, estoy señalando cosas que podrías no haber considerado, si sólo hubieras pensado en la programación como algo altamente matemático.
- Algunas personas en funciones de programación se centran en gran medida en el diseño y la experiencia del usuario. Esto significa preocuparse mucho por la estética de la aplicación, así como por la forma en que los usuarios interactúan con ella.
- Otros programadores se centran principalmente en los datos y las bases de datos. En lugar de construir grandes piezas de software utilizando instrucciones complejas, se centran mucho más en los datos reales y el razonamiento sobre esos datos.
- Otra disciplina está más cerca de las operaciones y el apoyo. Algunas personas trabajan un buen rato con ordenadores como «usuarios avanzados» y aprenden a programar aprendiendo aquí y allá cómo automatizar y hacer más eficiente lo que hacen manualmente.
Y esos son sólo algunos ejemplos. Así que comprenda que, aunque la programación le parezca difícil, puede haber funciones dentro de ella que en realidad le parezcan más abordables.
La programación es, sin embargo, alienígena, lo que puede significar que la programación es difícil
En este punto, me gustaría cambiar un poco de marcha. Tengo la sensación de haber dedicado un buen rato al tema «oye, programar no es tan difícil como crees». Y eso es cierto. Creo que mucha gente respondería a la pregunta «¿es difícil programar?» con un «sí» simplemente porque no saben lo que implica la programación.
Pero voy a matizar un poco eso. La programación es difícil en el sentido de que te pide que pienses de una manera a la que no estás acostumbrado.
Para entender lo que quiero decir, piensa en tratar con Alexa.
Alexa puede responder a un montón de preguntas tácticas, y te deleitará y sorprenderá a veces. Pero también es muy frustrante. Su carácter informático se manifiesta a veces cuando malinterpreta de forma cómica la interacción humana básica.
Ahora bien, ten en cuenta que, en lo que respecta a los programas informáticos, Alexa está completamente optimizada para hacer todo lo posible por entenderte. Tienes que ser extremadamente preciso, literal y obtuso mientras hablas con ella, y ella está ahí para entenderte.
El compilador (la cosa que traduce tu código en acción) es como Alexa, pero no está diseñado para hacerte la vida más fácil. Está diseñado para maximizar la utilidad. Así que si tienes que ser preciso al tratar con Alexa, preciso ni siquiera empieza a describir lo que el compilador quiere. Confundir un punto y coma con dos puntos, y puedes estropear un ordenador.
¿Así que programar es difícil? Sí, en el sentido de que requiere que usted piense de una manera que la mayoría de la gente normalmente no piensa.
Programar el estado del arte es legítimamente difícil
Para continuar con el tema de «sí, la programación es difícil», consideremos que hay bolsas del mundo de la programación que requieren mucha habilidad y práctica para entrar. No hay que darle demasiadas vueltas. A veces programar es realmente difícil.
Hacer cosas avanzadas con la robótica, la cadena de bloques, la inteligencia artificial, los algoritmos de trading, etc. requiere mucha habilidad, práctica, talento y empuje competitivo. Algunas de las grandes empresas de Silicon Valley pagan sueldos descomunales a los desarrolladores de software, y no lo van a hacer por cualquiera que pase por allí.
Hay especialidades en el mundo de la programación que requieren un rayo en una botella, en el sentido de que necesitas práctica, talento, inteligencia y suerte. Y más allá de eso, hay roles, posiciones, retos y situaciones que no mucha gente puede cumplir adecuadamente. La programación puede ser bastante dura.
Como todo lo demás, tiene un amplio espectro
Pero, al final, realmente varía. Piensa en lo que dije al principio.
¿Es difícil el baloncesto? No, si te refieres a «¿puede cualquiera coger un balón y lanzarlo hacia una canasta?». Sí, si te refieres a «¿cuáles son las probabilidades de que Golden State me fiche para jugar junto a Steph Curry?»
¿Es difícil hablar portugués? Bueno, probablemente no si has nacido en Brasil o Portugal. Pero probablemente sí si tienes 70 años y nunca has hablado nada más que japonés.
Entonces, ¿es difícil programar? Sí y no. Sí, es difícil hacerlo a un nivel de élite o en un área altamente especializada y competitiva. Pero no, no es difícil empezar. Y ciertamente no está más allá de ti.
Este post fue escrito por Erik Dietrich. Erik es un veterano del mundo del software y ha ocupado casi todos los puestos en él: desarrollador, arquitecto, gerente, CIO y, finalmente, consultor independiente de gestión y estrategia. Esta amplitud de experiencia le ha permitido hablar con todas las personas del sector y escribir varios libros e innumerables entradas de blog en docenas de sitios.