¿Cómo te ayudan las clases teóricas de informática a convertirte en un mejor desarrollador de software?

Con una maestría en CS, espero que tenga una base sólida de teoría de la complejidad.

Esto no es algo que normalmente se enseña en el trabajo, y comprenderlo es fundamental para desarrollar software escalable y de alto rendimiento.

Tiene razón en que la mayoría de los programas de CS no enseñan mucho sobre las habilidades de desarrollo de trincheras, como la reutilización de código, el control de origen y la gestión de cambios, el proceso de desarrollo de software, etc.

No asumiría que su escuela es el problema y otras escuelas están sacando gente en la clasificación de HackerRank: está describiendo sucintamente la naturaleza del currículo típico de CS implementado en las 5 mejores universidades de programas de CS en los EE. UU.

Espero que su educación le haya dado una ventaja que tiene sobre los desarrolladores que no pasan por un programa académico al tener mucha práctica con estructuras de datos básicas como listas vinculadas, colas, árboles binarios balanceados, quizás algo de programación funcional (conceptualmente útil en el reino cada vez mayor de JavaScript).

Diría que esas clases ayudan al permitirle comprender mejor cómo funciona la computadora y ayudar a comprender mejor parte del código. También debería ayudar en su capacidad de resolución de problemas. La tecnología, las reglas y las habilidades específicas cambiarán, pero la necesidad de quienes tienen la capacidad de aprender y resolver problemas complejos no lo hará. Algunas escuelas serán más teóricas que otras, pero recuerde que la informática es un campo científico, por eso tiene una gran cantidad de temas matemáticos y teóricos como las otras ramas de la ciencia. Muchos de los primeros hombres y mujeres en informática eran matemáticos. Parece ser un error común pensar que la informática se trata de codificación, programación o TI. Sin embargo, entiendo la razón, ya que una buena cantidad de aquellos que se especializan en el campo se convierten en desarrolladores de software o administradores de red en lugar de convertirse en científicos teóricos de la informática. Espero que esto ayude y no dude en corregirme si mi respuesta contiene algún error.

“La informática no tiene más que ver con las computadoras que la astronomía con los telescopios”.

-Edsger Dijkstra

Bueno … esa es la naturaleza general de las clases de informática: proporcionar los antecedentes teóricos para resolver problemas. Las habilidades de desarrollo duro generalmente vienen con experiencia laboral.

More Interesting

¿Vale la pena suscribirse a IEEE Journal (s) para un desarrollador de software?

¿Cuáles son las clases más importantes en un plan de estudios de pregrado en Ciencias de la Computación?

¿Cuáles son algunas historias de éxito de graduados de campamentos de programación / codificación en línea a tiempo parcial?

¿Cuál es la diferencia entre un desarrollador de software que se graduó en CS y un desarrollador que aprendió la codificación a través de un campo de entrenamiento?

¿Es posible que el ingeniero de control de calidad pase a un rol de desarrollador dentro del equipo de Apple después de un año más o menos?

¿Por qué a algunos desarrolladores les encanta criticar el código de otros desarrolladores?

¿Qué buscan los desarrolladores en compañeros de trabajo no técnicos?

¿Qué tan difícil es reclutar ingenieros y programadores de software en la ciudad de Nueva York? ¿Es más probable que encuentre ingenieros y programadores de software en Silicon Valley o la ciudad de Nueva York?

Cómo pasar de un trabajo académico al desarrollo de software

¿Cuántos ingenieros de software hay en el mundo?

¿Qué consejo le daría a un desarrollador de software que planea cambiar de país en los próximos años?

¿Cuáles son las mejores prácticas para que una persona no técnica se comunique con los desarrolladores?

¿Por qué algunas empresas que desarrollan software no valoran a los científicos teóricos?

¿Cuál es la diferencia entre DevOps y el desarrollador y probador de software?

¿Hay alguna manera de dar un nuevo código de desarrollador para un proyecto de 2.5 GB a través de la red y luego sincronizar su copia a SVN para que pueda registrar el código?