¿Con qué debo complementar mi educación formal de CS (en India) con?

No me preocuparía mucho por las tecnologías web y las aplicaciones móviles a menos que tenga razones específicas para seguirlas. Déjelos a personas que nunca fueron a la universidad y necesitan ganarse la vida, y a los casos en que un graduado universitario bien educado puede aprenderlos cuando sea necesario.

Tenga en cuenta que la misión de las universidades no es desarrollar software o trabajadores con un enfoque limitado para la industria. La palabra “universidad” está relacionada con la palabra “universal”, y la misión es impartir conocimientos y habilidades fundamentales a los estudiantes, incluidos conceptos y formas de abordar nuevos desafíos. La industria se beneficia de esto, pero rara vez puede proporcionar tal capacitación, y no casi a la misma escala que el ritmo indescriptible.

Los buenos programas de pregrado ofrecen cursos pesados ​​en el desarrollo de SW, pero es fácil para alguien de la industria quejarse de que sus temas favoritos no están cubiertos de su manera favorita. Además, no todos los estudiantes se dan cuenta de lo complicado que es el desarrollo de SW hasta que obtienen su primer trabajo en la industria. A diferencia de las escuelas secundarias, las universidades tratan a los estudiantes como adultos y requieren solo un mínimo básico. Entonces, es completamente posible ser un estudiante perezoso y luego quejarse de que no te enseñaron esto o aquello.

La investigación de pregrado puede ser impredecible, y no es muy relevante si planea trabajar en la industria.

Practicar su conocimiento de algoritmos y estructuras de datos puede ser útil para muchas cosas, pero las competencias de programación incluyen eso y también le brindan un marco para organizar tales actividades. Los recursos disponibles para la capacitación son excelentes, y puedes aprender mucho de ellos.

Recomendaría leer mucho, desde revistas de tecnología hasta fuentes más técnicas, como publicaciones de investigación. Encuentra algo que entiendas y te guste. Averigüe qué desafíos se están abordando, cuáles son las ideas clave detrás de las soluciones, cómo se validan las contribuciones, cuáles son los escollos. Comprender la lógica de la investigación reciente es interesante y útil, incluso si no eres un investigador. Esto te puede capacitar para pensar en grande y prepararte para manejar proyectos de la industria.

El mejor suplemento para una educación universitaria formal de CS es la experiencia laboral .

Esto es total y seriamente en el nivel. La experiencia laboral es generalmente la cosa número uno que una compañía buscará en un currículum, incluso antes de las credenciales formales, que son las cosas número dos que buscarán cuando seleccionen candidatos.

Sin experiencia laboral, serás clasificado como un académico de la torre de marfil que probablemente no sepa realmente cómo codificar.

El proyecto de su profesor será considerado tercero, si su profesor es bien conocido, y si el proyecto ha llegado a las noticias.

Sus actividades extracurriculares, como los hackathons, aparecerán como un cuarto distante, pero solo si pueden documentarse lo suficiente; una mejor actividad extracurricular será la participación en los concursos de programación de ACM y la colocación en algún lugar por encima de N-2 de los N equipos involucrados en los concursos.

Aparte de eso, realice pasantías de larga duración, ya que contarán como experiencia laboral, y particularmente si puede obtener cartas de recomendación de su supervisor / mentor de pasantías. Haga cartas de las que reciba una copia para poder fotocopiarlas solo si son halagadoras , y no las mencione en absoluto, si no lo son.

Digo esto mucho, y sé que es muy impopular porque no hay un “código engañoso” o un “truco”, pero también es muy confiable porque no hay temor de que el truco se desenrede.

Contribuye a un proyecto de código abierto. Seriamente. Vengo como la universidad más pobre de la India, y nunca obtuve una maestría en CS en EE. UU. (Hay un haiku en alguna parte).

Esta es la razón, y por mucho que nos guste pensarnos como una especie “evolucionada”, la edad juega un papel en la forma en que juzgamos a los demás. Si arruinó un algoritmo de clasificación ahora, muchas personas lo pasarán por alto y muchas más lo guiarán para explicar por qué se equivocó. Haz eso dentro de 10 años, y el mundo no es tan indulgente, simplemente obtendrás un breve “¡No contratar!”

Y la evidencia empírica lo demuestra también. Mire de dónde provino BSD, de internet, de Linux, etc. – campus universitarios. Estas personas aprendieron de forma gratuita lo que muchas personas juegan miles de dólares al año para aprender: cómo ejecutar un proyecto. Ellos aprendieron esas lecciones de la manera más difícil.

Así es como funciona: obtienes tu práctica, obtienes tus ejercicios, te perdonan los errores, aprendes a colaborar con la gente, etc. Pero obtiene comentarios reales (si usó un montón frente a una cola, lo sabrán los revisores de códigos, junto con una explicación de por qué no debe usarlos). Este es un conocimiento realmente valioso GRATIS en la comodidad de tu propia casa algo que otros pagan mucho dinero para aprender en una clase. Cuando te sientas en una entrevista de trabajo, no estás citando un libro, estás afirmando con autoridad: “En un servidor web, una cola es una mala idea por las siguientes razones”.

Y puedes hacerlo tan competitivo como quieras. Conviértete en un mantenedor de Kernel si realmente quieres hacerlo tú mismo. Si en ese momento tiene problemas para obtener una oferta de trabajo, o alguien lo está ratholing por un puntaje GRE, llámeme. 😀

Barra lateral: yo solía competir en los concursos de programación, pero lo hice solo porque lo disfruté. No lo recomendaría como un medio para algún otro fin. Diviértete en el ACM ICPC si solo quieres pasar el rato con 500 nerds durante un fin de semana. ¡Me encantaba!