Te puedo recomendar no hardcodear como primer consejo...
Leer la documentacion oficial siempre ayuda hasta para el diseño en material design. Conocer esas reglas que le aportan calidad a tus diseños.
Luego herramientas de entorno:
android studio( si queres despues deshabilita al deamon que te hace un polling del codigo constantemente, no lo recomiendo)
aprender la diferencia entre frameLayout, relativeLayout y linearLayout. Una vez conocido esto lo demas es facil.. CoordinatorLayout parecido a frame solo que se usa para determinar comportamientos... tenes tambien drawerLayout para crear los navigationDrawer
El uso de recursos String, Dimen, Color, drawable y styles. Muy importantes.
Conocer de patrones de diseño. Y en o posible usar MVP (una vez dominado el codigo es mas facil de mantener)
Uso de dependencias REST (retrofit 2, tiene nuevas feactures), GoogleMaps, Redes sociales, Crashlytics, firebase, y ORMLite
Con eso vas a andar bien... luego