Si me gradúo como estudiante que no es CS y quiero obtener una educación CS completa, ¿cuáles son mis opciones? ¿Qué hacen las personas si quieren cambiar de carrera?

En primer lugar, no debe tratar de obtener una educación CS “completa” para cambiar de carrera. CS es bastante vasto. Se extiende desde el ensamblaje hasta el sistema integrado, la web, el hardware, los sistemas operativos y los juegos. Trataré de darle diferentes elecciones que pueda hacer. Y créeme, para cambiar de carrera tendrás que estar un poco más concentrado. Nadie sabe todo CS.

Entonces, aquí va.
Si clasifica CS por materias, se espera que sepa un poco de estas,
1. Estructuras de datos : es una palabra elegante para almacenar cosas. Como verá en su experiencia, necesitará almacenar datos. La forma en que lo haga depende de los requisitos, el conocimiento y la experiencia y, en la mayoría de los casos, las compensaciones.
Sabrás que conoces las estructuras de datos cuando entiendas este chiste. Tu madre es tan gorda que se sentó en un árbol binario y lo convirtió en una lista vinculada.
Para aprender esto, puede comenzar aquí: UC Berkeley CS61B Data Structures

2. Algoritmos: la sabiduría de la informática. Puedes hacer cualquier cosa, pero el punto es qué tan eficientemente. Esta es la sabiduría recopilada de décadas. Sus problemas han sido resueltos por otra persona. Usa sus conocimientos. A veces tendrá la oportunidad de aprovechar ese conocimiento. Pero eso es raro. Sabrás que sabes algoritmos cuando entiendas este chiste,
Yo mamá es tan gorda, incluso Dijkstra no pudo encontrar un camino a su alrededor. Puede obtener más información aquí:
MIT 6.006 Introducción a los algoritmos, otoño de 2011
MIT – Introducción a los algoritmos
Libros
Manual de diseño de algoritmos de Skiena (basado en C)
Algoritmos de Robert Sedgewick y Kevin Wayne (basados ​​en Java)
CLRS (Si no escribo esto aquí, la gente me matará. Entonces … tengo que escribir) (agnóstico del lenguaje)

3. Bases de datos: Bueno, en resumen, nunca tienes suficiente memoria (más sobre esto más adelante). Entonces, estas bestias lo ayudan a almacenar y recuperar sus datos lo más rápido posible. Décadas de investigación han entrado en esto. Entonces, ¿por qué preocuparse? Los aspectos más teóricos que puedes aprender aquí:
Sistemas de bases de datos
Sobre la base de conceptos teóricos, hay MySQL. Puede comprar Head First SQL para aprender cómo aplicar prácticamente su conocimiento a sus problemas. Básicamente, sus datos están en la tabla. Algunas tablas bonitas y de buen comportamiento regidas por las matemáticas (no necesita preocuparse por ellas). En este campo, escuchará acerca de los términos como Oracle, SQL Server, Sybase, etc. Además, puede adivinar el contexto en el debate SQL vs NoSQL. No tomes partido. Aprende primero.

4. Sistemas operativos: esto es complicado. De alguna manera se espera que sepa cómo funcionan las cosas. No es necesario ser un maestro a menos que sea necesario. Pero es bueno, a veces es esencial saberlo. Sabrás que conoces el sistema operativo cuando puedas entender esta broma,
Programador: tuve un problema, usé hilos para resolverlo. Ahora tengo dos problemas.
Créeme, es gracioso. Bien, volviendo, puedes aprender sobre los sistemas operativos aquí: Computer Science 162, 001 – Fall 2014

5. Redes: este es el sistema circulatorio del mundo. Toda la información que circula por las arterias y venas. Una buena idea será más que útil. Puedes aprender sobre esto aquí: Conferencias de video | Ingeniería de sistemas informáticos | Ingeniería Eléctrica e Informática | MIT OpenCourseWare

Ahí vas. Estos cinco temas son los pesos pesados. Todos estos temas tienen sus homólogos avanzados. DS avanzado, algoritmos avanzados, sistemas operativos avanzados, informática de alto rendimiento, etc. Estos están disponibles como MOOC de UCB, MIT, Caltech, etc. Simplemente navegue.

CS se basa en las matemáticas. Entonces para una mejor apreciación del tema. Puedes ver esto: Matemáticas para la informática

Además, antes de profundizar demasiado … revise algunos cursos de tipo CS 101. Casi todas las universidades tienen estos cursos. Haz uno que te convenga. Aquí hay un ejemplo: Introducción a la informática y la programación

Ahora, todo su conocimiento es nulo si no puede hablar el lenguaje de CS. Ahora, esto es discutible. Altamente polémico. Entonces, daré mi opinión. Aprendí Java en la escuela. Yo trabajo en eso. Estoy cómodo en eso. Lo encuentro asombroso.

Antes de recomendar cualquier cosa como primer idioma, déjame decirte qué hacen los lenguajes de programación. En resumen, las computadoras son tontas. Los humanos son inteligentes. Los humanos también son amables, por lo que intentan hacer que las computadoras sean inteligentes diciéndoles qué hacer. Los humanos también son egoístas. Cuando las computadoras saben qué hacer. Los humanos les obligan a hacer su trabajo mientras se sientan todo el día y miran videos de gatos. De acuerdo, el problema es que los humanos hablan humanos y las computadoras hablan 0 y 1. Para comunicarse, los humanos inventaron lenguajes de programación. 0 y 1 son máquinas (con mnemotecnia), luego vinieron idiomas como B (o A). Luego C, C ++, Java, Python. Otros también, como PHP y Perl y Objective C. Son enormes. Por lo tanto, debe elegir al menos uno.

Sugeriría, ir con Python como primer idioma. Fácil de aprender y hacer cosas del mundo real que lo alentarán. Entonces ve por Java. Te hace empleable en casi cualquier parte del mundo. Web. Móvil. Nube. En todos lados.

Puedes aprender Python desde aquí: Python para principiantes – Curso de capacitación de Python – Udemy (está disponible por $ 10 … así que date prisa). Además, soy un gran admirador de Head First Books. Así que ve a buscar Head First Python.

Para Java también, tome un curso en Udemy o el canal newboston en Youtube . Comprar Head First Java. Y lo más importante, comience a codificar. Nada importa si no puedes / no quieres / no haces esto.

Un mejor enfoque sería implementar lo que aprenderá en los cursos de Algoritmo y Estructura de datos. Intenta escribir al menos 20k líneas de código. Obtendrá una sensación y estará listo para cambiar.

Ahora, algunos temas no tan famosos:
1. Compiladores: muy difícil. No lo sé porque no entiendo esta broma, Yo mamá es tan gorda que no se puede expresar con una gramática libre de contexto.

2. Lógica digital / Arquitectura informática / Arquitectura avanzada: es bueno saber cosas. Y sí … entender las bases binarias y otras es imprescindible. Estos temas tratan realmente de hacer una computadora. Con todos los flip flops SR y autobuses y registros, DRAM, SRAM, etc.

Entonces … basado en esto. Tienes una idea justa de qué esperar de un graduado de CS. Puede completar su conocimiento cuando sea necesario.

Ahora, viniendo al mundo, verás a muchas personas trabajando en diferentes áreas de CS. Trataré de clasificarlos según mi conocimiento limitado.

1. Desarrolladores web: más comunes. Fácil de comenzar Fácil de ver algo tangible (tan tangible como CS puede proporcionar: p). Por lo general, estas personas conocen HTML / CSS / Java Script / JQuery para front-end (Lo que ves en el navegador). En el back-end (lo que sucede detrás de escena), Java, Python, PHP, a veces JavaScript o Perl están trabajando para darle lo que desea. Por ejemplo, la página de inicio de Google es front-end, cuando buscas algo … las pequeñas hadas trabajan para obtener tus resultados. Esas hadas conocen Java, C ++, Python, etc. Puedes aprender desarrollo web aquí:
El curso completo para desarrolladores web: crea 14 sitios web
Tutorial HTML

2. Desarrolladores móviles: el elegante campo de los móviles. Estos chicos trabajan en teléfonos Android o iOS o Windows. Para Android, escribirás Java principalmente. Para iOS, vaya con Swift (nuevo lenguaje). C # (supongo) para Windows. Puedes hacer un curso sobre cualquiera de ellos en Udemy o encontrar el curso en Youtube.

3. DBA: los chicos que se especializan en bases de datos. Hacen certificaciones de Oracle o Microsoft y trabajan muy duro para mantener sus datos seguros y accesibles.

4. Administradores de red: estos tipos mantienen las cosas vivas. Escuchará sobre exámenes como MCSE, CCNA de Microsoft y Cisco. Tengo un conocimiento limitado aquí.

5. Los programadores integrados: la gente trabaja desde 8051 microcontroladores hasta la NASA. Todo lo electrónico que ves a tu alrededor tiene una pequeña computadora dentro. Estos están en miles de millones. Desde autos hasta lavadoras y relojes. Están en todos lados. Lenguaje más preferido: C

6. Desarrolladores de Kernel / OS: Estas son personas que hacen su Windows, OS X y Linux. Si escuchas a alguien comparar Windows y Linux. Sal de allí … este debate no es más que una pérdida de tiempo. Pero ya sabes el contexto. Trabajan principalmente en C / C ++. Puedes comenzar con el libro de Robert Love. Buscalo en Google.

7. Desarrolladores de juegos: estas personas te traen Batman, FIFA, CS, CoD, etc. Los encontrarás trabajando principalmente en C / C ++. Se han desarrollado enormes motores de juego para facilitar su trabajo. No sé cómo comenzar en este campo. Pregúntale a alguien en Quora. Lo mejor en este momento será entrar en juegos móviles. Nunca se sabe cuando tienes suerte.

8. Científicos de datos: este es un chico nuevo en el bloque. Amalgama de base de datos, estadística, matemática y sentido común. Escuchará palabras como Big Data, Hadoop, etc. Puede aprenderlo en Coursera. Cuenta con un curso de Data Science.

Y hay muchos más. Se actualizará si encuentra algo más.

Ahora, como nota final. Me gustaría pedirle que se haga esta pregunta. ¿Por qué CS? Sé que es un cliché. Pero créanme … sin la motivación adecuada … no podrán superar el hola mundial de escribir código. Sí, hay bombo publicitario. Sí, es un campo extremadamente increíble. Pero créame, cuando el código funciona el viernes y deja de funcionar el lunes, lamentará estar allí. Además, lo mejor de hacer algo mientras se presionan las teclas también es hermoso.

También te advertiré contra la frustración que conlleva aprender inicialmente este campo. No te rindas Y sí … incluso si te vuelves competente, estarás desactualizado en 5 años. Entonces … sigue aprendiendo … desaprender y volver a aprender. Ese es el único mantra aquí. Siempre cree que puedes hacer cualquier cosa. Así que sal y comienza a codificar.

Esto ya es demasiado largo ahora, actualizaré sobre enfrentar entrevistas más tarde. Y sí, estos solo te ayudarán a comenzar.

Estoy disponible para cualquier duda y donas
Dios estoy agotado. Todo lo mejor.

MOOC Comience tomando cursos fundamentales en Coursera, edx, udacity. Una vez que se familiarice con cierto lenguaje, puede comenzar algunos proyectos pequeños (web / aplicación) para experimentar una experiencia de desarrollo un poco real.

Si su objetivo es convertirse en ingeniero de software, sugeriría una ruta de:
1) Estar muy familiarizado con al menos un idioma
2) Estudiar estructura de datos y algoritmo
3) Aprenda sobre la metodología del lenguaje de programación
4) Estudiar el concepto de ingeniería de software
5) Elija una cierta experiencia y trabaje en algún proyecto personal (base de datos / web / aplicación móvil / nube / redes)

Una vez que obtenga el conocimiento fundamental de la codificación, la parte más difícil es en realidad la experiencia de desarrollo de trabajo real. Para las personas que desean cambiar de carrera, intente obtener algo de experiencia en desarrollo haciendo prácticas en empresas tecnológicas / división tecnológica de una empresa. Hay muchos roles no técnicos, como el soporte de operaciones, disponibles en la división de tecnología, por lo que uno comienza con estos roles para que sea más fácil obtener una idea de cómo es el desarrollo del mundo real. Una vez que tenga la capacidad de codificación, puede inclinarse gradualmente hacia un rol cada vez más técnico.

Google tiene una lista muy ordenada de cursos MOOC sugeridos con los que puede comenzar: Google in Education

Comience a codificar y compre libros en Amazon. Puede mirar el plan de estudios estándar de CS, y si hay una brecha en su conocimiento, entonces llénelo.

La otra cosa es que use lo que sepa para su ventaja. Si tiene experiencia horneando pan, comience a escribir programas para panaderías.

More Interesting

¿Qué es más gratificante entre la gestión de servicios ITIL, PMO, Supply Chain y Oracle DBA como carrera?

¿Qué es mejor, ser juez o abogado?

Realmente amo la robótica. Ahora que quiero elegir algo en lo que especializarme, no puedo decidir si quiero entrar en hardware o software. ¿Cuáles son algunos consejos?

Soy un experto en ingeniería eléctrica y realmente quiero trabajar en la industria de la aviación. ¿Qué trabajos podría hacer y en qué áreas debería centrarme?

Me acabo de unir a Hero Motocorp. ¿Debo elegir I + D u operaciones para obtener mejores oportunidades de crecimiento?

Soy más nuevo y estoy interesado en unirme al Microsoft GTSC. He descubierto que hay casi 4-6 rondas. Me gustaría saber sobre los temas específicos para cada ronda. Si es una ronda de aptitud, ¿en qué temas debo tener un conocimiento impecable?

Cómo escribir mi experiencia de inicio en el currículum

¿Qué tan útil es un título en informática?

¿Cuál es el camino para convertirse en un oficial de IAS?

¿Qué es mejor, el trabajo de posgrado en IGNOU o MDU?

¿Qué especialización de MBA debo tomar para ser aceptado en Deloitte India, TCS, EY India y similares?

¿Puede una carrera preparar a alguien para el ejército o la fuerza aérea de los Estados Unidos? ¿De ser asi, cuales?

¿Los aviones tienen sistemas integrados en ellos?

Cuál es mejor en términos de ubicación y calidad de facultades, DAIICT SVNIT o BITS-GOA

¿Cómo puede un CPA pasar a la tecnología?