Participa en la conversación

137 Comentarios

Participa en la conversación, deja tu comentario

  1. jaja, a mi me gusta lo de la programacion, y tengo pensado sentirme satisfecho cuando logre programar algo para mi celular… esa es mi meta… pero me falta mucho por recorrer todavia…en fin.. c es mas dificil de lo que parece, ademas como todavia estoy estudiando, los conceptos de limite y logaritmos se me complican bastantes…

  2. Bueno yo no postulare un lenguaje si no un programa para empezar con la programacion, se trata de «scratch» ideal incluso para niños de 8 años en adelante, en Google pueden mirar bien de que se trata pero les hare una pequeña introduccion de lo que es;

    Se programa a travez de bloques, que se colocan secuancialmente, ya en cada bloque se colocan parametros, por ejemplo hay un bloque esperar y este se le puede escribir el tiempo de espera (mucho mas facil que si le decimos a alguien que cree un hilo y luego invoque sleep).

    En fin los bloques se traducen a varios idiomas y este bloque «esperar» en ingles ya dira «wait» e incluso esta traducido a arabe.

    Este es el mejor inicio para ya meterse a un lenguaje donde toca manejar sintaxis y todo lo demas que implica, aqui las animaciones se hacen de manera muy sencilla y todo esta en lenguaje mas cercano al natural y no en ingles que ni siquiera es nuestra lengua nativa.

  3. Cuando era chico yo aprendí a programar en un lenguaje llamado Just BASIC por mí mismo. Bueno, me guié un poco por los programas que trae como ejemplos y por la ayuda que el programa tiene (la cual, eso sí, está en inglés).

    Es un lenguaje sencillo y, como su nombre lo dice, básico. No hace gran cosa, y dibujar gráficos o crear un videojuego puede ser de lo más complicado, pero se pueden crear fácilmente programas como calculadoras, diccionarios, agendas o programas para el manejo de bases de datos (yo hice muchos, principalmente para organizar información de algunas personas, como teléfono o email).

    Además, es totalmente gratuito y se puede descargar desde la página oficial. Lo recomiendo siempre para todos los que quieran iniciarse en el mundo de la programación.

  4. Hace poco comentaba algo similar con un amigo. Si se trata de buscar un lenguaje con el que los niños puedan aprender las estructuras básicas de programación optaría por un IDE en un entorno gráfico online y multiusuario. Tranquilos… pongo un buen ejemplo: LSL (lenguaje de programación de Second Life, que es similar a Java), Y estos son algunos de los motivos de mi elección:

    1- Los entornos gráficos que incorporan un IDE permiten crear y manipular entidades, creando unos ejemplos mucho más prácticos, enriquecedores y desde luego entretenidos.
    2- No creo que ningún niño (ni adulto) disfrute creando el típico Hola Mundo en modo texto, pero si con un código casi igual de complicado para girar una puerta (un prisma) al tocarla en Second Life
    3- Otra de las ventajas es la interacción online con otros usuarios (niños y/o profesores) manejando un avatar, escuchando, hablando y escribiendo… compartiendo la experiencia y haciéndola más enriquecedora y divertida
    4- Es lo más parecido a un juego de niños que he visto en programación

    Posiblemente a más de un programador le parezca una locura… no es un lenguaje muy habitual, no tiene utilidad, etc. Sin embargo, son niños… disfrutaran y aprenderán, ya tendrán tiempo si les interesa de aprender algún otro lenguaje ya sea Java, PHP, Phyton, etc.

    Os dejo un enlace con este ejemplo para que podáis opinar
    http://www.youtube.com/watch?v=5CuqWC-1w88

  5. A mi me gusta mucho la idea de acercar la programación de computadoras a personas sin conocimientos técnicos, ya sean niños o personas que poseen otro tipo de intereses y conocimientos. Considero que les ayudaría a ser más eficientes en sus actividades en la computadora, las cuales cada vez son más frecuentes y mayores.

    Una vez un compañero comentó algo muy interesante: Que en las primarias debería hacerse algo similar a lo que hacen con la música: Enseñarnos sobre el tema con una herramienta sencilla (flauta en nuestro caso) para que tengamos una idea más clara sobre que trata. Con esto yo veo un par de beneficios, uno es que ya tendríamos una idea más clara al elegir una carrera relacionada con la computación (muchos se equivocan bastante al elegir estas carreras) y otra es que la gente no especializada respetaría y valoraría el trabajo de los informáticos (que tanto hace falta), así como hoy se admira a músicos y artistas debido a que sabemos lo difícil que es realizar esas actividades.

    En cuanto al artículo, creo que falto investigar sobre el tema, ya que sí hay herramientas para que los niños aprendan a programar, ya te mencionaron Alice (que yo no conocía) y también están Scratch, SimpleJ, los robots lego programables, y quien sabe que tantas otras, por ello yo estoy seguro de que aprender a programar hoy es mucho más sencillo que hace varios años.

    Aunque si tu intención era generar discusión/conversación sobre el tema pues se ha logrado muy bien. Es bueno ver que se tratan estos temas. Saludos.

  6. LULZ a los que dicen C# u Objective-C. Atarse a una compañía es lo peor que puedes hacer. En lo personal, yo programo en objective-C pero si pudiera hacer todo mi trabajo en un lenguaje más universal, sin duda lo haría

  7. Hablando de mi experiencia, que es de lo que me funcionó y creo que para el proceso mental de empezar a ‘saber programar’ (que no es lo mismo que ‘saber programar en-x-lenguaje’) sería algo como lo siguiente:

    1.- Aprender algoritmos: Esto es para aprender a abstraer problemas en la mente, razonar una solución y plantear la solución en términos de pasos consecutivos, que a final de cuentas es la ‘medida’ más pequeña de la programación. Un ejemplo de esto es utilizar diagramas de flujo para la resolución de un problema.

    2.- Implementar la solución en x lenguaje: Para esto, yo propondría Pascal. ¿Por qué? Pascal es un lenguaje de paradigma estructurado, funcional, en el cual el foco es en implementar los algoritmos y a pensar de forma estructurada y ordenada en la solución de problemas, sin adentrarse mucho en conceptos avanzados como lo son manejo de memoria (C,C++) u Orientación a Objetos (Java). Otro beneficio es la familiaridad con los tipos de los datos. Pascal es más que suficiente para resolver problemas básicos e intermedios (incluso avanzados, pero para entonces querrás moverte a algo más sofisticado).

    3.- Bajar un poco al nivel de la máquina: Esto es, utilizar un lenguaje que permita acercase más a los ‘fierros’ como el CPU, RAM, locaciones de memoria, etc. Esto es para conocer que hay ‘tras bambalinas’ de un lenguaje de ‘alto nivel’ (alejado de los fierros, más familiar con el lenguaje humano, ej: Pascal). Dar este paso una vez que se tenga confianza y los conocimientos de resolver mediante lógica y programas un problema complejo.

    4.- Conocer otro paradigma de programación, más específicamente POO (orient. a objetos): Dar este paso también es un cambio de mentalidad muy grande, en donde se verá la programación de una forma totalmente diferente. Una vez dominando esto, digamos que el programador puede ver aumentado su ‘poder’ ‘decenas’ de veces, lo cual permite hacer un sistema altamente complejo, y sin embargo muy sencillo de mantener y mejorar, cosa que sería prácticamente impensable en un paradigma estructurado (basado en funciones). Un lenguaje ideal para implementar POO, es Java.

    *Durante esta etapa, mantenerse alejado de tecnologias como Basic y Visual Basic, PHP y lenguajes similares, ya que por su excesiva flexibilidad fomentan el desarrollo de malas prácticas de programación.

    Ya de aquí siguen los patrones de diseño, arquitectura de software y tecnologías de las diferentes plataformas (web, movil, desktop, etc) teniendo cada una su propio ámbito de conocimientos, entre otros; pero esto aún es muy temprano para alguien que va comenzando.

    Para alcanzar capacidades básicas para fines recreativos y solución de problemas ‘caseros’, paso 1 y 2 son suficientes. Paso 3 y 4 ya puedes incluso conseguir algún trabajo de nivel básico.

    Buen post, uno de estos de vez en cuando no estaría mal, sobre todo introductorios para diferentes lenguajes.

    1. De acuerdo contigo, excepto en el tema de ensambladores que aunque no sea obligatorio conocerlos por que la mayoria usa lenguajes de alto nivel, es bueno para saber que pasa detras de un if, por ejemplo.

      Saludos.

  8. Definitivamente apuesto por pascal, que además fue creado para facilitar el aprendizaje.

    Después de todo el pascal y el C son primos hermanos, incluso con sus punteros a memoria, principal carencia que achacan los programadores C al pascal, más bien por falta de conocimiento, o porque lo han oido… o llevan oyendo desde los 90…

    Con lo cual recomiendo el pascal como puerta de entrada a todos los demás lenguajes…

    Con respecto a los diagramas de flujo que leia en algún post, he de decir que después de 20 años programando (profesionalmente) me siento capacitado para decir que son una meméz tan grande como los conjuntos en mates en el cole… Cada uno se hace su estructura o su diseño como quiera, no es necesario emplear un DIAGRAAAAAAMA para manejar una serie de lógicas…

  9. Cuando yo empeze a programar en la escuela me dieron en toda la cara con C y se me dificulto mucho, pero fue lo mejor que me ha pasado para lograr comprender mas facilmente algunos otros, yo igual pienso que Qbasic es bueno para empezar.

  10. mmm creo que andan un poco perdidos (incluido tu, Charlie). Para aprender a programar (ya que esa es tu pregunta), C++, C#, Java, en si cualquier lenguaje que cubra los basicos de programacion orientada a objetos (que es el paradigma mas extendido en estos dias) son tan buenos como el que esta aprendiendo.

    Estan confundiendo el aprender a programar con el aprender un lenguaje de programacion.

    En fin, siempre he dicho, si fueras programador ya supieras programar… o lo que se llama ser autodidacta.

    Saludos

    1. No, estamos hablando de aprender a programar como hobby, para hacerte un par de scripts de vez en cuando y a lo sumo una aplicación sencilla. C, C++ y Java requieren conocimientos demasiado avanzados para ser aprovechables en ese sentido.

      1. Pues creo que para hacer un par de scripts no basta con saber para que sirven un for o un if, tambien hay que tener un poco de logica, y en mi humilde opinion, cualquier lenguaje es bueno para ejercitarla y enfocarla a la programacion.

        Saludos

  11. De los mejores lenguajes que hay es el Visual Basic por su simpleza.
    El mejor entorno que hay de este lenguaje es el de Gambas, muy popular en GNU/Linux

  12. Perl es un lenguaje muy curioso, discreto pero con cual se puede hacer prácticamente todo. Se programa en procedural, en funccional y en objeto, y tiene la mas grande libreria que se puede imaginar. Como programador web utilizo sobre todo php por su flexibilidad en el manero del html. Pero cuando utilizo Perl me encanta, es un lenguaje tan flexible que permite hacer las cosas de varias forma, no te impone nada. El hecho de que funciona a la veces como C y Shell hace que se puede hacer cosas increibles facilemente, manero de imágenes, de videos y de todo tipo de archivos. Siempre me sorprende la libertad y el poder que te da este lenguaje. Aunque tiene fama de ser elitista, no es cierto porque rápidamente de diviertes.

  13. Hola,

    En vez de proponer, deberías preguntar

    No es cierto que ahora sea más difícil aprender que antes, todo lo contrario

    Lo que es necesario es elegir el lenguaje

    Para aprender no son buenos Java, ni C, ni C++…

    Sí son buenos LISP, Scala, Erlang, Haskell

  14. Buenas a todos,

    Yo creo que para empezar a programar se debería empezar al menos con la algorítmica y las estructuras de datos.

    No estaría de más comprender la arquitectura de computadores y el cómo y el por qué los datos se almacenan como se almacenan.

    También sería interesante antes de comenzar a programar conocer los diferentes paradigmas de programación, funcional, estructurada, declarativa, orientada a objetos… incluso si hablamos de lenguajes COMPILADOS O INTERPRETADOS.

    Vamos, que antes de conducir hay que aprender un poco de teoría y normativa de la circulación.

    Creo que es un grave error el lanzarse directamente a programar sin haber dado al menos un repaso a todo lo anterior, y ello se observa en la actualidad en el bajo nivel de los programadores, que por regla general queda oculto en aplicaciones mediocres sin necesidad de más, pero que en casos críticos como pueda ser la ingeniería de control, o incluso la gestión sanitaria, provocan verdaderas «catástrofes» informáticas, repercutiendo el la visión de la sociedad, y de los mismos profesionales informáticos, de esta profesión tan bonita.

    Y de acuerdo a la línea que argumenta GuilleX, añadir que si uno sabe programar, aprende cualquier nuevo lenguaje con muy poquito esfuerzo.

    Un saludo a todos!

    1. Concuerdo lo de aprender la Arquitectura de las computadoras.

      Realmente es útil, aunque obviamente no todos podrían llegar a estar interesados en aprenderlo (o su Universidad interesada en incluirlo en el plan de estudios).

      Terminás entendiendo mucho de los Porqués de C, además de tener una base más que importante para entender las computadoras y su funcionamiento en general.

  15. A «programar» se aprende mediante Diagrama de Flujos y Pseudocódigo, punto.

    El resto son lenguajes (más simples o más complicados) para hacer lo que dijiste que ibas a hacer en el Diagrama de Flujo o el Pseudocódigo…

    Supongo que el más simple de ellos, por lo menos para mi, fue BASIC. Los conceptos eran simples, y hacer un «Hola mundo» lleva 2 líneas.

    A lo largo de los años he tenido muchos compañeros que recien comienzan, hace 5 años tuve compañeros que aprendieron con Pascal, y les fue bien, y este año arranqué Diseño y Desarrollo de Video Juegos, nos engancharon C sin preguntar, y hay MUCHISIMA gente puteando porque no entienden los conceptos… yo no tengo problemas porque tengo experiencia y entiendo mucho de lo que está ocurriendo, pero mis compañeros muchos no tienen ni idea de lo que es un puntero a memoria y les cuesta entender un poco el uso de Referencias.

    De todos modos, no es un problema del Lenguaje, es un problema de resolución de problemas. ¿Por qué? Uno debe saber resolver un problema mediante un algoritmo, cosa que es casi – diría – un proceso creativo.

    En definitiva, nadie debería aprender un lenguaje, sino aprender a programar.

  16. Yo aprendí un poquito de shell de DOS (por gusto, en mi carrera lo único que te exigen saber de informática es manejar AutoCAD) para hacer cutre BATs que me facilitaran las tareas rutinarias. Después empecé a cacharrear con Visual Basic, pero no me gustó mucho. Descubrí Neobook (en en cierto modo es un concepto bastante similar al Hypercard que comenta el autor, no un lenguaje de programación, sino una herramienta de autor), con el que creé más de un programa «complicado» (bases de datos, sistemas de facturación) para algún amigo y alguno de ellos me consta que sigue en uso productivo y «profesional». Luego miré un poco de LISP, un poco de C, un poco de Java, pero ya estaba demasiado acostumbrado al interfaz+código (los que sabéis solamente VB sabéis a lo que me refiero). Luego llegó la era blog y empecé a mirar las tripas de un PHP Nuke que administraba. Un horror, demasiado flexible… como me decía un amigo informático «que compile -o no tire errores- no quiere decir que esté bien», y ahora acabo de leer esto y creo que, en cuanto tenga un poco de tiempo, le meteré mano a Perl y retomaré el C y el Java.

    Saludos.

  17. Creo que los únicos que no recomiendan Python son los que no lo han usado.

    No obstante creo que todos hemos aprendido Python cuando ya conocíamos otros lenguajes y nos deslumbró su belleza.

  18. Yo empezé con C y la verdad que de no saber nada a aprender a programar fueron 2 dias. La verdad es que de pequeño jugaba con Logo en una MSX, pero no lo veía como programar, sino mas bién en hacer andar una tortuga, xd.

    Si te interesa que aprenda en Logo, aquí tienes un enlace para descargarlo.
    http://www.softronix.com/logo.html

  19. Hola, leí tu post y curiosamente encontré este libro en otro post http://inventwithpython.com/ . Enseña a los niños a programar juegos en Python, desde lo mas básico a lo mas avanzado, yo lo utilizo porque no conosco el lenguaje y me pareció una manera muy divertida de aprender. Espero te sirva, saludos!

  20. ¿Lenguaje sencillo para aprender a programar.. mmm?

    Me parece más que el tema viene no porque lenguaje sea o no sencillo, sino realmente por las ganas que tengas de aprender, la paciencia, disposición y claro está el pensar como hacer que «el computador» te «entienda» correcta y eficientemente.

    Hace algún tiempo un amigo me comentó que quería iniciarse en el área y me preguntó lo mismo, que lenguaje usar? por donde comenzar?. Lo primero que le dije fue que tomara una hoja y me hiciera paso por paso de la manera más minuciosa como sería el proceso de levantarse en la mañana y tomar el desayuno si el fuese un computador; en el momento que terminó trató de ser lo más exagerado con las especificaciones pero aún así habían detalles, por ejemplo:

    1. en que lado de la cama estás?, cuantos giros o movimientos debes dar hacia un lado u otro para determinar que ya puedes levantarte? (condicionales simples)

    2. Si te levantas y tropiezas con algo y caes en el piso como te pararías? (evitar loops infinitos, manejo de errores por medio de funciones auxiliares, planificación del desarrollo)

    3. Si te vas a cepillar y a lavar la cara ¿Cuál es la pasta de dientes? ¿Cuál es el jabón? ¿Cómo debes usarlo? (Base de datos, indicies y tablas relacionadas)

    A pesar de ser un proceso aparentemente sencillo es importante destacar que intervienen una cantidad de factores tediosos de manejar a nivel de desarrollo, es por esto que considero que primero se debe desarrollar la lógica como programador y luego elegir con que vas a trabajar (según lo que quieras hacer), ya que por ejemplo no es lo mismo hacer un app web en Visual Basic que en PHP o no es lo mismo programar una aplicación de escritorio en VB que en PHP.

    El tema es definir que quieres hacer y buscar la herramienta idónea para hacerlo, y bueno el resto es ser «machito», elevar el «cosmos» y entrar en estados de «bersek mental» para poder hacer cosas complejas y que luego de que funcionen te llenen de orgullo xD.

    Aunque si no tienes definido que hacer o como hacerlo y te quieres iniciar con algo que no te parezca complicado, me parece que lo mejor es recurrir a «el lado oscuro» (microsoft), herramientas como VB 6.0 por ejemplo (aunque ya están caducas) permiten crear entornos de trabajo de manera rápida y sencilla y tienen un compilador que te permite hacer depuraciones paso por paso (cosa que me complicó bastante mis inicios con PHP ya que ahí prácticamente hay que inventarse métodos para depurar :P), y claro está tiene algo muy importante que es el factor visual; cuando el usuario tiene un entorno creado (así no funcione) le genera mucha satisfacción (y crear entornos con VB es más fácil que dibujar en Paint xD).

    Aquí les dejo mi último «jueguito» que programé en VB 6.0 hace unos 4 años (tengo uno de trivia de Saint Seiya que ha sido el único juego completo que he desarrollado pero pesa 150Mb :P así que dejo este que era mi segundo proyecto que nunca culminé)

    http://s250528002.onlinehome.us/Piloto.rar

    (Para los interesados) pueden bajarlo y revisar el código fuente, ahí emplee cosas básicas para el juego como ejes de coordenadas y funciones para detectar choque de elementos.

    Saludos ^^

  21. por favor que terrible lo que piensas de ruby, no tan terrible como pensar que esto lo leen miles (tal vez millones) de personas, recibiendo una idea errada de lo que es ruby, en lo personal te recomiendo que si vas a decir algo de esta magnitud lo coloques al menos como «en mi humilde opinion»…»a mi parecer»…

    ojo, no soy un ruby fan, es mas, uso mas c# que ruby, ademas de saber y manejar python, ruby es un lenguaje increible, por lo que lo que mas me molesto fue » Cuando aprendes a programar en Ruby no aprendes a programar en general, sólo aprendes a programar en Ruby»…

    la sintaxis de ruby es muy similar a la de python, su filosofia es mucho mas amplia y eso de decir que solo se parece a smaltalk es un grave error (que demuestra que solo repites de fuentes poco confiables), la virtud de ruby es que se adapta a cada programador, asi pues en muchos casos puedes usar {} y colocar los argumentos de las funciones dentro de parentesis, como lo harias en java, o puedes utilizar el end como delimitador y no colocar parentesis como lo harias en delphi..pascal..etc

    ruby es una joya para aprender pues aprendes mucho sobre otros lenguajes y adaptarse a otro lenguaje despues de el es mucho mas sencillo (algo que cualquiera que use ruby te lo puede confirmar y que es totalmente diferente a lo que argumentas), la razon, ruby se nutre de muchos lenguajes y lo que consigues en otros lenguajes es posible conseguirlo en ruby de manera simplificada, en mi experiencia laboral (pues vivo de esto) los programadores de python son muy similares a los de java, terminan cerrandose a otros lenguajes y se les dificulta adaptarse, practicamente no quieren aprender un nuevo lenguaje luego y quieren hacer todo con pyhon, igual que java.

    ruby no es un programa de juguete, soy ing en computacion y estoy haciendo mi maestria precisamente en el campo de los lenguajes, ruby sin duda es el lenguaje mas interesante que he tocado (sobre java, c#, python, js, php y delphi), este es un lenguaje que puedes hacer todo con lo mas simple y claro(muy similar a python) pero a diferencia de este, no tiene un techo en cuanto a lenguaje, es decir, puedes aprender nuevas y mas practicas formas de hacer las cosas, lo cual varia dependiendo a gustos, pero a mi se me antoja muy interesante el hecho que un lenguaje me de tantas posibilidades y sea yo quien decida, aun asi el lenguaje es tan claro que puedes entender (y disfrutar) viendo el codigo de alguien que lo escribio totalmente diferente a ti…

    creo que la mayor virtud (o no?) de python es su indentacion obligada, esto es muy bonito pero hace que los lambdas como tu los llamas (metaprogramacion), sean una mera curiosidad en python y no una utilidad como puede ser en ruby

    para ponertelo mas sencillo, un programador ruby aprende bien python en un par de horas, porque es lo mismo, en cambio un programador python tardaria un poco mas, pues python no tiene tantas implementaciones como ruby, esto puede ser una ventaja dependiendo del gusto de cada quien, para mi, aprender alguna «herramienta» que tal vez me va a ahorrar muchisimas lineas de codigo es un gusto.

    Ojo no estoy defendiendo a ruby y llendome contra python, ambos son lenguajes magnificos (junto a c# y delphi como lenguajes compilados), el caso es que estoy actuando como abogado del diablo, si estuvieras criticando o exponiendo informacion erronea sobre alguno de estos, seria el primero en criticartelo

    ——————————————————————————————-
    ——————————————————————————————–
    no tengo problemas con que aprendas python, es un magnifico (mas que magnifico!) lenguaje, pero no me gusta que en tus argumentos coloques algo mas falso que billete de 3 pesos…sobretodo cuando muchas personas tal vez buscando orientacion o deseando aprender un lenguaje, entre, vean tu comentario y se decanten de aprender ruby (hay que jugar limpio, si vas a argumentar contra ruby di que es lento, o muy nuevo, poco usado en la industria del software actual, etc…no caer en comentarios desprestigiadores como el que das, si puedes informarte un poco mejor y arreglar tu post se te agradeceria…..)
    ——————————————————————————————–
    ——————————————————————————————–

    1. No estoy de acuerdo en que sea falso. Sujeto a opiniones, tal vez, pero falso no. Yo he conocido tanto SmallTalk como Ruby, y Ruby a lo que más me recordó cuando lo conocí es a SmallTalk y Objective-C, que es de la familia. Estoy de acuerdo en que es tan flexible o más que Python, pero mi principal problema con el es que su sintaxis es muy particular, como pasa con SmallTalk y Objective-C. Pero vamos, lo que estoy diciendo es que era mi segunda opción, tampoco es para ofenderse ;)

      1. bueno me resulta raro que alguien que parece y dice no saber programar mucho conozca a smaltalk y objetive-c, sobretodo smaltalk que es tan «misterioso», tu opinion pareciera mas basarse en cosas que has visto o leido de gente que no conoce ruby

        es bueno opinar y es totalmente valido, claro que ruby se parece a smaltalk porque hereda muchas cosas de el (cosas en principio no tan basicas y que un aprendiz no deberia notar :S), a primera vista ruby es mas similar a python, pero con bloques mas poderosos, es por eso que te decia que los bloques, los lambdas de python son casi mera curiosidad, ya que la indentacion obligada de python hace que los lambdas sean poco efectivos.

        no entiendo por que ves tan raro a ruby, ruby es un lenguaje que es muy sencillo adaptarse pues terminas hechando codigo como te gusta y no como el lenguaje quiere (esto para bien o para mal), lo unico «fuera de lo comun» o que se podria tildar de rarisimo en ruby son los bloques.

        no se por que me parece que lo que te resulta «raro e inutil a la hora de ir a otro lenguaje» son estos bloques y que usar el «each» para iterar te resulta feo al lado del elegante «for» de python, tienes razon, for es mas estetico e incluso mas eficiente (se ejecuta mas rapido, tambien lo puedes usar en ruby) no obstante una vez que sabes sobre bloques (bloques son lambdas en python) te das cuenta que este each es simplemente un bloque y que el trabajo de bloques es tan limpio y sencillo en ruby que incluso un iniciado en programacion aprende a usarlos desde que comienza, se adaptan perfectamente al lenguaje…ahora criticar los bloques de ruby si seria un grave error porque precisamente lo que «envidian» muchos otros lenguajes es este poder y simplicidad que tiene ruby al trabajar con bloques…tanto asi que lenguajes nuevos como groovy o scala han buscado adaptar estos bloques…

        como te dije, es magnifica opcion empezar a aprender programacion con python (mucho mejor opcion que php y js que he visto que te han aconsejado mucho), el hecho es que «denigrar» un lenguaje con una logica tan rara y tan incorrecta (no es porque me guste ruby, es porque realmente lo que dices es muy falso) esta mal y mas hacerlo cuando muchas personas toman como referencia estos articulos a la hora de elegir un lenguaje (lo mejor es bajar un par de libros de cada uno que te guste y aprender lo basico con ellos, lo que aprendes en uno sirve en todos porque es la misma logica, diferente escritura)….

        yo siempre penso que si no fueran por los «testimonios falsos» que dan los pythonistas ruby hoy en dia estaria muchos puestos mejor ubicado en el indice Tiobe, porque muchos de estos argumentos vienen de hechar «una ojeada muy por encima» al lenguaje para criticarlo, o de repetir lo que se escucha….

        para mi python es mucho mejor para trabajar en equipos grandes, por algo lo usa google, su sintaxis rigida hace que el codigo entre programador y programador no sea muy diferente, es muy legible y es ideal para trabajar en proyectos grandes, ruby para mi es el mejor lenguaje de script y proyectos pequeños (personales) cuando se trabaja en proyectos grandes hay que estar muy bien organizado…

        para anonimo «el dia que ruby corra igual de rapido que python ese dia sera el mejor lenguaje de scripting del mundo»…ruby 1.9 es igual o incluso mas rapido que python, es mas rapido que php tambien (sin rails)…

        en fin, para mi es cuestion de personalidad elegir entre python o ruby…mas que una ventaja real que pueda tener uno sobre otro, la diferencia es de feeling…el hecho que no me agrada es que digas que no se parece a nada…(los bloques no se parecen a los bloques en otro lenguaje, pero es que ningun lenguaje tiene bloques iguales, ademas los de ruby son los mas claros y digeribles)…mas bien diria que ruby se parece a todos los lenguajes, porque toma cosas (buenas y malas) de cada uno (recuerdo que decian que era «identico» a perl…al tiempo se dieron cuenta que era un error decir eso porque lo mas parecido era el uso del @ y en el nombre de algunos metodos, ademas de la versatilidad para escribir codigo de muchas formas diferentes)

      2. Aunque no sepa programar en Ruby ni Objective-C no quiere decir que no conozca los lenguajes. E insisto en que me parece infinitamente más bonito Ruby que Python, pero que encuentro más adecuado para un principiante Python. Estoy de acuerdo contigo en que Ruby tiene menos uso del que merecería, y que se adapta mejor a cómo tú quieres escribir el código, pero precisamente pienso que eso, a la hora de aprender como hobby, puede ser contraproducente de primeras. A largo plazo no, pero de primeras sí.

  22. Pascal es hermoso, tiene un nivel de complejidad medio-bajo y es fácil de comprender. BASIC (su variante QBASIC) es muy seco. Adoré LOGO en su momento (por ahí de la escuela secundaria, tendría yo unos 12 años)

    Pero algo es un hecho: Se debe aprender primero programación estructurada antes que POO, al menos en mi punto de vista.

    Talvez la POO bajada a un nivel raso sea comprendida por un niño (como en el ejemplo de Ruby ó en Java) pero pienso que los fundamentos de la programación de IFs, FORs y Whiles es fundamental.

    Habla un programador de C, C++, Java, MATLAB, Visual Basic, Assembler y…. creo que hasta ahí jaja

  23. A ver, para programación de vez en cuando (cosas de scripts y eso) yo prefiero Perl sobre cualquier otra cosa. Me han dicho muchas cosas buenas de Python, pero hasta ahora no he encontrado nada en Python que no se pueda implementar en Perl (scripts y programas rápidos) o Java (programas mas complejos), que es el otro lenguaje que manejo continuamente. Prefiero esos dos sobre los otros que manejo: C++, PHP, JavaScript, VIsual Basic y Brainfuck (si, en serio este ultimo)

  24. uff ni cuantos recuerdos!! yo aprendi a programar en Qbasic jajaj en los 90s en mi colegio

    despues con C en la Universidad… y hasta ahora no quiero volver a saber de programacion por que los lenguajes se han echo muy complejos y abstractos …

  25. aun recuerdo mi primer codigo en pascal me sentia yo como un dios al hacer pequeños ciclos

    Pd este tipo de post dejen muchos comentarios ya saben por donde ir XD

  26. Lo que sería genial es que publicaras algo para introducir a la programación del lenguaje que creais sea el mejor para principiantes, no sé la sintaxis básica o algo así. A mí por lo menos me encantaría. Saludos y suerte con el blog que es genial.

  27. Definitivamente Processing!!!!

    Miraroslo http://www.processing.org , lenguaje muy visual, compilador fácil de usar y basado en Java, pero mucho más fácil. Pensado para artistas que no tienen mucha idea de programar ;) .

    Me quedo con este sin lugar a dudas.

  28. Hablar es gratis. Lamentablemente veo que muchos opinan desde sus propias limitaciones.

    Coincido con Python pero por razones distintas a las que da el autor. Lo peor que se puede hacer cuando uno participa en procesos de aprendizaje (es una ilusión pensar que uno enseña como vertiéramos nuestro conocimiento en la cabeza de otro) es -no transmitir nuestras limitaciones-.

    Python trasciende las limitaciones, la necesidad de especificar información irrelevante como la declaración de variables en la lógica de los programas. Trasciende la limitación de esperar a compilar para ejecutar un programa. Trasciende la necesidad de poner llaves, begin, end, punto y coma y un montón de cosas innecesarias. Trasciende la necesidad de ocuparse de detalles de gestión de memoria, etc. Trasciende a la necesidad de pensar exclusivamente en términos de un único paradigma de programación. Y siempre, siempre, que se llegase a necesitar algo adicional, se programa en C o C++ y se enlaza a Python ipso-facto de forma indolora y segura. Incluso programar en C para Python ayuda a pensar en buen código C.

    La dificultad de iniciarse en Python es mínima y el potencial de crecimiento es el máximo. Python se enseña en una fracción de tiempo en comparación a otros lenguajes, y permite avanzar en proyectos hasta 10 veces más rápido que en lenguajes como Java. No se trata de lo que sea capaz de aprender un niño en particular, que es infinito, se trata que si cuentas un número de horas a la semana para enseñar informática en el colegio obtendrás el máximo rendimiento por cada minuto invertido en Python. Y si eso se extrapola a una estrategia nacional, y al futuro desempeño como profesionales la diferencias son abismales. La India ya esta haciendo planes de enseñar masivamente Python en Ciencia e Ingeniería, cuando los incrédulos se enteren todo será demasiado tarde.

    1. Excelente punto: el tiempo-aula se aprovecharía mejor con Python, y no en detenerse en las minucias. Cuando el alumno ya ha comprendido los paradigmas, que se preocupe por los cambios de sintaxis y requerimientos del siguiente lenguaje que vaya a aprender.

  29. A mi Java se me hace muy sencillo y compacto, después de entender algunos principios básicos. Lo complejo es aprender a usar todos los «agregados», ya que es un lenguaje muy extensible. Ya con los objetos que trae de «nativo» no terminas de aprender a usarlos nunca.

    Sin embargo, concuerdo con lo que menciona «Alec Eiffel», aprender C es como aprender a manejar standard. Por lo tanto se me hace de las mejores opciones.

  30. Pues yo aprendi en C , y pase a C# y .NET y ya Java….y bueno la cosa es acostumbrarse pero en un curso lectivo puedes hacer ya grandes cosas….y en el segundo ya dominar enlaces con datos, y demas interacciones etc….nose…xD

  31. «. Sin embargo, parándome a pensar, es mucho más difícil para un niño aprender a programar hoy que cuando yo lo hice.»

    una afiramcion realmente ridicula.
    Te propongo que buques algo sobre OLPC y sugar. o plan ceibal.
    Tienen programas para eseñarle a programar a niños de 10 años

  32. Eso me recurda a una conversación que tuve hace tiempo. Hace unos años con MS-DOS o Windows 95 y con practicamente todos los SSOO que había, el hacking era una gozada. En W95 con un programilla en C podias ller todo el contenido de la memoria y modificarlo a tu gusto. Hoy en día es imposible e intentar tomar el control de una maquina es exponencialmente mas complejo. Y si hablamos de un Spectrum o similares, con unos pocos conocimientos era mas que suficiente.

    Para aprender a programar Java no esta tan mal, no tienes que aprender como funciona la memoria para empezar a programar y es bastante intuintivo al principio. En la primera clase de Java que des ya puedes hacer una calculadora sin problemas. El peor para aprende es posiblemnte C. Primero de empezar con C tienes que saber bastante sobre como funciona la memoria y toda la aritmética de punteros.

  33. En gustos se rompen generos…

    Python sin lugar a dudas es el mejor lenguaje para aprender a identar pero de arranque no me gustaría ya que se crearían muchos programadores que no entienden la diferencia entre 4294967295 y 4294967296.

    Java es muy lento y tan arriba de la plataforma que corres que para hacer «algo» se requieren las famosas clases nativas.

    C# y en si todo la famila de MS, la verdad enseñar esto es amarrar a una compañía tus conocimientos, paso con IBM, pasara de nueva cuenta con Microsoft y en un futuro no muy lejano con Apple… vamos a perder el control de nuestro propio software y todo terminara siendo a ver que saca X empresa para integrar nuestra base o bien para considerar un upgrade a la version siguiente.

    Smalltalk.. fue un lenguaje diseñado para el aula y para maximizar las bondades de la OOP, no me opongo a enseñarlo pero si a que se les enchumbe cuando vivimos en una epoca de multiples paradigmas.

    Ruby… el lenguaje hoy por hoy mas lento del mundo, no se ni como lo consideran, podra estar muy bonito pero ptyhon e inclusive perl le ganan en velocidad, el dia que ruby corra igual de rapido que python ese dia sera el mejor lenguaje de scripting del mundo.

    PHP… Demasiado orientado a web, no puedo criticarlo hace su trabajo bien pero me gustaria que se dedicaran a resolver los problemas latentes de php5 en lugar de llorar por «pendejadas» en php6.

    Pascal… huele a ruco, solo se pide en competencias de programacion pero en su caso asi es mejor aprender C de una vez, pascal ya tiern años que no llama y ni se enseña, si en tu U todavia lo enseñan exige reembolso.

    C… Viejo añejo, progamador que no sabe C o su extension: C++, no es programador.

    Ensamblador… la base de todo, los verdaderos programadores lo deben al menos conocer programar en el es muy dificil a menos que claro estes desarrollando compiladores te encantara.

    Y sobre el topic, para aprender no hay mejor lenguaje que nuestro lenguaje natural, me molesta que en la notan no hablan de algoritmos o pseudocodigo, mis primeros pasos en la programacion fueron aqui luego cuando aprendi a pasar mis ideas a la maquina empeze a aprender lenguajes de programacion.

    Saludos

  34. Bueno, yo no soy experto ni nada pero he programador en varios lenguajes desde hace varios años y sin duda Pascal / C es la mejor elección.

    Para justificarlo, es fácil, después de esos los demás lenguajes parecen un juego de niños y la potencia es increible. Dispones de múltiples plataformas y después de muchos años se sigue usando como el primer día.

    Desde luego, no son los mejores para hacer las aplicaciones de hoy en día pero si para establecer la base de lo que podrás llegar a desarrollar.

    C, junto a DirectX, OpenGL, SDL, allegro, etc… establece una potencia muy alta en un lenguaje sencillo, claro y estructurado y que permitirá que establezcas, si aprendes a programar bien, tu propia dificultad.

    Y para los que empiezan… dos libros: «aprenda C como si estuviera en primero», y «c con clase». Simplemente magníficos.

    Espero que os sirvan y ánimo, en España la programación no está muy bien remunerada pero en el extranjero…. si, y mucho.

  35. Porqué obvias la plataforma .NET de Microsoft??

    Yo aprendí a programar en C (en el 2006 y no me fue nada complicado creeme).
    Luego aprendí VisualBasic 6.0
    Despues PASCAL y algo de PHP (aunque ahora ya lo conozco en profuncidad).

    Pero el año pasado con el tema de tener que evolucionar a la Orientación a Objetos pues me decanté primero por Visual Basic.NET , pero al poco me cambié a C#.NET ,un lenguaje potentísimo hoy en día y muy muy extendido.

    JAVA, por su parte, lo ODIO…no por la sintaxis(que es la misma que C,C++ o C#.NET) sinó porque es leeeeento y come muchos recursos, y eso no me gusta.

    En resumen, me sé:
    C <==Aprendí con él, y me ha servido de mucho.
    C++
    VisualBasic 6.0
    PHP
    PASCAL
    VB.NET
    C#.NET <==Para mí de lo mejorcito, tanto en aplicaciones de escritorio como en Web.
    JAVA <===ASCO TOTAL xD

  36. para mi el mejor lenguaje para apernder es c#. este lenguaje recoge los conceptos de programación básica y avanzada. en el se puede desarrollar desde una simple aplicación de consola hasta desarrollo de videojuegos, ademas de que es 100% orientado a objetos.

  37. Python.

    Hace unos años programé una aplicación para la versión Symbian de Python (Lo escribí en la propia aplicación en un Nokia n70) que permitía enviar sms a ciegos con la api de TTS (Para leer lo que se escribía en el texto y en el número para enviar y verificar si lo escrito era correcto), en unas 70 lineas.

    Una tontería con poca utilidad. Pero he comprendido perfectamente lo que quieres expresar con éste artículo.

  38. Cualquier lenguaje es bueno para aprender, lo mejor es aprender bien y practicarlo, igual puede uno comenzar con C, C++, Objetive C, HTML5, Java, C# Pyton, Perl, lo que sea. siempre y cuando uno lo agarre de uso común y aprenda a conocer sus virtudes. Sin embargo hay que conocer bien la naturaleza o entorno donde aplicarás el lenguaje o dicho de otra manera para los interpretes pues sus respectivos interpretes, o los compilados ver y/o analizar las virtudes y/o defectos de los compiladores…

  39. Estoy de acuerdo con ElAlecs de haber conocido Python desde el comienzo de mi carrera, me hubiese ahorrado muchos ratos amargos y tuviera un dominio de programación mayor… Teniendo en cuenta que lenguajes como java (sin desmeritar) me ayudaron a odiar un poco la programación…. Pero bueno viva Python.

  40. Por cierto, yo también aprendí hace como 27 años con el Basic de Sinclair, pero el de la ZX81 (Timex Sinclar 1000 en América) y después el de Commodore. En la universidad vi Fortran :)

  41. Yo hace 16 años aprendí con QBasic, como muchos dicen aquí, pero tiene razón Rafa, es más importante entender los conceptos. (Podríamos decír que hay que aprender en Pseudocódigo)

    Me pregunto qué tan bueno sería para aprender un lenguaje gráfico como LabVIEW (que se usa mucho para interfaces de control industrial)

  42. Yo para cambiar voy a decir Ada. Lenguaje facil de aprender, fuertemente tipado y con el que puedes aprender lo mas basico de forma clara.

    Si el chaval es un poco cabezon, entonces le puedes enseñar ook

  43. Personalmente, para empezar a programar, para ir entendiendo un poco el mundo de la programacion, recomendaria empezar por lenguajes web… me refiero a algo como HTML o CSS (que no se si estos son lenguajes justamente). Y despues, seguir con php y javascript.

    Aprendi a programar con PHP a los… 14 años (claro ya sabia html y css, un poco) aprendi enteramente de tutoriales, videos, de chusmear código de opensources y así. Asique no creo que sea un lenguaje extremandamente dificil. De PHP me fui para Javascript y ahora estoy intentando aprender C y C++ aunque esos si que son bastante duros de entender con tutoriales nomas…

    En fin: Recomendaria empezar por PHP como primer lenguaje de programacion, o talvez algo de javascript.

  44. Igual os parece una tontería, pero yo empecé programando aventuras conversacionales, con algo llamado algo así como ‘informATE’… y me lo pasé pipa.. quizas no tenga nada que ver con otros lenguajes, pero creo que aún así es muy bueno para acercarte a la programación, más aún tratándose de niños, pues puedes ir jugando y probando cada linea de juego que haces..
    Y para los mayores lo mismo, es sumamente divertido..
    En http://www.caad.es hay una comunidad en castellano bastante activa, y muchos tutoriales y juegos hechos por usuarios. Creo que el tutorial que usé yo se llamaba La Torre, o algo parecido, y pasé muy buenas horas con el.

    Un abrazo!

  45. en mi escuela me acaban de enseñar VB una shit :(

    yo queria java pero nadie sabia programar y entonces vb :S

  46. yo empece con VB y después pase por c#.net lo cual casi me hizo odiar la programación por lo las diferencias en las declaraciones y sintaxis(aunque funciona realmente bien) …y el manejo de tipos de variables, pero cuando conocí PHP y JS me enamore y ahí me quedo

    1. De verdad? de C# a PHP te ha parecido un buen cambio?

      perder todas las funcionalidades que posee C# en la versión actual y que incorporará Java en la 1.7 dentro de unos meses?
      una sintaxis cercana a C++ frente a PHP?

      vamos que para gustos colores, pero si me dices que cambias C# por Java o por C++, ok; lo demás es downgrade

      Salu2

  47. Soy desarrollador hace varios años y para aprender a programar, si no es hobby aconcejaria comenzar con C++ o JAVA… Sino lo que les sea mas facil…

  48. Necesariamente tiene que ser un lenguage estructurado para primero comprender flujos de instrucciones, tipos de datos, subrutinas, funciones, antes de meterse con cosas como eventos, librerias, objetos, clases y métodos, o inclusive con cosas mas feas como punteros, encapsulamiento, herencia, y polimorfismo. Yo comence también con qbasic, y en sus tiempos era ideal para aprender a programar (el nombre BASIC es acronimo de «beginner all-propourse simbolic instruccion code»), pero hoy en día quedó obsoleto y sus sintaxis ya casi no son usados por lo que ahora dejaría una curva de aprendisaje mayor para pasar a otras tecnologías a la que dejaba antes.

    Pascal no fue tan orientado para los estudiantes como basic, pero es estructurado y sencillo de aprender, pero ahora no es tampoco tan utilizado, a excepcion de Delphi (que es una version orientada a objetos de Pascal), el cual es muy potente. C es una excelente opcion por que te permite trabajar en paradigma estructudado y en alto nivel, además de que su sintaxis es usada por casi todos demás lenguajes actuales, pero es un poco compicado.

    Java y javascript son relativamente muy sencillos pero son orientados a eventos, y en el caso preciso de Java, todo programa debe ser una clase, por lo que obligaría a entrar a conceptos avanzados desde el principio.

    PHP es fácil también, pero según sé debe de estar corriendo necesariamente en un servidor, y es complicado de instalar.

    De Python sé muy poco, pero no me gusta nada de nada. :P

    1. Podes aprender a programar PHP en tu casa sin un servidor tranquilamente, hay packs de programas como XAMMP que traen PHP y MySQL. Son fáciles de configurar y de usar.

  49. Python: definitivamente.

    Javascript, no lo creo: está pensado para el navegador (aunque se puede usar en algunos otros lugares), y no toda la programación es «pensando en páginas web» ¿o si?

    Cuando tienes la facilidad, C es maravilloso, y «verás la luz» cuando lo aprendas. Pero yo pienso que primero debes ocuparte del proceso de ABSTRACCIÓN y COMPRENSIÓN de los algoritmos, los ciclos, las variables y demás antes que tener que preocuparte por si era variable, *variable, &variable o **variable. Java, C, C++, todos pecan de verbosos y de demasiado bajo nivel (es decir, más «cerca de la máquina» que del humano).

    Recuerden: Java es el COBOL del siglo XXI.
    Y ya que andamos en eso: PHP es el Visual Basic del siglo XXI: atractivo, fácil de usar, con interfases para casi cualquier cosa… pero no te ayuda a aprender buenos hábitos. Es muy útil, y puedes llevar proyectos enormes con él (Facebook, Wordpress…) pero no te deja las bases más sólidas para pasar a otros lenguajes. Una crítica similar aplica para toda la familia BASIC. (Y claro, BASIC sirve para algo más que web, a diferencia de PHP – aunque le hayan hecho una biblioteca para GTK)

    Pascal era excelente para aprender. Pero ¿quién lo usa hoy por hoy? Bueno, si hay una buena base instalada de Delphi (que es Object Pascal) pero no se le ve futuro.

    En Python
    * parece que estás escribiendo pseudo-código, por lo que es muy fácil de LEER (crítico para aprender: leer el código de otros).
    * puedes evolucionar: desde escribir en la línea de comandos del intérprete, para luego hacer scripts lineales, después programar de forma estructurada y por fin programar orientado a objetos. El costo de entrada es bajo, y el potencial muy alto.
    * Hay para todas las plataformas. Mac OS X y Linux lo traen instalado generalmente.
    * Es software libre.
    * Su lema: «con baterías incluidas»: trae bibliotecas para casi cualquier cosa.

    Cargar siempre contigo un PortablePython en una memoria USB en tu bolsillo es algo así como la versión en bits de McGyver :P

  50. IMHO cuando se aprende a programar hay que procurar enfocarse en la algoritmia… y no en las características del lenguaje. En este sentido hay que buscar que el lenguaje sea sencillo más que versátil, que permita expresar algoritmos y estructuras de alto nivel más que permita controlar los detalles, que permita trabajar de forma interactiva con él más que que genere código objeto eficiente. Si encima es un lenguaje con el que se pueden hacer cosas prácticas escribiendo poco… mejor que mejor.

    En este sentido es mejor un lenguaje que no tenga gestión de memoria a bajo nivel y mucho menos aritmética de punteros, que tenga un REPL, que sea expresivo y facilite la legibilidad y que permita trabajar con diferentes paradigmas.

    Creo que tanto Python como Ruby son buenos ejemplos de un lenguaje de estas características (también lo son Smalltalk y Lisp/Scheme su sintaxis es algo más «difícil de digerir»… aunque quizás sea una impresión subjetiva porque está más alejada de los lenguajes «tradicionales» con los que yo aprendí). Ruby tiene un modelo de objetos más elegante (más «ortogonal») e idiomas muy potentes, pero Python es más pero si yo tuviera que enseñar a alguien que empieza creo que también elegiría Python… de hecho es la elección en muchos cursos de iniciación a la programación en muchas universidades y escuelas.

    Desde luego yo descartaría Pascal, C, C++, Java, etc.

  51. Noooo, por favor no menciones Python… es el peor lenguaje que he probado, si se le puede llamar lenguaje. Y lo pero de todo no es que tienes que tenerlo tabulado, sino que por equivocación le vas a dar a un espacio y toda la aplicación se te va a la mierda. Vas a tener que pasarte 3 horas mirando 1000 mil veces el codigo y con mucha suerte encontraras el problema. Para eso prefiero el PHP-GTK que hace lo mismo que python.

    No llevo muchos años programando, pero los lenguajes que mas me gustas son el C/C++, cuando le coges el truquillo es bastante fácil de usar y el PHP, mas o menos un C/C++ con unas gran virtudes. Promete mucho, a ver si algún distribuidor de Linux lo integra el sistema para que sea tan rapido como la plataforma .NET de Microsoft.

    Por lo que he podido ver, hoy en día, una de las características que se espera de un programador es capacidad de modular, sintetizar y un conocimiento basta grande/amplio de POO.

    1. Si te pasa eso, es que no sabes configurar tu IDE. 4 espacios, eliminar tabs, fin del problema.

      Y eso para no hablar de que si tienes un error de indentado, al ejecutar el programa te lo dice, y te dice la línea del error. Difícil, ¿eh?.

      Y para sustituir a python, PHP-GTK, con dos cojones. Lo mismo, mismito hace, vamos.

      ¿Tú no buscarás curro como editor de Apple1040, verdad? X-D

  52. Python:
    print ‘Obviamente python, para mi es el mas facil. Mi madre me enseño en 2 semanas’

    C/C++
    #include
    #include
    #include

    int main()
    {
    printf («Ya ven porque C es mas complicado»);
    getch();
    }

    En fin, Objective-C, C++ y JAVA son los lenguajes que mas uso en mi trabajo y en los cuales tengo un poco mas de 19 años de experiencia.
    Aprendi de mi madre, quien trabajaba para el proyecto RedHat desde 1995 hasta 2003. Ella me enseño cuando yo tenia 12.

  53. Quedaos con este: SMALL BASIC de Microsoft.

    Es OO, estoy de acuerdo con el artículo en que es mas intuitivo, de no ser que hayas programado paradigma Imperativo mucho tiempo y te pongas con Objetos de golpe. Además los objetos y/o resultados que se incluyen en las librerías son no sólo intuitivos como para aprender, si no con resultados visibles para su asimilación (Vaya, que no es un persona.dameTelefono();)

    http://msdn.microsoft.com/es-es/beginner/ff384126(en-us).aspx

    A ver qué os parece!

  54. Lamentablemente yo vivio de la programación hace varios años. Programo en PL/SQL y todo lo que gira alrededor de Oracle jajaja incluso soy DBA Oracle.

    Si no fuera por mis otras actividades… Musica y Kendo…. habria preferido ser Zapatero jajaja

  55. yo escogería Blitz o Blitz3D, es una mezcla de Basic y C, y está completamente orientado al desarrollo de juegos, la ventaja es q a la hora de ejecutar la aplicación, es muy visual lo q el código hace, en pocas palabras, vuelve la programación muy divertida

  56. Yo lo último que me podía platear en mi vida era aprender a programar. Hasta que leí este post, que me han entrado las ganas. Tan sólo quiero gestionar mi blog, mejorarlo, hacer cosillas sin depender de otro.

    Sabiendo que soy más de letras que de números, ¿qué me aconsejais?

    Muchas gracias por adelantado.

  57. Articulos como este muestran que la gente que no esta en el tema no deberia opinar…

    Vos decis: «Cuando yo era pequeño aprendí a programar. No aprendí a programar demasiado, y aunque ahora programo un poco por hobby, para una herramienta crítica buscaría un profesional.»

    Listo no hay mas nada que decir, apenas si tenes contacto con la idea de desarrollo y ese es el concepto de fondo y el objetivo, no aprender a «programar»… herramientas hay y muchas, todo depende que es lo que quieras hacer…

    Sin conocimientos basicos de algoritmos y algun paradigma (sea orientado a objetos, funcional, estructurado, logico, etc), no se puede decir que alguien «sabe» programar.

    Las herramientas se crean para desarrollar proyectos que cumplan objetivos de manera eficaz y eficiente, no para que los niños se entretengan, y si se quieren devertir hay incluso compiladores de pseudo codigo gratuitos y muchas cosas mas para que experimenten.

    Me encantaria ver la cara del CEO de Sun si alguien le reclame que con Java un niño no puede divertice… XD

    1. Creo francamente que no has entendido nada del artículo. Lo primero que digo es que, en efecto, soy programador amateur, pero programo, lo hago habitualmente y hay software mío en producción funcionando muy pero que muy bien.

      Por otro lado, precisamente de lo que me quejo es de la falta de herramientas de aprendizaje. No me quejo de que Java no sea adecuado para aprender, sino de que no haya algo equivalente a BASIC como era en mi infancia, y que probablemente lo más cercano sea algo como Ruby o Python.

      1. Tal vez no te haya entendido bien, o tal vez creo tampoco está del todo claro el articulo…o mezclas ideas…
        Herramientas hay y muchas… todos los «Visuals» están hechos para que cualquiera pueda usarlos e cuestión de días y hacer desarrollos simples, incluso hoy por hoy hay compiladores de pseudo código y demás que ayudan al aprendizaje.
        Ahora lo que vos reclamas son herramientas de aprendizaje o herramientas para motivar a los chicos a programar??? La verdad no lo dejas claro…
        Java es muy poderoso pero hay que tener conocimientos del paradigma orientado a objetos… y es justamente porque ahí radica su poder no por capricho de hacerlo complicado!!!
        También te recalco que está mal hablar de lenguajes de programación fáciles y difíciles… en todo caso serian alto y bajo nivel.
        En conclusión disiento de tu artículo, si buscas herramientas hay para todo y seguro más que antes, ahora si lo que se busca es un desarrollo potente hay que saber…

    2. O sea que, según tú, si uno no es chef no puede cocinar ¿ni un sandwichito?

      No todo mundo tiene «proyectos», sino nada más algún problemita que un pequeño programa hecho de manera rápida con un lenguaje sencillo le puede resolver sin tener que aventarse todos los años de estudios y conceptos. No estamos hablando de formar profesionales, sino simplemente de aprender lo más básico para no morir de hambre si no hay un abrelatas.

      Uno muy sencillito que a mí parecer podría sevir muy bien para eso es Rebol ( http://rebol.org ). Puede ser un poco raro para quien se dedica a programar a diario, pero es muy fácil de empezar a usar y hacer script sencillos.

  58. Pues yo que ya tengo una edad, aprendí a programar en Basic con el Spectrum, en los 80, en casita.

    Cuando empecé programación «en serio», allá por el 88, lo hice con COBOL y Pascal, y luego con C y Clipper (Summer 87 anyone??). Recomiendo el C, como ejemplo de programación estructurada, ya que el Clipper estuvo chupado habiendo hecho C.

    Luego pasamos a OOP, y la aprendí con C++, y creo que es el ejemplo perfecto de OPP, y habiendo estudiado estructurada antes, no es nada complejo el abordarlo.

    De ahí se puede aprender lo que uno quiera, aunque el paso obvio hoy en día creo que es irse al Java (quizás sustituyendo a C++, incluso).

    Y aquí nadie ha hablado de algo tan importante como teoría de Bases de Datos Relacionales, que creo que habría que sumar a la programación (a la que sea) para tener un overview útil de la cosa ésta de hacer programas. :)

  59. Mmm… quizas para comenzar con algo bastante basico una buena opción Pascal.. incluso algo de graficos ayudaria bastante a comprender como se pintan las cosas actualmente.

    Saludos

  60. Yo también programo por hobby y la primera vez que escuché y pude programar fue con QBasic en la escuela. Me sirvió para tener las bases de coneceptos como variables, constantes, tipos de variables, etc.

    Luego vino el cambio brusco y sin vaselina a C. Eso si me sacó mucho de onda y la verdad lo pude dominar bien y enteder después de un muy buen rato. Ya de ahí vino Visual Basic y ahí es dónde me quedé.

    1. Yo estoy empezando Visual Basic 2010
      Lo pude bajar gratis y me permitirá usar Macros enExcel
      Todavía me cuesta un poco

  61. En mi primer curso de programación (hace unos 12 años) comencé a «programar» con POV-Ray.

    POV-Ray es un generador de imágenes 3D que utiliza un lenguaje similar a C para declarar los objetos que aparecen en la escena (esferas, cubos, y demás) así como las luces, la cámara, etc.

    Además, el lenguaje contiene elementos de programación como funciones, ciclos, arreglos. Es una forma relativamente sencilla de aprender los conceptos básicos y además muy divertida. Aquí algunos ejemplos de lo que se puede lograr con esta herramienta: http://hof.povray.org/

  62. Yo aprendí a programar en Visual Basic cuando estudiaba en el bachillerato y la verdad era demasiado aburrido.
    Cuando llegue a Ingenieria Electrónica aprendi C y su hijito C++, me gustaron mucho pero tienen razón son algo complicados, debes estudiar muchos conceptos antes de meterte de lleno a programar, como apuntadores, matrices, recursividad, etc…
    Después me cambié a Matematicas, y aun no llevo programación y la verdad no me imagino que lenguaje usaran para eso de teoria de numeros, imagino que C pero no estoy seguro.

    En fin pienso que C y C++ son lenguajes muy confiables que aunque son algo complicados de aprender realmente son necesarios.

  63. Gente, para aprender a programar C/C++ y Java son complicados. Uno que ya esta acostumbrado a esas cosas dice que no es enrredado, pero para quienes desean aprender a programar resulta un tanto complicado. A mi me paso, antes de entrar a C (y cuando no sabia ningun lenguaje de programacion) se me hacia sumamente complicada su sintaxis.

    Insisto, para aprender a programar no hace falta un lenguaje tan «pro» como C/C++, QBasic, Pascal o PHP son suficientes para aprender los conceptos que se ven en cualquier lenguaje de programacion.

    Todo lo que vi en QBasic me ha servido mucho para lo que he visto actualmente en C n.n

  64. Para aprender a programar, la shell de linux. Aunque no es fácil (se puede complicar todo lo que se quiera), sí que es muy rápido a la hora de ver los resultados. Además de aprender los comandos básicos de linux.
    Y también puede ser muy sencillo para ejemplos básicos:
    El Hola Mundo:
    1º Crear un documento vacío con el botón derecho del ratón -> Crear documento (por ejemplo script.sh)
    2º Escribir:
    #!/bin/bash
    echo Hola mundo
    3º Desde la línea de comandos de linux cambiar los permisos chmod u+x script.sh
    4º Y ejecutar: ./script.sh

  65. Lo primero para empezar a programar—y es algo que, lamentablemente, rara vez se da—es tener muy claros los conceptos de memoria y los sistemas de entrada/salida del lenguaje de programación que se va a utilizar (descriptores de fichero en C, flujos en Java, etc.).

    Una vez que eso ha quedado muy claro ya se puede comenzar con cualquier lenguaje. Personalmente, comenzaría con C para reforzar el concepto de memoria (dimensionamiento estático, dinámico y punteros). De ahí se pueden aprender muchas cosas sobre dimensionamiento y direccionamiento que pueden ser muy útiles en lenguajes como Java, de más alto nivel y orientados a objetos.

    Como conclusión: si sólo sabes C, la POO te va a costar; si sólo sabes Java, la programación estructurada te va a costar, aunque menos que al revés; si sabes C y Java puedes aprender cualquier lenguaje en cuestión de dos días.

  66. El lenguaje para aprender es Smalltalk.
    La tesis de Alan Key de trabajar con «orientación al objeto» y con hipermedios en una interfaz gráfica de 1972 se probó durante 8 años, y en 1980 se publicaron sus impresionantes resultados: chicos de 8, 9 y 10 años programaban videojuegos, e incluso interactuaban con el mundo real comandando robots hechos con Lego.

    Así como a principios de las 90 la crisis del software fue resuelta por tecnologías y metodologías de los 70 (me refiero a los objetos), ya viene siendo hora de que la crisis educativa, que confunde enseñar informática con enseñar ofimática, tienen sus soluciones óptimas investigadas y documentadas… tal vez a la educación le falta más crisis para que alguien mire atrás y las «descubra».

    PD: Smalltalk se usa mucho más de lo que te imaginas pero mucho menos de lo que debiera!

    1. Incluso existen proyecto como el Squeak, basados en este lenguaje que sirven tanto para un niño como un adulto que quiera aprender sobre Programacion Orientada a Objetos

    2. +1 Smalltalk es un lemguaje que puede usarse de muchas formas… la mejor forma de empezar con todo lo relacionado a lo orientado a objetos… todo ese mundo de clases metodos protocolos… yo estoy en la U y primero me enseñaron PASCAL, luego Prolog, Haskell , Smalltalk y ahora C.

  67. Acabo de aprender mi primer lenguaje de programacion y no le veo nada de complicado, yo recomendaria C, claro que siempre acompañado de un buen libro o un maestro o algo que te guie
    Saludos

  68. Pues yo he aprendido, algo, con Pascal, no es mal lenguaje, pero puede enrevesarse un poco si se quiere…también se algo de Logo…pero estoy poco iniciado en la programación…

  69. Creo que la elección es correcta, Python es un lenguaje apto para alguien que desea automatizar algunas cosas. Su sintaxis es más limpia que la de Ruby.

    Aprender C, PHP, Javascript (jQuery no es un lenguaje!), PASCAL, entre otros sólo harán enfocarte más en otros detalles que no son el de resolver el problema entre manos.

    Creo que tu análisis, casual o no, llegó a una elección que hubiese recomendado.

    Como nota menciono que programo en Smalltalk hace siete años y vivo de ello. Tambien puedo programar (pero no domino) Ruby, PHP, Perl, JS, Java y C; por lo que puedo fundamentar mi elección.

  70. yo recomendaria aprender en un lenguaje con tipado estátito como java más que ruby.

    ruby es un lenguaje muy útil y productivo pero creo que aprender con un lenguaje tan estricto como java es mejor para un novato.

    ahora que si hablamos de niños hay muchas opciones, por ejemplo logo. Otra opcion es alice que es un lenguaje gráfico para hacer mundos virtuales de forma simple: http://www.alice.org/

    además los lenguajes viejos siguen existiendo. es posible encontrar compiladores mas o menos recientes para casi cualquier lenguaje.

  71. El problema de empezar a programar con lenguajes de sintaxis simples es que esconden demasiadas cosas que en un futuro cuando se quiera comenzar a programar con un lenguaje de nivel mas bajo, hay que re-aprender conceptos. Como programador que soy recomendaría comenzar con un lenguaje un poco mas complejo para tener una noción mas precisa de como es que se mueven los fierros con nuestras instrucciones y después migrar a otros lenguajes de mas alto nivel con conceptos bien claros y aprendidos, sin embargo, si lo que se quiere es aprender a programar por hobby un lenguaje orientado a objetos no es lo ideal dado que hay que comprender conceptos como herencia, polimorfismo , encapsulación etc que pueden confundir.

    Conclusión: Por hobby yo comenzaría con lenguajes como KPL, Scratch que a mi hijo le encanta en especial Scratch y tan solo tiene 8 años.

    Para tomar la programación mas enserio aprender C seria bastante ideal y de ahi tomar Java o C++ ,el mismo Smaltalk es una muy buena opción.

    Ya que si eres usuario de OS X como yo, java es casi el pan de cada día para migrar nuestras aplicaciones, y darle una vista a Objective-C y su GRAN soporte y tutoriales para programar Cocoa .

  72. Pienso que un lenguaje adecuado para aprender a programar hoy en dia es QBasic, ya que ahi puedes aprender muchas cosas que estan incluidos en lenguajes de programacion mas «serios» (como apuntadores, variables, arreglos, etc), y claro, todo esto con la archiconocida sintaxis de BASIC, que es bastante bastante sencilla si la comparamos con la de C++, por decir algo.

    Yo aprendi a programar con Qbasic, y aprendi muchas de las cosas que en la actualidad estoy viendo con C++ :)

  73. Mmmm…. Veo que hay mucha gente hablando de C, pero creo que no estáis entendiendo a lo que me refería en el artículo. C es genial, es superversátil, pero para una persona que lo más que puede querer hacer en su vida son scripts o aplicaciones muy muy sencillas… ¿No os parece que es un poco exagerado?

    1. Mmmm, no lo creo, yo opino que el lenguaje C es como aprender a manejar en un auto standard (si, es más difícil), pero una vez que lo dominas ya cualquier otro lenguaje se te hace más sencillo…como aprender después a manejar un automático.

      1. Pues yo opino que es como un auto con todos los controles de un avion de pasajeros jaja.. podes controlar todo, pero no necesariamente es lo adecuado para aprender.
        Obvio que al pasar de ese «auto» a otro va a resultar mucho mas sencillo, lo que no quiere decir que sea adecuado para aprender.

        En la universidad a la que asisto comentaban que usaban pascal por el hecho de ser fuertemente tipado, y por ser muy rigido en su sintaxis… Obligandote a buenas practicas de programacion, como el declarar todas las variables antes de usarlas y esas cosas.
        Python tambien tiene lo suyo, con su manera de bloques-por-indentacion obliga a escribir codigo mas legible.

        Si bien aprendi con pascal y ahora me estoy metiendo en python no se si este seria el ideal para aprender a programar, aunque pascal esta pasado de moda y no seria tan util.

        Bueno, es solo mi granito de arena. De momento programo en c++ :P

  74. C no es complejo, para nada. Depende de como te enseñen claro está… Si vas a lo loco y a hacer IA de programas o juegos 3D es una locura, sí, si en cambio quieres aprender a programar C es la base.

    La sintaxis de PHP es la de C, añadiéndole que es más libre (lo cual es más peligroso si luego quieres aprender más), pero también es muy buena opción…

    Python lo veo… poco útil para querer avanzar en el aprendizaje luego ;)

  75. El mejor lenguaje para aprender es C. No solo puedes usarlo desde microprocesadores hasta iPhones, ayuda a que aprender un segundo o tercer lenguaje sea mas facil.

  76. Como dice @Marcelo, es buena opción, yo diría que jQuery.
    Por cierto, yo aprendí a programar con PHP y a mi se me hace la mejor opción, poniéndole empeño, aprendes de todo un poco(Me refiero a sintaxis de otros lenguajes).

    1. Cabe destarcar que jQuery no es un lenguaje, mas bien un framework de Javascript, por lo tanto primero hay que empezar aprendiendo este.

    2. Te apoyo con lo de php es muy facil de aprender..

      gracias a el entendi muchas cosas de los lenguaje de programacion..
      el primero que toque fue llama pero nunca pude aprenderlo bien..
      luego de aprender a moverme en php
      luego de el puedo crear aplicaciones sencilla en java que antes no podia…
      jeje estas vacaciones de verano me propuse a aprender java a full xD

  77. Yo aprendí el año pasado a programar en PASCAL durante un cuatrimestre, sin duda es un muy buen lenguaje para empezar. Después ya he aprendido a programar en C y no me va demasiado mal…

    1. @Poliuk ¡Cierto! Pascal es muy útil para el aprendizaje, antes de ir a C tal vez.
      @Emanuel ¿Lo dices en serio? Java me parece muy sencillo… hasta conozco a chicos de 15 años que están programando en Java xD

      1. mm no creo que haya crisis de educación por el hecho de que vivamos sumergidos entre computadoras, en la universidad en donde estudié en el primer curso de programación te enseñan 3 lenguajes en forma secuencial.

        Yo aprendí a programar en assembler, luego nos enseñaron C/C++ y luego Java, y la verdad creo que sin mayor inconveniente lograron en todos los estudiantes una curva de aprendizaje es bastante alta.

        Seguramente en general las instituciones usan metodologías secuenciales similares, no creo que haya lío con eso.

    1. En la Universidad enseñan a programar con lenguajes fuertemente tipados, en mi caso con ADA95, aunque si volviera a empezar, hubiera querido aprender directamente con JAVA, te aprendes bien alguna API y a correr, nada de hacer estructuras de datos desde 0.

      Un saludo y enhorabuena por el blog!