PDA

Ver la versión completa : Quiero aprender java!



Ryo
18-03-2014, 02:02 AM
Bueno tengo una idea de lo que es programar, pseudocodigo algo cazo, nunca le di mucha pelota a la programacion, pero ahora me dieron ganas de empezar a darle y me parecio que java sería un buen lenguaje para empezar.
Por el momento por temas de falta de tiempo no puedo asistir a una academia. Entonces, puede ser online algun curso o quiza alguien sepa de algun libro bueno para empezar.
Bueno, gracias se aprecian sus conocimientos.

Master of the Wind
18-03-2014, 01:32 PM
Para empezar, busca alguno mas simple, como C, Python o Pascal.


Java no es buen lenguaje para aprender a programar, si un buen lenguaje para aprender cuando sabes programar.

Juancho
18-03-2014, 01:52 PM
No estoy de acuerdo master, java me parece un lenguaje ideal para arrancar por el nivel de abstraccion y estructura que tiene.

hablando con la gente de Java de mi laburo me recomedaron lo siguiente:
http://www.headfirstlabs.com/books/hfjava/
https://netbeans.org/kb/trails/java-se.html
https://academy.oracle.com/oa-web-overview.htmltypo (https://academy.oracle.com/oa-web-overview.html)

Indiana
18-03-2014, 02:02 PM
discrepo, me parece mejor lenguaje Python para arrancar. Java es muy restrictivo y se va a empedar con temas de orientación a objetos que no hacen al tema ahora que recien está arrancando.

Juancho
18-03-2014, 02:06 PM
Pero POO es mucho mas intuitivo! es mas facil de relacionar al mundo real

Indiana
18-03-2014, 02:16 PM
Por lo que entiendo, el está en la etapa en que tiene que entender como armar una secuencia de instrucciones y que ande. Por eso digo que en este momento para el, la orientación a objetos le va a estar haciendo ruido.
Python tambien es orientado a objetos, pero si querés no lo usás orientado a objetos. Entonces despues cuando sepa como armar ese bloque de codigo y que haga algo, estudia como es la estructura orientada a objetos y hace la evolución mismo en python o pasa directo a java.
En definitiva si realmente aprendió a programar, con google y un bizcocho programan en todos los lenguajes

Ryuug4
18-03-2014, 03:06 PM
yo no tengo idea de Java, se que en los cursos de UTU cambiaron C por Java, pero fue luego de que yo ya aprobara esas materias

no creo que el hecho de ser orientado a objetos la complique tanto, o sea yo empecé con C pero creo que si me metía en Visual.Net de una no iba a tener mayor problema (tiene toda la interfaz gráfica, pero en lo que es el tema de orientado a objetos no creo que cambien mucho los conceptos, no es tan complicado)

Master of the Wind
18-03-2014, 03:21 PM
Pero vos ya sabias programar. Asimilabas el concepto de objetos y seguias programando.


Ademas, al fin y al cabo, los metodos son estructurados adentro.


El tema de objetos, te ayuda a asbtraer mejor el mundo real juancho, pero mientras aprende, a lo sumo hara un objeto que diga su nombre y poco mas, no le va a cambiar la vida.

Juancho
18-03-2014, 03:44 PM
pa loco ni que fuera diseñar algoritmos fractales bo... programar es facil, entender las instrucciones y estructura del codigo es facil. Obviamente al principio te frustras y coso, pero como todo, para ser un buen programador hay que tener practica nada mas, a veces pintan la programacion como si fuera ohhhh "la ciencia" y en realidad conceptualmente es una chotada. A nivel mayor si es complicado, pero para llegar a ese nivel vas a estar facil unos pocos años asi que al principio no hay que tenerle miedo.

Indiana
18-03-2014, 03:54 PM
no es meterle miedo, es facil si, despues de que le sacás la movida. Por eso cuanto menos ruido tenga (codigo copiado y pegado sin saber que hace) mejor. Si hay mucha cosa en la vuelta perdés el foco de tu objetivo. Esto aplica tanto para aprender a programar como para aprender cualquier otra cosa.
Por eso es que en un rpg vas adquiriendo las habilidades de a poco y no las tenés todas al principio

Juancho
18-03-2014, 04:03 PM
vos y tu trauma con las analogias a los RPGs.... jajjaja y bueno son diferentes formas de ver el asunto, personalmente me parece que java esta perfecto para arrancar, y no es necesario que arranque haciendo polimorfismo ni nada de eso, lo que podes hacer en C, python o pascal para arrancar lo podes hacer con java y ya te vas familiarizando con el IDE para cuando quieras arrancar con cosas mas complejas.

zuji
18-03-2014, 04:40 PM
Qué definen como fácil? Escribir líneas en un lenguaje dado lo puede hacer un mono entrenado, pero programar va mucho más allá de eso.

Por otro lado, si Ryo ni si quiera conoce un lenguaje en particular no me parece que tenga sentido preocuparse por paradigmas, menos por poo que es un mundo en si mismo (de otra forma no habría libros gigantes sobre el tema). Que se familiarize con los conceptos básicos de programación, y que después empieze a entender como encaja todo en el puzzle.

Y en cuánto a un lenguaje inicial, para mi Python FTW.

Indiana
18-03-2014, 04:44 PM
claro, mi vida es un rpg sin quick save jaja.
Cuando hablo con la gente me aperecen varios dialogos para elegir en mi mente, nadie lo percibe porque los elijo muy rápido jajaj
Como poder puede arrancar con java, no es imposible. Ademas considerando que su objetivo final es java ya tiene ventaja y de paso no se va a sentir mal si pasa de python a java jaja

Indiana
18-03-2014, 04:47 PM
Qué definen como fácil? Escribir líneas en un lenguaje dado lo puede hacer un mono entrenado, pero programar va mucho más allá de eso.

Estas equivocado, lo puede hacer un mono sin entrenamiento.
Pegate una leída a este teorema http://en.wikipedia.org/wiki/Infinite_monkey_theorem
:) jajaj

Stuntman Mike
18-03-2014, 05:43 PM
algo que recomienden leer sobre python? hice php en el taller pero fue un fracaso y me quedo la espina clavada. Es algo que tengo en el debe y me gustaria meterle este invierno aprovechando la paz del hogar.

Ryo
19-03-2014, 05:16 AM
Python para que tipo de cosas serviria?

Kathe Ulhu
19-03-2014, 08:33 AM
Yo di en la ITI JAVA y en el primer semestre de la Catolica Python, y si bien me gusta este último, me quedo con JAVA como un lenguaje para arrancar a programar estructurado. Me resultó mas claro que Python, y me ayudo cuando tuve que encarar C# en el semestre pasado por un tema de semejanza en la sintaxis.

//Si optas por Python, usa el eclipse. :p El IDE de Python (IDLE) es horrible, lo odie. XD

nagarev
19-03-2014, 10:27 AM
¡Buenas!


Mi opinión personal es que si lo que querés aprender es a programar, y ya cazás algo de pseudo código, pero no te interesa un lenguaje en particular y no hay nada que esté apurándote ni obligándote a aprender rápido, lo mejor que podés hacer por tu vida es aprender Pascal, incluso te puedo recomedar un libro que podés fotocopiar en la FING que te enseña TODO lo que un programador debe saber, y de una manera muy prolija, muy entendible, partiendo de 0, paso a paso.


En mi caso fue el primer lenguaje que aprendí, y la verdad que sin ello no podría haber logrado el grado de abstracción necesario para trabajar diariamente, porque la metodología de ese libro y el lenguaje en si te enseñan a "Pensar en términos de la programación" te enseñan a encarar todo de acuerdo a una metodología muy clara, sin memorizar, aplicando el razonamiento, tanto es así que luego de unos días te vas a descubrir pensando las cosas cotidianas como si estuvieras resolviendo un problema de manera programática (que no digo que sea lo ideal, me ha generado muuuuuuuchos problemas :p pero ta, pasa. :D).


Lo otro que me gustaría aclarar... en caso de que Pascal no te pinte (dado que es un lenguaje que está pensado solo como lenguaje de aprendizaje y en general no lo vas a poder utilizar para hacer algo "vendible") me inclino más a que aprendas JAVA... ¿por qué? Por la sencilla razón que que JAVA, más allá de que sea un Lenguaje Orientado a Objetos por excelencia, puede utilizarse para aprender todo lo básico manteniéndose al margen de los objetos, y no te genera problemas de ningún tipo, en cambio Python si que te afectaría, pues al ser un lenguaje no tipado, y tener unas reglas estrictas en cuanto a la presentación del código, y al mismo tiempo simplificar muchas de las tareas, podría hacer que desde el comienzo no aprendas (y me refiero a integrarlas en tu mente como parte fundamental, como mecanismo de pensamiento) las reglas básicas que todo programador debe saber, y con esto me refiero a que adquieras la capacidad de SABER PROGRAMAR, para de esta forma, en un futuro, poder aprender el lenguaje que se te cante, sin que te requiera un esfuerzo sobre-humano.


Bueno, nada más, perdón por la extensión del mensaje pero no quería dejar nada en el tintero.


A todos aquellos que quieran ejemplos de por que pienso lo que pienso de Python y JAVA y por que creo que uno es mejor que el otro para arrancar solo avisen y hablamos sobre el tema, no quise extender demasiado este mensaje para que no se haga más pesado de leer de lo que ya es :p.


¡Saludos!

zuji
19-03-2014, 12:42 PM
Python para que tipo de cosas serviria?


Para lo mismo que Java :P

O decís para laburar?



//Si optas por Python, usa el eclipse. :p El IDE de Python (IDLE) es horrible, lo odie. XD

Hay unos cuántos más, en este mismo subforo hay un thread sobre python con varias recomendaciones. Idle apesta si :P



Python si que te afectaría, pues al ser un lenguaje no tipado, y tener unas reglas estrictas en cuanto a la presentación del código, y al mismo tiempo simplificar muchas de las tareas, podría hacer que desde el comienzo no aprendas (y me refiero a integrarlas en tu mente como parte fundamental, como mecanismo de pensamiento) las reglas básicas que todo programador debe saber, y con esto me refiero a que adquieras la capacidad de SABER PROGRAMAR, para de esta forma, en un futuro, poder aprender el lenguaje que se te cante, sin que te requiera un esfuerzo sobre-humano.


Es una discusión interesante esa. Ponele en el MIT arrancan con python por lo que se ve en los cursos que tienen online, y justamente parece que hacen esa elección porque evitan meterse en detalles irrelevantes para un primer curso. Luego obviamente tienen veinte materias sobre teoría de lenguajes y paradigmas y aprenden el resto.

Quizá para uno como autodidacta al no tener luego esas materias te complicaría porque no tendrías quien te saque del molde. Pero pienso que eso sería un problema inherente a aprender solo, no a python... decís que Java o Pascal resolverían eso?

Stuntman Mike
19-03-2014, 01:58 PM
¡Buenas!


Mi opinión personal es que si lo que querés aprender es a programar, y ya cazás algo de pseudo código, pero no te interesa un lenguaje en particular y no hay nada que esté apurándote ni obligándote a aprender rápido, lo mejor que podés hacer por tu vida es aprender Pascal, incluso te puedo recomedar un libro que podés fotocopiar en la FING que te enseña TODO lo que un programador debe saber, y de una manera muy prolija, muy entendible, partiendo de 0, paso a paso.


En mi caso fue el primer lenguaje que aprendí, y la verdad que sin ello no podría haber logrado el grado de abstracción necesario para trabajar diariamente, porque la metodología de ese libro y el lenguaje en si te enseñan a "Pensar en términos de la programación" te enseñan a encarar todo de acuerdo a una metodología muy clara, sin memorizar, aplicando el razonamiento, tanto es así que luego de unos días te vas a descubrir pensando las cosas cotidianas como si estuvieras resolviendo un problema de manera programática (que no digo que sea lo ideal, me ha generado muuuuuuuchos problemas :p pero ta, pasa. :D).


Lo otro que me gustaría aclarar... en caso de que Pascal no te pinte (dado que es un lenguaje que está pensado solo como lenguaje de aprendizaje y en general no lo vas a poder utilizar para hacer algo "vendible") me inclino más a que aprendas JAVA... ¿por qué? Por la sencilla razón que que JAVA, más allá de que sea un Lenguaje Orientado a Objetos por excelencia, puede utilizarse para aprender todo lo básico manteniéndose al margen de los objetos, y no te genera problemas de ningún tipo, en cambio Python si que te afectaría, pues al ser un lenguaje no tipado, y tener unas reglas estrictas en cuanto a la presentación del código, y al mismo tiempo simplificar muchas de las tareas, podría hacer que desde el comienzo no aprendas (y me refiero a integrarlas en tu mente como parte fundamental, como mecanismo de pensamiento) las reglas básicas que todo programador debe saber, y con esto me refiero a que adquieras la capacidad de SABER PROGRAMAR, para de esta forma, en un futuro, poder aprender el lenguaje que se te cante, sin que te requiera un esfuerzo sobre-humano.


Bueno, nada más, perdón por la extensión del mensaje pero no quería dejar nada en el tintero.


A todos aquellos que quieran ejemplos de por que pienso lo que pienso de Python y JAVA y por que creo que uno es mejor que el otro para arrancar solo avisen y hablamos sobre el tema, no quise extender demasiado este mensaje para que no se haga más pesado de leer de lo que ya es :p.


¡Saludos!
me intereso todo lo que dijiste. Como se llama el libro de pascal?

salu2

nagarev
19-03-2014, 02:10 PM
Es una discusión interesante esa. Ponele en el MIT arrancan con python por lo que se ve en los cursos que tienen online, y justamente parece que hacen esa elección porque evitan meterse en detalles irrelevantes para un primer curso. Luego obviamente tienen veinte materias sobre teoría de lenguajes y paradigmas y aprenden el resto.


Quizá para uno como autodidacta al no tener luego esas materias te complicaría porque no tendrías quien te saque del molde. Pero pienso que eso sería un problema inherente a aprender solo, no a python... decís que Java o Pascal resolverían eso?


Estoy totalmente de acuerdo contigo, el tema de aprender a programar de manera autodidacta es determinante en esta situación, y así mismo, si te tocan malos profesores que te enseñen a programar utilizando Python, se genera el mismo problema...


El tema fundamental para mí pasa por el hecho de que si bien programar puede ser una tarea sencilla, sólo en el caso de que logre pensar en términos de programación, y se logre razonar con el nivel de abstracción requerido, o se logre organizar la información de la manera correcta (esto es, entrenar la mente para esta tarea) se logrará ser un buen programador, y disfrutar de esta actividad, que en realidad tiene mucho de arte.


Entonces vuelvo a lo dicho: por mi experiencia personal, en caso de utilizar un buen libro como el que mencioné al principio, y un lenguaje como Pascal o JAVA, considero (y tengo muchos casos de ejemplo en que esto se cumplió a la perfección) que se puede aprender de manera auto-didacta, dirigida por el libro y por nuestro deseo de aprender, y nuestra curiosidad, y desarrollar la mente en el sentido en que se necesita hacerlo, y a su vez dejarla preparada para continuar aprendiendo toda la vida.


Considero que Python no es un buen lenguaje para quién recién comienza, pues es un lenguaje de programación que pretende reducir y simplificar las cosas, muchas veces utilizando atajos que no quedan claros para quién recién arranca, que necesita que todo sea lo más explícito posible, lo más claro posible... Caso de ejemplo puntual con Python es cuando se pretende enseñar a recorrer listas utilizando contadores y variables de control de ciclos, puedo hacerlo de la siguiente manera:


for elemento in lista:
print(elemento + "\n")


Estamos de acuerdo que esto es super sencillo, tal vez hasta facil de entender con la simple lectura, pero aquí lo que hay es un ciclo "foreach" camuflado... Para quién recién comienza no es una idea natural, además, en la gran mayoría de los lenguajes de programación que se utilizan hoy en día possen estructuras de control extremadamente parecidas, por lo tanto, creo que siempre es mejor aprender un estandar y luego aprender lo demás (análogo a aprender inglés Británico para luego aprender cualquier otra variante del mismo idioma, lo importante es saber lo básico y crear sólidas bases a partir de las cuales podamos pensar).


Personalmente creo que códigos como los siguientes:


// Java.
for(i=0; i<lista.length; i++){
System.out.println(lista[i]);
}


// PHP.
for($i=0; $i<$lista.length; $i++){
echo $lista[$i];
}


// Javascript.
for(i=0; i<lista.length; i++){
console.log(lista[i];
}


Son mucho más sencillos de entender, a pesar de ser más complicado de ver a simple vista que es lo que hacen, existe un procedimiento estandar para recorrer una lista según el índice de la misma, que es similar en los 3 lenguajes ejemplificados y en muchos lenguajes más. Obviamente en caso de Python también se puede recorrer una lista mediante una variable de control que vaya tomando los valores de los índices... de esta forma:


// Python.
for i in range(0, len(lista)):
print(lista[i])


Otra vez vemos que aparece un foreach camuflado, que va almacenando en la variable i cada uno de los valores de la lista temporal generada por la instrucción range en cada uno de las vueltas del ciclo... Considero que cuando recién se comienza esto puede ser tremendamente dificil de entender, y provoca que se vean las listas y los ciclos como algo mucho más complejo de lo que realmente son.


Ejemplos como estos tengo muchos, no quiero escribir en exceso para que no resulte pesado, pero podríamos hablar incluso de lo dificil que es buscar errores de cualquier índole en un código escrito en un lenguaje que no utiliza llaves ni paréntesis para marcar los comienzos y finales de los bloques, o entender algunos comportamientos extraños que ocurren cuando algo no queda bien indentado y no genera error fatal, y al mismo tiempo los problemas que se pueden generar con un lenguaje que no es tipado pero que muchas de sus operaciones requieren que los datos sean convertidos a un tipo determinado para poder llevarse a cabo (cosa que no ocurre con PHP por ejemplo, donde no debo preocuparme de este detalle de manera directa en la mayoría de los casos) y bueno... En fin, hay muchísimos motivos más.


Espero todas las críticas y opiniones que les surgan. :)


me intereso todo lo que dijiste. Como se llama el libro de pascal?

salu2

El libro se llama "Programación con Pascal" es de John Konvalina. Está para fotocopiar en la fotocopiadora del CEI (FING)

¡Saludos a todos!

nagarev
19-03-2014, 02:13 PM
Perdón por los códigos, quedaron feos porque obviamente no me respetó la tabulación :( No me dí cuenta de eso. :P

Stuntman Mike
19-03-2014, 07:37 PM
encontre el libro de pascal , si alguno lo quiere pegue el grito. saludos

Ryuug4
19-03-2014, 07:49 PM
digital? me interesa para ver que tal es

yo tengo éste (físico), está bueno, aprendí algunas cuantas cosas

https://i.imgur.com/LpLUS7n.jpg

Everybody
19-03-2014, 08:11 PM
Fotocopiar? Delincuentes! :P

snti
19-03-2014, 09:16 PM
Me llamo la atención q nadie haya nombrado a microsoft xd, para mi visual basic es tremendo lenguaje para aprender a programar.

Yo me leí este tuto hace banda, lee el primer capitulo y vas a ver que se entiende bastante bien. Comienza con pseudocodigo, luego consola, y finalemente forms.

Saludos!

Ryuug4
19-03-2014, 09:35 PM
Está bueno Visual.NET o Basic pero depende, por ejemplo si queres empezar de cero pero porque tu interes es mayormente laburar con ese lenguaje está bueno y es más fácil digamos, pero para el que le interesa aprender a programar mismo es un lenguaje de muy alto nivel, o sea le pones C y se da la cabeza contra la pared (tipo va a tener que aprender muchos conceptos básicos que son mas automáticos en Visual) sin mencionar que cuanto mas alto el nivel mas reducida es la capacidad para resolver problemas complejos

Lo ideal si queres ser un erudito/gurú es un assembly(?), pero es bastante al pedo para la mayoría meterse a ese nivel obvio :P

Master of the Wind
20-03-2014, 12:11 AM
Es de M$

snti
20-03-2014, 09:35 AM
Es de M$

Buena opinion...


Para alguien que no sabe programar y se la va a jugar aprender por su cuenta, me parece que esta entretenido vb, facil y ademas se consigue mucha info a la vuelta. También trae una herramienta muy importante para el que no tiene experiencia y es el depurador.
Después si queres aprender C o cualquier otro lenguaje, va a ser mas fácil pasando de vb que dándole de lleno.

Ryo
20-03-2014, 06:10 PM
Buena opinion...


Para alguien que no sabe programar y se la va a jugar aprender por su cuenta, me parece que esta entretenido vb, facil y ademas se consigue mucha info a la vuelta. También trae una herramienta muy importante para el que no tiene experiencia y es el depurador.
Después si queres aprender C o cualquier otro lenguaje, va a ser mas fácil pasando de vb que dándole de lleno.

El tema es que no quiero perder el tiempo aprendiendo algo que luego no me va a servir, no me interasa programar en windows, sino mas bien en linux, aplicaciones mobiles y en la nube

Kathe Ulhu
20-03-2014, 07:45 PM
Nunca vas a perder el tiempo, primero tenés que aprender a "pensar en términos de programación" como dicen más arriba.
El aprendizaje es progresivo además de personal, al principio está bueno tocar varios lenguajes para ver con cual uno se siente más a gusto. :P

De todas formas, acá tenes unos tutoriales de Java para más adelante:
https://www.youtube.com/playlist?list=PL691F825EFC74A181

Obviamente tenés que complementarlo con teórico:
http://java.uom.gr/~chaikalis/javaLab/Java_HowTo_9th_Edition.pdf

Juancho
20-03-2014, 07:53 PM
Me llamo la atención q nadie haya nombrado a microsoft xd, para mi visual basic es tremendo lenguaje para aprender a programar.

Yo me leí este tuto hace banda, lee el primer capitulo y vas a ver que se entiende bastante bien. Comienza con pseudocodigo, luego consola, y finalemente forms.

Saludos!

Mira yo laburo con C# desde el 2006 mas o menos, la razon por la cual no recomende ningun lenguaje es porque la pregunta no era con cual lenguaje arrancar, sino piques para aprender java :P

snti
21-03-2014, 09:28 AM
Es verdad Juancho, pero como todos las respuestas fueron opiniones personales de lenguajes, de paso tire la mía jaja.

maturrus
28-05-2014, 01:19 PM
Hoy en día en la UTU si, dan JAVA y tengo entendido que el cambio fue por C hace 2 o 3 años.

Arrancar por Pascal no es mala -en la FING lo usan-, lo que tiene es que te enseña a pensar como un programador, por ejemplo, si metiste decenas/centenas o miles de lineas de código y a la hora de hacer el debug te tira error, vas a tener que mirar linea por linea donde está el error, no como el IDE eclipse o NetBeans en JAVA -estoy cursando en UTU- que te marca en rojo la linea de error y te lo subraya.

Si tenes el pseudocódigo ya tenes el programa hecho, lo dificil está en transcribirlo a un lenguaje de programación cuando no tenes idea de que interfaz y lenguaje usar.

%La_Teoría_del_Big_Bang%
28-05-2014, 11:21 PM
Hola, para los que nombraron Pascal, el otro dia vi en la feria un librito de pascal por 20 pesos y me lo compré, se llama "Pascal, manual del usuario e informe", dicen que sirve para algo?

Xcalibur
28-05-2014, 11:43 PM
Para arrancar arrancar, el Pascal debe ser de lo más entendible.

BlackSting
28-05-2014, 11:57 PM
digital? me interesa para ver que tal es

yo tengo éste (físico), está bueno, aprendí algunas cuantas cosas

https://i.imgur.com/LpLUS7n.jpg

Para alguien que no sabe una bosta de programación, pero que tiene la intención de aprender por la suya (hasta tener $ para la academia), es intuitivo el libro ? Ayuda ? O ayuda solo si ya tenes una base ?

Un amigo termino un curso de PhP y la verdad me compro un poco con lo que me mostró.

Ryuug4
29-05-2014, 12:29 AM
Sí, está pensado para gente que no sabe ningun lenguaje y arranca de cero digamos, explicandote lo que es la programación de una forma mas general con ejemplos de la vida real y ese tipo de cosas, y recien unos capitulos mas adentro empieza con el lenguaje mismo.

Aun así mi favorito para empezar es Fundamentos de la Programación de Cekit, son viejos, y el tomo 1 te introduce tambien en el tema, luego en el capitulo 6 arranca con C, y los tomos 2 y 3 son programacion en internet y visual respectivamente. (No los encontré en internet, los tengo físicos tambien)

Diablo
29-05-2014, 02:25 PM
en la fing hay repartidos de programacion 1 de pascal, salen 2 pesos, nose de que libro eran pero esta muy bien explicado todo para el que no sabe nada del tema.
cualquiera puede ir a la libreria del primer piso y pedir.