texto:   A-   A+
eliax

Pregunta de lector: ¿Recursos para aprender a programar?
eliax id: 8411 josé elías en ene 13, 2011 a las 12:07 AM ( 00:07 horas)
ProgramadoraHoy en "Pregunta de lector" respondamos entre todos la pregunta de Yelmi, quien en este comentario de un artículo reciente nos pregunta básicamente lo siguiente:

¿Cuál es la mejor manera de introducirme desde cero al mundo de la programación? ¿Cuáles portales en la web recomiendan para aprender? ¿Qué libros son de utilidad? ¿Qué otros recursos recomiendan? ¿Cuáles otros consejos pueden ofrecer?

Voy a iniciar yo sugiriendo leer este artículo pasado de eliax: Pregunta a eliax: ¿Qué estudio para ser competitivo en Informática? (abril 2009)

Aparte de lo dicho en ese artículo voy a sugerir concentrarte en plataformas móviles (hoy día recomiendo el iOS de Apple y el Android OS de Google), así como tecnologías web (técnicas de AJAX, CSS, HTML 5, etc).

También hay mucho dinero por hacer en aplicaciones para portales sociales como Facebook y Twitter.

Después te podrás mover a cosas más complejas como bases de datos no-relacionales (Cassandra, Hadoop HBase, etc).

Otro consejo que siempre doy es aprender inglés, pues no solo te abrirá muchas puertas, sino que los mejores recursos para aprender (así como el 90% de toda la documentación técnica que quizás vayas a utilizar) está escrita en ese idioma.

En cuanto a recursos de gran utilidad, puse algunos en los enlaces al final de este artículo, pero uno que recomiendo bastante es StackOverflow, en donde podrás hacer todo tipo de preguntas a una comunidad experta, así como responder e interactuar con varios de los mejores programadores del mundo, gratuitamente (siempre y cuando puedas comunicarte en inglés básico y técnico).

autor: josé elías

Comentarios

  • Enfocarse en Java y .Net da buenos resultados, son tecnlogías prometedoras y que tienen buen campo.

    Los foros de Msdn de microsoft son un buen sitio.
    Y la comunidad de developers de sun (oracle) tamibién.

    Un saludo.

    • Microsoft tiene un portal donde puedes especializarte en los diferentes productos que ellos ofrecen (Microsoft Exchange, SQL Server, etc) llamado Microsoft Virtual Academy y es completamente gratis.

    • ya no vale la pena , si quieres programar web pasate a ruby on rails

      • Buen chiste

  • Algo importante que se te olvido mencionar, son la inmensa cantidad de recursos de videos educacionales en diferentes portales de Internet (recientemente comencé a utilizar iTunes University y la experiencia es increíble).

    Algunos de los links dentro de Eliax:

    iTunes University pasa de 300 millones de descargas. Aprende desde tu casa, gratis

    http://eliax.com/index.cfm?post_id=8054

    Estudia gratis por Internet en las universidades mas prestigiosas

    http://eliax.com/index.cfm?post_id=5486

    Video de cursos de UC Berkeley disponibles en YouTube

    http://eliax.com/index.cfm?post_id=3975

    Saludos!

    • Muy buena observación, acabo de agregar esos enlaces al final del artículo. ¡Gracias E.D.! :)

  • Ahora un pequeno aporte de mi parte todo las los lenguajes de programacion que te dijo Eliax puedes conseguir libros y cursos completos en estas paginas,http://avaxhome.ws/ http://www.netbks.info/

    y si quieres aprender ingles baja este programa The rosetta stone con el fue que aprendí ingles.http://new.taringa.net/posts/downloads/4296239/Rosetta-Stone-Full-_-Idiomas.html

    tiene muchos otro idiomas espero que te sirva suerte! :D

  • Hola!, yo soy un programador y lo primero que aconsejo es a aprender ALGORITMOS y a como optimizarlos, es realmente FÁCIL aprender un lenguaje de programación(el que sea) el primero que aprendas es con ese con el que saldrás adelante... sin embargo, lo que te va a dar la capacidad de crear buenos códigos son tu lógica matemática y la experiencia creando algoritmos.

    desde mi punto de vista un buen comienzo sería:
    1.- Algoritmos y lógica matemática
    2.- Adoptar un paradigma(como pj. POO)
    3.- Aprender un lenguaje de programación: un "hello world" en el que elijas es el primer paso
    4.- patrones de diseño... y ahi te la llevas...
    5.- ...

    es mi forma de ver un comienzo desde CERO para aprender a programar y coincido con eliax que el ingles es super importante. Saludos! y Mucho Exito! =)

    • Exacto, yo tambien soy programador y pienso que eso es lo primero es que en realidad de donde uno obtiene las bases para que todo lo actual te fluya mejor.

      Java Y Sql creo que son de lo mas importante hablando basicamente. =D

    • Como acaba de mencionar Edder, la forma de comensar de 0 en el mundo de la programacion es comenzar con algoritmos, que en resumen seria el conjunto de pasos para obtener un objetivo.

      Despues de tener claro los algoritmos esta de tu parte escijer en que lenguaje quieras programar, actualmente, uno de los mas usados es java.

      Puedes usar los libros de Herber schil, que tiene manuales para principiantes en java y c++. http://www.herbschildt.com/

      Ademas, despues de que pases la parte del "hola mundo" tan popular para comensar, puedes usar los problemas dados por ACM para los maratones de programacion:
      http://www.ntnu.edu.tw/acm/ProblemSetArchive.html

      Todo hasta el momento es para codigo en si, sin nada grafico, ya que eso realmente es al final que se hace. Asi que ese seria tu siguiente paso.

      Por ultimo un consejo como programador, no saltes directo a la pc a lanzar lineas de codigo apenas leido o pensado que vas a hacer, piensalo un poco y analiza exactamente que pasos necesitas para realizar lo que buscas. Lo digo por experiencia con amigos que hacian un codigo 4 o 5 veces antes de ver bien que necesitaban y que debian dar como resultado.

  • Para aprender lo basico de html les recomiendo la pagina http://www.htmlya.com.ar/ aparte de explicar lo basico les ponen un ejemplo el cual lo pueden modificar y ver los cambios en tiempo real.

    En la parte final de abajo de la pagina les muestran otros links para aprender css, javascript, dhtml, php, asp, asp.net, python, mysql, oracle, postgres, sql server, ajax y tambien tienen sobre html5 http://www.htmlya.com.ar/html5/.

  • La mejor web de habla hispana para aprender a programar desde cero es sin lugar a dudas desarrolloweb.com.

    En el mundo de la programación web recomendaría PHP con codeigniter,SQL y javascript con Jquery. También hay un gran nicho por explotar en el diseño con canvas.

  • ciñendome a la pregunta, en gemix studio . aprendi a programar a los 10 años haciendo pequeñas juegos chorras. la mejor manera de aprender a progmar es dibirtiendote haciendo algun juego

  • Valla, parece que soy de opinión diferente ;)

    En mi caso, para alguien que no halla programado nunca recomiendo C, es decir, empezar por lo de mas bajo nivel en los lenguajes de alto nivel. Empezar con Java o .net es crearse malas costumbres y dan un visión al aprendiz incorrecta de la potencia de un PC actual.

    Quizás empezando con Java desde el principio te acostumbras a las BDA y metodologías de programación, pero por ejemplo, en mi universidad, este año han cambiado el C por java, actualmente tengo a un montón de primerizos que que creen que programar y matemáticas son cosas distintas, que desconoces el concepto de función, pero si usan clases y objetos, etc, vamos que tiene un cacao mental impresionante.

    Ni hablar lo que les costara a ellos aprender lenguajes de alto rendimiento como C, es que directamente desconocen el concepto de memoria, para ellos las variables son mágicas, se copian de forma mágica y se borran también mágicamente. En cambio a mi, que aprendí en C en una tarde estaba haciéndome sistemas de ventanas en javascrit y demás chorradas.

    Lo que quiero decir, que si aprendes con lenguajes interpretados tendrás malas costumbres de programación y pensaras de forma distinta a como lo hace el PC, si aprendes con C (o similares), sabrás como funciona un PC por dentro y aprender los lenguajes interpretados sera super sencillo para ti.

    Así que yo recomiendo aprender por lo mas abajo posible, y ya que considero que ensamblador es demasiado abajo, pues veo a C como el candidato optimo, y sobretodo tener nociones de memoria dinámica.

    p.d.: perdonadme la redacción, que me acabo de levantar ...

    • totalmente de acuerdo yo aprendi en c: gemix es c,
      es el antiguo div2, por eso digo que es una buena forma divertida de aprender c
      si sabes c, es facil a prender otros lenguajes php,visual o lo que sea ,ma o meno

    • oye man, algun libro de c que recomiendes para empezar solito???

    • Concuerdo contigo David, al aprender C facilita mucho el aprendisaje de otros lenguajes de programación y como tiene muchas sentencias de bajo nivel ayuda a entender como funciona una PC y lo digo por experencia propia.

  • Programo en Java, pero veo que Python está creciendo mucho, creció mucho en el 2010, por eso lo voy a empezar a estudiar

    Recomiendo un libro muy bueno para el que quiera ser un excelente programador :

    The Pragmatic Programmer, de Andrew Hunt y
    David Thomas.

    Leanlo, es muy bueno, a mí me ayudo mucho a crecer como informático.

    Saludos.

  • Para quien quiera aprender a programar, recomiendo el modus operandi que uso para enseñar: adecuar su computadora para programar en C, que tiene la mejor documentación que he visto para un lengjuaje, y conseguir uno o dos libros. "Algoritmos y Estructuras de Datos: Una Perspectiva en C" de Joyanes es bueno para comenzar.

    Recomiendo siempre un sistema operativo Gnu/Linux, aunque sea solo para programar. Por un lado porque existe documentación excelente incrustada en el sistema operativo; por otro, porque las herramientas de programación son parte íntegra del sistema operativo (lo cual no es cierto para windows, a menos que tengas XP o anterior y vayas a programar en assembler, para lo que usarias el debug). La última razón es que, si no usas Gnu/Linux habitualmente, no te distraerás en otras cosas: vas a programar, y ya. Es como tener un área de la casa que sólo la uses para estudiar.

    Recomiendo C porque es, en mi opinión, 'el' lenguaje para programación estructurada. Las reglas son consistentes y sencillas; también ayuda el hecho de que el lenguaje se usa ampliamente usado y haya una gran base de código para estudiar. También, pensando en el futuro: C es la base sintáctica de Java y varios lenguajes más, así como puede ser incrustado en python. De manera que es un lenguaje útil como principio para luego mudarse a otros lenguajes.

    Si C resulta abrumador (no debería, es como el miedo que le han infundido a la gente con las matemáticas), recomiendo FreePascal, la variante de Pascal más usada actualmente.

    Contraindicaciones:
    -un lenguaje orientado a objetos que _no_ sea go. Y go, de hecho, a menos que haya un gurú cerca, porque la documentación es escasa.
    -Cualquier lenguaje del que dispongas de poca documentación. La falta de información evita el progreso.
    -Visual (lo que sea). No es que sea difícil aprenderlos, es que aprenderlos primero puede ser perjudicial para la salud.

    • tu consejo es excelente pero no para un principiante , *nix y c intimidan mucho a los principiantes.

  • Eliax gracias por el articulo, lo lei y pienso comenzar manos a la obra con las sugerencias que me has dado. Tambien agradecer a todos los que han dado sus comentarios.

  • Yo lo veo de esta forma:

    1ro. Es bueno empezar por lenguajes del tipo Script(JavaScript, Python, PHP), pues ayudan a entender mejor el paradigma de la programacion y es facil definir variables pues practicamente no hay que definir el tipo de datos que se va a manejar y tambien administran la memoria automaticamente.

    2do. Luego cualquier otro lenguaje de programacion mas estructurado como C++. Esto ayudara a llevarte a otro nivel en lo que es conocer el paradigma de programacion, Lenguaje C++ te pondra en el mundo del OpenGL (Usado en las graficas de las aplicaciones moviles)

    3ro. Pensar en una buena idea: El lenguaje de programacion depende del proyecto que tengas, normalmente si ya aprendiste un lenguaje anterior podras aprender uno nuevo que se adapte a tu proyecto. No solo basta saber programar sino tener vision y buenas ideas.

    BUen dia

  • Veo que no mencionan VBA, es muy elemental?
    Por lo que sé, es más simple que C, cierto?

  • Alguna recomendación de un entorno de programación de C/C++ para Windows?

  • Bueno pues yo voy a comentar como aprendí yo

    - Un amigo me recomendo un libro muy viejo, parecia un cuadernillo donde enseñaban programacion en basic, eso si, nada visual. Aprendi usando el compilador Turbo Basic lo guardaba en un diskette que pesaba como 200K. A donde iva lo usaba ya que no se requiere instalar nada.
    - Luego seguí con C y luego C++ (aprendiendo Programación orientada a objetos).
    - Luego seguí con Visual Basic (Programación orientada a eventos) y ya era feliz porque podia crear ventanas y botones.
    - Luego Bases de Datos Access y Sql Server
    - Luego C# Windows Forms, Web Forms
    - Ahora Objective-C

    Yo no tuve una formación organizada ya que aprendí por mi cuenta de lo que veia. Mucha gente recomienda la logica de programación, pero para mi es un basic traducido a español. Basic me parece excelente porque uno se emociona al ver las cosas funcionando y es bueno cuando ud pone PRINT "Hola Mundo" y los corres y te muestra el mensaje. sin complicarse mas de la cuenta.

    Un saludo

  • recomiendo que se estudie Logica y Algoritmos de programación este es un libro que te puede ayudar http://www.megaupload.com/?d=GQHJVDY7 y si Aprende urgentemente Ingles y sobre todo no te desesperes es un proceso largo saber programar

  • Si realmente quieres aprender a programar, empieza con algun lenguaje estricto que te enseñe a usar los bloques fundamentales y la disciplina necesaria. Yo personalmente recomiento empezar por Pascal o alguna variante, y desestimo cualquier intento de usar Basic o peor aun el nefasto Visual Basic (que solo produce minusvalidos que se creen programadores y que resultan imposibles de recuperar luego).
    La razon, uno necesita saber sobre esto:
    - estructuras de datos
    - tipificacion estricta
    - programacion estructurada
    - instrucciones de control
    - gestion de recursos
    Luego se puede profundizar en programacion orientada a objetos y uso de clases.
    La ruta de aprendizaje que yo recomiendo es logica y matematicas, Pascal, C/C++ y luego cualquier otra cosa que se les ocurra. Es altamente recomendable usar los lenguajes al menos 1 año antes de pasar al siguiente, porque de esta manera se llega a conocer mas y logicamente ayuda a formar una buena base.

    • Estoy contigo en lo que dices del VisualBasic y Pascal. Una vez lei de un programador de google que el decia que un programador profesional debia saber almenos 6 leguajes de programacion y tener 10 años programando.

  • Olvide comentar que es necesario distinguir entre leguajes de programacion y meta lenguajes. Estos ultimos normalmente son scripts interpretados por alguna libreria run-time. Y aunque parezcan ser lenguajes de programacion, no lo son. Ejemplos de esto son:
    - xBase (dbase, foxbase, clipper)
    - VB, VBA
    - Javascript
    - HTML/XML

    .net y java se encuentran en una categoria intermedia entre leguajes y metalenguajes. Ambos poseen suficientes caracteristicas presentes en lenguajes formales. Pero es necesario tener en cuenta que estos producen binarios precompilados y requieren de librerias adicionales para ser ejecutados.

  • Eliax, ya que mencionas plataformas móviles, puedes recomendarme alguna web para aprender a programar el iOS de Apple y el Android OS de Google.
    Gracias,

    • Eds:

      En el caso especifico de programacion de iphone y ipod; te recomiendo que te lea de primero y si lo puedes adquirir el libro "Programming in Objective-C 2.0" de Stephen G. Kochan. Luego esta "Iphone programming" de Big Nerd Ranch. Creo que despues que domine este material, estaras en condicion de poder comenzar a desarrollar aplicaciones profesionales para el iphone.

  • Para programadores desde 0 recomiendo python http://marmota.act.uji.es/mtp/pdf/python.pdf
    Este es uno de los mejores libros para principiantes Python es facil,despues se podria aprender a usar C (no tienen sentido frustar a un novato con el compilador,los punteros o el manejo de cadenas) y ya despues Java (Java es bueno enseña a pensar como desarrollador de software) y una buena leccion de algoritmos con problemas tipo ACM haran a un programador ,despues un poco de metodologias ,patrones de diseño y uso de ide's(no solo tener autocompletado o diseño de interfaces graficas).
    Pero despues de esto sera facil aprender otros lenguajes como PHP,VS o C#.
    Y si quieres convertirte en un super programador puedes probar Lisp,Haskell(si puedes aprender bien uno de estos dos lenguajes cualquier lenguaje sera facil y tu productividad aumentara enormemente al pensar de forma de programacion Funcional (algoritmos sobre estructuras de datos =programas ) y problemas de mayor nivel en el juez de la ACM,euler o topcode ,usar Vim o Emacs.
    Tambien recomiendo Ruby pero hasta que aprendas POO.
    Tambien entiendase las diferencias entre programador y desarrollador de software,de preferencia hay que ser desarrollador de software pero antes tener buenos nivel de programacion para evitar barbaridades (hacer muy mal uso de POO).
    Pero tambien recomiendo los libros de programacion Deitel y Deitel.

  • Sin ser un experto en la materia, ni muchísimo menos (apenas un estudiante), no estoy del todo de acuerdo con la respuesta.
    Creo que para empezar a aprender a programar lo primero es, no concentrarse en tecnologías específicas, sino en paradigmas y técnicas, es decir, saber bien que es la programación relacional, los algoritmos, las estructuras de datos, la programación orientada a objetos, etc. y para esto guiarse de herramientas apropiadas (por ejemplo Python, Java, etc.). El aprendizaje del Inglés es vital en el mundo de la programación y creo que debería de ser algo transversal al proceso. Finalmente practicar, practicar y practicar. Después de lo anterior programar para una plataforma móvil o servlets de Java (o lo que sea) para servidores será algo mucho más sencillo.

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
2 + 6 = requerido (control anti-SPAM)
¿De qué color es el cielo?: requerido (control anti-SPAM)
 

"Estoy perfectamente convencido de que esa medida va a tener un efecto total y absolutamente contrario a la intencion deseada por ellos."

por "oliver.rs" en jun 12, 2011


en camino a la singularidad...

©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax