Entra aquí: https://www.latextemplates.com/cat/curricula-vitae, elige el que más te guste y trastea con él (colores, fuente, alineación, tamaños, etc). Lo mejor que puedes hacer es poner todo (todo es todo) en una plantilla y luego ir comentando cosas, quitando y poniendo y afinando el CV dependiendo de donde lo vayas a enviar. Yo tengo dos, uno en castellano y uno en inglés, y quito y pongo según me interese para un puesto.
La carta... pues depende. Si vas a echar CV a una oferta publicada pues no haría falta. Si vas a ir a puerta fría a buscar curro en una empresa que en principio no busca gente pues sí, es recomendable que escribas una para que no les llegue un CV y ya, que queda feo.
Y quita la foto. Estás buscando trabajo de programador, no de dependiente.