¿Cuáles son las habilidades necesarias para convertirse en un buen programador para unirse a Apple y Google?

Esto es algo que he encontrado en la página web de la Guía técnica de Google y creo que es relevante. Su tipo de paquete general teniendo en cuenta todas las habilidades requeridas por un buen programador / desarrollador de software (AFAIK) para ser seleccionado en grandes nombres como Google, FB, etc.

Tome un curso de “Introducción a CS”

Centrarse en las instrucciones básicas de codificación

Recursos en línea:

  • Udacity – Introducción a la informática
  • Coursera – Informática 101
  • CS50 (Universidad de Harvard)

Codifique (al menos) UN lenguaje de programación orientado a objetos (C ++, Java®, Python®)

Recursos en línea para principiantes:

  • Coursera – Aprender a programar: los fundamentos
  • Introducción del MIT a la programación en Java
  • Clase Python de Google
  • Coursera – Introducción a Python, Python Open Source E-Book

Recursos en línea intermedios:

  • Diseño de programas informáticos de Udacity
  • Coursera – Learn to Program: Crafting Quality Code, Coursera – Lenguajes de programación
  • Brown University – Introducción al lenguaje de programación

Aprende otros lenguajes de programación

Añadir a su repertorio:

  • JavaScript®
  • CSS y HTML
  • Ruby®
  • PHP®
  • Perl®
  • Script de Shell®
  • Lisp®
  • Scheme®

Recursos en línea:

  • Codecademy
  • Udacity – Desarrollo web móvil
  • Udacity – Desarrollo de juegos HTML5

Prueba tu código

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 razonamiento lógico y conocimiento de matemáticas discretas.

Recursos en línea:

  • MIT Matemáticas para Informática
  • Coursera – Introducción a la lógica
  • Coursera – Optimización lineal y discreta
  • Coursera – Modelos gráficos probabilísticos
  • Coursera – Teoría del juego

Desarrollar una sólida comprensión de algoritmos y estructuras de datos.

Aprenda sobre los tipos de datos fundamentales (pila, colas y bolsas), algoritmos de ordenación (clasificación rápida, combinación, clasificación), 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
  • Coursera – Lista de algoritmos
  • Coursera – Lista de estructuras de datos
  • Coursera – Libro: Manual de diseño de algoritmos

Desarrollar un sólido conocimiento de los sistemas operativos.

Recursos en línea:

Aprende diseño UX

Recursos en línea:

Udacity – Diseño UX para desarrolladores móviles

Aprende inteligencia artificial

Recursos en línea:

  • Universidad de Stanford – Introducción a la robótica
  • Universidad de Stanford – Procesamiento del lenguaje natural
  • Universidad de Stanford – Aprendizaje automático

Aprende a construir compiladores

Recursos en línea:

Coursera – Compiladores

Aprende criptografía

Recursos en línea:

  • Coursera – Criptografía
  • Udacity – Criptografía Aplicada

Aprende programación paralela

Recursos en línea:

Coursera – Programación paralela heterogénea

Trabajar en proyectos fuera del aula.

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, rastree la documentación y depure

GitHub es una excelente manera de leer el código de otras personas o contribuir a un proyecto

Recursos en línea:

  • GitHub®
  • Kiln ™

Trabaja en proyectos con otros programadores.

Esto lo ayudará a mejorar su capacidad de trabajar bien en equipo y le permitirá aprender de los demás.

Practica tus conocimientos algorítmicos y habilidades de codificación

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

Fuente: Estudiantes – Guía de desarrollo técnico – Google Careers.

Sigue aprendiendo y mantente motivado. Salud !!

More Interesting

¿Los puntajes de CPSS / PABT tienen importancia en AFA?

¿Debo dejar mi trabajo si mi gerente no me da permiso?

Yo trabajo en Hong Kong, mi esposa y mi hijo están en la India. Para el impuesto, ¿todavía estoy exento bajo la asignación de persona casada y la asignación por hijo?

¿Cuáles fueron esas cualidades que hicieron que su preparación CSE se distinga de la de los otros aspirantes?

¿Cuáles son algunas ideas de cómo puedo conseguir un trabajo después de hacer mi ingeniería mecánica?

Es un CGPA entre 7,5 y 8 del BITS considerado bueno al solicitar clgs de MBA. dentro y fuera de la India (principalmente ISB, también IIM / top bschools fuera)

¿Qué tipo de cosas puedo construir con un título de ingeniería eléctrica?

¿Cómo puede alguien en la sucursal de EEE saber qué profesión le conviene más?

Tengo 31 años, tengo una licenciatura en algunas ciencias sociales y casi no sé nada de matemáticas, pero soy un desarrollador web autodidacta con experiencia. ¿Cómo puedo obtener un título en informática ahora?

¿Por qué el club de estudiantes de Google de CBIT está muy inactivo?

¿Qué es lo que alguien ha dicho o hecho en una entrevista que te hizo querer contratarlo en el acto?

Para convertirme en un analista de datos, ¿debería hacer una maestría en Big Data en una de las mejores universidades europeas?

¿Cuánto tiempo llevará aprender R? No tengo conocimientos de programación, pero conozco MS Office.

Voy a arriesgarme e intentar entrar en una especialización que requiera matemáticas a pesar de lo terrible que soy. ¿Qué consejo tienes para mí?

Soy un gran introvertido y no puedo ir a la universidad el próximo año. ¿Qué carrera puedo obtener con la que pueda vivir que no sea demasiado complicado?