Para desarrolladores de licenciatura y posgrado de CS: ¿Crees que los estudios superiores te enseñaron significativamente sobre el trabajo que haces, o hubieras sido tan bueno con un par de clases de programación / algoritmos y algo de práctica?

La educación superior me enseñó muy poco directamente sobre el trabajo que hago. A diario no suelo encontrarme, por ejemplo, escribiendo pruebas de código o calculando la complejidad big-O de un algoritmo. Sin embargo, me alegro de haber estudiado incluso las cosas que nunca usaré, porque aumentaron mis límites mentales y me dieron un marco sólido para pensar en la computación.

Para citar a Paul Graham [http://www.paulgraham.com/wealth…],

Si tiene dos opciones, elija la más difícil. Si está tratando de decidir si salir a correr o sentarse en casa y mirar televisión, salga a correr. Probablemente la razón por la que este truco funciona tan bien es que cuando tienes dos opciones y una es más difícil, la única razón por la que incluso estás considerando la otra es la pereza. Sabes en el fondo de tu mente qué es lo correcto, y este truco simplemente te obliga a reconocerlo.

No puedo hablar para todos los programas de gestión, pero en mi experiencia limitada los cursos son mucho más fáciles que CS / matemáticas. Siempre me encuentro con personas con antecedentes comerciales que luchan por encontrar personal técnico, pero rara vez me encuentro con personas con antecedentes técnicos que luchan por encontrar personal administrativo.

La frase “te enseñó significativamente sobre el trabajo que haces” es un poco general. ¿Programo en los idiomas que aprendí en la escuela? Sí a veces. ¿Programo en muchos idiomas que no aprendí en la escuela? Absolutamente. ¿Estoy resolviendo los problemas exactos que resolví en la escuela? No muy seguido. Pero ir a la escuela (tanto de pregrado como de posgrado) me enseñó lo más valioso que uso todos los días: cómo resolver problemas .

Trabajar como ingeniero de software requiere resolver muchos problemas diferentes a diario. El rango de problemas incluye corregir errores simples, descubrir optimizaciones de bajo nivel para mejorar el rendimiento del código y crear programas para realizar acciones complejas. Se podrían hacer estas cosas con unas pocas clases de programación y algo de práctica, pero sería mucho más difícil hacerlo bien.

Considere conceptos avanzados como la optimización del código para el uso de memoria caché y. Ciertamente puede leer sobre estos temas, pero un curso de estudio en profundidad donde toma clases sobre sistemas operativos y hardware pone la información en contexto y conduce a una mejor comprensión que hace que sea más fácil reconocer estos problemas cuando se encuentra ellos.

Un título de posgrado, particularmente un doctorado. lleva esto un paso más allá. Mi investigación de tesis tiene muy poca aplicación práctica para el trabajo que hago hoy. Sin embargo, al hacer ese trabajo, aprendí a resolver problemas que no tienen una solución conocida. General cuando en un programa de pregrado, estás resolviendo problemas que ya han sido resueltos, por lo menos, por tu profesor. A menudo puede encontrar orientación para la respuesta que necesita con una simple búsqueda en Google. Ese no es el caso cuando haces un título avanzado y tienes que encontrar una pregunta y una solución a esa pregunta. Esas habilidades son increíblemente importantes cuando se trabaja en los problemas de software más interesantes y de vanguardia.

¿Recomendaría un título universitario para cualquiera que quiera hacer ingeniería de software? Sí, lo haría. ¿Recomendaría un título de posgrado para cualquiera que quiera hacer ingeniería de software? Esa pregunta es un poco más difícil de responder. Para mí, tener el título de posgrado me ayudó a salir de la puerta a mi primer trabajo en la cima de mi juego. Ya sabía cómo resolver problemas difíciles. Tal vez podría haber aprendido esas habilidades habiendo trabajado en lugar de ir a la escuela durante los 4.5 años adicionales, pero no estoy seguro de que hubiera sido lo mismo. Por lo menos, aprender esas habilidades en la escuela le permite a uno trabajar de forma aislada sin tantas consecuencias en el mundo real; Si los programas que escribo para la investigación que estoy haciendo, el único que sufriré soy yo. Ese podría no ser el caso en un trabajo de ingeniería de software.

Para reiterar la respuesta de Paul Butler, una buena cantidad del contenido que he estudiado hasta ahora ha tenido poco impacto directo cuando desarrollé mis propias aplicaciones o trabajé en la industria.

A pesar de eso, el impacto de hacer un grado tan riguroso (que es CS en la institución correcta) ha sido invaluable para mi autodesarrollo, en particular ha cambiado la forma en que abordo los problemas, algo que no estoy seguro de que pueda lograr sin estar en ese tipo de entorno. Es cierto que, aunque en realidad nunca resuelvo formalmente las complejidades del tiempo, la eficiencia es algo que siempre estoy dispuesto a aplicar implícitamente a cualquier trabajo que emprenda. Creo que esta mentalidad proviene en gran medida de las clases que he tomado y las habilidades desarrolladas al completar las tareas asociadas con esos cursos.

De alguna manera, soy bastante afortunado ya que el curso que completaré este año está bastante enfocado en la industria y existen requisitos para que los estudiantes completen unidades empresariales y de negocios adicionales junto con los módulos de tipo CS, matemáticas y arquitectura más tradicionales. Como alguien que es emprendedor y que ha estado involucrado en una etapa inicial, no creo que me haya beneficiado tanto del material entregado en ellos. Obviamente, no puedo hablar para todos los cursos que existen, y probablemente dependerá también del estudiante.

Creo que al final del día esto es algo que realmente tienes que investigar. Ciertamente, en el Reino Unido, los grados de informática varían enormemente de una universidad a otra, con diferentes sesgos dependiendo del tipo de personal que entrega el material. Probablemente valga la pena mirar una variedad de lugares diferentes para ver si su programa le interesa y también echar un vistazo a sus otras opciones. La universidad es una inversión masiva al final del día, pero ciertamente tiene numerosos beneficios.

Siempre he creído que el éxito se debe principalmente a la persona, por lo que no debería importar a dónde vayas, siempre y cuando seas proactivo en la investigación de tus propios intereses fuera de la clase y en la creación de redes con las personas adecuadas. Si estaba destinado a tener éxito, lo hará.