Hola compañeros del foro!!
Yo igual soy nuevo en estos lados, pero ya llevo un tiempo trabajando con microcontroladores pic, asi que puedo aportar a esclarecerte un poco el panorama.
Si es que eres realmente un novato, te recomiendo que comiences en assembler, ya que te da un dominio absoluto del micro en cuestión, lo cual te lleva a tener mas consciencia de los recursos disponibles en tu micro, capacidades de procesador y periféricos, pero lo más importante (según mi opinión y modesta experiencia), te hace más consciente de las limitaciones de tu micro. La gran desventaja de trabajar en assembler es el tiempo de desarrollo, no hay un "hola mundo" simple y estandar, ya que el assembler que tu aprendes para un PIC no es igual para un AVR, y menos para un 8051.. Por lo tanto el assembler te da un dominio absoluto, pero muy especifico a la marca de microcontrolador y la familia que escogiste para empezar.
En cambio, si ya dominas o tienes nociones de microcontroladores, no veo impedimento para empezar con un lenguaje de alto nivel, los tiempos de desarrollo son mucho mas cortos, la programación mas amigable, y el mismo codigo es relativamente mas migrable, es decir, portarlo a otro tipo de micro, ya sea de otra familia de la misma marca (en caso de los PIC, de 16F a 18F), o de plano a una marca diferente, con modificaciones leves. Lo que no sabria decirte es cual lenguaje escojer, esa es una opción muy personal, ya que a estas alturas los lenguajes de alto nivel para microcontroladores van muy a la par en cuanto a ventajas y limitaciones (yo personalmente prefiero el C).
Espero te sirva de algo mi humilde aporte.
Saludos a toda la comunidad