Creo que el usuario de Quora lo ha respondido muy bien. Por cierto, todo depende de cuánto practiques y de si lo disfrutas o no. Pero, ¿qué necesitas saber para conseguir un trabajo en Google?
Recomendaciones para el aprendizaje académico.
- Introducción al curso de CS
Tome cursos de Introducción a la Informática que brindan instrucciones básicas sobre codificación.
Recursos en línea: Udacity – introducción al curso de CS, Coursera – Computer Science 101 - Codifique en al menos un lenguaje de programación orientado a objetos: C ++, Java o Python
Recursos en línea para principiantes: Coursera – Aprenda a programar: Los fundamentos, Introducción de MIT a la programación en Java, Clase de Python de Google, Coursera – Introducción a Python, Libro electrónico de código abierto de Python
Recursos intermedios en línea: Diseño de programas de computadora de Udacity, Coursera – Aprender a programar: Código de calidad de fabricación, Coursera – Lenguajes de programación, Brown University – Introducción a los lenguajes de programación - Aprende otros lenguajes de programación
Notas: agregue a su repertorio – Script de Java, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp y Scheme.
Recursos en línea: w3school.com – Tutorial HTML, CodeAcademy.com, Udacity – Desarrollo web móvil, Udacity – Desarrollo de juegos HTML5 - Prueba tu código
Notas: Aprenda a detectar errores, crear pruebas y romper su software
Recursos en línea: Udacity – Métodos de prueba de software, Udacity – Depuración de software - Desarrollar el razonamiento lógico y el conocimiento de las matemáticas discretas.
Recursos en línea: MIT Matemáticas para ciencias de la computación, Coursera – Introducción a la lógica, Coursera – Optimización lineal y discreta, Coursera – Modelos gráficos probabilísticos, Coursera – Teoría de juegos - Desarrollar una fuerte comprensión de los algoritmos y estructuras de datos
Notas: Aprenda sobre los tipos de datos fundamentales (pila, colas y bolsas), algoritmos de clasificación (quicksort, mergesort, heapsort), estructuras de datos (árboles de búsqueda binarios, árboles rojo-negros, tablas hash) y Big O.
Recursos en línea: Introducción a los algoritmos del MIT, Coursera Introducción a los algoritmos Parte 1 y Parte 2, Lista de algoritmos, Lista de estructuras de datos, Libro: El manual de diseño de algoritmos - Desarrollar un fuerte conocimiento de los sistemas operativos.
Recursos en línea: UC Berkeley Computer Science 162 - Aprende Diseño de UX
Recursos en línea: Udacity – UX Design para desarrolladores móviles - Aprenda los recursos en línea de la inteligencia artificial:
Universidad de Stanford – Introducción a la robótica, procesamiento del lenguaje natural, aprendizaje automático - Aprende a construir compiladores.
Recursos en línea: Coursera – Compiladores - Aprender criptografia
Recursos en línea: Coursera – Criptografía, Udacity – Criptografía aplicada - Aprende la programación paralela
Recursos en línea: Coursera – Programación paralela heterogénea - Trabajo en proyecto fuera del aula.
Notas: cree y mantenga un sitio web, cree su propio servidor o cree un robot.
Recursos en línea: Lista de proyectos de Apache, Google Summer of Code, Grupo de desarrolladores de Google - Trabaje en una pequeña parte de un sistema grande (base de código), lea y comprenda el código existente, busque documentación y elimine errores.
Notas: Github es una excelente manera de leer el código de otras personas o contribuir a un proyecto.
Recursos en línea: Github, horno - Trabajar en proyecto con otros programadores.
Notas: Esto le ayudará a mejorar su capacidad para trabajar bien en equipo y le permitirá aprender de otros. - Practica tus conocimientos algorítmicos y habilidades de codificación
Notas: Practique su conocimiento algorítmico a través de competencias de codificación como CodeJam o el Concurso Internacional de Programación Colegiada de ACM.
Recursos en línea: CodeJam, ACM ICPC - Conviértete en un asistente de enseñanza
Ayudar a enseñar a otros estudiantes ayudará a mejorar su conocimiento en la materia. - Experiencia en prácticas en ingeniería de software
Notas: Asegúrese de solicitar las pasantías mucho antes del período en que se realizan las pasantías. En los Estados Unidos, las pasantías tienen lugar durante el verano, de mayo a septiembre. Usualmente las solicitudes son aceptadas con varios meses de anticipación.
Aquí está mi respuesta real:
La respuesta del usuario de Quora a ¿Qué habilidades de codificación se requieren para conseguir un trabajo en Google, Facebook o Microsoft?