¿Soy estúpido, si digo que Java es muy duro?

Usted está cometiendo un error “estúpido” en la percepción al juzgar su desempeño contra una falsa expectativa; Pero no eres estúpido. Dependiendo de sus antecedentes, mentalidad y la forma en que se aprende Java, las personas pueden experimentar dificultades para aprender el idioma en diversos grados.

Aprendí los conceptos básicos básicos de Java en menos de una hora y la mayoría de las funciones en ocho horas. No, no fue algo mágico, ya que había pasado años aprendiendo a programar en varios idiomas, entendiendo los flujos de control, las estructuras, los algoritmos, el manejo asimétrico de excepciones y el aspecto de los buenos programas. Años de C y C ++ hicieron que todo se viera familiar y fácil de aprender.

Tal vez le falten los conceptos básicos de la programación y se encuentre de repente inmerso en un idioma “extranjero”. Tal vez crea que debería recordar todas las características del lenguaje sin una “hoja de trucos”. O, tal vez, vea a otros que se desempeñan en niveles más altos y se juzgue a sí mismo en consecuencia. Todo lo cual puede remediarse con instrucciones y mucha práctica.

Alternativamente, tal vez odie la programación (o la codificación) y su subconsciente ya haya tomado la decisión de rebelarse y sus dificultades son la manifestación física de esa decisión.

Dale tiempo. Sigue la Fuerza. Escucha a Yoda: hazlo o no, no lo intentes. Mire los buenos ejemplos de código que lo rodean e intente “decodificar” lo que está haciendo el programador.

La mejor de las suertes.

Tu experiencia es bastante similar a la mía.

El swing es dificil Swing se hizo bastante temprano en la historia de Java, el momento en que las buenas prácticas de diseño no estaban muy desarrolladas. Como resultado, la escritura del código Swing se siente como un amontonamiento de chatarra junto con cinta adhesiva, en lugar de un código rígido que no es Swing. Agregue la documentación antigua y podrá crear su propio juego de bebidas con el recuento de “¿Cómo diablos se supone que debo saber eso?”

La Java moderna es difícil, pero no tanto, tanto el lenguaje como su ecosistema. Lo que hay que aprender no son los nombres y las variables de los métodos y todo eso, sino la estructura del código: cómo se construye y se relaciona todo entre sí. Una API de utilidad como Apache Common Lang usualmente tendrá clases separadas de “Util” con toneladas de métodos que hacen cosas diferentes (en cuyo caso usted necesita aprender los métodos). Es probable que una API de análisis XML tenga una interfaz de analizador o lector desde la cual está disponible una implementación predeterminada.

Lo bueno es que, una vez que seas lo suficientemente competente con Java, ya nada te asustará más Excepto tal vez Haskell

Tienes razón, Java es difícil. Está adornado con bordes afilados esperando para cortarte.

Hay muchos lugares donde Java es inconsistente, como su tratamiento de tipos primitivos. Intenta eliminar ese problema con el auto-boxing y el -boxing, pero no funciona del todo. Eso también significa que las operaciones que serían métodos si los primitivos fueran objetos, como sin o sqrt, tienen que ser métodos estáticos en una clase que no es realmente una clase.

Java tiene una serie de lugares donde se espera que el programador sepa cómo hacer algo, pero es muy complejo, barroco y propenso a errores. Por ejemplo, métodos tan simples como equals y hashCode. Implementar un método de iguales correctos es en realidad sorprendentemente difícil. No es difícil encontrar recursos en la web que se equivoquen y conduzcan a definiciones de iguales que no sean simétricas o no transitivas. Y si implementas iguales, debes implementar hashCode, pero nada te obliga a hacerlo, y si no lo haces, pueden suceder cosas malas. De hecho, si olvida implementar iguales, la gente aún puede usarlo en instancias de su clase, pero en silencio hará lo incorrecto. Y si implementas hashCode y almacenas instancias de tu clase en un HashMap, y luego modificas la instancia de tu clase, ya no podrás encontrarlas en el HashMap, aunque todavía estén allí, y nada lo hará. Te digo que no hagas eso.

Copiar objetos es otro ejemplo. Un método muy simple que probablemente va a necesitar, que resulta difícil de implementar correctamente. La gente a menudo escribe constructores de copias porque son directos, pero frente a la herencia no están del todo bien. Pero muchas personas consideran que el clon está mal roto y sugieren que se evite.

Estas son cosas muy simples. Las cosas más complejas se vuelven más raras, como usar genéricos y tratar de crear una instancia de un parámetro de tipo o una matriz del parámetro de tipo es terriblemente desordenado y contraintuitivo. Al menos en ese caso, Java te impide hacer lo que esperas que funcione, pero no lo hace. Mis ejemplos anteriores son peores en el sentido de que Java te permite escribir código que crees que funcionará, pero que hará algo incorrectamente.

En general, Java no es tan simple y limpio como muchas personas parecen pensar que lo es.

También vea mi respuesta a ¿Por qué algunos programadores odian Java?

No tu no eres. Java no es difícil; pero Swing no es Java, y Swing es difícil.

No hay realmente un kit de herramientas GUI “fácil”. Las GUI son difíciles de hacer, y mucho menos difíciles de hacer bien. Los kits de herramientas de la GUI han sido difíciles desde que las cursas (y luego los cursillos) lo hicieron “fácil” para hacer una aplicación de terminal de la GUI, y seguirán siendo difíciles siempre y cuando sea difícil averiguar qué es lo que la gente quiere hacer cuando tiene un reinado libre para activar cualquier parte de su aplicación en el orden que deseen. (Que será, estoy bastante seguro, para siempre.)

Swing está lejos de ser el kit de herramientas GUI más difícil, pero tampoco es el más simple. (Solo alegra que no te estén haciendo usar AWT, el predecesor y fundamento de Swing: ¡es extremadamente incómodo!) Sin embargo, es uno de los más populares para Java, por lo que continuarás encontrándolo. Y se vuelve más fácil con la experiencia: nunca se vuelve fácil.

No, no eres estúpido.

Java es un poco difícil solo por su sintaxis. Cuando se trata de la GUI, se pone interesante, finalmente puedes poner el campo de texto, agregar imágenes, botones, fondos para hacer que tus aplicaciones se vean bonitas.

Pero, la interfaz gráfica de usuario difunde el caos cuando tienes que elegir diseños, colocar tus elementos, agregar paneles y cuidar los marcos. Aquí, te sugiero lo siguiente:

  • No trates de crear tanto al principio que te frustre, comienza con un poco.
  • Aprende paso a paso.
  • Mire los tutoriales pero practique más, comprenda el uso de paneles, posicionamiento y marcos.
  • Sea creativo, intente crear algo por su cuenta en lugar de copiar código, entenderlo y crear algo similar que lleve tiempo, pero no se rinda.

Sin embargo, ahora aprendo GUI, la inmensidad del swing y el método es muy difícil para mí”.

Hey hombre. Todo lo que necesitas hacer es usar un IDE moderno como IntelliJ Idea.

Es una broma. La práctica hace la perfección. Java es bastante simple y directo en comparación con otros lenguajes. Todo lo que tienes que hacer es escribir más código para dominarlo.

Feliz codificacion 🙂

Todo lo que vale la pena hacer es difícil.

Esto es lo que haces.

  • Síguelo.
  • Toma instantáneas de tu trabajo semanalmente. Hazlo ritualmente y guarda las instantáneas en una carpeta.
  • Ni siquiera los mires ahora. Configure un acceso directo para tomar una instantánea y guárdelo en un clic.
  • Ahora, cada mes, o cada par de meses, abra esa carpeta y observe cómo está creciendo.
  • ¡Te darás cuenta de que en lo que estabas trabajando el mes pasado son cosas de bebé en comparación con lo que estás haciendo ahora!

No dejes que otros te depriman. Todos aprenden a su propio ritmo. Nadie es “estúpido”.

El mayor fracaso de tu vida ocurre cuando dejas de intentarlo.

Tal vez le resulte más sencillo utilizar el Kit de herramientas de widgets estándar mientras comienza a aprender sobre el desarrollo de software de GUI.

Kit de herramientas de widgets estándar

“SWT es un conjunto de herramientas más simple que Swing, con una funcionalidad menos (posiblemente) extraña para el desarrollador promedio.

[7] ”

Una vez que tenga más confianza, podría volver a Swing.

Si ha aprendido otros idiomas y ha dominado la sintaxis de Java, definitivamente no es estúpido.

Swing y otros entornos GUI son tan poco agradables para mí como lo son para ti. Hay mucho que memorizar y al final del día, en realidad no está resolviendo un problema, solo está haciendo que la respuesta se vea bonita.