Señor, para un estudiante de CS, el equilibrio de la teoría y la práctica ofrece una gran ventaja, ¡es el camino a seguir en general!
Primero obtenga algunos conocimientos básicos sobre programación y comprensión básica del lado de la teoría.
En el frente práctico, es mejor aprender tantos lenguajes de programación como sea posible que atiendan a diferentes dominios (Propósito general, Aprendizaje automático, Bases de datos, AI, Sistemas concurrentes, Redes, SO, sistemas web, BigData, Gráficos por computadora, multimedia, Programación en paralelo, Simulación , etc.) O incluso puede probar sus habds en áreas interdisciplinarias (que están cerca de CS) como programación de sistemas integrados, SIG, bioinformática, simulación y modelado, procesamiento de señales, robótica, etc.
Y para perfeccionar tus habilidades y mantenerte actualizado, debes participar en muchas competiciones de programación como Hackathons, Google AI challenge, code chef, etc. ¡También hay competiciones indias!
Además, ¡es mejor si intenta obtener certificaciones en cualquiera de los trabajos prácticos anteriores de los cursos de Stanford o de IIT!
Además de lo anterior, la participación en los concursos de programación de los mejores institutos siempre será útil.
Además de lo anterior, incluso puede trabajar en proyectos en vivo de poca monta, como construir sitios web de departamentos … o mantenimiento … o hacer algún sistema de software útil para cualquier problema del mundo real como parte de sus proyectos o como propio. ¡¡proyecto!!
¡Lo anterior es ideal y muy necesario para que sea adecuado y adaptable para el entorno de la industria!
Pero los siguientes también son muy importantes.
CS no se trata solo de programar o escribir software o construir computadoras … Es una disciplina científica / de ingeniería para estudiar los conceptos de almacenamiento, procesamiento y transmisión de información … Es una disciplina científica total, aunque la libertad artística nunca se desalienta … Esto ¡falta una comprensión básica e importante de la disciplina entre muchos estudiantes de CS! ¡Todos asumen sin rodeos que CS no es más que varios lenguajes de programación!
De manera tradicional, un sujeto de CS debe pasar por la historia y la evolución de CS como disciplina, cuáles son los requisitos previos para comprender esta disciplina, en qué parte de las ciencias aplicadas encaja, cuáles son los campos relacionados con esto en otros ciencias … Este tipo de base en la disciplina es imprescindible para iniciar el viaje de una manera significativa !!
¡La programación es una parte importante de CS, el aspecto práctico principal de muchas subdisciplinas de CS! Entonces, comprender la programación tanto artística como técnicamente hace una gran comodidad … ¡Es un método de resolución de problemas paso a paso (en alguna sintaxis específica) para resolver un problema dado con una computadora! ¡Practicar la programación (en varios idiomas) con construcciones básicas y con problemas matemáticos básicos lo ayuda a conocer los fundamentos de resolver un problema y escribir un programa!
Pero espera CS no se trata solo de programar !!! La programación es una parte importante de CS pero no todo … (ni siquiera la mitad) … ¡Sí, la programación es una herramienta importante para implementar las ideas / soluciones para resolver un problema en sistemas prácticos! pero la programación por sí sola no dará ninguna solución a un problema de computación … ¡Esta distinción es comúnmente omitida entre muchos que hacen su opinión sobre CS! La analogía es —-> “Qué herramientas de redactor, brújula, CAD / CAM, etc., son para un ingeniero mecánico, los diversos lenguajes de programación son para un ingeniero CS, .. El ingeniero mecánico requiere esas herramientas como parte de la implementación de sus ideas de diseño para resolver algún problema (o construir algo), pero el uso de herramientas no tiene nada que ver con la idea de generar o diseñar la solución. Simplemente ayudan en la implementación … ¡Lo mismo ocurre con la programación y CS también! ”
(¡CS o, más ampliamente, CSE, es una disciplina científica y de ingeniería que surgió de una estrecha interacción entre los departamentos de Matemáticas e Ingeniería Eléctrica en el oeste! ¡El carácter inherente de esta disciplina junto con su evolución la ha convertido en una disciplina de ciencia e ingeniería simultáneamente! !)
Después de obtener suficiente flexibilidad en la programación, uno debe enfocarse en los aspectos científicos / teóricos de la disciplina informática … Aquí es donde se puede diferenciar un programador autodidacta comúnmente disponible y un Ingeniero CS o un especialista CS … De hecho, la mayor parte del plan de estudios de pregrado (en Universidades) cubre estos aspectos científicos en lugar de solo lenguajes de programación, si observan !! ¡Esto nos hace ganar una ventaja codiciada sobre los demás! ¡Además, esto es esencial para comprender la mayor parte de la dinámica de los sistemas informáticos y su funcionamiento! ¡Este es un paso muy importante para diferenciar a un programador normal de un ingeniero en una empresa basada en productos (no los servicios, por supuesto)!
Un ingeniero de CS necesita una sólida base en matemáticas (especialmente matemáticas discretas, álgebra lineal, probabilidad y estadística) para obtener una comprensión de varios subcampos de CS
¡Muchos piensan que Maths no sirve para nada en CS, eso es un error absoluto para decir lo menos!
P.ej:
a) La teoría de la probabilidad y la estadística son el corazón de la CS (aparte de las matemáticas discretas), se usan de muchas maneras y son muy útiles para resolver muchas tareas. ¡La probabilidad es muy importante para comprender el análisis de algoritmos, estructuras de datos, algoritmos aleatorios, inteligencia artificial, aprendizaje automático, redes informáticas, redes móviles y de sensores, sistemas de seguridad e incluso sistemas operativos y sistemas distribuidos!
b) Si un ingeniero mecánico utiliza el producto escalar de dos vectores para estimar el trabajo realizado por una fuerza que actúa sobre un cuerpo en movimiento, los ingenieros eléctricos lo utilizan para estimar la energía eléctrica consumida para mover una partícula de carga.
Nosotros, los ingenieros de CS, utilizamos productos de dos vectores en
- Recuperación / minería de información para estimar la similitud de una consulta dada con los documentos existentes en el almacenamiento (una primitiva de recuperación utilizada antes de google en la búsqueda web). También utilizamos el coseno del ángulo entre los vectores de consulta y documento. Estas medidas son se usa para clasificar los documentos que son más similares a la consulta dada (al igual que la búsqueda en Google devuelve documentos en un orden basado en la consulta dada)
- En aprendizaje automático / minería de datos, lo usamos en concepto de agrupamiento para estimar la similitud de diferentes puntos de datos con respecto a un punto de datos medio. Además, utilizamos productos de puntos en clasificadores llamados máquinas de vectores de soporte para calcular la longitud del margen de vectores de soporte !!!
- En gráficos de computadora, el uso del producto punto es omnipresente.
Computer Graphics se basa en los principios de informática, matemática (geometría analítica y geometría sólida) y física (iluminación).
La animación por computadora se basa en los principios de cinemática y dinámica. ¡Los gráficos realistas utilizan una mecánica más compleja!
c) Los valores de Eigen y los vectores de Eigen se utilizan en ingeniería mecánica para encontrar el eje de rotación en un cuerpo rígido. En electrónica y física se usa para encontrar la solución de la ecuación de onda de electrones. En CS, los valores propios y los vectores propios se usan de muchas maneras, como …
- En técnicas de reducción de datos (en aprendizaje automático)
- En el algoritmo de Búsqueda de Google Page Rank para encontrar la clasificación de la página de varios sitios (nodos) !!!
d) Teoría de números (una vez considerada como matemática pura y pensaba que no era aplicable en ninguna parte). ¡Pero desde finales de la década de 1940 en adelante, es ampliamente utilizada en criptografía de CS para diseñar y analizar varios algoritmos de sistemas de seguridad y autenticación!
Este tipo de ejemplos hará que un estudiante de CS (que tenga buenos conocimientos básicos de ciencias) piense que “¡CS tiene algunas cosas geniales para trabajar y también será bastante interesante! Además, no es menos en aspectos técnicos / científicos y el conocimiento de Matemáticas / Física que obtuve hasta ahora es bastante útil y aplicable en este campo … ¡Es una disciplina de ingeniería! ”
Este tipo de realización naturalmente moverá a los estudiantes capaces e interesados a hacer maravillas en el campo. Desafortunadamente, a diferencia de otros campos de ingeniería, ¡nuestros chicos de CS no tienen una comprensión completa de la disciplina!
¡La disciplina de CS ofrecida no es solo para trabajos tontos en las industrias de Servicios! ¡Tiene una respiración y una profundidad mucho más amplias que sus disciplinas hermanas (de ingeniería / ciencia)!
CS no está relacionado con el crecimiento o la caída de los mercados bursátiles o la industria de servicios de TI / BPO … ¡Es una disciplina científica que persiste mientras persistan los humanos (al igual que otras ciencias)! La recesión puede afectar solo a algunas industrias / algunos cursos basados en la industria … ¡pero no para una disciplina científica con amplias aplicaciones! Esta amplia comprensión es imprescindible para un chico CS.
Puede parecer demasiado tradicional / ideal, pero sí, ¡requiere uno! Gracias por el valioso tiempo.