alguien que me enseñe a programar

gracias a los que pasen por mi blog espero que alguien me tienda la mano como un hermano para aprender a programar en java ya que es un sueño que siempre he tenido hacer un programa y que sea 100% funcional, ojala alguien me pueda tender la mano gracias,,,,

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Ok Paso 1.- Baja el SDK de

Ok

Paso 1.-

Baja el SDK de Java ( http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-do... )

Paso 2.-

instalalo ( lee las instrucciones y asegurate de NO instalarlo en C:\Achivos de Programa... sino directamente en C:\ )

Debe de quedar algo como c:\jsdk1.7.x.x

( Saca screenshots de la pantalla donde te pregunta la ruta y pegalos en el foro usando <img src=" Aqui va tu imagen " />

Paso 3.-

Descarga vim ( http://www.vim.org/download.php#pc ) y sigue las instrucciones para instalarlo

Paso 4 abre una consola ( o la línea de comandos ) y modificala a lo siguiente ( http://www.petri.co.il/customize_command_prompt_in_windows_xp_2000_2003.htm solo ve las imagenes )

Además cambiale la letra que tiene predeterminada a la que está justo debajo, no me acuerdo cual es.

( También saca screenshots de este proceso )

Paso 5

En donde haya abierto tu linea de comandos ( que debe de ser algo como C:\Users\Tu o c:\Documents and Settings\Tu ) crea un archivo que se llame _vimrc ( fíjate en el guión bajo ) y asegurate que tenga el siguiente contenido: https://gist.github.com/1172407

Paso 6.. ( casi listo para aprender )

Abre en tu escritorio el link que dice "gvim easy" y escribe:

public class HolaMundo {
    public static void main( String ... args )  {
         System.out.println("Hola mundo!");
     }
}

Guardalo en alguna carpeta ( posiblemente C:\Users\Tu\java\Hola.java ) y luego desde la línea de comandos ve a esa carpeta y escribe:

javac Hola.java

Si te dice algo como javac command not found tienes que agregar el directorio donde instalaste tu SDK a la variable de entorno path:

Para ello: Mi PC > btn derecho > Propiedades > Boton: "Avanzado" > Variables de entorno > Edita que la se llama PATH y agregale al final el directorio donde instalaste algo como: C:\jsdk1.7.x.x.x\bin

Guarda y abre otra consola ( Menu windows + Run + cmd ) y repite lo de cambiarte al directorio y escribir javac Hola.java

Si no sale ningún mensaje estas a punto de tu primer programa.

Escribe:

java Hola ( fijate que no tiene la c ni el .java )

Y listo!

Habrás dado el primer paso.

Saca screenshots de todo, y postea aquí tu resultado, agrega un nuevo comentario y escribe todo el proceso de una forma mucho más interesante que lo que yo abaco de hacer, con negritas, imagenes, rutas completas etc. etc. etc básicamente a cambio de lo que te voy a enseñar vas a armar un blog para que otros aprendan.

Y listo!! cuando hayas publicado todo eso te eseñaré algo más, si jamás lo llegas a hacer, pues habré pasado 20 minutos escribiendo esto en vano, pero nada más.

Saludos!!!

Imagen de rodrigo salado anaya

Un Librito...

Cómprate un libro, siempre es una buena opción. Lee en orden el libro y completo. Por ejemplo te recomiendo que leas el capítulo 1 completito sin una computadora al lado, el primer capítulo es el más enredado porque te introduce en los términos que aún no has visto, pero por lo regular te dan una idea de que debes esperar aprender, cuando llegues a las partes prácticas como en el capítulo 2 o 3, otra vez lee el capítulo completo antes de tirar código y no te quedes con dudas de términos, si no entiendes que quiere decir clase o a que se refiere con Objeto, busca en Google y lees un par de párrafos te empapas del tema en cuestión y como suele haber mucho choro mareador en la red regresas a javamexico.org y sigues los consejos de Oscar.
: )

Imagen de Sr. Negativo

Ponte a estudiar

@josemm

Es la única forma para aprender. Mágicamente es imposible.

Imagen de Shadonwk

wow yo quiero a @Oscarryz de

wow yo quiero a @Oscarryz de maestro, pero podemos ver cosas avanzadas por favor?

Imagen de AlexSnake

Me apunto al curso

No seria mala la idea, a pocas personas se les da con suma facilidad explicar sobre algo y eso es gracias a que lo dominan bastante bien y este es el caso de Oscar, me gustaria verlo de exponente en un open talks.

Mis recomendaciones

La mejor manera de aprender algo, primero es enseñarte tú mismo a aprender, ¿me explico?

O sea, en este mundo de la programación el que tiene ganas de aprender y saca su potencial autodidácta es quien la va a hacer para los trabajos, aunque claro hay que agregar otras variantes (actitud, servicio, comunicación, etc).

Otra cosa es que una vez que tengas la voluntad de enseñarte a aprender, es que compres un buen libro. Mi libro recomendado para Java es: "The complete Reference Java Seventh Edition", es un libraico de miedo de más de 500 páginas, pero vaya que explica todo muy muy a fondo desde temas básicos, terminología escencial hasta temas ya más interesantes (algunos detalles de la jvm).

Una cosa que yo recomiendo a todo quien quiera empezar a programar es: NO TE AGARRES LA COMPUTADORA Y TE SIENTES A TECLEAR CÓDIGO. El conocimiento empírico tiene sus contras, es mejor que tengas bien sentadas las bases y términos de programación, en el caso de Java tienes que aprender primero que es la orientación a objetos (que esto viene en el libro que te recomendé anteriormente) y entender las bases. Ya después de entender esto, ahora si es hora de echar tecla.

Por último preguntar y mostrar código. Yo sé que por ejemplo cuando uno lee un tema nuevo y desconocido puede no quedar muy claro, para eso están los foros y comunidades cómo ésta. Sin embargo hay que hacer preguntas del tipo: "Estaba en el capítulo tal del libro x y no me quedó clara la parte de tal tema, ¿alguien me puede dar un ejemplo?"...O por ejemplo: "Tengo este código, lo que quiero hacer es tal cosa y ya lo intenté de esta, esta y esta otra forma y no me queda por tal o cual razón, recibo tales errores, ¿qué estará pasando?" y no preguntas del tipo: "Ayudaaaaaa...Necesito un código para hacer tal cosa tengo esto (lo peor es que siempre es código que ven en google, que ni entienden y sólo hacen 'copy&paste'), ¿qué está mal?", así poco apoyo recibirás.

En fin, hay muchas maneras de aprender. Si quisieras aprender Ruby (para mí es la comunidad más divertida) tienes opciones cómo "Rails for Zombies" en donde te enseñan a programar en base a unas diapositivas explicadas por medio de un vídeo y luego te ponen ejercicios de una aplicación llamada: "Twitter...For Zombies".

No sé si en Java exista algo parecido a Railscasts (que son screencast que te ayudan ejemplificando alguna función específica del lenguaje).

¿Que de plano si estuvo muy

¿Que de plano si estuvo muy difícil lo que puse?

Mhhh si nomás era el Hello World

:)

Alguien tiene algún tema que le gustaría que discutieramos?

Saludos.

Imagen de spawn_mr

Para empezar...

Antes que nada quisiera agradecer a esta comunidad por todo el apoyo que ofrecen y bueno para empezar no soy un newbie en esto de java pero tampoco soy un experto, llevo año y medio programando digamoslo ya en un trabajo formal, la verdad es que aun no cuento con mucha experiencia pero sobre todo que siento que me falta comprender muchos conceptos básicos y siento que eso me esta deteniendo para poder avanzar a cosas mas complejas, en enero del 2010 obtuve mi primer trabajo como desarrollador java, tenia poca o casi nula experiencia en ese ambito salvo lo que habia visto en la escuela un par de años antes (fui afortunado que me dieran el trabajo sin tener nada de experiencia a nivel programacion), el proyecto manejaba java, hibernate, spring, jsp, js. Algunos conceptos para mi eran nuevos o algunos no se parecian a nada de lo que habia visto en la escuela, al principio batalle demasiado por que el proyecto ya estaba en su fase intermedia y la capacitacion duró solo un par de semanas pero solo con manuales, mi primer pantalla que me asignaron la terminó haciendo mi coordinador por que de plano no entendia muchas cosas, al paso del tiempo pues si pude realizar las cosas en base a preguntar a compañeros como se hacia y sobre todo que muchas cosas ya estaban implementadas, lo que si puedo decir en algo que mejoré fue en leer y comprender lineas de codigo, a decir verdad en la escuela las materias de programacion me costaron mucho trabajo, pero aun asi me gustaba sonará raro pero asi es, reprobé materias de c++ que por cierto lo termine odiando pero aun asi aqui estoy sentado frente a una computadora programando ahora ya no es java sino .net aunque trabajo con c# que es muy parecido (me tardé casi un mes en hacer una aplicacion algo sencilla pero al final pude desarrollarla yo solo y de lo cual me siento muy orgulloso). No se que podrian recomendarme para poder dar ese salto, tengo los conceptos pero siento que algunos estan como que volando (sobre todo de OOP), leo manuales y asi pero como que a veces no entiendo y los dejo o muchas veces por falta de tiempo no continuo, ahorita ya estoy bajando el sdk de java y pues quisiera empezar de cero para que de ahi pueda ir evolucionando poco a poco, se que puedo aunque me costará algo de trabajo. Asi que estaré dando lata con muchas preguntas al respecto.

Gracias y Saludos....

Imagen de spawn_mr

Problema

Ya instale todo lo que pusiste al inicio pero me sale un error de que el "javac" no se reconoce como un comando interno o externo, programa o archivo ejecutado por lotes ejecutable, ya modifique el path con la ruta donde instale el jdk, no se que pueda ser.

Saludos...

Imagen de neko069

abre una ventana de consola y

abre una ventana de consola y teclea set, muestra aquí la salida del comando...

Imagen de spawn_mr

SET

Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\Mario>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Mario\AppData\Roaming
asl.log=Destination=file
BURN_AUTOPLAY=C:\Program Files (x86)\Roxio\OEM\Roxio Burn\
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
ComSpec=C:\Windows\system32\cmd.exe
EMC_AUTOPLAY=C:\Program Files (x86)\Common Files\Roxio Shared\OEM\
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Mario
JAVA_HOME=%JAVA_HOME%
LOCALAPPDATA=C:\Users\Mario\AppData\Local
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Program Files (x86)\PC Connectivity Solution\;C:\Windows\system32;C:\Win
dows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Pro
gram Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Com
mon Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio
Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\
DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;c:\Program Files (x86)\Mi
crosoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Too
ls\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x
86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x
86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft Visual S
tudio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\QuickTime\QTSyst
em\;c:\jsdk1.7\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=AMD64 Family 16 Model 4 Stepping 3, AuthenticAMD
PROCESSOR_LEVEL=16
PROCESSOR_REVISION=0403
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
QTJAVA=C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
RCAUTOPLAY=C:\Program Files (x86)\Roxio\OEM\Roxio Central 5\
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\Mario\AppData\Local\Temp
TMP=C:\Users\Mario\AppData\Local\Temp
USERNAME=Mario
USERPROFILE=C:\Users\Mario
VS100COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools
\
windir=C:\Windows
windows_tracing_flags=3
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log

Muchas Gracias.

Saludos...

Imagen de neko069

Bueno... El problema es que

Bueno...

El problema es que tu JAVA_HOME apunta a %JAVA_HOME%.... o sea, a ningún lado...

Tu JAVA_HOME debe estar direccionada hacia el directorio de instalación de tu JDK
Suponiendo que tu JDK esté en C:\Java\jdk1_x.x.x\
Tu JAVA_HOME debería de verse así:

JAVA_HOME=C:\Java\jdk1_x.x.x\

y en tu variable PATH, se debe de agregar un ; seguido de %JAVA_HOME%\bin, seguido de otro ;

Como veo que manejas Windows 7, obviamente todo lo que mencioné, lo debes hacer desde las propiedades avanzadas de Mi PC

Veo también que dentro de vtu variable PATH, hasta el último renglon, aparece : c:\jsdk1.7\bin... es ésa la ruta real de tu JAVA_HOME?? seguro que no, si fuera así, no habría problema al ejecutar el comando javac, configura como te acabo de mencionar, primero establece tus variables de entorno, y hasta que termines abres una ventana de consola y vuelves a escribir SET o javac, esperemos que ya quede..
Suerte!!

Imagen de spawn_mr

Muchas Gracias por la ayuda,

Muchas Gracias por la ayuda, ya coloque como lo mencionaste neko069 pero me sigue marcando error, supongo estoy haciendo algo mal, la ruta que comentas donde esta instalado el JDK si es la correcta de hecho el post menciona que debo de instalarlo en C: y asi lo hice.

FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Mario
JAVA_HOME=C:\jsdk1.7\
LOCALAPPDATA=C:\Users\Mario\AppData\Local
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Program Files (x86)\PC Connectivity Solution\;C:\Windows\system32;C:\Win
dows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Pro
gram Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Com
mon Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio
Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\
DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;c:\Program Files (x86)\Mi
crosoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Too
ls\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x
86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x
86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft Visual S
tudio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\QuickTime\QTSyst
em\;C:\jsdk1.7\bin;

Gracias y Saludos...

Imagen de ingscjoshua

para lo del path

Hola Basta con que en la edicion del path le ponagas ";" hasta el final y seguido de eso pongas %JAVA_HOME%\bin y ya abres una nueva terminal y tecleas javac y te debe salir lo que te comentan arriba!!

Bueno para lo del path vas a

Bueno para lo del path vas a tener que trabajar un rato en eso.

Mira.

En Windows ( y tambien en *nix ) los programas ejecutable se les puede hacer doble click desde su ícono o se pueden ejecutar desde la linea de comandos ( terminal en *nix, cmd en windows )

Pues bueno, como la línea de comando no sabe donde está el programa que quieres ejecutar, tienes que decirle, por ejemplo poniendo la ruta absoluta:

C:\jsdk1.7\bin\java

Y eso ya funciona.

Para que no tengas que escribir todo la ruta, puedes poner el directorio donde está en la variable de ambiente PATH y el shell ( el cmd pues ) va a buscar el programa que le dijiste en esa ruta ( path )

Entonces...

Si escribes java o javac y no te aparece nada, hay que agregar el directorio al path.

Obvio el directorio tiene que existir!

Intenta poner el directorio que contiene el programa java ( c:\jsdk1.7\bin ) al principio del path.

También lo puedes hacer desde la linea de comandos con:

set PATH=C:\jsdk1.7\bin;%PATH%

Pero lo tendrías que hacer cada vez que abras las consola.

No hay de otra, sigue intentando hasta que te funcione y recuerda sacar screenshots y pegarlos por acá para el que tenga el mismo problema que tú sepa como proceder.

Suerte!

Imagen de neko069

Pues así como lo tienes en tú

Pues así como lo tienes en tú último post, no se ve mal, de hecho debería funcionar, tienes bien establecida la JAVA_HOME, y en PATH ya se ve la ruta real .... yo creo que entonces, deberías aplicar la típica solución Guindous, o sea: formatear .. digo, reiniciar la máquina, abrir un terminal y teclear javac .... a ver si es eso, porque por el momento , se me terminan las ideas, en caso de que te salga algún error también postéalo, a ver si da alguna pista...
Suerte!

Imagen de Sr. Negativo

Este post se debio llamar...

"Como colocar el PATH y JAVA_PATH en Windows y Linux"

@josemm
De plano no contesto.

Tal vez pensó qu nadie le iba responder y cuando le respondieron se asustó jajaja.

Que mal. Entonces? A nadie

Que mal.

Entonces? A nadie se le ocurre un tema?

Uchale... bueno pues ahí va el básico:

Clases y Objetos

http://www.javamexico.org/blogs/oscarryz/clases_y_objetos

Imagen de spawn_mr

Disculpa

Hola perdon, no me asuste ni nada solo que he estado algo ocupado en el trabajo y bueno ya estuve checando y me dice un amigo que el problema que tengo para configurar lo del path y eso es que el jsdk que descargue no tiene la aplicacion javac por lo que tengo que descargarla de nuevo e instalarla para que funcione bn. Asi que eso hare y les comento como fue.

Gracias y Saludos...

Yo te puedo enseñar

Voy a crear proximamente un video training sobe java mas adelante esperen las cosas buenas tardar en llegar pero llega si quieres el libro de la 8 edicion de deitel and deitel diganme tengo los links en ingle spor su puesto

Imagen de spawn_mr

Gracias

Pues estaria genial el video je la vdd creo q me ayudaria más y pues lo de los links claro q los acepto todo es de gran ayuda. Gracias...

Imagen de ingscjoshua

EJB 3!!!!!

Yo porponago el tema de EJB #!! Yo no se EJB y quisiera aprender!!!!

Imagen de spawn_mr

Listo

Se que ha pasado mucho tiempo pero bueno mas vale tarde que nunca, ya por fin pude hacer esto tan basico que es lo del hola mundo, comento cual fue mi error y la solucion por si a alguien le llegara a pasar, resulta que como decia @OscarRyz el jdk se tenia que instalar en una carpeta en C:, no se por q razon el javac no se instalaba, despues de preguntar y preguntar y no encontrar solucion alguna opté por instalarlo en la ruta por default y pues resulta que ahi si se instalaba el javac que tanto necesitaba, aun no entiendo bien el por que ahi si se instala y si lo cambio de ruta no, pero bueno, después configure el classpath y el java_home y funcionó correctamente.

Y despues de esto que sigue????

Saludos...

Lo que sigue es que crees una

Lo que sigue es que crees una entrada en tu blog describiendo lo que hicieste para que cuando llegue alguien diciendo "Enseñenme a programar" lo mandemos para tu blog.

Después de eso leete esto:

http://www.javamexico.org/blogs/oscarryz/clases_y_objetos

:)

Saludos

Imagen de neko069

Lo que sigue ... Dijo

Lo que sigue ...

Dijo @OscarRyz

Saca screenshots de todo, y postea aquí tu resultado, agrega un nuevo comentario y escribe todo el proceso de una forma mucho más interesante que lo que yo abaco de hacer, con negritas, imagenes, rutas completas etc. etc. etc básicamente a cambio de lo que te voy a enseñar vas a armar un blog para que otros aprendan...

Entonces si ya pudiste, te puedo decir que ya no va a pasar ésto.

cuando hayas publicado todo eso te eseñaré algo más, si jamás lo llegas a hacer, pues habré pasado 20 minutos escribiendo esto en vano, pero nada más.

Lo que no te dijo, es que mintió en ésto

.... pero nada más.

Ah, el buen @OscarRyz... no te dijo que cargaría la piedra de la vergüenza si no podías hacer lo que ya lograste?, así que anda, en tu blog, publica tu solución, con screenshots, bien detallado...por cierto que no te reconoció el javac porque para instalar algo en raíz, necesitas permisos de administrador... asi es en Win 7, yo no se como quitarlo, así que me hice una carpeta en C:\ llamada Java, y dentro me instalé el jdk, sin problemas...

Si checas el blog de Oscar, verás que ya publicó temas básicos, échales una leída y pues postea tus dudas...

Imagen de spawn_mr

Permisos en Win 7

Hice lo que comentaste @neko069 en cuanto a crear una carpeta en c:/Java pero resulta que ni asi funciona el javac, solo funciona como mencione anteriormente instalandolo en la carpeta por default, no se a que se deba esta situacion pero bueno si no hay solucion a ello la dejare asi para poder subir las imagenes al blog y detallar todo paso a paso.

Saludos...

Imagen de spawn_mr

Blog

Listo ya quedó el blog, espero puedan revisarlo y decirme si esta bien asi.

Gracias y Saludos...

Imagen de spawn_mr

Mi blog no se ve

Publiqué mi blog pero no lo veo,l o modifiqué por que tenia un pequeño error en una imagen pero ya estaba listo, solo que aun no aparece. Lo vuelvo a publicar?

Imagen de Jose Manuel

Es verdad, la web dice que no

Es verdad, la web dice que no tienes creado ninguna entrada...te lo borraron. D:
Incluso mis comentarios en ese post han desaparecido :O espíritus chocarreros, esos son los causantes >.<

Imagen de spawn_mr

Ya está el blog de nuevo...

Ya aparece publicado el blog @Jose Manuel.

Imagen de milenita

arboles

hola buenas noches Oscar

Yo quisiera que compartieras un poco de tus conocimientos conmigo, es que en la universidad ya vamos en el tema de arboles y la verdad no lo comprendo muy bien, el otro día un muchacho me mando unas paginas las estuve leyendo pero quede igual.

quiero aprender a programar bien, me simpatiza la programacion y he tratado de aprender ya de varias formas pero no se me facilita mucho.

Gracias.

Imagen de echan

asegurate de captar primero

asegurate de captar primero el concepto de estructura de datos de ahi a las elementales como las enlazadas, pilas y colas. Una vez entendido estos ya se te haria mas sencillo entender los arboles, que por cierto hay de muchos tipos para diferentes fines.

algunos ejemplos para aprender interactivamente:

http://www.cs.usfca.edu/~galles/visualization/Algorithms.html

http://www.csanimated.com/browse.php

tambien la recursion ayuda mucho. SI estas empezando a programar en lo personal evitaria hacerlo en java :) o c / c++

Imagen de rodrigo salado anaya

Por que evitar usar Java, C o C++?

echan ¿por qué evitarías evitarias hacerlo en Java, C o C++?

Imagen de echan

si apenas inicias es mucho

si apenas inicias es mucho ruido la orientacion a objetos, modificadores de acceso, variables de instancia, de clase, tipos de datos, etc (mmm C no entra en esto).

seria conveniente aprenderlo despues de las estructuras de datos, por experiencia a unos camaradas que me ha tocado enseñarles por separado ha sido mas facil con los que no se tocaron estos temas. Incluso se puede hasta omitir el lenguaje y usar solo pseudocodigo.

Imagen de neko069

Puede ser mucho ruido, pero

Puede ser mucho ruido, pero si se supone que ya va en el tema de estructuras de datos, ya tuvo que haber pasado por lo que mencionas:

...la orientacion a objetos, modificadores de acceso, variables de instancia, de clase, tipos de datos, etc ...

Podría ser como dices, más simple, pero si el hecho es que si uno ya está encarrerado, pues mínimo los temas que mencionas ya se deben de tener asimilados.

De hecho, hasta en la currícula del OJCP los temas están bien definidos, y bueno, prácticamente no puedes aprender algo si no entiendes conceptos primero.

Imagen de rodrigo salado anaya

RE: Puede ser mucho ruido, pero

Estoy de acuerdo con echan al querer omitir el lenguaje para entender el concepto y con neko069 en que si ya esta viendo el tema es por que ya debería poder encontrar sentido al ruido del lenguaje.

Creo que si se juntan esas dos ideas y se dan en porciones muy pequeñas sería más facil de aprender. Por ejemplo primero poner una imagen de una bolita y explicarle que eso representa un nodo y explicarle que es un nodo, luego poner la representación del nodo en código y decirle que el nodo puede tener cero o mas ramas, así pues poner una imagen con una bolita y una rama explicando que representa la rama y como se puede considerar en el lenguaje que usa y que cada rama termina con un nodo y luego cuando toque lugar a un ejemplo con un nodo-padre y sus nodos-hijos agregar más código al ya existente y eso podría ir guiando a la persona de una forma más comoda en el entendimiento de como crear arboles en un lenguaje especifico. Y por ultimo explicarle cual es el fin y que utilidad tienen los arboles. Pero esa es mi opinion : )

Imagen de neko069

@Rodrigo. Si hubieras puesto

@Rodrigo.
Si hubieras puesto tu última respuesta, como primer respuesta, con éso ya hubieras contestado la pregunta :-)

Imagen de milenita

arboles

buenas tardes.

pues obviamente ya pase por listas simples, listas dobles,pilas, colas y ahora arboles; pero como escribí anteriormente entiendo ciertas cosas, mas no soy una ducha en programación,ademas puede ser que me parezca pero uno de los comentarios que esta ahí me pareció un poco como altivo o tal ves fue en la forma como lo leí pero de todas maneras Gracias.

Hasta luego

@milenitaUhm, pues creo que

@milenita

mmmmhhhh pues, quizá sería más útil que comentaras que parte no entiendes y tratar de poner un ejemplo sobre eso, a repetir lo mismo que quizá ya sabes.

De cualquier forma aquí va algo básico.

Estructuras de datos
Las estructuras de datos, son precisamente eso, una forma de acomodar datos, de darles forma o de darles un lugar ( que tengan pues, estructura).

Un datos es una unidad mínima de información. Por ejemplo, un año, o fecha, la edad de una persona, su nombre, un código de larga distancia, etc. etc. cualquier cosa. Cuando varios datos se juntan de forma lógica y coherente ( o sea que tengan sentido ) tienes información. Para hacer más fácil el procesamiento de la información se usan, estructuras de datos.

Árboles
En una estructura de datos de árbol, lo que se hace es acomodar los datos de tal forma que parece que un dato puede tener ramas/ramificaciones ( como en un árbol pues ). Un ejemplo muy claro es la estructura de directorios usadas en las computadoras para organizar los directorios.

El árbol más común es el árbol binario donde un nodo, solo puede tener dos ramas, derecha o izquierda.

La estructura sería más o menos así:

Nodo {
   Dato dato
   Nodo derecho
   Nodo izquierdo
}

Así si por ejemplo los datos a guardar son números puedes tener del lado izquierdo los que son menores que el dato raíz y del lado derecho los que son mayores que.

  5
 /  \
2    7

Un ejemplo sencillo de implementación de esta estructura de datos es la siguiente:

class Nodo {

    Integer dato;
    Nodo izquierdo;
    Nodo derecho;

    void add( Integer hijo ) {

        if ( dato == null ) {
            this.dato = hijo;
            izquierdo = new Nodo();
            derecho = new Nodo();
            return;
        }

        if ( hijo > dato ) {
            derecho.add( hijo );
        } else {
            izquierdo.add( hijo );
        }
    }
}

Este es solo un ejemplo, no es una implementación completa de un árbol binario, es solo para fines ilustrativos, un ejemplo completo es este: http://www.docjar.com/html/api/java/util/TreeMap.java.html .

Para ver en ejecución este código le agregamos un main y una implementación sencilla a toString()

// As seen in: <a href="http://goo.gl/H5vsa" title="http://goo.gl/H5vsa">http://goo.gl/H5vsa</a>
class Nodo {

    Integer dato;
    Nodo izquierdo;
    Nodo derecho;

    /**
     * Agrega un hijo al nodo
     * si no hay dato en el nodo, toma el valor del hijo
     * si hay dato lo compara, si es mayor que lo pone a la derecha
     * si es menor o igual que, lo pone a la izquierda
     */

    void add( Integer hijo ) {

        if ( dato == null ) {
            this.dato = hijo;
            izquierdo = new Nodo();
            derecho = new Nodo();
            return;
        }

        if ( hijo > dato ) {
            derecho.add( hijo );
        } else {
            izquierdo.add( hijo );
        }
    }

    /**
     * Crea una representacion simplista del nodo y sus ramas.
     * Regresa el dato y si tiene ramas lo escribe:
     * izq(dato) = izquierdo.toString();
     * der(dato) = derecho.toString();
     * Si una rama no tiene dato no pone nada
     */

    public String toString() {
        if ( dato == null ) {
            return "";
        }
        StringBuilder builder = new StringBuilder();
        builder.append(dato);
        if ( izquierdo.dato != null ) {
            builder.append( "\n\tizq("+dato+")=");
            builder.append( izquierdo );
        }
        if ( derecho.dato != null ) {
            builder.append( "\n\tder("+dato+")=");
            builder.append( derecho );
        }
        return builder.toString();
    }
}

// Crea un ejemplo del arbol, toma de la linea de comandos los nodos a insertar y los agrega uno a uno
class Ejemplo {
    public static void main( String ... args ) {
        Nodo raiz = new Nodo();
        for ( String s : args ) {
            raiz.add( Integer.valueOf(s));
        }
        // imprime el arbol
        System.out.println( raiz );
    }
}

Salida:

oreyes:arbol $ java Ejemplo 5
5
oreyes:arbol $ java Ejemplo 5 2 7
5
        izq(5)=2
        der(5)=7
oreyes:arbol $ java Ejemplo 5 2 7 1
5
        izq(5)=2
        izq(2)=1
        der(5)=7
oreyes:arbol $ java Ejemplo 5 2 7 1 10
5
        izq(5)=2
        izq(2)=1
        der(5)=7
        der(7)=10
oreyes:arbol $ java Ejemplo 5 2 7 1 10 6
5
        izq(5)=2
        izq(2)=1
        der(5)=7
        izq(7)=6
        der(7)=10

En 5 2 7 1, se ve que el 1 queda a la izquierda del 2: izq(2) porque es menor que 5 y es menor que 2

     5
   /  \
  2    7
 /
1

Y así sucesivamente.
Espero que esto sea se ayuda.

Imagen de milenita

ok gracias

ok gracias