1. No's empieces con lenguajes, empieza con programación. (¿Aprendes matemáticas aprendiendo Mathlab, o aprendiendo matemáticas?) Prueba con Algoritmos y Estructuras de Datos.
2. Si's lógico en tu pensamiento, y en matemáticas tienes que serlo, deberías aprender lo suficiente en 6 meses de estudio a tiempo completo, o un par de años de estudio a tiempo parcial, para convertirte en un desarrollador competente. (La codificación es como la traducción - tiene que haber algo que codificar primero - un ordenador puede codificar un programa que ya ha sido desarrollado.)
3. ¿Elegir un idioma? Eso depende de lo que vayas a hacer. ¿Iphones? Objective C. ¿Teléfonos Android? Java. ¿Servicios web? PHP, Python o Ruby on Rails. Es especializado - no vas a ser realmente bueno en una docena de lenguajes en 10 años.
4. ¿50 mil? Probablemente estarás empezando entre 25k y 35k, dependiendo de la zona y la empresa. (Incluso el "Medio Oeste" - hay's una diferencia entre Chicago y algún pueblo pequeño en la Nebraska rural). Algunas empresas dan aumentos anuales (o incluso bianuales), otras no dan ningún aumento y hay que cambiar de empresa para conseguirlo. Trabajar con contrato significa más dinero, pero pagas tus propios impuestos y tu seguro médico, y no tienes tiempo libre pagado (días festivos, vacaciones, etc.), y si tienes mucho tiempo entre contratos, tus ingresos anuales no serán mucho mejores que trabajando como empleado.
5. ¿100k? Grandes empresas. Cisco. Red Hat. Pagan más - por la experiencia. ¿En 10 años? Tal vez. Pero prepárate para mudarte. Si tienen una vacante en la costa oeste, o en la costa este o en otro lugar, te mueves o alguien consigue el trabajo. Si tienes hijos, eso va a ser duro para ellos, como ser mocosos del ejército.
6. ¿Acreditación? Un grado de CS puede't daño. Los cursos certificados en varios aspectos de la programación tampoco pueden. Algunas empresas quieren capacidad, otras prefieren el papel. Si tienes ambas cosas, no importa, pero 10 años de experiencia haciendo casi exactamente lo que la empresa necesita, ganará sobre un título y sin experiencia casi siempre.
Un consejo - lee realmente las especificaciones del trabajo antes de enviar un currículum. si no encajas, no desperdicies el esfuerzo - hay docenas de personas que se presentarán y que sí encajan. (Sigo recibiendo ofertas de trabajo, a pesar de estar jubilado, para puestos que no podría cubrir porque, incluso después de más de 40 años de programación, no tengo experiencia en esa área o lenguaje concreto. Incluso los cazatalentos se están volviendo incompetentes desde hace un par de décadas. Las empresas se enfadan tanto como yo cuando solicitan programadores de C# y reciben currículos de personas que tienen 5 años de experiencia con C++ y no distinguirían C# de una nota plana. Si sigues golpeando a una empresa con un currículum que ni siquiera se acerca a lo que quieren, se desharán de tus currículums en cuanto vean tu nombre.