por
pobrecito hablador
el Lunes, 31 Julio de 2006, 18:40h
(#787598)
Yo aprendí oop con turbo pascal, hace más de 10 años. Después me pasé a C++, que es más versátil y potente. Java funciona totalmente con objetos, y tal vez sea actualmente uno de los lenguajes más apropiados para esto.
Yo aprendería Java. El problema que tiene Python, por ejemplo, es que permite al usuario elegir entre programar orientado a objetos o no, o incluso mezclar. Con Java no te queda otra :)
Y respecto a documentación, tampoco merece la pena machacarse mucho. Con entender claramente los conceptos de clase, objeto, encapsulamiento, herencia, polimorfismo y alguno más que se me esté olvidando, ya lo tienes.
Re:Java
de tenerife
(Puntos:1)
Lunes, 31 Julio de 2006, 18:55h
falso, diría yo
de pobrecito hablador
(Puntos:0)
Lunes, 31 Julio de 2006, 19:15h
Re:falso, diría yo
de rondamon
(Puntos:2)
Martes, 01 Agosto de 2006, 06:12h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 18:59h
(#787612)
Sin duda, es en C++, pero el libro referencia para los maestros de la programación es sin duda el mítico tomo negro del Stroustrup. La típica inversión de la que nunca te arrepientes.
Lo que aprendas con el te servirá para cualquier lenguaje.
Re:Stroustrup
de pobrecito hablador
(Puntos:0)
Lunes, 31 Julio de 2006, 20:17h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 19:16h
(#787620)
Sin desmerecer la opinión de los que apoyan Java o C#, creo que hay un error no menor en decir que con entender, herencia y polimorfismo ya sabes POO. La POO va mucho más allá del lenguaje: trata de objetos "hablando" entre si y esto requiere una forma de pensar muy diferente a la programación estructurada; luego no vas a aprender POO solo aprendiendo a programar en Java, sino que con Java o C# puedes aplicar varios (no todos) los conceptos de la POO. Por lo tanto, yo te recomendaría que buscaras información sobre POO en si misma (los conceptos que abarca son bastantes más que herencia y polimorfismo) y trates de practicar con el lenguaje que te sea de preferencia lo aprendido. Como dato, los puristas de la POO suelen ser adeptos de Smalltalk y con buenas razones.
Otra cosa que puedes aprender y es MUY útil a la hora de programar con objetos es el uso de Diagrama de Secuencia [wikipedia.org].
Saludos y espero haber ayudado.
Re:POO en serio
de pobrecito hablador
(Puntos:0)
Lunes, 31 Julio de 2006, 19:26h
Re:POO en serio
de caradriel
(Puntos:1)
Martes, 01 Agosto de 2006, 09:55h
Re:POO en serio
de pobrecito hablador
(Puntos:0)
Lunes, 31 Julio de 2006, 21:49h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 19:20h
(#787624)
Nadie recomienda Ruby? Es completamente orientado a objetos (no tiene tipos simples, como Java), fácil de aprender... Que conste que me gusta mucho Java, pero no es el mejor ejemplo de orientación a objetos que existe... para eso, habría que recuperar smalltalk :P
Re:Y Ruby?
de pobrecito hablador
(Puntos:0)
Lunes, 31 Julio de 2006, 20:16h
Re:Y Ruby?
de el culo
(Puntos:1)
Lunes, 31 Julio de 2006, 21:12h
Re:Y Ruby?
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 13:10h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 20:00h
(#787651)
1) Aprender herencia, polimorfismo, y las idades: como mantenibilidad, flexibilidad, etc.
2) Aprender Patrones de Diseño (sin patrones de diseño la OOP esta desnuda y no tiene objetivos)
3) 10 años de experiencia construyendo aplicaciones orientadas a objetos en equipos medianos.
Y ya esta, sabes programacion orientada a objetos.
Acabo de "descubrir" (creo que la primera edición es de mediados de los 90) el tocho de Bertrand Meyer, Construcción de software orientado a objetos, que se basa, aunque no lo dice hasta casi el final del libro, en Eiffel. ¿Algún otro más ameno (uséase, menos de 1200 páginas)? La verdad es que éste tiene muy buena pinta, pero creo que para un nivel introductorio te sobran unas cuantas páginas ;)
Re:Hablando de libros
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 06:48h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 20:54h
(#787693)
Yo aprendí primero a programar en C, y luego aprendí C++, pero bajo la aproximacion de 'C con clases', o 'struct con funciones'. Vi en frío lo que es la herencia, lo que es el polimorfismo, etc., pero es dificil asimilarlo y entender que esta detrás, de que se trata, y para que se puede usar...
Mucho tiempo despues me tope con el libro "Design Patterns Explained: A New Perspective on Object Oriented Design" (Addison Wesley) [amazon.com], lamentablemente solo lo conozco en inglés; al leer los primeros 3 o 4 capitulos (donde se 'introduce' la programación orientada a objectos)... me hizo zapatear las neuronas. Ahi entendí lo que es la filosofia de la OO, al aplicarla a patrones de diseño (que además son en extremo interesantes por si mismos... y realmente sirven para utilizar las caracteristicas de OO).
Si quieren un rato de amena lectura, que les puede mostrar un enfoque que a lo mejor nunca han visto aunque lleven años trabajando con OO, yo se los recomiendo.
Y luego, esos principios pueden ser aplicables, supongo al lenguaje de su preferencia.
Mi lenguaje orientado a objetos favorito del momento es Ruby. Pero lo importante es tener bien asegurados los conceptos de POO, genéricos, no ceñirse a un lenguaje únicamente.
No me gusta el término "programación estructurada", en parte porque de hecho es menos estructurada que la POO y en parte que es muy vago.
Prefiero, como algunos autores, sugieren "programación secuencial" que de una idea más exacta de la programación tipo receta de cocina que es la primera y sabrosa fase que todo programdor debe pasar.
No conozco a nadie que sea un buen programador POO sin haber pasado sus buenos cinco o seis años como programador secuencial, es cuando te das cuenta (al paso del tiempo) que todo tu código termina en código espaghetti que empiezas a pensar en objetos.
Java es un buen comienzo porque es màs severo y no te deja adquirir malos hábitos de programación. Pero hay excelentes concepciones de POO hechas en php4 o perl.
Sin embargo, repito, hay ciertas aseveraciones y consejos POO que ningún libro te enseñará a valorar, sólo la experiencia. Nadie aprende a nadar leyendo sobre ríos y piscinas.
Si lo que quieres es aprender la mejor solución es que te inclines por un intérprete que es infinitamente más versátil que un compilador.
Además es interesante que el lenguaje soporte programación clásica ya que así te permitirá generar prototipos rápidamente, probarlos y depurarlos sin tediosas compilaciones y, sobre todo, comparar los resultados de la programación clásica y oo.
Python es una buena alternativa pero no la única.
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 21:58h
(#787729)
Aprender UML e Ingeniería de software antes que conocer el paradigma de la orientación a objetos me parece un mal planteamiento.
Puede que esté equivocado, pero me parece mucho más básico conocer algunos concepto de "bajo nivel" para poder trabajar luego a un nivel más alto como es hacer un análisis o un diseño utilizando una técnica como UML.
Y si se quiere aprender bien la programación a objetos, yo recomiendo el libro de Meyer, Construcción de software orientada a objetos [eiffel.com], utilizando como lenguaje de apoyo Eiffel.
El libro es muy grande, y a veces un tostón, pero no es necesario leer todo para conocer bastante sobre la OO, y leyendo despacio y con calma, se puede aprender. A lo mejor es una forma más lenta y en principio menos últil que cogerse un libro de Java, pero yo aprendí así y estoy muy contento de haberlo hecho.
Un saludo a todos, y espero vuestras opiniones.
+5 Informativo
de McPolu
(Puntos:2)
Martes, 01 Agosto de 2006, 06:41h
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 22:05h
(#787731)
Por experiencia, este mismo año he tenido una asignatura de POO. Se llama laboratorio de tecnología de objetos, segundo curso de Informática en Málaga.
La verdad es que hemos trabajado con Java y ha estado bien. El problema es que los apuntes que nos han dado no se pueden descargar libremente.
Por último pues usé un libro que se llama "El lenguaje de programación JAVA" de Ken Arnold, James Gosling y David Holmes. Editorial Pearson educación. Aunque este libro es más de consulta que de leerlo a piñón para aprender.
te recomiendo que te mires un poco de teoría general sobre programación orientada a objetos y enseguida te metas con JAVA que es lo que realmente te va a servir tanto a nivel personal como a nivel profesional.
Te recomiendo leer este libro:
"UML y Patrones: Introducción al análisis y dise o orientado a objetos. Autor: Craig Larman"
Esta accesible y fácil de comprender
Te cuento mi caso .....
Estudie industriales (la superior, especialidad de automatica y electronica), asi que mis conocimientos de informatica se reducian a "lenguajes" como Step5, VHDL, ensamblador para el 68HC11, TurboPascal y C/C++ (estos dos ultimos muy por encima). Al terminar la carrera me interese mas por el desarrollo de software, analisis y diseño orientado a objetos, patrones, UML, ... etc ....
El de Craig Larman me parece una buena introduccion en la materia. Apenas aparecen 4 lineas de codigo en Java y utiliza los diagramas de UML de manera poco rigurosa, por lo que resulta muy facil de seguir. Una vez introducido cada concepto te recomienda bibliografia concreta mediante la cual profundizar en el tema.
por
pobrecito hablador
el Lunes, 31 Julio de 2006, 23:31h
(#787762)
Lo más práctico es aprender Java, para ello mi libro favorito es: GRAPHICALLY RICH BOOK, Head First Java, 2nd Edition, escrito por: Bert Bates y Kathy Sierra, ISBN: 0-596-00920-8. El libro abunda en gráficos, es practicamente un texto de puras infografías, el libro está publicado en inglés
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 00:11h
(#787777)
Yo te recomiendo que empieces por Java, es un lenguaje sencillo y muy rápido de programar, ya que te olvidas del tema de la memoria dinámica.
Una vez que comprendas los conceptos de OO, y sabiendo C, puedes aprender fácilmente C++.
El libro que te recomiendo es Piensa en Java, de Bruce Eckel. Tiene versión gratuita en PDF en la web del autor (Thinking in Java es el título original), y está bastante pensado para gente que venga de la programación estructurada.
Mucho ánimo!
Re:Piensa en Java
de endermuabdib
(Puntos:1)
Martes, 01 Agosto de 2006, 09:40h
Re:Piensa en Java
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 22:29h
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 00:24h
(#787780)
Yo programo principalmente cosas en Linux y Mac OS X, empecé con ensamblador del Z80 allá por los 80, domino varios ensambladores, C, C++, Objective-C, Java, Ruby, Python, etc.
Francamente, creo que Ruby es el lenguaje más orientado a objetos de cuantos conozco, es muy futurista, supersencillo y áltamente potente. Fácil de aprender y no te deja frustrado cuando ya sabes y quieres hacer cosas muy complejas. Si quieres aprender orientación a objetos te recomiento Ruby. Principalmente porque aprenderás cosas que no verás en otros lenguajes orientados a objetos. Ruby es un lenguaje COMPLETAMENTE orientado a objetos, TODO es un objeto o una referencia a un objeto, con lenguajes más antiguos no llegarás a ver cosas tan interesantes como la introspección o la manipulación "en caliente" de instancias.
Con Ruby, además de aprender fácilmente qué son los objetos, te abrirás la mente a conceptos que podrían pasar años desconocidos pese a pensar que dominas la POO.
Tienes documentación y tutoriales en español abundantes. Aprender un nuevo lenguaje es como elegir un nuevo coche, pero con la facilidad de que éste es gratis (solo te cuesta el tiempo que le dediques al aprendizaje). Uno, por lo general, prefiere tener un coche moderno, fácil de manejar y con lo último en tecnología.
Realmente, aprender siempre se puede aprender, pero aveces, por no saber demasiado sobre un tema, uno acaba lamentándose por haber estado perdiendo el tiempo aprendiendo cosas menos "importantes".
Tal vez otros lenguajes te supongan más salida laboral, al día de hoy, como Java, uno no debe cerrarse a aprender nunca. Hay mucha gente por ahí que se estanca en lo poco que ha aprendido y no quiere nunca saber más. Me he topado con muchos que un día aprendieron Perl y Python y ahora no quieren ni oir hablar de Ruby, dicen que es peor, más lento, más esto o lo otro. Son vagos y no tienen curiosidad, aprendieron un poquito y ahora no quieren esforzarse más. Por eso digo que aveces uno la caga eligiendo mal al principio, porque si no tiene la suficiente curiosidad puede que se estanque ahí y haga sus trincheras. En tal caso habría sido mejor aprender algo realmente bueno.
Weno, pasando de cháchara, Ruby puede que no te dé mucho dinero, pero es lo más way que te puedas echar a la cara, tiene librerías y bindings para todo, es fácil, superpotente y cada día que pasa es más popular. Es una buena inversión de futuro y una gran fuente de diversión y conocimiento.
Yo he estudiado en la Carlos III de Madrid y desde primero hemos estudiado OO, Java y tambien algo de C#.
Pero nos han inculcado la filosofia OO desde el principio. Su metodo es bueno. Si quieres algo no tienes mas que pedirmelo.
Suerte con el aprendizaje.
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 05:12h
(#787799)
Mi chica ha aprendido de forma natural orientación de objetos.
Después de algún tropezón, ahora lo maneja todo de forma diestra y a veces a dos manos. Creo que de interprete utiliza el francés.
Lo más dificil de diseño es justo eso, diseñar. No por saber mucho UML, C++ o Java te conviertes en un buen diseñador. Lo más importante es adquirir experiencia.
Bien, y como lo haces ? pues haciendo diseños y luego implementándolos. La gracia de implementarlos es que validas, en cierta forma, si tu diseño es "bueno" o "malo" en base a las penurias que pasas para implementarlo, probarlo y liberarlo.
Un lenguaje "friendly" para pruebas de concepto está bien. Java es infernal si no conoces el API, C++ es mas o menos el Necronómicon de la programación, sobre todo para newbies. Ruby es escandalosamente orientado a objetos, tanto, que los objetos no te dejan ver el problema. Así que tiraría con Python, que es la solución de compromiso entre la guarrería mas procedimental y la solución mas rebuscada. Y además pruebas rápido. Y tiene serpientes.
Para empezar, no construyas catedrales. Haz pruebas de concepto. Por ejemplo, subsistemas "modelo" (una capa de acceso a base de datos, un sistema de distribución de eventos, una GUI ...). Lo mas importante es seguir el KISS y que los diseños sean entendibles, bien documentados y completos (no vale de nada poner una caja y decir "El sistema")
Cuando ya tengas algo de soltura con los diseños a boli en servilletitas, búscate una herramienta de diseño (Rose, Rhapsody) y monta una cadena de producción completa (desde que pintas una clase,
hasta que llegues a depurar su comportamiento en el banco) Algunas soportan animaciones del modelo, otras "executable UML models" y demás frivolidades que están bien para fardar con los amiguetes en el café, o dar charlas. Pero recuerda, son solo herramientas para ayudarte en tu diseño. Diseñas tu, no la herramienta.
Y si entre medias intentas aplicar patrones (pero no cortando y pegando del GoF, sino entendiendo que es lo que quieren decirte) pues entonces,
alcanzarás el nirvana de los diseños implementables (que nada tienen que ver las bizarreces teórico-chapuceras de los diseños artísticos)
Y recuerda. El objetivo principal de diseñar es dar la información necesaria para poder construir un producto que cumple el 100% de los requisitos de tu usuario. No dan puntos por hacerlo barroco, ni esotérico.
--
<your quote here> --Bjarne Stroustrup
+5
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 10:34h
A mi me parece que Ruby tiene una visión un poco especial de la POO, que no digo que sea mala en sí, pero que se aleja un poco del resto: comprender bien el funcionamiento de los mixins y las construcciones tipo "class
Luego tenemos Java y C#, que dentro del paradigma de POO suponen una visión más ortodoxa y probablemente la que profesionalmente a uno le interese más de manera inmediata.
Y C++, aunque me gano la vida con él, no creo que sea buen ejemplo de implementación del paradigma de la POO.
-- ___ "Tamparantán que te han visto Pepe, tamparantán que te han visto Juan"
Desde mi experiencia, para empezar te recomendaría primero un libro didáctico como "Programación Orientada a Objetos 2º ed" de Luis Joyanes Aguilar. Da una introducción a la POO muy sencilla, fácil de entender y la estructura que sigue el libro es muy adecuada. Ayuda con ejemplos en C++, que se pueden aplicar facilmente a Java. La verdad es que con este libro te será muy fácil aprender POO. Después una vez que tengas una introducción, seguiría con los numerosos libros que otros compañeros de foro te han aconsejado (auténticos best-sellers), libros que,una vez que tengas una base podrás sacar más provecho.
La verdad yo personalmente te recomiendo aprender los fundamentos de la OO y su teoria. Lo fundamental és aprender a pensar en OO. Así como un fotografo de blanco y negro tiene que ver en blanco y nego. Al plantearte un problema tienes que crear mentalmente un analisis OO.
El siguiente paso és estudiar los Patrones existentes, (te recomiendo utilizar el UML por ser el mas estandar y genérico). Ay multitud de patrones, peró yo me quedaria con los mas comunes, tipo patron iterador, etc...
A partir de aquí puedes aplicar tus conocimientos a cualquier lenguaje de programación. De los mas fideles a OO puedes utilizar Eiffel, de los mas prácticos usaria Java.
Peró personalmente el paso al estudio de OO con lenguages de programació lo dejaria para el final, pués todos los lenguajes presentan restricciones respecto a la concepción pura de la OO.
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 07:45h
(#787830)
A ver cuando acaba el veranito y van desapareciendo las hordas de jovencitos tipo "soy barrapuntero, como molo", volviendo a la normalidad, porque los comentarios que se ven últimamente son para flipar.
Solo en estas fechas se puede ver a una mayoría de gente recomendando Rubi o Python atreviéndose siquiera a compararlos con C++ , Java o C# (de este último por cierto solo hay un comentario y de pasada, lo que demuestra el amplio conocimiento de lenguajes en general de los foreros presentes). Y encima, todo esto es porque alguien pregunta el mejor camino para aprender POO, y los foreros en un alarde de conocimientos sobre programación, se ponen a recomendarle lenguajes en vez de recursos para entender un paradigma. Es más, otros incluso minimizan la parte teórica resumiéndola a un simple "solo tienes que entender herencia y polimorfismo, y tira millas". Vamos, en general ni puta idea.
A ver si nos enteramos, que una cosa son los juguetitos, y otra los lenguajes de programación. Python lleva la tira de años queriendo levantar cabeza y ahí sigue (y seguirá) como subproducto de una minoría. Rubi es la nueva moda geek y cool que lo usan cuatro. Uno de ellos porque es parte de los creadores, y los otros tres porque queda muy "fashion" decir que usas Rubi, un lenguaje que lo poco que se ha extendido ha sido en torno a sus creadores y su halo de gurús autoinflinjido que tanto ha atraido a los "busco-gurús-les-lamo-el-culo-a-ver-si-me-dejan-se r-como-ellos-y-molo-cantidad" Por supuesto, a Rubi le espera un futuro como a Python, o incluso peor.
A ver si entendemos, también de paso, que una cosa es conocer un lenguaje, o conocer un poco de 15 lenguajes (aunque había uno por ahí que comenta que es "experto" en no se cuantos) y otra cosa bien distinta es la programación. Hace gracia ver los comentarios tipo "yo soy experto en esto, y esto y esto más" acompañados de los "pos yo de eso y de cuatro veces más cosas, y encima se hacer macarrones con tomate, sé más que tú".
Así que por favor, mientras llega septiembre, regresais al cole y barrapunto se vuelve a airear, cuando se hable de programación, orientada a objetos o no, los niños a la cama o al cuarto de juegos, que los mayores están hablando en el salón. A cambio prometo sacar una noticia sobre las últimas pruebas de la nueva edición de Operación Triunfo, para que podais expresaros con propiedad y disfrutar en el intento. Gracias.
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 08:24h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 08:45h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 10:03h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 11:02h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 17:38h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Miércoles, 02 Agosto de 2006, 07:23h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 11:56h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 12:00h
Re:Septiembre ven ya!
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 12:03h
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 09:05h
(#787871)
Aun a riesgo de que el resto de la platea me eche a los leones, yo te recomendaría que empezaras con un lenguaje sencillo, pero depende también del tiempo que lleves programando y de los lenguajes que te gusten y conozcas.
Java y yo no somos muy amigos, de hecho no nos hablamos. No me gusta ni su filosofía ni su funcionamiento.
C++ me parece un gran lenguaje OO, y espero poder dedicarle tiempo algún día, pero es algo complicado de usar y para empezar a obtener resultados no únicamente en consola es farragoso.
De otros no puedo hablar.
Yo necesitaba programar con objetos y usar interfaces gráficas de forma rápida y acabé descubriendo Gambas, que usa BASIC, y que tiene muy buena pinta. Sólo en Linux y creo que también en Mac.
No hay versión W$. Ni falta que hace.
Saludos
Pues eso!!
http://www.ooad.org/
espero que te sirva, al menos como primer contacta, muy recomendable antes de comprarte el tipico ladrillo de libro, muy teorico y criptico...
Asi suelen ser los libros de esta materia...
Evidente, hay que acudir a la página OO [well.com] de Ricardo Devis [well.com] ¡elemental!
Quizá algo obsoleta, cierto, pero vale la pena, aunque sólo por el vértigo que da.
Te recomiendo Thinking in Java [mindview.net] de Bruce Eckel, sobre todo los capítulos iniciales, y tambien Object Design: Roles, Responsibilities, and Collaborations de Rebeca Wirfs_Brock [wirfs-brock.com]
Nota: el libro de Bertrand Meyer es un tocho, como ya se ha dicho, pero se pueden sacar algunas enseñanzas válidas, pero quizá no para iniciarse. Y del Sr. Joyanes nada de nada, no ha programado en su vida, si, si, como lo oyes, si, ya sé que es Catedrático y todo eso, incluso ojeé su tesis, pero na' de na', lo que yo te diga.
Hola a tod@s, la intención de escribir esta bitácora es que necesito la colaboración de todos ustedes porque estoy iniciando un proyecto documental acerca de los intercambios de libros, soy de caracas, venezuela, y aqui nunca se ha implementado, mi idea es de hacer un pequeño documental basándome en una historia y luego inculcar e implementar lo de intercambio de libros aca, me gustaria que me ayudaran mandandome mas información al respecto, vivencias, anécdotas, etc etc...... en cuanto a los intercambios que han hecho en sitios, locales, recepción de los mismos, a todos los que me ayuden tengan por seguro que los pondré en los créditos. De verdad mucho les agradecería me respondieran a mi mail. Mil Gracias por la información que me pudieran suministrar.
-- Maria Elena Martinez
Re:Pidiendo una ayuda
de pobrecito hablador
(Puntos:0)
Martes, 01 Agosto de 2006, 17:47h
Hola amigos, yo te recomiendo que primeramente busque información relacionada sobre POO,
tales como:
- Que es una clases
- Que es un objeto
- Que es herencia
- Polimorfismo
- Sobrecarga de clases
y muchas otras cosas que tiene la POO, luego de saber un poco de la teoria y entender el concepto puedes buscar aprender un lenguaje, te digo esto, pq no es facil despues de programar siempre de forma estructurada, cambiar a OO pq el cambio de paradigma grande, la forma de programar es distinta.
Sobre UML es practicamente el estandar para la programación orientada a objeto es lo mejor que puedes utilizar (en mi criterio) para diseñar un sistema orientado a objeto. hay muchas metodologias como RUP, MSF, entre otras que utilizan UML
-- Cesar Montero
Desarrollador Web
Maracay - Venezuela
por
pobrecito hablador
el Martes, 01 Agosto de 2006, 20:58h
(#788211)
En 3º de Inf. Gestión de la URJC se imparte una asignatura denominada "Software Avanzado" donde al estudio de la programación orientada a objetos se le ataca desde tres frentes:
- Filosofía de la orientación a objetos.
- Programación en Java.
- Diseño utilizando UML.
Además el profe tiene accesible un libro en formato PDF que permite seguir la asignatura sin asistir a las clases teóricas. (http://www.terra.es/personal/jfvelez/libro/libro. html).
Bueno si bien la clave de todo es practica pues yo empece con C++ y el libro que me ayudo mucho fue el de Luis joyanes Aguilar C++ Un enfoque Orientado a objetos si bien es un poco confuso al principio luego pues ya todo se enciende un poco OJO tienes que tener un buen conocimiento de C espero que te sirva
por
pobrecito hablador
el Jueves, 03 Agosto de 2006, 12:02h
(#788937)
Yo empecé con la POO el año pasado en la universidad, con C++ y UML. Desde el primer momento me llamó la atención UML... busqué, y veo que casi ningún proyecto libre tiene sus diagramas UML ni los utilizan para nada. Conozco a varios desarrolladores de programas más o menos importantes en C++, que no utilizan UML ni herramienta de diseño/diagramas similar. Según me han comentado... esa teoría queda muy bonita, pero a la hora de la verdad es poco práctica. Por lo que me han podido decir gente de empresas, la situación en el mundo laboral respecto al uso de UML tampoco está mucho mejor: el jefe prefiere ver código... no le plantees que te vas a tirar un mes haciendo dibujitos para que el producto final sea mejor.
Entonces, desde mi completa ignorancia, pero con distintas opiniones de gente bastante metida en el día a día de la POO, ¿son realmente prácticos estos métodos de diseño? ¿Cuánto trabajo nos ahorran y qué calidad gana el software con ello?
Yo en la uni "aprendí" Eiffel, que se supone que una vez que entiendes los conceptos de un lenguaje OO, ya sabes programar en todos, y segun dicen también, Eiffel es el más "estandar" de todos los lenguajes. Tanto que solo se usa a nivel "educacional", y no en la práctica (o eso dicen), por lo que te quema un poco tener que hacer como hice yo este año un Sudoku en un lenguaje al cual no le ves futuro, pero ya se sabe como está la enseñanza...
No hay duda
(Puntos:0)Yo aprendí con Turbo Pascal
(Puntos:0)Java
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Martes, 14 Marzo de 2006, 21:16h )
java
(Puntos:1)Stroustrup
(Puntos:0)Lo que aprendas con el te servirá para cualquier lenguaje.
Objective-C
(Puntos:0)Objetive C [es] [wikipedia.org]
Objetive C [en] [wikipedia.org]
POO en serio
(Puntos:4, Interesante)Otra cosa que puedes aprender y es MUY útil a la hora de programar con objetos es el uso de Diagrama de Secuencia [wikipedia.org].
Saludos y espero haber ayudado.
Y Ruby?
(Puntos:0)Aprender OOP resumido en tres pasos:
(Puntos:0)2) Aprender Patrones de Diseño (sin patrones de diseño la OOP esta desnuda y no tiene objetivos)
3) 10 años de experiencia construyendo aplicaciones orientadas a objetos en equipos medianos.
Y ya esta, sabes programacion orientada a objetos.
Hablando de libros
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 05 Noviembre de 2014, 18:55h )
pues...
(Puntos:2)( http://press.asqueados.net/ | Última bitácora: Jueves, 06 Marzo de 2014, 11:47h )
Java es menos puro, pero lo que aprendas te va a servir más que Smalltalk con casi toda seguridad.
C++ no me gusta porque lo encuentro una especie de híbrido extraño...
.
Asqueados [asqueados.net]: mas politica, informatica y payasadas que nunca
Re:pues...
(Puntos:4, Divertido)( http://barrapunto.com/ )
OO y patrones de diseño
(Puntos:1, Interesante)Mucho tiempo despues me tope con el libro "Design Patterns Explained: A New Perspective on Object Oriented Design" (Addison Wesley) [amazon.com], lamentablemente solo lo conozco en inglés; al leer los primeros 3 o 4 capitulos (donde se 'introduce' la programación orientada a objectos)... me hizo zapatear las neuronas. Ahi entendí lo que es la filosofia de la OO, al aplicarla a patrones de diseño (que además son en extremo interesantes por si mismos... y realmente sirven para utilizar las caracteristicas de OO).
Si quieren un rato de amena lectura, que les puede mostrar un enfoque que a lo mejor nunca han visto aunque lleven años trabajando con OO, yo se los recomiendo.
Y luego, esos principios pueden ser aplicables, supongo al lenguaje de su preferencia.
Ruby
(Puntos:1)( http://capitanplaneta.com/ | Última bitácora: Miércoles, 08 Marzo de 2006, 11:20h )
-- Capitán Planeta [capitanplaneta.com]
POO
(Puntos:3, Inspirado)( http://www.mononeurona.org/ )
Prefiero, como algunos autores, sugieren "programación secuencial" que de una idea más exacta de la programación tipo receta de cocina que es la primera y sabrosa fase que todo programdor debe pasar.
No conozco a nadie que sea un buen programador POO sin haber pasado sus buenos cinco o seis años como programador secuencial, es cuando te das cuenta (al paso del tiempo) que todo tu código termina en código espaghetti que empiezas a pensar en objetos.
Java es un buen comienzo porque es màs severo y no te deja adquirir malos hábitos de programación. Pero hay excelentes concepciones de POO hechas en php4 o perl.
Sin embargo, repito, hay ciertas aseveraciones y consejos POO que ningún libro te enseñará a valorar, sólo la experiencia. Nadie aprende a nadar leyendo sobre ríos y piscinas.
-----------------------------------
"El tenía la inhumana costumbre de ser racional".
Un intérprete
(Puntos:1)Además es interesante que el lenguaje soporte programación clásica ya que así te permitirá generar prototipos rápidamente, probarlos y depurarlos sin tediosas compilaciones y, sobre todo, comparar los resultados de la programación clásica y oo.
Python es una buena alternativa pero no la única.
El libro de Meyer
(Puntos:0)Puede que esté equivocado, pero me parece mucho más básico conocer algunos concepto de "bajo nivel" para poder trabajar luego a un nivel más alto como es hacer un análisis o un diseño utilizando una técnica como UML.
Y si se quiere aprender bien la programación a objetos, yo recomiendo el libro de Meyer, Construcción de software orientada a objetos [eiffel.com], utilizando como lenguaje de apoyo Eiffel.
El libro es muy grande, y a veces un tostón, pero no es necesario leer todo para conocer bastante sobre la OO, y leyendo despacio y con calma, se puede aprender. A lo mejor es una forma más lenta y en principio menos últil que cogerse un libro de Java, pero yo aprendí así y estoy muy contento de haberlo hecho.
Un saludo a todos, y espero vuestras opiniones.
Java sin duda
(Puntos:0)La verdad es que hemos trabajado con Java y ha estado bien. El problema es que los apuntes que nos han dado no se pueden descargar libremente.
Por último pues usé un libro que se llama "El lenguaje de programación JAVA" de Ken Arnold, James Gosling y David Holmes. Editorial Pearson educación. Aunque este libro es más de consulta que de leerlo a piñón para aprender.
Un saludo y espero que disfrutes con la POO.
Aprende JAVA
(Puntos:1)Craig Larman
(Puntos:1)oop?
(Puntos:0)UML y Patrones, de Craig Larman
(Puntos:1)OO con infogramas
(Puntos:0)Piensa en Java
(Puntos:0)Ruby, sin duda
(Puntos:0)Francamente, creo que Ruby es el lenguaje más orientado a objetos de cuantos conozco, es muy futurista, supersencillo y áltamente potente. Fácil de aprender y no te deja frustrado cuando ya sabes y quieres hacer cosas muy complejas. Si quieres aprender orientación a objetos te recomiento Ruby. Principalmente porque aprenderás cosas que no verás en otros lenguajes orientados a objetos. Ruby es un lenguaje COMPLETAMENTE orientado a objetos, TODO es un objeto o una referencia a un objeto, con lenguajes más antiguos no llegarás a ver cosas tan interesantes como la introspección o la manipulación "en caliente" de instancias.
Con Ruby, además de aprender fácilmente qué son los objetos, te abrirás la mente a conceptos que podrían pasar años desconocidos pese a pensar que dominas la POO.
Tienes documentación y tutoriales en español abundantes. Aprender un nuevo lenguaje es como elegir un nuevo coche, pero con la facilidad de que éste es gratis (solo te cuesta el tiempo que le dediques al aprendizaje). Uno, por lo general, prefiere tener un coche moderno, fácil de manejar y con lo último en tecnología.
Realmente, aprender siempre se puede aprender, pero aveces, por no saber demasiado sobre un tema, uno acaba lamentándose por haber estado perdiendo el tiempo aprendiendo cosas menos "importantes".
Tal vez otros lenguajes te supongan más salida laboral, al día de hoy, como Java, uno no debe cerrarse a aprender nunca. Hay mucha gente por ahí que se estanca en lo poco que ha aprendido y no quiere nunca saber más. Me he topado con muchos que un día aprendieron Perl y Python y ahora no quieren ni oir hablar de Ruby, dicen que es peor, más lento, más esto o lo otro. Son vagos y no tienen curiosidad, aprendieron un poquito y ahora no quieren esforzarse más. Por eso digo que aveces uno la caga eligiendo mal al principio, porque si no tiene la suficiente curiosidad puede que se estanque ahí y haga sus trincheras. En tal caso habría sido mejor aprender algo realmente bueno.
Weno, pasando de cháchara, Ruby puede que no te dé mucho dinero, pero es lo más way que te puedas echar a la cara, tiene librerías y bindings para todo, es fácil, superpotente y cada día que pasa es más popular. Es una buena inversión de futuro y una gran fuente de diversión y conocimiento.
OO
(Puntos:1)Mi chica ha aprendido de forma natural.
(Puntos:-1, Troll)Después de algún tropezón, ahora lo maneja todo de forma diestra y a veces a dos manos. Creo que de interprete utiliza el francés.
Un saludete.
Una servilletita y un boli ...
(Puntos:4, Inspirado)( http://www.jmcresearch.com/ )
Bien, y como lo haces ? pues haciendo diseños y luego implementándolos. La gracia de implementarlos es que validas, en cierta forma, si tu diseño es "bueno" o "malo" en base a las penurias que pasas para implementarlo, probarlo y liberarlo.
Un lenguaje "friendly" para pruebas de concepto está bien. Java es infernal si no conoces el API, C++ es mas o menos el Necronómicon de la programación, sobre todo para newbies. Ruby es escandalosamente orientado a objetos, tanto, que los objetos no te dejan ver el problema. Así que tiraría con Python, que es la solución de compromiso entre la guarrería mas procedimental y la solución mas rebuscada. Y además pruebas rápido. Y tiene serpientes.
Para empezar, no construyas catedrales. Haz pruebas de concepto. Por ejemplo, subsistemas "modelo" (una capa de acceso a base de datos, un sistema de distribución de eventos, una GUI ...). Lo mas importante es seguir el KISS y que los diseños sean entendibles, bien documentados y completos (no vale de nada poner una caja y decir "El sistema")
Cuando ya tengas algo de soltura con los diseños a boli en servilletitas, búscate una herramienta de diseño (Rose, Rhapsody) y monta una cadena de producción completa (desde que pintas una clase,
hasta que llegues a depurar su comportamiento en el banco) Algunas soportan animaciones del modelo, otras "executable UML models" y demás frivolidades que están bien para fardar con los amiguetes en el café, o dar charlas. Pero recuerda, son solo herramientas para ayudarte en tu diseño. Diseñas tu, no la herramienta.
Y si entre medias intentas aplicar patrones (pero no cortando y pegando del GoF, sino entendiendo que es lo que quieren decirte) pues entonces,
alcanzarás el nirvana de los diseños implementables (que nada tienen que ver las bizarreces teórico-chapuceras de los diseños artísticos)
Y recuerda. El objetivo principal de diseñar es dar la información necesaria para poder construir un producto que cumple el 100% de los requisitos de tu usuario. No dan puntos por hacerlo barroco, ni esotérico.
<your quote here> --Bjarne Stroustrup
Python más que Ruby
(Puntos:2)( http://hronia.blogalia.com/ | Última bitácora: Jueves, 22 Enero de 2009, 06:57h )
Y C++, aunque me gano la vida con él, no creo que sea buen ejemplo de implementación del paradigma de la POO.
___
"Tamparantán que te han visto Pepe, tamparantán que te han visto Juan"
Libro Muy Didáctico
(Puntos:1)( http://barrapunto.com/ )
*** Greetings,;-) anirox ***
Aprender OO
(Puntos:1)Septiembre ven ya!
(Puntos:0, Inspirado)Solo en estas fechas se puede ver a una mayoría de gente recomendando Rubi o Python atreviéndose siquiera a compararlos con C++ , Java o C# (de este último por cierto solo hay un comentario y de pasada, lo que demuestra el amplio conocimiento de lenguajes en general de los foreros presentes).
Y encima, todo esto es porque alguien pregunta el mejor camino para aprender POO, y los foreros en un alarde de conocimientos sobre programación, se ponen a recomendarle lenguajes en vez de recursos para entender un paradigma. Es más, otros incluso minimizan la parte teórica resumiéndola a un simple "solo tienes que entender herencia y polimorfismo, y tira millas". Vamos, en general ni puta idea.
A ver si nos enteramos, que una cosa son los juguetitos, y otra los lenguajes de programación.
Python lleva la tira de años queriendo levantar cabeza y ahí sigue (y seguirá) como subproducto de una minoría.
Rubi es la nueva moda geek y cool que lo usan cuatro. Uno de ellos porque es parte de los creadores, y los otros tres porque queda muy "fashion" decir que usas Rubi, un lenguaje que lo poco que se ha extendido ha sido en torno a sus creadores y su halo de gurús autoinflinjido que tanto ha atraido a los "busco-gurús-les-lamo-el-culo-a-ver-si-me-dejan-se r-como-ellos-y-molo-cantidad"
Por supuesto, a Rubi le espera un futuro como a Python, o incluso peor.
A ver si entendemos, también de paso, que una cosa es conocer un lenguaje, o conocer un poco de 15 lenguajes (aunque había uno por ahí que comenta que es "experto" en no se cuantos) y otra cosa bien distinta es la programación.
Hace gracia ver los comentarios tipo "yo soy experto en esto, y esto y esto más" acompañados de los "pos yo de eso y de cuatro veces más cosas, y encima se hacer macarrones con tomate, sé más que tú".
Así que por favor, mientras llega septiembre, regresais al cole y barrapunto se vuelve a airear, cuando se hable de programación, orientada a objetos o no, los niños a la cama o al cuarto de juegos, que los mayores están hablando en el salón.
A cambio prometo sacar una noticia sobre las últimas pruebas de la nueva edición de Operación Triunfo, para que podais expresaros con propiedad y disfrutar en el intento.
Gracias.
no te lies, empieza con algo sencillo
(Puntos:0)Java y yo no somos muy amigos, de hecho no nos hablamos. No me gusta ni su filosofía ni su funcionamiento.
C++ me parece un gran lenguaje OO, y espero poder dedicarle tiempo algún día, pero es algo complicado de usar y para empezar a obtener resultados no únicamente en consola es farragoso.
De otros no puedo hablar.
Yo necesitaba programar con objetos y usar interfaces gráficas de forma rápida y acabé descubriendo Gambas, que usa BASIC, y que tiene muy buena pinta. Sólo en Linux y creo que también en Mac.
No hay versión W$. Ni falta que hace.
Saludos
links con documentacion a saco!!!
(Puntos:1)No te compres los manuales de Anaya
(Puntos:0)La página OO
(Puntos:1)( http://barrapunto.com/ )
Quizá algo obsoleta, cierto, pero vale la pena, aunque sólo por el vértigo que da.
Te recomiendo Thinking in Java [mindview.net] de Bruce Eckel, sobre todo los capítulos iniciales, y tambien Object Design: Roles, Responsibilities, and Collaborations de Rebeca Wirfs_Brock [wirfs-brock.com]
Nota: el libro de Bertrand Meyer es un tocho, como ya se ha dicho, pero se pueden sacar algunas enseñanzas válidas, pero quizá no para iniciarse. Y del Sr. Joyanes nada de nada, no ha programado en su vida, si, si, como lo oyes, si, ya sé que es Catedrático y todo eso, incluso ojeé su tesis, pero na' de na', lo que yo te diga.
Salu2
Pidiendo una ayuda
(Puntos:0, FueraDeTema)( http://barrapunto.com/ | Última bitácora: Martes, 01 Agosto de 2006, 00:28h )
Maria Elena Martinez
POO
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Jueves, 07 Diciembre de 2006, 14:49h )
Cesar Montero Desarrollador Web Maracay - Venezuela
Un libro grátis sobre POO
(Puntos:0)- Filosofía de la orientación a objetos.
- Programación en Java.
- Diseño utilizando UML.
Además el profe tiene accesible un libro en formato PDF que permite seguir la asignatura sin asistir a las clases teóricas. (http://www.terra.es/personal/jfvelez/libro/libro. html).
Libro para aprender
(Puntos:1)¿Es UML realmente necesario?
(Puntos:0)Por lo que me han podido decir gente de empresas, la situación en el mundo laboral respecto al uso de UML tampoco está mucho mejor: el jefe prefiere ver código... no le plantees que te vas a tirar un mes haciendo dibujitos para que el producto final sea mejor.
Entonces, desde mi completa ignorancia, pero con distintas opiniones de gente bastante metida en el día a día de la POO, ¿son realmente prácticos estos métodos de diseño? ¿Cuánto trabajo nos ahorran y qué calidad gana el software con ello?
Muchas gracias.
Eiffel
(Puntos:1)( http://www.patoroco.net/ )
Mi web: http://www.patoroco.net [patoroco.net]