Quiero aprender seriamente a programar

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Nagual Bones
    Son of the Bard
    • 14-04-2003
    • 21698

    #46
    Hasta que no entiendan el algoritmo "hacer un huevo frito" no van a poder programar, hay que empezar por seudocodigo, sin ningun lenguaje en especial.

    Y no podes comenzar por OOP, necesitas saber las estructuras basicas de la programacion, la orientacion a objetos es muy compleja y confusa.


    El camino del nagual...

    You become what you believe.

    Comentario

    • Urban silence
      Egelito activo
      • 30-07-2004
      • 300

      #47
      Si querés aprender a programar EN SERIO y tener una capacidad de poder dominar casi cualquier lenguaje (ya que lo único que va a cambiar es la sintaxis) entonces sin duda vas a tener que hacer mucha ejercitación para entrenar tu capacidad de ABSTRAER, es decir, convertir un problema en variables, funciones y porque no objetos. Para eso yo lo que recomiendo es mucha ejercitación, sobre todo haciendo problemas matemáticos. Hacer un programa que calcule el factorial de un número, que calcule potencias (sin usar una función provista por el compilador obviamente), usar recursión, etc.. Hacer todo eso te abre la cabeza para que después puedas hacer CUALQUIER cosa. Con esto no quiero decir que te vayas a convertir en un capo de la programación, pero es como si de repente todo lo empezaras a ver en términos de variables, funciones y cosas así (tipo neo cuando empieza a ver todo verde nggoooo). Esa capacidad de abstraer te permite conocer (o sospechar) como es el código de un programa del que solo conocés su funcionamiento. Son cosas locas, pero a lo mejor me termines de entender dentro de un tiempo.

      Si sos autodidacta entonces cualquier libro que te de mucha ejercitación te va a servir. Uno que yo tengo y es el "Nuevo Testamento" de C++ es "Como Programar en C++" de Deitel & Deitel (padre e hijo). Vale unos 80$, pero realmente te enseña a pensar "como una computadora" y te entrena en tu capacidad de abstraer.
      La Biblia de C++ es "El lenguaje de Programación C++", pero es más una referencia para el que ya conoce el lenguaje y no sirve tanto como para aprender.

      Más allá del libro yo no te recomiendo ningún lenguaje. Aprender a pensar como programador lo lográs con cualquier lenguaje, sirve todo, lo que pasa que hay que elegir uno para no tener que ejercitarse pensando en pseudocódigo que es muy "abstracto". C++ es lindo, porque hoy en día todos los lenguajes tienen "un pedacito" de él.

      Pero, si lo que vos querés es hacer programas bobitos como un macro para el AO entonces olvidate de todo lo que dije y agarrá una guía de Visual Basic y fué. Ojo, no digo que Visual Basic sea malo, simplemente está pensado para otro tipo de cosas.

      Y por último: No existe ningún lenguaje superior a otro, todo depende de la necesidad.
      El que te quiera meter en la cabeza que tal o cual lenguaje es mejor no entiende nada y no vale la pena discutirselo. Todo siempre depende del caso.
      Hacer una calculadora (o incluso un bloc de notas!) como la de Windows en C++ llevaría muchísimo más tiempo (y sería más dificil) que hacerla en Visual Basic. Entonces Visual Basic es mejor que C++? No! Simplemente está pensado para otro tipo de cosas. El 90% de los video juegos están hechos en C++, entonces C++ es mejor que Visual Basic? Tampoco!
      Siempre depende de la necesidad; y así te puedo decir que para hacer un engine de un juego 3D el mejor lenguaje que existe es (tal vez) C++, pero para hacer aplicaciones rápidas y útiles (tales como un gestor de descarga, un plugin para el msn, etc.) lo mejor que hay es Visual Basic.

      He dicho.

      PD: Comparé C++ con Visual Basic porque son los que más se conocen, pero también podría haber mencionado a Delphi que mezcla la potencia del primero con la facilidad del segundo o a Java que corre en cualquier máquina y así con cualquier lenguaje. Todos tienen pro's y contras y habrá que analizarlos en base al problema que tengamos en frente.
      http://las-frases.com.ar
      Frases de pensadores, filósofos o simplemente gente común.

      Comentario

      • Urban silence
        Egelito activo
        • 30-07-2004
        • 300

        #48
        Originalmente publicado por Boneslayer
        Hasta que no entiendan el algoritmo "hacer un huevo frito" no van a poder programar, hay que empezar por seudocodigo, sin ningun lenguaje en especial.

        Y no podes comenzar por OOP, necesitas saber las estructuras basicas de la programacion, la orientacion a objetos es muy compleja y confusa.
        El pseudocódigo no me gusta para aprender, está todo "volando".

        Mi programa podría ser
        Código:
        ponerAceite();
        esperar();
        romperHuevo();
        ponerloEnAceite();
        Y queda todo volando, no aclara nada.
        El pseudocódigo me parece bueno para la gente que ya entiende de programación y que puede mostrar la resolución de un problema usando este método. Como implementarlo después se verá, pero ya tenés el concepto de cómo hacer un huevo frito.

        Y aprender OOP puede resultar más dificil si lo encarás de cierta forma. C++ por ejemplo te permite mezclar ambos paradigmas (funcional y objetos), por lo que tranquilamente podés encarar el aprendizaje con el funcional y cuando ya lo dominaste preocuparte por los objetos.
        Editado por última vez por Urban silence; 09-05-2006, 01:17 AM.
        http://las-frases.com.ar
        Frases de pensadores, filósofos o simplemente gente común.

        Comentario

        • MoaLaiSkirulais
          ^^(V)^^
          • 08-07-2003
          • 23268

          #49
          no recomiendo formulas matematicas para empezar...
          en todo caso es mejor un contador pedorro y cosas asi q no desvian el foco....

          btw no estoy diciendo empezar en OOP sino un lenguaje q lo soporte llegado el momento....

          mira desde el siguiente enunciado de mierda podes armar algo INFINITO y luego orientarlo a OOP:

          a-dado un texto contar la cantidad de palabras.

          Comentario

          • goose
            Who watches the watchmen?
            • 10-05-2006
            • 1647

            #50
            Originalmente publicado por SeBoYa
            En mi cabeza había un foro de programación, pero como no lo encuentro posteo aca.
            Como dice el título quiero aprender a programar, pero no tengo absolutamente nada de idea de nada (fui a la peor escuela donde no había ni máquinas de escribir), salvo html pero no creo que me ayude en absoluto.
            Entonces, como no tengo idea, no sé tampoco por qué lenguaje me conviene empezar a aprender, que sea masomenos escalable (no sé si es el término, pero me refiero a que pueda pasar a otros más modernos/avanzados/buenos a continuación de ese, y utilizando lo aprendido classd)
            Sugerencias? me conviene ir a tipitos que enseñen eso? tipo escuelitas o algo así? (existen?) o puedo aprender por mi cuenta? bibliografía? (que no sea muy imposible de conseguir, claro [ni demasiaaaaaaaaado cara]) algún lenguaje por el que sea mejor empezar?
            En fín, todas las cosas que puedan decirme y me vayan a ayudar a ser un gran programador.
            Ah, la programación web me interesa, pero en realidad me interesa más la programación de hacer cositas. No sé, me interesan las dos cosas, pero para web eventualmente aprenderé PHP que no parece tan complicado, ahora quiero info para lo otro (o para todo, noséfd)
            Saluditos terricolitas!
            Empeza por terminar la primaria, mogolico malcogido.

            Comentario

            • Piluex
              Away
              • 10-10-2004
              • 3038

              #51
              Cuantas de las personas que dijieron boludeces aca PROGRAMAN de verdad?
              uh, lo dije uhmmm perdon, era un pensamiento .

              Programar, uhm, es un don (??).

              1) Como saber si puedo aprender a programar de forma autodidacta?

              Bueno, es difícil, normalmente si empezas de forma autodidacta y encaminas mal perdes muchísimo tiempo, y aveces no se tiene la capacidad para aprender este tipo de cosas sin alguien que te guie, vi pibes que aprendieron asi, hicieron grandes cosas pero asquerosas, no puedo decir nombre para no comprometer pero hizo una asquerosidad que "anda" en visual basic bastante complicada, diran "y bueno anda", si es cierto pero gracias a la flexibilidad del visual basic este pibe va a tardar 10 veces mas de lo normal en aprender, por ejemplo, C++, o simplemente en aprender alguna forma de programación estructurada. Mi consejo como persona que aprendió 100% a programar de manera autodidacta es que empieces por algun buen libro de algoritmos, no tengo titulos ahora, si te interesa busco. En estos libros va a haber ejemplos de código la mayoría de las veces lo cual te va a familiarizar con los lenguajes de programación y los diagramas a la vez, una vez que vayas por la mitad de libro vas a saber si podes o no seguir sin que alguien te guie.

              2) Ya leiste el libro, bueno, que lenguaje?

              El lenguaje por excelencia para MI forma de pensar es el C y más adelante el C++. La mayoría de los lenguajes utilizados hoy en dia son derivados de este o toman conceptos del mismo, y a su vez es un lenguaje muy potente con el cual vas a poder experimentar todo tipo de cosas. Por más que yo lo hice no te recomendaría pasar por lenguajes como VISUAL BASIC, realmente apestan para "aprender a programar", aunque sin embargo una vez que ya sabemos programar este tipo de lenguajes nos facilitan la construcción de interfaces y tienen un gran valor.

              3) OOP????

              Para alguien que nunca programó lo mejor es empezar directamente (para mi forma de ver) con este paradigma ya que de cierta forma incluye a los anteriores y los estructura y organiza. La programación orientada a objetos es lo mejor para programar cosas más grandes que un "hola mundo" o un "ingrese 3 numeros e imprima el promedio". Esta nos permite cosas muy importantes como la reutilización del codigo y la encapsulación (la cual nos permite detectar y eliminar bugs y a su vez liberar nuestra cabeza de partes del programa que ya no es necesario que tengamos en cuenta). Obviamente tambien tiene conceptos bastante difíciles de comprender para quien recien empieza como el polimorfismo o la herencia, sin embargo durante el trayecto de aprendizaje estos aparecen como "necesarios" mas bien al final, momento para el cual ya tendría que estar en posición de entenderlos.


              Que inconvenientes tendré al aprender de esta forma:

              Bueno, principalmente el tiempo que te va a llevar, la parte de algoritmos va a ser dura al principio ya que tenés que acostumbrar tu mente a la abstracción, luego al empezar con C vas a tener más que nada dificultades con la sintaxis, que en un principio puede parecer engorrosa. Con OOP quiza haya cosas que te queden sueltas en el camino pero no te preocupes que al llegar al final todo se termina entendiendo y relacionando. C++ es más bien complejo (""C++ = C + oop""), vas a tener dificultades en un principio para diseñar tus programas, pero una vez que asimiles bien la sintaxis y comprendas OOP vas a estar en posición de programar cualquier cosa.

              Nota: Sería interesante que utilizes la notación hungara desde los comienzos ya que una vez que empezaste a programar se hace MUY ODIOSO el implementarla.


              PD: Escribi esto apuradisimo ya me tengo q rajar del laburo para ir a comer a casa y dsp colegio, lo reviso cuando pueda.
              Editado por última vez por Piluex; 22-06-2006, 12:17 PM.

              Comentario

              • MoaLaiSkirulais
                ^^(V)^^
                • 08-07-2003
                • 23268

                #52
                snif cada vez me convenzo mas q "programar" no existe....

                un don?? puede ser...

                Comentario

                • Urban silence
                  Egelito activo
                  • 30-07-2004
                  • 300

                  #53
                  Originalmente publicado por Piluex
                  Sería interesante que utilizes la notación hungara desde los comienzos ya que una vez que empezaste a programar se hace MUY ODIOSO el implementarla.
                  No coincido. Para mí la notación húngara es una mierda que encripta todo el código. A veces te quedan mounstros que no se identifican a primera vista. Además te queda el nombre ligado al tipo de dato, con lo que si quisieras convertir la variable de int a float, por ejemplo, te quedaría una incoherencia.

                  La utilización de la notación húngara depende del tipo de proyecto que encares, en muchos casos no se utiliza y en otro sí.
                  http://las-frases.com.ar
                  Frases de pensadores, filósofos o simplemente gente común.

                  Comentario

                  • Piluex
                    Away
                    • 10-10-2004
                    • 3038

                    #54
                    Te aseguro que vale la pena acostumbrarse porque si no querés no la usas, pero si querés la usas bien. En proyectos grandes hace la diferencia.

                    Comentario

                    • khemikal
                      Egelito muy activo
                      • 29-06-2006
                      • 550

                      #55
                      che nadie hablo de otros paradigmas como el de funcional.
                      creo que para empezar eso ayuda muchisimo, calcular el factorial en funcional es trivial no hay que saber casi nada.
                      ahora en imperativo algo que ayuda es ver algoritmos de sorting, busqueda.
                      Hablaron de calcular el factorial, potencias y si quieren fibonacci.
                      capas se pueden poner algun problema como mejorar el codigo para que lo haga mas rapido.
                      Capas se pueden poner a pensar como calculan el n-esimo termino de fibonacci en O(log(n)) o calcular potencias inclusive.
                      el n-esimo primo por ejemplo.
                      yo creo que para empezar deberian, como bien dijieron arriba, con logica.
                      dar pre y post condiciones a un algoritmo ayuda muchisimo, aprender que es un invariante de un ciclo.
                      despues estructuras. correctitud de programas
                      OOP para mi es algo que esta un poco mas lejos para el principiante. sin embargo creo que el concepto de encapsulamiento lo puede entender cualquier principiante.
                      el problema es no hacer las cosas mal y tener malos habitos.
                      como tarea ( :P ) : haganse un insertion,bubble,selection sort
                      my site :
                      http://pr0n.juicypornhost.com/
                      blog :
                      http://pr0n.ucgalleries.com/

                      Comentario

                      Trabajando...