Estoy estudiando Java como mi primer idioma, pero me resulta muy difícil leer el código de otras personas. ¿Qué puedo hacer para mejorar mis habilidades?

Tengo que contarte una historia tonta para contestar esto. A pesar de que crecí en la costa de Jersey, hubo una extraña brecha en mi experiencia. En los años 90 visitaba Manhattan en la primavera. Estaba en mis pantalones cortos y camisetas de gimnasio, y les dije esto a algunos transeúntes:

“Estoy muy emocionado porque tengo un boleto para ver a Alfred Brendel jugar esta noche”. ¿Cómo llego al Carnegie Hall desde aquí?

¡Esta pregunta hizo reír a todos los transeúntes! Uno de ellos me explicó amablemente: “Es una vieja broma de vodevil. La frase clave es ‘¡Practica, practica, practica!’ ”

Mis amigos estaban desconcertados de que nunca hubiera escuchado esa broma antes.

En general, mi experiencia ha sido que leer el código de otras personas es terriblemente difícil. Pero si dominas esta habilidad, nunca debes quedarte sin trabajo mientras vivas.

Lograr fluidez en un entorno de desarrollo interactivo hace que la programación, especialmente la programación Java, sea menos tediosa. Java funciona extremadamente bien con IDEs. Los dos principales para Java son IntelliJ y Eclipse.

Descargue un cuerpo de código fuente de Java que haga algo interesante que generalmente entiende, pero le gustaría aprender más. Instálalo como un proyecto Eclipse o IntelliJ Java. Aprende sobre la biblioteca JUnit: te permite escribir pruebas unitarias para código Java.

Piense en una forma en que puede usar el código que descargó para hacer algo y configurar las entradas y el entorno para que el código lo haga, y luego ejecute el código dentro de esta configuración. ¿Es el resultado lo que esperabas? ¿Puede pensar en los criterios que utilizó para decidir esto, de modo que pudiera escribir un fragmento de código que devuelva el booleano “verdadero” si el resultado es correcto o “falso” si el resultado es incorrecto? Ahora tienes todos los ingredientes de una prueba JUnit.

De hecho, estoy haciendo exactamente esto en este momento con la EJML (biblioteca de matriz de Java eficiente).

Esta no es solo una buena manera de aprender sobre el código de otra persona, sino también una buena forma de desarrollar su propio código. Hay personas que creen que no deberías escribir ningún código funcional hasta que hayas escrito una prueba para ello. Esto le obliga a pensar en cuáles son las entradas y el entorno necesarios, y cuáles son los resultados esperados.

Esto se denomina desarrollo guiado por pruebas. Algunos desarrolladores y gerentes de desarrollo lo tienen como una religión. No comparto esta opinión, pero creo que TDD es una idea realmente buena e importante.

Anton Nikitin tiene toda la razón, pero en esta respuesta me centré en otros aspectos de este problema.

Dado que este es tu primer idioma, debes ser un poco paciente.

Tómese un tiempo para rodearlo y pronto encontrará que estos conceptos le son muy familiares. Pero qué pasa si incluso entonces no entiendes su código, entonces eso significa que necesitas entender el algoritmo que se implementa allí. No importa cuánto se esfuerce, si no comprende el algoritmo, no puede entender la idea básica en la que se basa el código.

Vaya al sitio de Wikipedia (si no le persigue), este es el sitio más confiable para cualquier cosa y / o todo.

No olvides que la programación es muy difícil , después de todo.

Leer (y escribir) más código.

Pongámoslo de otra manera, digamos que quieres aprender chino. Empieza aprendiendo frases básicas, sonidos, etc … pero luego quiere comenzar a leer al principio, es muy difícil porque todo parece muy nuevo y confuso. Pero después de leer (y escribir un texto) algunos libros, etc. empiezas a entenderlo … porque te has familiarizado con el aspecto y el estilo del idioma.

La programación y los idiomas hablados no son tan diferentes en este sentido como en, si quieres aprender la estructura y la gramática de un idioma …

Lo mejor que puedes hacer es leer más 🙂

Feliz codificacion