

Javier Méndez
A mediados de los años 80 tuve un paso fugaz por la facultad de ingeniería de sistemas de la Universidad de los Andes, pero me tomó pocos meses descubrir que escribir código era mucho menos apasionante que escribir artículos. Desde entonces pienso que la tecnología es más divertida cuando se la disfruta desde afuera que cuando se la sufre desde adentro. Llevo más de 30 años escribiendo sobre tecnología, primero en El Tiempo y desde el 2010 en ENTER.CO. Ahora también puede ver mi contenido en video en mi canal de YouTube (www.youtube.com/@JavierMendezTech).
View all postsYou may also like
104 views
3 min read
158 views
4 min read
Ciencia
NASA adelanta Artemis II: cuatro astronautas viajarán alrededor de la Luna en febrero de 2026
124 views
3 min read
26 comments
Relacionados
octubre 23, 2025
octubre 9, 2025
septiembre 25, 2025
septiembre 16, 2025
septiembre 15, 2025
septiembre 10, 2025

Creo que la mayoria sino todos de los que colocaron son en ingles por lo que si se pretende que desde el colegio se les enseñe a programar ya va mal la cosa. En Miriadax hay cursos en español ya que es de España https://miriadax.net o en la misma pagina del SENA hay tambien cursos para aprender a programar.
El problema de enseñarles a programar desde el colegio es que se ve es como un negocio por parte del estado y de Microsoft porque son los que ofrecen eso y la idea es que desde pequeños esten casados con las tecnologias de Microsoft, si les eneseñaran cosa como C, Java, Python, PHP o bases de datos como MySQL, SQLITE, Posgress etc seria bueno pero todo lo que les dan es lo de Micrsoft para hacerlos dependientes de ellos
Con lo de programación del SENA te quedas en CERO. Busca cosas mejores, en google hay cursos desde Cero Completos.
los cursos del SENA no son tan malos como aparentan, pero para el trasfondo digital sí que están desactualizados: quizás aprender C++ y Java no sea suficiente, pero se inicia con algo. Yo ya los hice hace más de 4 años y todavía mantengo el material de aquella época.
Tiene razón en su comentario, Tuxerito. Entre los sitios recomendados me faltaron opciones en español. Gracias por los que sugiere y todos los que conozca y quiera recomendar son bienvenidos.
En realiad si menciono 1 en español y por eso dije “Creo que la mayoria sino todos de los que colocaron son en ingles” que en español seria los de Platzi pero he visto algunos de esos cursos(de los grautitos algunos videos) pero aveces son mas carreta que contenido sobre todo los de Freddy entonces por eso no lo cuento.
De los sitios que usted menciono, hace tiempo hice algunos cursos en Edx, Coursera, Code school y son muy buenos, por lo menos a mi me gustaron sobre todo por la forma de enseñar y de presentar las pruebas. Tambien he hecho algunos cursos en Udemy(Ingles y normalmente son de pago pero se consiguen aveces gratis algunos).
no recomiendo ruby ni python (apreciación personal). esos lenguajes se volvieron populares, pero por las razones equivocadas, así como sucedió con el basic hace algunos años. resulta que muchos (incluyéndome) aprendimos con el basic, peroc ogimos malos hábitos como el goto. y se volvió popular porque venía incluído en el dos, y ven´´ian juegos de ejemplo en basic. luego amedida que prueba otras cosas se da cuenta que está haciendo las cosas de forma equivocada, y que hay mejores opciones
El cuento con estos es que por ejemplo, asíc omo el basic que yo le daba una instrucción y la ejecutaba interpretada sin pasar por compilación de todo el programa, o que simplemente indentando ya construyo bloques de código, esos uena práctico porque puedo ver los resultados de inmediato, igual que con el basic, pero eso no signifiva que salgan cosas como deben ser. un espacio no es la forma más adecuada de marcar un bloque, aparte que es arbitrario, y que lo de sacar resultados rápidos no es una buena política si se están haciendo proyectos en una empresa. cuando ud corre un programa de nómina no lo hace con un prototipo hecho a partr de ensayo y error, sino con algo que tuvo qué ser planeado y discutido, y que tuvo qué pasar por un proceso. así que porque voy ensayando y va saliendo, eso no es una razón pata hacer en esa herramienta el programa que va a correr los procesos de la empresa. por otro lado no mencionan a c++. de pronto c++ tiene fama de complicado, pero c puro no, y si aprende uno luego el otro es un paso más. en cambio, cada que alguien saca un aparato nuevo, lo primero que saca es el compilador de c++. supongamos que ud quiere hacer juegos. si nintendi saca unanueva consola, hay algfunas posibilidades para hacer juegos para esa consola. una posibilidad es usar una plataforma como el unity, que es una herramienta de desarrollo multiplataforma; es decir, ud hace el juego en el lenguaje que la herramienta le diga, y con hacerlo una vez, le queda hecho para varias plataformas (como celulare, playstation etc) y sólo tiene qué hacer el desarrollo una vez. pero eso dependa que alguna compañía saque esa plataforma y le dé soporte, y además está sujeto alo que esa herramienta pueda hacer. si ud usa unity, está sujeto a hacer los juegos con lo que el unity esté en capacidad de hacer. y si quiere sacar su juego para nintendo y unity no exporta para nintendo, pues no le sirve esa herramienta. por otro lado, sin depender de este tipo de herramientas, que son prácticas para unas cosas pero no para otras, cuando cualquiera saca algo nuevo, sea un procesador nuevo, uns istema operativo nuevo, una ueva consola de videojuegos, lo primero que saca es el compilador de c/c++, que de hecho en unix es un comando dels istema (gcc). no es lo mismo que usar una herramienta multiplataforma como unity, pero eslo quemás se le parece, y no está sujeto na los términos comercia,es (que si la herramienta le dice qe ud les debe dar unporcentaje, o si sólo lo puede publicar bajo x condiciones), y ud con el tiempo va desarrollando su propia plataforma. obvio conmucho más trabajo, pues unmity y otros le dan la mitad ya hecho. si quiere hacer juegos, al hacerlo en c/c++ le toca todo desde elprincipio. si quiere hacer juegs le gtoca hacer su prpio motor gráfco, y sus propias librerías del motor físico, o usar librerías que otros ya hayan hecho. y le toca mantener sus libreríaspara los nuevos aparatos que vayan saliendo. pero digamos que es más universal, y que no va a depender de si alguna herramienta saca para ese aparato, o esperar a que por fin la herramienta exporte para tal aparato. y que ud tiene completo control delo que está haciendo
VooDooChicken, gracias por esa explicación tan completa. Quisiera preguntarle algo. ¿Me podría enviar su correo a mi dirección? ([email protected]). Un saludo.
Yo inicie con Basic y despues con Visual Basic hace muchos años.
Creo que no debepende de que lenguaje se enseñe sino que se enseñe bien porque si se le enseña bien a una persona esa persona en el futuro ira probando nuevos lenguajes ya que con tener buenos fundamentos se va a poder desempeñar en otras tecnologias, si se les eneseña mal es cuando se quedan casados con un solo lenguaje y usandolo mal.
Python no creo que sea tan malo, hay que tener en cuenta que es multiplataforma e incluso funciona para web entonces si alguien aprende Python va a poder aplicarlo en diferentes SOs y tambien para escritorio o web incluso Google lo tiene dentro de los lenguajes soprotados para la nube en AppEngine o por ejemplo es soportado en proyectos como KDE y tambien para desarrollo con QT.
Tambien hay lenguajes web importantes muy utilizados que no son compilados como por ejemplo PHP e incluso JavaScript entonces no todo lo interpretado es malo, incluso JavaScript que paso de ser del lado del cliente ahora tambien se usa del lado del servidor y muchas empresas lo usan y lo promueven como Google con Angular
lo siento, pero me perdiste luego del cuento de nintendi… tanto dar vueltas para llegar a nada :-/
Soy analista de sistemas desde el año 2006, me catalogué como el mejor programador de la clase, pero desde las prácticas me fui por el lado del soporte técnico de hardware y software, lo que demanda mucho tiempo pero poco suedo. Sé que tengo un gran talento para el análisis y la estructuración de datos, pero no he tenido la oportunidad de engancharme con alguna empresa porque piden experiencia. Me encantaría trabajar para una empresa donde pudiera adquirir más conocimientos y adquirir la experiencia necesaria.
Soy analista de sistemas desde el año 2006, me catalogué como el mejor
programador de la clase, pero desde las prácticas me fui por el lado del
soporte técnico de hardware y software, lo que demanda mucho tiempo
pero poco sueldo. Sé que tengo un gran talento para el análisis y la
estructuración de datos, pero no he tenido la oportunidad de engancharme
con alguna empresa porque piden experiencia. Me encantaría trabajar
para una empresa donde pudiera adquirir más conocimientos y adquirir la
experiencia necesaria.
ya somos 2…
El artículo tiene dos enfoques diferentes…. El primero es aprender a desarrollar software y ganarse la vida de esa forma. El otro es el de aprender a programar. Por supuesto para desarrollar buen software es necesario ser un buen programador.
Pero programar no es lo mismo que desarrollar software. Programar no tiene nada que ver con conocer un lenguaje de programación o un framework de desarrollo. Saber programar es una forma de pensar, es analizar un problema y abordar soluciones desde diferentes perspectivas. Desde ese punto de vista en los colegios si deberían enseñar a programar. Y por supuesto aprender a programar en el colegio no implica que los estudiantes tengan que elegir una carrera de ingeniería o computación.
Desde el punto de vista de desarrollo de software, mi recomendación es aprenda a programar bien. Si no lo hace se convierte en uno mas del montón, las mejores ideas que ud pueda tener sobre un servicio en la nube o una app para un smartphone van a tropezar constantemente si ud no le enseñó a su cerebro como resolver problemas. Claro… ud puede contratar a un tercero que lo pueda hacer pero ud ya no sería un desarrollador de software sino un gerente, administrador o emprendedor.
Este es un buen punto de discusión. Entrevisté a varios emprendedores, varios de ellos ingenieros de sistemas, y me dijeron que lo que más necesitan las empresas de tecnología del país son programadores, más que ingenieros de sistemas. Pero varios empresarios también me dijeron lo contrario, y en eso coinciden con usted, David: opinan que no basta con saber programar, sino que se necesita la formación que a veces solo tiene un ingeniero de sistemas para sacar adelante los proyectos. Está buena su explicación. Gracias, David
Difiero con ese planteamenato, el enfoque de la ingenieria en colombia es muy limitado y para nada actualizado, de hecho los profesores que dan clases en la mayoria de casos no tienen experiencia real en grandes proyectos o siquiera en peuqeños solo se dedican a dar clases y la realidad afuera es muy diferente, un programador es un profesional que necesita estar en constante aprendizaje y eso es lo que marca la verdadera difernecia, un ingeniero recien salido del la universidad no tiene ni idea de lo que les espera, a veces muchos salen pensando que salen a gerenciar y otros no aprenden a programar en la universidad si no afuera cuando ya sienten la necesidad de hacerlo.Con respecto a las startup tienen un enfoque mas fresco e innovador que una empresa tradicional por ende no les interesa que el que desarrolle sea ingeniero al contrario para eso estan las pruebas que se les hacen al aspirante para determinar que tan buenos son por otro lado las empresas tradicionales confian mucho en el diploma del aspirante, no quiero decir que todos los ingenieros afuera sena malos de hecho hay muchos y muy buenos pero tambien hay muchos programadores actualizados y mejor capacitados que ingenieros graduados por eso grandes empresas que han llegado a Colombia no les interesa un ingeniero si no personas con capaciades y experiencia y ante todo con la disponibiliddad de aprender y medircele a retos que no habian visto antes y sobre todo que no enseñan en ningun otro lado solo el que aprendes en tu dia a dia.
Si esa es la realidad. Por eso digo que una cosa es programar y otra muy diferente desarrollar. Conozco algunos estudiantes (desafortunadamente muy pocos) que son mejores programadores que muchos profesionales con experiencia, personas muy inteligentes que entrenaron el cerebro desde muy jóvenes.
Como ud lo dice desarrollar software se aprende trabajando en proyectos reales no en el aula. Desarrollar un excelente producto o servicio necesita experiencia. Pero la experiencia es una cosa que la universidad nunca le va a poder dar.
Sin embargo, un equipo de desarrollo debe ser balanceado. Entiendo, que por ejemplo el director de desarrollo deba tener experiencia. Pero el programador (el soldado raso) no necesita mucha. Alguna vez estuve a cargo de evaluar empleados y no me importaba la universidad, ni la experiencia. Resulta que con una simple prueba en donde el aspirante tenía que plantear un algoritmo para resolver un problema, ud ya podía tomar una decisión. Las personas que planteaban el algoritmo adecuado demostraron integrarse mucho más rápido al equipo y asimilaban mucho mas fácil las herramientas y los frameworks de desarrollo.
Empero no obstante, la realidad es muy multiuniversal y bastante dispareja. A los que estudian ingeniería en sistemas se les “vende” la idea de que pueden abarcar un mundo más amplio que el de computadoras; las empresas en cambio solicitan únicamente profesionales que estén “duchos” y “emperifollados” con la programación como tal. Por lo tanto, las vertientes van en caminos opuestos.
Sería muy útil para todos los lectores de ENTER.CO saber qué otros sitios web gratuitos sobre programación que ustedes conozcan vale la pena revisar. También sería muy valioso su aporte sobre con qué lenguaje de programación les parece que se debería comenzar, ya sea por su importancia hoy en día o por su sencillez. Les agradezco sus aportes. Un saludo cordial
por la sensillez, hay lenguqjes como eiffel o pascal. vale aclarar que se trata de lenguajes declarativos, como lamayoría de los lenguajes. es decir, funcionan ud diciendo una instrucción, y el computador ejecuta la instrucción. esto también implica que el computador no hace suposiciones; es decir, un lenguaje sencillo no significa que ud no le explica claramente lo que quiere hacer, y el aparato supone el resto, o que ud sólo tiene qué hacer una parte y el programa hace el resto. si ud quiere algo, sea en el lenguaje que sea (si es declarativo), no hay magia. el computador no puede suponer lo que ud quiere hacer si ud no le dice explícitamente. lo que s erefiere alenguaje sencillo es que son lenguajes claros con una sintaxis bien definida, y sin embargo son suficienteemnte potentes para hacer prácticamente cualquier cosa. tambien está el actionscript, el de flash o el de adobe. hay países como inglaterra, donde entre los 80 y principios de los 90 salieron varias compañías de renombre principalmente de jóvenes que hacían juegos caseros,c on el computador que los papás le regalarond e navidad (generalmente, el zx spectrum), y sin embargo se volvieron grandes empresas. si no es excel, uno de los grandes motivadores para aprender aprogramar son los videojuegos. la ventaja de flash es que así como el unity, es un ide. es decir, hay un lenguaje de programación, pero ese lenguaje de programación (actionscript) se combina con otras herramientas que van incluidas en la plataforma, con las cuales ud puede hacer un dibujo, y luego con el lenguaje, ud le dice cómos e mueve ese dibujo en la pantalla. flash ya no se está usando para cosas web (o mucho menos frecuente que lo que se hacía hace algunos años, por la mala prensa que le dieron otras compañías que uqe´rian competir o que teníanc onflicto de intereses con el flash), pero sís e usa para aplicaciones móvile, y junto al unity, posiblemente son las herramientas multiplataforma más usadas para este propósito
por otro lado, si es para entrenar para la vida real, ni el eiffel ni el pascal se usan en la vida real; aunque podrían, ya que son lo sufcientemente potentes y completos para la mayoría deproyectos, pero simplemente no son populares. para esto, se puede comenzar con el c puro. el c puro puede hacer lo que cualquiera de los anteriores. la gente se empieza a echar para atrás con la cuestiónd e los apuntadores, los mallocs (manejo de memoria) ye sas cosas; sin embargo, para lo que se hace en algo como pascal, en c sería muy parecido. por otro lado, aprender con java es casi que aprueba de errores, pero para eso no sólo e s necesario aprender la idea del flujo deprograma y las condiciones y los ciclos; también es necesario aprender el concepto de objetos. sin elc oncepto de objetos simplemente no es posible aprender en java (y tal vez en eiffel tampoco, ya que sehizo precisamente para implementar la idea de programación por objetos). si la persona no tiene el concepto de condiciones y ciclos de iteración, emnos va a empezar con objetos.
por otro lado, si es para juegos y no quiere empezar con flash, la alternativa es el javascript (html5) que es lo que todos dicen y promueven como el salvador que nos va a liberar del malvado flash. empezar con html5 para hacer lo que se haría con flash puede ser un descalabro. el html5 no es un estándard, y hacer algo en html5 no significa que vaya a correr en todas partes, o que en todas partes corra igual. no todfos los navegadores lo corren igual o soportan el mismo conjuntod e instrucciones, o en todos los navegadores se les dicen las cosas de igual manera; demanera que, haciendo a un lado que la sintaxis de html5 es mucho más complicada que la de flash, que se parece a los lenguajes declarativos conocidos, normalemnte un programa de html5 primero le pregunta al navegador qué tipo de navegador es. si es de tal marca, le dice que haga las cosas de cierta manera. si es de tal otra marca, le toca ejecutar las cosas deotra manera. para alguien que apenas quiere empezar, eso sería lo más frustrante; andar adivinando cómo hacerlo para un navegador o por que no le corre o las peripecias para hacerlo para el navegador que él o ella está usando para probar las cosas. y apesta. por otro lado, en html5, que se edita con el block de notas o si tiene suerte con la misma herramienta que usa para editar el flash, ya que es una cuestiónd e uns cript hecho en un programa de texto, para los dibujos no es tan simple como usar la línea de tiempo de flash y llamra por frames (o cuadros de animación). acá los dibujos y los estados de unmulñeco que se mueven, son zonas de dibujo en una misma gráfica, y luego llevar la cuenta del pedazo de dibujo que hay qué mostrar, en vez de simplemente decirle muestre tal dibujo, o tal personaje en tal posición. si es el futuro como lo pintam, la verdad complicaron bastante el futuro, pero ya nos tocó así
si es para salir a ganar plata, php y java (si aprende java aprende c#, que le copió todo a java)
Con cuál lenguaje empezar…… la otra vez mi novia me dijo que le enseñara a manejar, pero mi carro es automático y le dije que era mejor que aprendiera en uno mecánico…. ella me dijo que no le importaba, que si ella compraba un carro iba a ser automático…… Y creo que tiene razón en cierta forma….
Si ud no asistió a una carrera formal de ingeniería de sistemas y quiere aprender a programar, puede ser realmente doloroso aprender a programar con C++ o Java. Principalmente xq para entender el conceptos de compilación, apuntadores, objetos, clases, buffers, paso de parámetros por referencia…. usted necesita teoría la cuál no es fácil de asimilar fuera de las aulas.
Mi consejo es…. primero aprenda JavaScript. No necesita instalar IDEs complicados o instalar compiladores. Todo lo que usted necesita es un editor y un navegador… los cuales seguramente ya están instalados en el computador de su casa.
Una vez esté familiarizado con JS….. es hora de saber si le gusta programar o sólo fué un antojo. La mejor forma de saberlo es con un juego. Vaya a “play . elevatorsaga . com” Si completa el 70% de los niveles siga con su sueño, sino, es tiempo de evaluar la posibilidad de asistir a la U o dedicarse a otra cosa.
por cierto, si sabe ingles y no quiere aprenderlo…. olvide la programación.
#thatstrue #sotadicho
En esa lista les faltó Rails Karate, es un sitio web para aprender gratis a hacer web apps, recomendado
Interesante articulo, pero mas alla de eso bastante necesario, concuerdo con la innegable necesidad de aprender a programar para luego aprender a desarrollar, igualmente el ingles es recurso que se debe tener si o si almenos poder leerlo sin mucho problema, pues es en este idioma donde estan los mejores contenidos educativos al respecto, hablese de libros, manuales, documentacion de los lenguajes, etc…
Me permito dejar un sitio bastante bueno, lo recomiendo muchisimo: http://www.theodinproject.com
(Cabe resaltar que esta en ingles)
Es estudio autodidacta puro y duro.
La pregunta filosófico-existencialista que hay que hacerse es: ¿cómo llenar los puestos de trabajo si las empresas, al menos las de acá en Venezuela, piden una cierta experiencia que las universidades no otorgan de forma completa? Más allá de dominar determinados lenguajes de programación, la experiencia humana (como ser proactivo, actuar normal bajo presión, que de por si es un bien más que escaso, saber cumplir periodos de entrega, saber trabajar correctamente en equipo, poder conocer el entorno laboral actual, y un largo etc).
Muy buen artículo, sugiero otro sitio para aprender html, css y javascript, en inglés, totalmente gratis https://www.freecodecamp.org/ , incluso dan certificados.
En cuanto a editor de texto recomiendo Visual Studio Code: https://code.visualstudio.com/