Aquí están mis recomendaciones, suponiendo que esté comenzando sin conocimientos de programación. Es más o menos el camino que tomé, con algunos conocimientos retrospectivos incorporados. Puede que no funcione para todos, pero lo hizo para mí. Cualquier escala de tiempo son estimaciones. No recomendaría imponer plazos a tu aprendizaje, ya que terminarás desmoralizado si no los cumples. Simplemente siga adelante y progrese a medida que se sienta cómodo:
- Pase un mes aprendiendo los conceptos básicos de Java. Utilicé este libro, aunque también hay muchos recursos gratuitos de buena calidad en línea (no se puede equivocar con Tutorials Point, por ejemplo).
- Obtenga una suscripción a la Guía de desarrollo de Android de The Busy Coder y lea los capítulos principales. Espero que esto tome otro mes. Use los otros capítulos como referencia, o simplemente eche un vistazo si está interesado.
- Si tiene alguna idea para una aplicación, ahora es un buen momento para intentar construirla. Es probable que necesite verificar mucho su material de referencia, pero tendrá suficiente conocimiento para al menos saber dónde buscar orientación.
- Configure una cuenta StackOverflow y familiarícese con las pautas de publicación y cómo buscar respuestas. Responder preguntas justo fuera de su zona de confort puede ayudarlo a aprender, y un puntaje de reputación decente tiene cierto peso al solicitar trabajo. Incluso he sido contactado por reclutadores de esta manera.
- Comience a explorar conceptos más avanzados de Java y Android, es decir, interfaces, subprocesos múltiples (en Java y Android), genéricos, varargs, serialización / parcelable, opciones de almacenamiento persistente. Examina los patrones de diseño y las mejores prácticas. Recomiendo Tutoriales Point – Patrones de diseño y Java efectivo de Joshua Bloch. Sigue trabajando en aplicaciones junto con toda esta literatura para que no te aburras con toda la lectura.
- El conocimiento de las estructuras de datos y los algoritmos puede ayudar a desarrollar una apreciación de lo que está sucediendo detrás de escena en Java, y puede ayudar en las entrevistas. Puedes echar un vistazo a Cracking The Coding Interview.
- Si está preparado para pagar, califico altamente al Desarrollador de Android Nanodegree de Google y Udacity. Recomiendo tomar los módulos opcionales de desarrollo profesional para que pueda crear un currículum para desarrolladores, LinkedIn, GitHub, etc.
- Considere contribuir a proyectos de código abierto. Udacity ofrece un curso corto y gratuito sobre cómo usar el Control de versiones en Git y GitHub si no está seguro de algunos de los conceptos. A estas alturas, tendrá sus proyectos de curso en GitHub, y quizás algunas aplicaciones de colaboración también.
- Conozca las pruebas de unidad e instrumentación, y diseñe patrones y marcos que ayuden a mejorar la facilidad con la que se pueden probar las aplicaciones. Esto incluirá JUnit4, Mockito, AndroidJUnit4, Espresso, Dependency Injection (biblioteca Dagger2 en particular) y patrón de diseño Model-View-Presenter (MVP).
- Deberías estar más que preparado para el trabajo. Si aún no ha solicitado roles, o ha sido contactado a través de sus cuentas StackOverflow / GitHub, comience ahora.