Esa es una pregunta simple con una respuesta no tan simple. Hay muchos libros, tutoriales, artículos, etc. escritos en un intento por responder a esa pregunta. Mi consejo es simplemente comenzar a leer y luego tratar de aplicar lo que has leído en la práctica.