Descargos de responsabilidad (Lea antes de saltar para responder):
He visto varias preguntas similares a la que me gustaría hacer, así que aquí hay algunas preguntas similares .
En mi humilde opinión, no son completamente lo que estoy preguntando, ni son tan minuciosos como espero ser (no me refiero a ignorar las respuestas a las preguntas a continuación, ni estoy desacreditando a los que preguntan, solo quiero ser un poco más completo):
¿Puede un título de CS beneficiar a un programador mayor?
¿Importancia del grado de CS al solicitar trabajos de desarrollo?
Déjame ser claro, no estoy preguntando lo siguiente:
- Cómo enseñarme a programar desde cero (sin un título en CS)
- Cómo comercializarme como un buen desarrollador de software (sin un título en CS)
- Cómo obtener un excelente trabajo bien remunerado como desarrollador de software (sin un título en CS)
Un pequeño contexto:
Ahora que tengo las renuncias de responsabilidad, permítanme desarrollar mi pregunta, comenzando con una breve historia de mi experiencia como desarrollador de software.
En primer lugar, he sido increíblemente afortunado. Me dieron varias oportunidades de trabajo (un par de proyectos PHP / MySQL de back-end pesados y varias aplicaciones WP7 en XAML / C #) a través de las cuales realmente aprendí todo lo que sé sobre el desarrollo de software. Casi todos los trabajos de desarrollo de software que he tenido fueron para los que no estaba debidamente calificado (y lo dejé claro a mis empleadores antes de que me contrataran). No quiero darme crédito donde no se debe, pero diría que la humildad perfecta prescinde de la modestia .
En casi todos los trabajos de desarrollo que he tenido, superé las expectativas de mi empleador y demostré ser un activo valioso. Por supuesto, hay excepciones 1 . Pero mi punto es que soy bastante inteligente y pude enseñarme lo que necesitaba saber para tener éxito en mi trabajo. Con cada trabajo que tenía, me estiraban más y más.
Asisto al campus de la Universidad de Washington en Seattle, y actualmente estoy en mi cuarto año con dos años restantes, trabajando en un título de matemáticas. Durante los diversos trabajos que he tenido (vea mi currículum si desea esa lista) También he asistido a la escuela como estudiante a tiempo completo.
Como creo que la mayoría de los desarrolladores estarían de acuerdo, estudiar los cursos de pregrado de educación general típicos, incluidos los cursos de programación introductoria PAGOS ABSOLUTAMENTE en comparación con escribir código real, construir productos reales 2 , trabajar con personas increíbles y afectar positivamente la vida de los usuarios 3 .
Entonces ... a medida que avanzan las cosas ... pasé mucho más tiempo y energía trabajando en lugar de concentrarme en mis estudios. A veces me desempeñé muy mal , pero en general pude mantenerme a flote con mis notas.
Sin embargo, el programa de informática en UW es muy , muy , muy , muy competitivo.
Entonces, no fue una sorpresa para mí cuando fui rechazado por el programa. Dos veces. Irónicamente, en la misma ventana de media hora en la que recibí el siempre cortés, aunque desalentador aviso de rechazo por correo electrónico, recibí una llamada telefónica de Amazon ofreciéndome una pasantía de verano 4 como SDE.
Al mirar a mi alrededor a otros 'hombres de mi edad (21), que comparten los mismos objetivos que yo en el desarrollo de software, me siento bastante bien acerca de dónde estoy, qué estoy aprendiendo, quién soy y qué Puedo hacer. Por supuesto, hay muchos, mucho, mucho más brillantes jóvenes de 21 años que yo, no quiero decir que destaque entre la multitud, simplemente que siento que no estoy abismalmente detrás del progreso de mi compañero promedio. .
Tengo confianza en mi capacidad para tener éxito en el mundo del software. Más importante aún, me siento confiado en mi capacidad y deseo de seguir creciendo, aprender y ser humildemente vergonzoso cuando realmente lo necesito.
Licenciatura en Matemáticas
Me encuentro buscando un título en matemáticas con el único propósito de tener un título. Hay quienes dicen que debería abandonar y comenzar a trabajar ahora (como he tenido la oportunidad de hacer), y hay quienes dicen que realmente debería terminar mi carrera. He decidido seguir adelante con mi título por razones completamente diferentes a las que cualquiera de los campamentos tiende a plantear, así que por favor no me aliente de una manera u otra al respecto. Considere el problema "cerrado" :)
* RESPIRACIÓN PROFUNDA * ... lo siento, esto es más largo de lo que esperaba.
En esencia, esta es mi pregunta:
- ¿Cómo determino objetivamente qué áreas de estudio, conocimiento general y otras habilidades habría adquirido a través de un título de CS que me pueden faltar o no ahora?
¿Cómo clasifico estas habilidades en el orden de mayor importancia?
¿Cuál es la mejor manera (en los próximos dos años) de complementar mi educación para lograr esos atributos de tal manera que iguale o incluso supere el nivel de un estudiante de CS de una universidad superior?
Estos son los pasos que ya estoy tomando:
- Pregunta a la comunidad de desarrollo (esta publicación)
- Buscar tutorías con desarrolladores experimentados que compartan una carrera profesional similar conmigo
- Definir objetivos de "aprendizaje" a corto y largo plazo y programas de estudio posteriores que describan los temas de estudio
- Continuar escribiendo código y trabajando en proyectos que me apasionan
Si has llegado hasta aquí, te mereces una galleta :) Te agradezco que hayas estado conmigo.
Entonces ... comunidad de desarrollo, desarrolladores experimentados, compañeros estudiantes que están en el mismo barco que yo, ¿qué consejo le darías?
Además ... tenga en cuenta mis descargos de responsabilidad en la parte superior de esta publicación sobre lo que NO estoy pidiendo.
Actualizar:
Me doy cuenta de que no proporcioné parámetros muy concretos para lo que considero una "respuesta" exitosa a mi (s) pregunta (s). Creo que la pregunta es muy vaga y podría justificar una serie de respuestas "correctas".
Después de un período de tiempo razonable, seleccionaré la respuesta que se ajuste a los siguientes atributos:
- Explica por qué detrás de su respuesta.
- Puede hablar desde cierto nivel de experiencia (ya sea contratando / interactuando o siendo alguien que tiene / está en mi lugar)
- Es conciso pero exhaustivo, ofrece principios amplios, preferiblemente junto con ejemplos específicos
- Por último, teniendo en cuenta la longitud que parece requerir la coincidencia con lo anterior, haga que sea una buena respuesta bien comunicada y agradable de leer. Espero que otros que puedan estar interesados en esto en el futuro se entretengan y eduquen con la respuesta.
Así que hay algunos parámetros para "corregir". Creo que son muy altos, pero los diseñé como una especie de esquema para lo que imagino que sería la "mejor" respuesta. Obviamente, dado el tiempo suficiente, seleccionaré la respuesta coincidente más cercana como la "respuesta".
(1) - Trabajé en una versión anterior de este sitio web, y aunque no teníamos una explícita conversación al respecto, sentí que no podía hacerlo muy bien (esto puede ser evidenciado por el hecho de que desde entonces han cambiado su sitio web por completo) (2) - En primer lugar, sí, es un producto real (aunque estoy escribiendo esta publicación en Chrome ...), y Se patea el culo. En segundo lugar, yo era un desarrollador interno de escuela secundaria en prueba, escribí una prueba de código conceptual para algunas de las nuevas características para IE8 ... así que fue hace un tiempo. (3) - En el momento de esta publicación, soy el desarrollador que escribió esta aplicación, ya no soy responsable de su código base (4) - Mi pasantía comenzará en junio de 2012, y estaré trabajando en la tienda web equipo.