¿Qué debo hacer / investigar antes de ingresar a la universidad con una especialización en Ciencias de la Computación?

Permítanme comenzar diciendo que se preocupa mucho más de lo necesario con la “ventaja” que están obteniendo usted y sus compañeros. No faltan líderes, visionarios y gurús que comenzaron a aprender ciencias de la computación bastante tarde, y tampoco es raro ver a alguien que comenzó a programar a una edad muy temprana que lucha por comprender conceptos fuera de una zona de confort estrecha. Una vez que ingrese a la industria, verá que no hay una correlación significativa entre un comienzo temprano y la excelencia.
Así que, realmente, no te estreses acerca de cuánto antes comenzaron las personas que tú.

Dicho esto, creo que puedes hacerte la vida mucho más fácil en la universidad al familiarizarte con lo siguiente:

  • Instale una distribución de Linux de inmediato y obligue a hacer un uso intensivo tanto para uso personal como para desarrollo de software. Quédese con el desarrollo en Windows solo si desea dedicarse a Oompah Loompah en Widget Factory toda su vida, simplemente sentado en su cubículo todo el día haciendo un widget sin sentido tras widget para la populaza del Rey Widget. Todas las cosas interesantes en la industria se ejecutan en máquinas Linux (por ejemplo, básicamente Internet y la mayoría de los servicios web). Sus asignaciones de programación probablemente se evaluarán en Linux, y el proceso de entrega probablemente requerirá también una cantidad mínima de habilidades de uso de Linux. Y si no puede desarrollarse en Linux, se está excluyendo de un gran porcentaje del mercado laboral.
  • Intentar aprender un poco de muchos lenguajes de programación es un error de novato extremadamente común. Parece que tiene uno o dos semisólidos debajo de su cinturón; en cambio, concéntrese en practicar la mierda de ellos. Encuentre un dominio problemático que le interese (herramientas ingeniosas, aplicaciones web, juegos), encuentre proyectos de código abierto en él y lea todo el código que pueda. En serio, lea el código de otras personas.
  • Lee el código de otras personas. No me digas “sí, sí, lo que sea”. Lee el código de otras personas. No estoy bromeando.
  • Si no puede resistirse a intentar aprender un nuevo lenguaje de programación, salte a uno que use un paradigma funcional, en lugar de su paradigma imperativo habitual. Los estudiantes del MIT solían usar un libro glorioso llamado La estructura e interpretación de los programas de computadora, que se enseña en un lenguaje de programación llamado Scheme y está disponible de forma gratuita en el sitio web del SICP. (Ahora sus cursos de introducción están en Python. Python también es genial. Haces bien en aprender Python, si tienes tiempo).
    (O si bien y realmente operas en otro nivel, podrías aprender un Haskell).
  • Libérate de la creencia de que la informática == programación. Por lo menos , la mitad de la carga de tu curso no implicará ninguna cantidad significativa de programación. Aprenderá principalmente nuevos modelos matemáticos y técnicas para describir, formalizar, resolver y evaluar soluciones a problemas . La informática es ante todo la ciencia de la resolución de problemas , y es más o menos una coincidencia que la programación sea muy útil para estudiar problemas.
    La “ingeniería del software” es para la informática lo que la fontanería es para la dinámica de fluidos; por la forma en que formuló su pregunta, bien podría haber preguntado, “¿cuántas recetas más de Horno EZ-Bake debo memorizar antes de ir a la escuela culinaria?”

Pero, nuevamente, tener un comienzo súper temprano no es un indicador fuerte de competencia. No se preocupe por “ponerse al día”, pero disfrute y siga su curiosidad. El interés genuino lo llevará a hacer operaciones bancarias en un trabajo increíble de manera mucho más efectiva que el hacinamiento en pánico.

¡Buena suerte!

More Interesting

¿Cuál es el hecho detrás del aprendizaje automático?

¿Las bases de datos noSQL o relacionales (SQL) son mejores para las startups de finTech?

Soy estudiante de informática. ¿Pueden ayudarme a decidir sobre un proyecto de último año que involucre desarrollo de IA y Android?

¿Cómo es el programa de preliminares 60 + 3 días de IASbaba para las preliminares CSE 2016?

¿Cuál es la diferencia entre el control de calidad para una plataforma Enterprise Big Data vs una aplicación Enterprise Big Data?

¿Qué algoritmos de aprendizaje automático son los más peligrosos en términos de perder el control sobre el razonamiento automático y las estrategias de descubrimiento?

¿Cuántas longitudes de onda de luz posibles puede identificar una computadora?

¿Por qué se utilizan diferentes funciones de pérdida con diferentes algoritmos de aprendizaje automático?

Si tenemos un conjunto muy grande de objetos comparables, ¿qué implementación de la tabla de símbolos es empíricamente más rápida: una tabla hash o un árbol de búsqueda binario balanceado? ¿Por qué?

¿Cómo funcionan las actuales interfaces cerebro-computadora?

¿Por qué la copia de datos de una computadora a un disco flash tarda tanto?

¿Qué es una tienda distribuida de valor-clave? ¿Cuál fue la motivación para diseñarlo en primer lugar?

¿Cuáles son las diversas primitivas de bloqueo disponibles en el kernel de Linux?

¿DIAT Pune lleva a los estudiantes con experiencia en instrumentación?

¿Cuáles son algunos problemas interesantes y no resueltos en sistemas distribuidos?