¿Cuál es tu opinión sobre estudiar CSE en IIT Bombay?

¡Excelente! Ser parte de IIT CSE no solo me ayudó a dar forma a mi carrera, sino que también me ayudó a desarrollar una personalidad general. Creo que el impacto más importante se debió a mis amigos y compañeros de quienes aprendí mucho 🙂

Tenía algo de experiencia en codificación. Mi experiencia de codificación antes de mi licenciatura incluyó:

Programación GWBASIC en 6to estándar

Programación en C ++ en séptimo estándar

Programación Java en 8º, 9º y 10º estándar

Tenga en cuenta que todo esto era parte del plan de estudios de mi escuela. Puede parecer una gran experiencia, pero en realidad, aprendí lo básico: variables, constantes, bucles. El concepto más complicado fue probablemente una clase de estudiante / empleado. Sin embargo, diría que esta experiencia me ayudó a comprender mejor las cosas en el primer curso de CS en IITB.

Algunos estudiantes tienen la idea errónea de que deberían tener experiencia en codificación para tomar CSE como especialidad. Sin embargo, en IITB CSE, se supone que ni siquiera ha visto una computadora antes. Las cosas se enseñan desde lo más básico, por lo que cualquier persona que tenga cero experiencia en programación puede ponerse al día fácilmente 🙂

C ++ se enseñó en CS101, el primer curso de CSE en IITB. Además, C ++ es el lenguaje de programación ‘generalmente utilizado’ en la mayoría de los cursos y, por lo tanto, aprender C ++ no fue un gran problema.

Para C, diría que nunca me senté y aprendí C. Lo aprendí al hacerlo. Por ejemplo, nuestro curso de SO incluyó una buena cantidad de programación en C. El curso de compiladores consistió en diseñar un compilador de C. El curso de arquitectura de computadoras tenía una buena cantidad de programación en C. No fue demasiado difícil captar conceptos sobre la marcha. Yo diría que C sería pan comido para alguien que pueda escribir código en C ++. De hecho, la mayoría de los idiomas serían fáciles de aprender dado que tiene una experiencia previa en algún otro idioma.

Java como mencioné fue enseñado en la escuela. También hice un proyecto en Java en mi tercer semestre. También aprendí Java como parte del desarrollo de aplicaciones de Android que probé durante mis veranos de segundo año. Una vez más, no soy un ninja de Java, pero dame una tarea y dame algo de tiempo y puedo darte un código Java (que funcione).

Creo que saber más lenguajes de programación no importa. Como estudiante de CSE, traté de enfocarme en conceptos e ideas en lugar de aprender múltiples lenguajes de programación. De hecho, en IITB, no se nos enseña ningún lenguaje de programación durante las conferencias. Nos enseñan solo los conceptos. La codificación real ocurre durante los laboratorios. Solo en los primeros cursos introductorios estábamos obligados a usar C ++. A partir del segundo año, la elección del lenguaje de programación fue totalmente nuestra. Todo lo que importaba era hacer la tarea. Por ejemplo, teníamos libertad para usar scripts de shell o python durante nuestros laboratorios de Computer Networks. Por supuesto, hay algunas opciones obvias. Por lo general, no preferirá Java si va a escribir un script simple. Python / shell scripting es la opción obvia.

Sin embargo, hay una excepción al punto anterior: nuestro curso de laboratorio de sistemas de software. Este fue el curso que realmente me ayudó a mejorar mis habilidades de implementación y me dio exposición a varios lenguajes de programación. De hecho, este era el objetivo del curso. La forma en que se logró fue que nos dieron un laboratorio para llevar a casa cada semana que contenía una tarea que se suponía que debía hacerse en el lenguaje de programación elegido por el instructor. Por ejemplo, en uno de los laboratorios, se nos exigió implementar el algoritmo Gale Shapley para la asignación de asientos JEE en Java. Esto me obligó a aprender las construcciones muy básicas de ese lenguaje / herramienta en particular. Aprendí Python de esta manera 🙂

Estructuras de datos y algoritmos: no encontré nuestro curso de estructuras de datos demasiado útil porque las conferencias del profesor eran demasiado difíciles de entender para mí took Tomé la clase en línea de Robert Sedgewick en Coursera para familiarizarme con los algoritmos y estructuras de datos comunes. Hojeé CLRS. Finalmente, para obtener una mejor comprensión, comencé a resolver SPOJ. Creo que SPOJ me enseñó más que cualquier otra fuente. Definitivamente, debe resolver los primeros ~ 100 problemas para mejorar las habilidades de pensamiento e implementación.

Otras cosas necesarias: aprendí el desarrollo web mediante la creación de aplicaciones web simples en Django durante mis veranos de segundo año. Lo mismo para el desarrollo de aplicaciones de Android. Había otras habilidades que aprendí al tomar cursos adicionales. Por ejemplo, tomé cursos adicionales sobre criptografía, aprendizaje automático, aprendizaje profundo, etc.

Creo que vale la pena mencionar que también aprendí mucho durante mi pasantía de verano. De hecho, mi pasantía me dio 2 excelentes oportunidades:

Implementando los conceptos aprendidos durante la licenciatura en sistemas reales, por ejemplo, utilicé mucho de mi conocimiento del curso de mi base de datos durante mi pasantía.

Aprendiendo cosas a nivel de la industria que nunca podría haber aprendido en conferencias; por ejemplo, aprendí cómo el código de escala de la industria está escrito de manera que varios ingenieros puedan entenderlo, administrarlo y mantenerlo.

Créditos: Aman Goel