Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Fundamentos de la programación

Iniciado por Blitz3D, 15 de Enero de 2007, 09:40:26 PM

« anterior - próximo »

Blitz3D

Pues como dice el título, me gustaria que me recomendarais un buen libro para aprender todo el fundamento de la programacion (matrices, variables, tipos de datos, procedimientos...) ya que tengo algunos problemas con algunas de esas funciones, y antes de abordar un lenguaje en concreto me gustaria tener todo eso claro. Vamos, un libro que me enseñe toda la metodologia pero sin tener yo que saber programar, ya que mis conocimientos no pasan del basic (Aun del basic sé muy poco :wink: )

Gracias por vuestras respuestas (si las hay :) )

kbks

A programar se aprende programando y, aunque un buen libro nunca está de mas, para ello necesitas primero "escoger" un lenguaje. Aprender ciertas cosas sin ver directamente en el ordenador como funcionan es imposible.


Kain

Hola

Lo primero que te recomiendo es que no cometas mi error, aprender un Lenguaje de programacion sin saber Programar, lo primero es aprender a programar, como se contruyen Funciones, las variables,  en fin "El Arte de Programar", que tambien es un exlente libro.

Ese es por no decir uno de los mejores te lo recomiendo mucho, cuando aprendas a programar podras aprender a programar en muchos lenguajes.

Y de lenguajes te recomiendo con los ojos cerrados, C o C++, preferiblemente el primero ya que el segundo esta orientado a objetos y si sabes Programar sabras hacerlo hacia los objetos con casi cualquier lenguaje, el Visual Basic tambien sirve para aprender pero no te confies, es de bajo rendimiento y de pocas capacidades al lado de lenguajes de la talla del C, Ensamblador, C++.

Existen multitud de lenguajes cada uno con su especialidad, si quieres programar para una consola, es casi seguro qeu necesitaras un lenguaje de bajo nivel parecido a Ensabmlador, cada are de la informtacia tiene un lenguaje en especial, el de los programas domesticos es el C, el de Red se podria decir que es Java, en Video cualquier lenguaje srve, lo importante esta en la programacion de la API (interfaz para el programa) pero el C++ se acomoda mucho a las necesidades de las API actuales.

PD: No digo que todos aquel que haya empezado con algun lenguaje de programación  sea un mal programador por que dentro de su libro, manual, tutorial o por si mismo puede haber aprendido la programación, pero es recomendable saber programar y luego aprender todos los lenguajes, se aprenden en poco tiempo ya sabiendo programar.

En la Universidad si estudias algo relacionado con programación, te graduas capacitado para aprender un lenguaje de programacion en 2 meses o menos, segun tu nivel.

Saludos, espero haberte ayudado.
b]"La Unica Iglesia Que Ilumina Es La Que Arde"[/b]

vincent

Cita de: "Kain"Programar sabras hacerlo hacia los objetos con casi cualquier lenguaje, el Visual Basic tambien sirve para aprender pero no te confies, es de bajo rendimiento y de pocas capacidades al lado de lenguajes de la talla del C, Ensamblador, C++.

Ojo que EXE te va a saltar a la yugular!!
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

LC0

Aprende los fundamentos de POO y luego UML y patrones de diseño.

Libros, ¿para qué? Con la cantidad de documentación que hay en internet sobre esto, que quieres que te diga, es tirar el dinero (incluso hay libros que los puedes descargar por internet desde la página de la editorial o de los autores y que también están impresos).

Fran

Yo aprendí con Pascal (es fácil de ver y hay un autor Jeff Duntemann q es muy bueno por lo didáctico que es. No sé si hay algun libro suyo por ahi - hablo del 88) ->C (Una vez q sabes Pascal es muy sencillo)->C++->Object Pascal (Delphi), Java y ya los complementos (ASP - puaj- , Javascript, vbscript, J2EE (me encanta)). Me falta C#. Para mi es una buena ruta. Ansi Pascal es lo suficientemente serio y potente para empezar y fácil muy fácil de aprender. Ah y si necesitas bases de datos algun buen libro de bases de datos, leer a Codd y aprender SQL (es muy sencillo)

Ah . Y muy importante. Estoy de acuerdo con quien ha dicho q cuando se está aprendiendo es importantísimo programar (aprender programando), y q una vez sabes uno, el 2º es mucho mas sencillo.

marc_opolo

Si queres aprender a programar en serio... mi recomendación seria que aprendas primero los paradigmas funcionales y de objetos (oop). Si, contrariamente a lo que todo el mundo hace...

Una vez te manejes en estos dos paradigmas, aprender a programar en procedural (cosa que ya haces, seguramente), va a ser MUCHO mas facil.

Y como lenguajes: para funcional, supongo que haskell, gopher o lisp; para objetos, Smalltalk o Squeak.

Aprender a programar con lenguajes procedurales (basic, pascal, c, y otros) o hibridos mal hechos (java, c++) puede llevarte a adoptar muchisimos vicios, tanto de programacion como de diseño.

Y a programar, se aprende programando, como ya dijeron por aca. Algunos me van a decir que aprender directamente un lenguaje procedural es mucho mas facil...  si, probablemente lo se, pero tambien "invita" a ser muuuucho mas perezoso como programador (y en ultima instancia, MAL programador).


Saludos.

Fran

Cita de: "marc_opolo"Si queres aprender a programar en serio... mi recomendación seria que aprendas primero los paradigmas funcionales y de objetos (oop). Si, contrariamente a lo que todo el mundo hace...

Una vez te manejes en estos dos paradigmas, aprender a programar en procedural (cosa que ya haces, seguramente), va a ser MUCHO mas facil.

Y como lenguajes: para funcional, supongo que haskell, gopher o lisp; para objetos, Smalltalk o Squeak.

Aprender a programar con lenguajes procedurales (basic, pascal, c, y otros) o hibridos mal hechos (java, c++) puede llevarte a adoptar muchisimos vicios, tanto de programacion como de diseño.

Y a programar, se aprende programando, como ya dijeron por aca. Algunos me van a decir que aprender directamente un lenguaje procedural es mucho mas facil...  si, probablemente lo se, pero tambien "invita" a ser muuuucho mas perezoso como programador (y en ultima instancia, MAL programador).


Saludos.

Hay un lenguaje que se llama gopher? Pensaba q era un protocolo y/o servicio de Inet muy antiguo. Lisp.... eso sigue? Pensaba q habia desaparecido hace muchos años.  Smalltalk muy bueno. Pero casi no se usa por lo menos en Europa a nivel profesional. En cuanto a que Java y C++ son caca , culo, pis... pos bueno. Pero si quieres trabajar en el mundo real creo q son muy buenas elecciones . No voy a entrar a discutir otra vez el sexo de los ángeles. Solo estoy de acuerdo contigo en que el programar proceduralmente te hace adoptar malos hábitos en OOP. Pero vamos, si entiendes bien la OOP quitártelos es fácil y la procedural te hace falta.

marc_opolo

CitarHay un lenguaje que se llama gopher? Pensaba q era un protocolo.

Si, hay un lenguaje que se llama gopher... se usa mas que nada en ambientes academicos (al menos en mi caso). Y tambien es un protocolo (por cierto, alguien lo usa todavia?)

CitarLisp.... eso sigue? Pensaba q habia desaparecido hace muchos años.
Si, el Lisp sigue.. de hecho, todavia hay congresos, si no me equivoco. Otro lenguaje muy academico (aunque el Emacs lo usa para casi todo)

CitarSmalltalk muy bueno. Pero casi no se usa por lo menos en Europa a nivel profesional. En cuanto a que Java y C++ son caca , culo, pis... pos bueno. Pero si quieres trabajar en el mundo real creo q son muy buenas elecciones . No voy a entrar a discutir otra vez el sexo de los ángeles. Solo estoy de acuerdo contigo en que el programar proceduralmente te hace adoptar malos hábitos en OOP. Pero vamos, si entiendes bien la OOP quitártelos es fácil y la procedural te hace falta.

Bueno, estaba hablando de aprender a programar... pero mi opinion sigue siendo que aprendiendo este tipo de lenguajes, pasar luego a cosas mas "reales" es relativamente facil, mientras se tienen herramientas de analisis muy fuertes, mucho mas dificiles de conseguir directamente con lenguajes procedurales.


Hay otra forma de aprender a programar... y es con el lenguaje que ya manejamos desde pequeños: programar se puede programar en cualquier lenguaje, incluso en español.

Fran

Cita de: "marc_opolo"
CitarHay un lenguaje que se llama gopher? Pensaba q era un protocolo.

Si, hay un lenguaje que se llama gopher... se usa mas que nada en ambientes academicos (al menos en mi caso). Y tambien es un protocolo (por cierto, alguien lo usa todavia?)




No tengo ni idea. Yo llegué tarde para usarlo.

Citar
Cita de: "marc_opolo"
Lisp.... eso sigue? Pensaba q habia desaparecido hace muchos años.
Si, el Lisp sigue.. de hecho, todavia hay congresos, si no me equivoco. Otro lenguaje muy academico (aunque el Emacs lo usa para casi todo)

Lo poco que vi cuando queria hacer sistemas expertos hace ni me acuerdo, era elegante. La verdad es q no entiendo xq se malogró xq la programación declarativa para muchas cosas es muy muy util

Cita de: "marc_opolo"
CitarSmalltalk muy bueno. Pero casi no se usa por lo menos en Europa a nivel profesional. En cuanto a que Java y C++ son caca , culo, pis... pos bueno. Pero si quieres trabajar en el mundo real creo q son muy buenas elecciones . No voy a entrar a discutir otra vez el sexo de los ángeles. Solo estoy de acuerdo contigo en que el programar proceduralmente te hace adoptar malos hábitos en OOP. Pero vamos, si entiendes bien la OOP quitártelos es fácil y la procedural te hace falta.

Bueno, estaba hablando de aprender a programar... pero mi opinion sigue siendo que aprendiendo este tipo de lenguajes, pasar luego a cosas mas "reales" es relativamente facil, mientras se tienen herramientas de analisis muy fuertes, mucho mas dificiles de conseguir directamente con lenguajes procedurales.


Hay otra forma de aprender a programar... y es con el lenguaje que ya manejamos desde pequeños: programar se puede programar en cualquier lenguaje, incluso en español.
[/quote]
Bueno. Yo entiendo que querrá aprender a programar para hacer juegos o  algo asi, y creo (es mi opinión) q es mejor  q aprenda con algo q vaya a poder usar.

Vicente

Lisp se usa en temas de IA en algunos juegos: el Rise of Nations lo usaba, el Jack and Dexter (o como se ponga) y algunos otros por ahí.

Aún así yo tiraría por la ruta Pascal->C->C++/Java/C#/VB.NET

Quizás los lenguajes procedurales sean más propensos a enseñarte vicios que los declarativos, pero también son mucho más intuitivos de entender para alguien que empieza. Ya tendrá tiempo de aprender ese tipo de cosas si le gusta el tema.

Un saludo!

Vicente

marc_opolo

No se en qué es mas intuitivo hacer

var
 coche :Coche;

begin
 coche.color := ROJO;
 if coche.cabriolet = True then
   coche.desmontarTecho();
end.



a esto

coche <- Coche nuevo
coche color: ROJO
coche esCabriolet: [ desmontarTecho ]



por poner un ejemplo bien sencillito. Si tengo que explicar Pascal, tengo que explicar para que sirve var, begin, end, if, then, =, :=, el parentesis.... si tengo que explicar smalltalk (o squeak) es un poco mas facil: el :, los [], y poco mas. Además de la interfaz visual, el poco codigo que hay que escribir, y todo lo que se menciono antes...

igual, al final cada uno elige lo que quiere...

(como yo, que como no sabia, y empece con gwbasic... puaj!)


Saludos!

Kain

Cita de: "marc_opolo"Si queres aprender a programar en serio... mi recomendación seria que aprendas primero los paradigmas funcionales y de objetos (oop). Si, contrariamente a lo que todo el mundo hace...

Una vez te manejes en estos dos paradigmas, aprender a programar en procedural (cosa que ya haces, seguramente), va a ser MUCHO mas facil.

Y como lenguajes: para funcional, supongo que haskell, gopher o lisp; para objetos, Smalltalk o Squeak.

Aprender a programar con lenguajes procedurales (basic, pascal, c, y otros) o hibridos mal hechos (java, c++) puede llevarte a adoptar muchisimos vicios, tanto de programacion como de diseño.

Y a programar, se aprende programando, como ya dijeron por aca. Algunos me van a decir que aprender directamente un lenguaje procedural es mucho mas facil...  si, probablemente lo se, pero tambien "invita" a ser muuuucho mas perezoso como programador (y en ultima instancia, MAL programador).


Saludos.

Hola, queria aclarar algunas cosas de tu Post, para que la gente no se confunda, los lenguajes que dijiste puede llevar a muchos vicios, pero a un buen programador no  le pasaria, por que si sabe programar, programara bien.

Pero decir  que es un produce vicio el C, el unico vicio que produce es el de seguir programando, el C es unos de los mejores lenguajes de programcion a alto nivel del mundo, fue creado para poder hacer lo que ensamblador no podia, y es mas en un videojuego, logro que se pudieran portar los programas con cambios de 20 lineas o mas, en ves de cambiar todas las direcciones de memoria.

Compara un programa hecho con un lenguaje Procedural  con otro lenguaje, cuesta mas hacer un programa con un lenguaje Declarativo que con uno Procedural, algunas cosas las hace mejor los Procedurales y otras los Declarativos, pero es mas facil usar un Procedural  y se llevan mejores resultados en menos tiempo, y si el personaje que esta estudiando programacion quiere programar tendra que aprender todos los tipos de lenguaje que sean de mayor utilidad en el campo que desea trabjar.

Ademas es matarse hacer un juego con Ensamblador, sabes todas las llamadas al sistema que habria que hacer,correria a una velocidad sorprendete que no serviria de mucho ya que corre en un solo tipo de computador, y habria que portarlo tantas veces que la empresa cerraria.

Saludos
b]"La Unica Iglesia Que Ilumina Es La Que Arde"[/b]

marc_opolo

eh.. no.
CitarHola, queria aclarar algunas cosas de tu Post, para que la gente no se confunda, los lenguajes que dijiste puede llevar a muchos vicios, pero a un buen programador no le pasaria, por que si sabe programar, programara bien.
Para programar bien, primero hay que aprender, y mientra se aprende, se cometen errores. Algunos (o mucho) de esos errores se transforman en vicios. Un lenguaje complejo de utilizar (como el c++ o el java), confunde al aprendiz, y por ende puede llevar a cometer errores, y a enviciar su modo de programar.

CitarPero decir que es un produce vicio el C, el unico vicio que produce es el de seguir programando, el C es unos de los mejores lenguajes de programcion a alto nivel del mundo, fue creado para poder hacer lo que ensamblador no podia, y es mas en un videojuego, logro que se pudieran portar los programas con cambios de 20 lineas o mas, en ves de cambiar todas las direcciones de memoria.
El C esta lejos de ser uno de los mejores lenguajes de programación del mundo. No hay mas que ver los distintos simposios y congresos que giran alrededor de paradigmas a los que un lenguaje como el C (o el C++) no puede hacer frente. Y en mi opinion, paradigmas como el de objetos o el de aspectos, desplazan al lenguaje C/C++ al nivel medio.

Es cierto que algunas cosas es mas facil hacerlas en procedural que en funcional, declarativo u objetos. Precisamente por eso hay tantos paradigmas, porque con un solo paradigma no puede hacerse todo (de manera prolija y correcta, claro). Pero aprender a programar en funcional y objetos da una serie de herramientas que el procedural no da, y que hoy por hoy son más que utiles (bueno, dudo del funcional para este proposito, pero ayuda mucho a estructurar la cabeza...).

En fin, si el chico quiere aprender a programar cosas concretas y nada mas, aprender un lenguaje procedural o pseudo-objetos esta bien, al final todos empezamos por ahi.


Por cierto, muy buena la frase de Kropotkin.

Saludos!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.