Sin lugar a dudas, en la universidad no aprendes casi nada de lo que necesitarás más adelante en tu vida. Especialmente si estás obteniendo un título en CS.
No hay una manera fácil de decirlo … esta afirmación es una tontería.
Más adelante en la vida como ingeniero de software, no encontrará un perro top que al menos no comprenda internamente los conceptos que la ciencia teórica le enseñará, incluso si él (o ella) no sabe los nombres de estas cosas. Simplemente no es posible ser bueno en su trabajo, a menos que su trabajo pueda ser realizado por un niño de 15 años. El ejemplo más simple es escribir código rápido; no importa lo bueno que seas en cualquier otra cosa, porque la complejidad exponencial del tiempo se verá afectada por cualquier otra cosa inteligente que se te ocurra, así que asegúrate de aprender tus algoritmos. Y no puede aprender algoritmos correctamente si no entiende un poco de cálculo, un poco de matemática discreta realmente saludable (especialmente la teoría de grafos) y los trucos adecuados para convertir su problema en algo manejable. Este último punto solo puede provenir de la vanguardia, y usted quiere ser uno de los primeros en adoptar, lo que requiere poder entender las publicaciones y demás. Lo que requiere estudio teórico.
- ¿Las universidades en los Estados Unidos ofrecen ayuda financiera a los extranjeros?
- ¿Debo renunciar a mis sueños de la Ivy League después de un GPA de 2.8 en mi segundo año?
- ¿Cuál debería ser mi puntaje mínimo en DU JAT 2017 para ingresar a SSCBS?
- ¿Todos los colegios aceptan estudiantes que no son escolares?
- ¿Cómo vería 'Public Ivies' como UC Berkeley a alguien con un GPA de 3.68 pero un 35 en el ACT?
Debe haber una combinación saludable de teoría y práctica para ser bueno en el software. Este último es fácil de obtener y mostrar: GitHub lo facilita al organizar los proyectos de manera clara y le permite trabajar y contribuir (lo mismo con SourceForge y BitBucket, pero creo que GitHub es el mejor, o al menos el más popular). No hay razón para que un estudiante tenga problemas para obtener experiencia práctica en CS y software. Las personas que dicen que esto es difícil están haciendo una declaración equivalente a una bofetada para aquellos que trabajan en campos en los que la experiencia es realmente rara, como la física experimental o la medicina.
Sin embargo, lo primero no es algo que alguien te estresará una vez que salgas de la escuela, y francamente, es porque las personas no lo saben lo suficiente como para darse cuenta de lo importante que es. Si quieres ser un programador promedio, puedes pasar sin él, pero no voy a dirigirme a las personas promedio, ya que probablemente no estén leyendo esto. Hay una gran cantidad de trabajo que puede hacer para aprender las habilidades del oficio, ya sea mediante contribuciones de código abierto o simplemente proyectos simples que usted mismo inventó. Alguien podría decirte que escribir en el disco es muy lento. De acuerdo, nunca lo hagas … incluso en los casos en que estaría bien hacerlo. Es por eso que aprendes geometría y álgebra en la escuela secundaria en lugar de cómo equilibrar una chequera: esta pequeña habilidad puede enseñarse, claro, pero estás jodido si alguna vez cambia la situación. Mientras que alguien que sabe hacer matemáticas (lo que incluye pensar muy duro y saber utilizar recursos como Internet y libros técnicos) puede hacer mucho más, incluidas estas pequeñas cosas triviales (no estoy diciendo que la programación sea trivial, pero ciertamente es más fácil que aprender la teoría de la CS y las matemáticas).
Nadie es incapaz de aprender la teoría, solo necesitas hackear tu cerebro emocionalmente el tiempo suficiente hasta que llegues a tu epifanía, y una vez que eso suceda, tendrás una motivación sostenible para continuar. Solo necesitas trabajar en ello. Aprenda su teoría de grafos, aprenda los algoritmos, sepa cómo funciona un sistema operativo y comprenda la arquitectura. Es importante al menos prestar atención a los aspectos básicos de estos campos, de esa manera tendrá un lugar donde comenzar cuando se encuentre con un problema real. Mientras más investigación hagas, mejor, porque entonces serás capaz de entender las cosas de vanguardia sin mucho trabajo. Tus epifanías comienzan a venir cuando internalizas estos conceptos. Para mí, lo advierto cuando trato de estudiar un problema y pienso en algo que obviamente no es relevante y que resulta útil. Ver la teoría aplicada es muy útil, creo, y realmente te convence de que vale la pena conocer la teoría. No tendrás tiempo para estas cosas en el trabajo a menos que estés satisfecho con un ritmo más lento o seas un trabajador increíblemente trabajador y no tengas familia ni amigos (en otras palabras, estás haciendo la vida difícil para ti).
Estoy estudiando física y tratando de ingresar a la CS, y puedo decirles que todos los días lamento el tiempo dedicado a cualquier cosa que no sea más matemática y más teoría de la CS, porque cada vez que aprendí algo nuevo en cualquiera de los dos áreas, me ha ayudado de alguna manera con mi trabajo. Simplemente no sabes lo que no sabes, y aprender algo realmente difícil te hará más inteligente además del nuevo conocimiento. Sus pensamientos se vuelven más claros, también lo harán sus explicaciones, y usted puede encontrar soluciones técnicas y, con suerte, convencer a las personas para que las ejecuten. Hay una muy buena razón por la que creamos elementos abstractos divertidos como álgebras y máquinas de Turing, y es porque nos ayuda a aclarar por completo de qué estamos hablando.
Además, no importa a dónde vayas a la escuela, no se te garantiza una buena educación en ninguna parte. Depende de usted hacer eso. Lea con anticipación, convenza a los jefes de departamento para que le permitan tomar más clases de nivel superior, piratear el código en su tiempo libre y simplemente hacerlo y esforzarse al máximo. No hay otra manera de ser bueno en nada, incluso si estás en una de las mejores instituciones (es cierto que es más fácil ser bueno en estos lugares porque tus compañeros te enseñan y te motivan mucho, así que busca la gente adecuada para rodearte). Tu educación está en tus propias manos.
Nada de esto importa si no te importa la teoría y reconoces su importancia. Eso puede o no puede ser lo mismo, o una implicación de, obtener calificaciones mediocres. Si no está pensando en su material e interiorizándolo, entonces sí, está perdiendo el tiempo y debe elegir un campo no técnico para trabajar. Pero espero que esté dispuesto a aprender estas cosas, porque es muy hermoso ( especialmente las partes matemáticas (bueno, todo es matemático, pero algunas partes son un poco más “obviamente” matemáticas)) además de ser muy útiles. La motivación proviene de ver por qué y cómo la teoría es útil, y para eso solo necesitas aprender suficiente teoría hasta que puedas tener esa percepción por ti mismo. Una vez que lo consiga, entenderá cómo lo ha mejorado y por qué la gente le recomienda que lo aprenda, y luego ha comenzado este gran ciclo de auto-refuerzo de motivación para aprender.