CodeGym/Blog Java/Random-ES/¿Cómo fue? O mi primer proyecto
John Squirrels
Nivel 41
San Francisco

¿Cómo fue? O mi primer proyecto

Publicado en el grupo Random-ES
Esta es una traducción de la historia de éxito de nuestra comunidad Java global. Alex aprendió Java en la versión rusa del curso, que se estudia en inglés en CodeGym. Que se convierta en la inspiración para tu futuro aprendizaje y tal vez algún día quieras compartir tu propia historia con nosotros :)

Introducción

Un poco sobre cómo llegué a la programación. Soy docente y psicóloga de formación, y desde hace 5 años ejerzo mi profesión con éxito. Pero por diversas razones, cada vez pienso más en mudarme a otro país. Y como el idioma y las regulaciones son diferentes en otros países, no podría convertirme en el mismo tipo de profesional sin una recapacitación seria. Entonces comencé a buscar formas más simples e interesantes de avanzar y tener éxito. ¿Cómo fue?  O mi primer proyecto - 1Probé mi suerte como tatuador (esto básicamente no requiere ningún conocimiento del idioma), pero esa es una historia para otro día. Luego, mi amigo compañero de trabajo me presentó CodeGym. Al principio era escéptico ante las promesas de convertirme en un programador de pleno derecho jugando un juego y a un precio tan modesto. Pero luego recibí algo de dinero por mi cumpleaños (no sujeto al "impuesto familiar") y tuve que elegir entre WoW y CodeGym... Bueno, gracias a un descuento oportuno, la balanza se inclinó en la dirección correcta, y aquí estoy. Como todos ya deberíamos saber, CodeGym es 90% pura práctica. Aprendes a resolver tareas. Aprendes a encontrar el conocimiento que te falta en Internet. Todo esto es bueno, pero durante 15 niveles no pude evitar la sensación de que me faltaba algo que completaría el cuadro para mí. Pensé en unirme a GeekBrains, pero (probablemente afortunadamente) el mismo amigo me detuvo a tiempo y me presentó Udemy. Cuando abrí este depósito de conocimientos, seguí los llamamientos: " Psst, amigo. ¿Eres un novato?" Hay un descuento para ti... por sólo 3 días — ¡No pierdas esta oportunidad! " Más tarde quedó claro que siempre hay descuentos, pero ese no es el punto. Inmediatamente compré un paquete con dos cursos: Java de 0 a Pro y algo similar para Android. Y aquí comienza nuestra historia.

¿Éxito o fracaso?

Mientras trabajaba en el curso de Android, me dieron tarea para hacer un proyecto basado en mis nuevos conocimientos. Soy el tipo de persona que cree que hacer algo de una manera simple u ordinaria es como no hacerlo en absoluto. Entonces, inmediatamente comencé a complicarme la vida. Me volví hacia la persona que conozco que tiene la imaginación más desarrollada y vívida. Esta es mi querida esposa (sí, ella también leerá este artículo). Sugirió crear una aplicación con imágenes de animales, que emitan los sonidos correspondientes cuando se hace clic en ellas. Fue una gran idea, pero aún así bastante simple. Tomando esta sugerencia como base, comencé a razonar:
  • Esta aplicación debe ser más que tontería (algo para reírse y olvidarse). Quiero que tenga valor. Por ejemplo, enseñando algo.
  • Que sea el alfabeto con animales. ¡Pero no un alfabeto cualquiera, sino el alfabeto inglés!
  • ¡Y no sólo animales, sino animales raros que pocas personas conocen para ampliar sus horizontes!
  • ¡Y debería haber animación, reproducción de audio de los nombres de las letras y los nombres de los animales en inglés y ruso!
Eso es lo que yo llamo tarea (olvidé mencionar que antes de CodeGym básicamente no estaba familiarizado con la programación. Y pasaron menos de 3 a 4 meses desde el momento en que comencé a usar activamente el sitio web hasta el momento en que comencé el proyecto. Entonces, si Eres un veterano en esta área y estás pensando, " Pff... ¿Cambió algo con respecto a la versión original? ", te aseguro que sí, ¡cambió)! La primera dificultad que encontré fue , aunque parezca mentira, iniciar el proyecto. Resulta que los autores no son los únicos que experimentan el "bloqueo del escritor"... Pero como soy psicólogo, conocía la solución a mi problema. Sólo necesitas empezar a hacer algo. Da al menos un pequeño paso y luego no te detengas. Entonces comencé con una clase de Letras abstractas . Esta clase tenía un par de campos y posteriormente tendría que tener varios métodos. En realidad, no tenía idea de qué haría con él, pero tenía que hacer algo. Luego, creé clases para cada letra, haciéndolas heredar la clase abstracta. Me llevó mucho tiempo y así terminó mi primer día de trabajo. Al día siguiente eliminé el proyecto y comencé de nuevo. Simplemente abrí el proyecto para recordar qué ha cambiado desde el momento que describí anteriormente. Y me gustaría decir que todo pintaba mejor cuando terminé, pero no. Realmente todavía hay clases para cada letra... Esto se debió específicamente al hecho de que me asignaron esta tarea casi al comienzo del curso de Android, y por mi cuenta tuve que descubrir las complejidades de la relación entre una actividad (la ventana activa, o algo así) con una clase. Y no encontré ni se me ocurrió otra cosa que esta manera torpe de asociar una clase específica con una actividad específica. De todos modos, uno de los principios de la programación (evitar la repetición) fue violado 26 veces. Primero, implementé completamente (me pareció) las dos primeras letras, hice una interfaz de usuario aproximada que consta de dos menús (un menú general que podría ser necesario al expandir la funcionalidad y una tabla de contenido desde la cual se puede saltar a cualquier de las letras). Realmente no encontré muchas dificultades en la programación. A medida que implementaba mi proyecto independiente, muchas cosas, como las relaciones entre clases, métodos, etc., quedaron claras y el proyecto en sí se convirtió en una excelente práctica para consolidar todo el conocimiento que había adquirido no solo sobre Android, sino también sobre Java. La segunda dificultad fueque la letra cambió al mismo tiempo que se escuchó su nombre. La transición suave (sombreado) hizo que pareciera que el sonido precedía a la imagen. Pero cuando puse un retraso en el sonido, todo el hilo se congeló; la transición simplemente se pospuso por la cantidad de retraso, produciendo el mismo efecto indeseable, sólo que más tarde. ¡Entonces tomé la audaz decisión de hacer que mi programa fuera multiproceso! Moví la reproducción de sonido a un hilo separado, con un retraso suficiente para que se cargara la imagen. Hasta aquí llegaba el subproceso múltiple, pero estaba orgulloso de decir que estaba escribiendo una aplicación multiproceso. La última dificultad fue seleccionar los materiales adecuados. ¿Creías que el inglés no tiene animal para la letra X (resulta que sí)? Tuve que identificar 26 animales y encontrar sus imágenes y sonidos, y registrar los nombres de 26 letras y 26 animales. Si hubiera estado trabajando en un equipo, obviamente habría dejado esta parte del trabajo a otra persona. Momentos tan monótonos matan las ganas de trabajar, y cuando no hay ganas, hay excusas. De todos modos, esta etapa tomó alrededor de 2 semanas (hice el proyecto en mis tiempos libres y cuando no tenía excusas). El proyecto fue declarado completo aproximadamente 3-4 semanas después de su inicio.

¿Vale la pena seguir estudiando programación?

Siguió la desilusión. Primero, no me permitieron publicar mi tarea en el curso. Hice el trabajo y me esforcé muchísimo para lucirme, pero no me lo permitieron. En segundo lugar, mi aplicación funcionó perfectamente en el emulador y en mi teléfono. De lo que planeaba hacer, no implementé la animación, porque escupí y decidí terminarla cuando hubiera terminado las lecciones relevantes del curso. Pero cuando comencé a pensar en distribuir la aplicación, me encontré con un problema interesante. Después de usar otro teléfono y una tableta para comprobar si mi aplicación estaba optimizada para diferentes pantallas y diferentes versiones de Android, me encontré con un error desconocido. El programa simplemente se cierra al cambiar a una letra. Intenté encontrar la raíz del problema, revisé los registros que, en comparación con las concisas excepciones de Java, parecían aún más hocus-pocus. Internet no me ayudó. Por un lado, creé una aplicación funcional con la que a mis hijos les gusta jugar. Por otro lado, sólo funciona en mi teléfono. Esto me hace reír. Por supuesto, estaba molesto, pero reflexionando sobre ello, llegué a la conclusión de que había ganado más de lo que había perdido:
  • Mejoré en el manejo de las críticas a mi trabajo.
  • Me di cuenta del valor del conocimiento y la experiencia en el diseño de software.
  • Aumenté mi autoestima en programación.
  • Me di cuenta de la necesidad de estudiar patrones de diseño y los conceptos básicos de la refactorización.
  • Y como dije, ahora tengo mi propia aplicación, que nadie más tiene y probablemente nunca tendrá. =)
"Sé que no sé nada". Al implementar proyectos educativos como este, tiene una gran oportunidad de analizar lo que sabe, dónde tiene lagunas en su conocimiento e identificar formas de progresar más. ¿Vale la pena seguir estudiando programación si entiendes que todos tus esfuerzos durante una larga etapa de tu vida te han llevado de 0 a +0,001? Para mí, la respuesta fue sí. ¿Qué pasa contigo?
Comentarios
  • Populares
  • Nuevas
  • Antiguas
Debes iniciar sesión para dejar un comentario
Esta página aún no tiene comentarios