¿Cuál es la mejor competencia para estudiar en una maestría en ciencias de la computación?

Es muy importante entender lo que quieres de una maestría. En general, las personas quieren estar orientadas al trabajo / la industria o la investigación, al igual que el diagrama del departamento de Berkley CS:

http://www.eecs.berkeley.edu/Gra…

Lo que debe aprender depende de lo que ya sabe (su fundamento teórico) y de lo que le interesa. Si desea centrarse más en la “industria”, también puede considerar lo que es popular.

Hay muchas áreas para un título de MS CS:

Teoría del compilador

Sistema distribuido

Sistema operativo

Teoría computacional

Aprendizaje automático

Procesamiento natural del lenguaje

La seguridad informática

Inteligencia artificial

Sistema Integrado

Visión por computador

Estas áreas también varían entre diferentes escuelas y diferentes programas. Los programas más pequeños ofrecen opciones más limitadas, pero los programas más grandes ofrecen más. La mayoría de ellos se ofrecen en forma de clase, por lo que, sinceramente, puede concentrarse en múltiples, en lugar de solo un área.

Todos ellos son muy interesantes y valiosas habilidades informáticas. Sin embargo, siempre considero que las tres habilidades más valiosas hoy en día son la Teoría del compilador, PNL (procesamiento del lenguaje natural) y ML (aprendizaje automático). Son el pináculo de la CS moderna y son temas muy candentes hoy en día.

PNL y ML

Obviamente soy parcial porque he investigado principalmente en PNL. Pero si echas un vistazo a Siri y Cortana, la PNL será un área enorme en el futuro. El único problema es: la PNL depende mucho de las matemáticas. Si no ha tomado al menos un año de probabilidad y estadísticas, la PNL será muy difícil para usted. Lo mismo con ML. Google acaba de adquirir Deep Mind hace un par de meses. Deep Mind es una empresa basada en el aprendizaje automático. Utilizan algoritmos de ML para enseñar a los robots cómo jugar juegos simples (como pic man), y pueden mostrar rápidamente una fuerza sobrehumana en esos juegos con solo mirar miles de ellos. ML es muy dependiente del álgebra lineal.

Teoría del compilador

La teoría del compilador le brinda la herramienta más poderosa: la capacidad de crear su propio idioma. Hay un cambio reciente en el panorama lingüístico, y nuevos idiomas están surgiendo y tratando de ser populares. Hay lenguajes más ligeros como Python, Ruby y JavaScript. También hay lenguajes más pesados ​​que apuntan a reemplazar Java o C ++ como Clojure y Scala. Aprender la teoría del compilador también puede hacerte un mejor programador.

Sistema distribuido

Esto es principalmente para grandes empresas. Si aprende el sistema distribuido, tiene muchas más posibilidades de ser contratado por compañías más grandes como Amazon, Google o Microsoft. La capacidad de construir un sistema distribuido no siempre es útil en empresas más pequeñas o en nuevas empresas. Esta área se centra principalmente en cómo calcular de manera eficiente y enseña cómo enviar su trabajo desde una máquina maestra a otras máquinas esclavas / trabajadoras.

Teoría computacional

No elija el área como su enfoque principal, a menos que sea un experto en matemáticas discretas o quiera convertirse en un científico informático teórico. Esta área estudia la máquina de Turing y los problemas de P / NP. Se trata más de si un problema tiene una solución lineal determinista o no, o si el programa puede ejecutarse dentro de la cantidad de memoria dada (complejidad de tiempo y complejidad de espacio). Si no tiene idea de lo que estoy hablando, probablemente no debería elegir esta área.

Otro

Decido mencionar rápidamente a otros porque no tengo suficiente experiencia en esos campos. Embedded System se centra más en la programación de nivel inferior, como C ++. Casi se siente como un estudio de ingeniería real porque estás trabajando estrechamente con otros componentes físicos como un dispositivo eléctrico (estrictamente hablando, la informática también es ingeniería, pero creo que CS es más ciencia que ingeniería). La seguridad informática es otra área enorme porque la seguridad es cada vez más importante, especialmente la seguridad en la nube hoy en día. Sin embargo, es importante que hable con personas que realmente están haciendo / estudiando esto. La inteligencia artificial casi se absorbe en el aprendizaje automático. El sistema operativo le enseña los componentes básicos de un sistema tipo Unix / Unix.

Conclusión

Las personas pueden escribir páginas tras páginas sobre cómo elegir sus áreas de especialización en MS CS arena. Sin embargo, al final, solo tú sabes lo que más te gusta. Entonces, mi sugerencia es: si ya eres un estudiante graduado, ve a explorar tantas clases como puedas y descubre tu interés. Si eres un estudiante de pregrado, solo toma algunas clases de posgrado y confía en mí, estás listo.