Son muchas preguntas en una y todo es variable, además
una cosa es programador otra desarrollador, podés especializarte en algún lenguaje o dos y hacer rutinas "de memoria" si tu trabajo es siempre el mismo, pero todo es relativo, si sacás a un senior de su contexto de comodidad también estará "perdido", no creas que un senior no googlea buscando soluciones, lo hará menos que otros y de manera más eficiente pero igual lo hará.
De hecho mucho de este trabajo (programación y desarrollo) va en buscar y asesorarse, con más razón si estás por ejemplo desarrollando software de punta, los lenguajes cambian, los estándares, las herramientas y las necesidades también, constantemente hay que adaptarse y reinventarse, por lo tanto no se termina de aprender algo en su totalidad, se aprende la estructura principal y se complementa con lo nuevo. Lo que más se valora es por todo esto la experiencia del trabajador,
nadie nace senior, todos nacemos novatos.
Este es un artículo interesante que encontré hace tiempo para evaluarme a mi mismo, seguramente a más de uno le servirá, "cataloga" los tipos de programador según la experiencia, saludos