Mi sueño es convertirme en un ingeniero de software de preferencia en Google. He estado tratando de aprender programación durante los últimos dos meses. Siento que no estoy aprendiendo lo suficiente como para realmente valer la pena. ¿Qué debo hacer para aprender la programación que realmente me ayudaría a perseguir mi sueño?

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?

Necesita acumular algunos conocimientos teóricos en torno a recursividad, estructuras de datos y algoritmos. Los conceptos como O (n), O (n2), log (n), etc. deben estar en la punta de sus dedos.

Entonces necesitas mucha y mucha práctica. Intente seguir algunos sitios que le brinden soluciones completas y no solo la declaración del problema. La parte de la solución es muy importante porque, después de intentarlo usted mismo , tendrá que volver a verificar la solución y corregirse para el futuro también.

Te sorprenderá saber con qué frecuencia se equivocan las soluciones (a menos que seas un genio real y puedas resolverlas en los primeros intentos) y una solución disponible te ayuda a ser mucho más fuerte.
Puedes intentar seguir algunos de los siguientes sitios web para volverte realmente fuerte.

  1. codificador superior (nivel variable de problemas, algo para todos)
  2. Sphere Online Judge (SPOJ) (El sitio web se ve un poco torpe y los problemas son un poco difíciles, pero en general, tiene un buen alcance)
  3. Prismoskills: Conocimiento correcto para la carrera correcta (Este tiene soluciones completas, así como ejecuciones de muestra. Su índice de aciertos de entrevista también es bastante bueno).

Y, por último, reservar un montón de tiempo.
Observará que una sola ronda de práctica no es buena y la mayoría de los problemas se resolverán solo si los lee / practica dos veces / tres veces.

Pero todo este esfuerzo vale la pena y te pagará generosamente. Una vez que haya tomado este medicamento amargo, puede contar con los buenos ingenieros de software y toda esta práctica le resultará muy útil en su vida diaria de programación.

Un par de puntos:

Primero, asegúrese de que realmente desea ser un ingeniero de software y no solo trabajar para Google. (Suponiendo que no tenga una carrera) Desafortunadamente para los solicitantes de empleo, el proceso de contratación de Google es extremadamente competitivo y se lo ubicará frente a miles de solicitantes. Google buscará más que alguien que solo pueda hacer codificación. Asegúrese de que puede dar fe de sus habilidades de liderazgo, de trabajo en equipo, etc. y de crear una carta de presentación casi perfecta. Reflexione sobre si estaría de acuerdo en ser ingeniero de software en otro lugar si el trabajo de Google no se cumpliera. Si no es así, no es que no estuvieras calificado, es que mucha gente quería el mismo trabajo y solo había una o unas pocas posiciones.

En segundo lugar, tienes dos meses de experiencia en codificación. No sé nada sobre ingeniería de software, pero creo que hay muy pocos campos en los que puede aprender todo lo que necesita saber en dos meses. No seas demasiado duro contigo mismo y sé persistente en tu aprendizaje / estudios.

Me alegro de haber estudiado informática, antes de que surgiera esta idea de que puedes aprenderla en 6 meses. Puedes escribir * algo * casi de inmediato, pero realmente pasas años antes de escribir el código elegante que tus compañeros disfrutan. O al menos tolerar.

Dicho esto, lo que debe hacer ahora es continuar escribiendo el código que le resulte interesante. Y lee todo lo que puedas encontrar relacionado con él. Para mí, hace 13 años, fui cautivado por los sitios web. Entonces, mientras estaba trabajando en un grado de CS y utilizando Java y C ++ para mi tarea, por mi cuenta, estaba aprendiendo Javascript, HTML, CSS, Flash, Photoshop y PHP. PHP fue en realidad años más tarde, en ese momento, en realidad estaba usando ASP.

Pero mi punto es que, al convertirme en un ingeniero de software, la teoría y los fundamentos son importantes, pero también está la aplicación, y eso se aprende ensuciándose y codificando. Entonces, si desea convertirse en un ingeniero de software (a diferencia de un programador), pase el siguiente año o dos, o 10, aprendiendo tanto la teoría como la aplicación.

En cuanto a la parte * en Google *. Google hace entrevistas. No necesita un título de CS para trabajar en google, pero necesitará conocer el material que cubre un programa de CS. Por favor lea Cracking the Coding Interview (libro de 2011). Si no tiene sentido, considere la posibilidad de inscribirse en un programa de CS; pronto tendrá sentido. ¡Buena suerte!

Por favor, hazme un favor y olvídate de trabajar en google por ahora. Estableces las prioridades equivocadas. Aprende a escribir buen código. Período. Eso es lo que debería interesarte y solo en eso. ¿Quieres trabajar en buena compañía? Entonces sé apasionado por lo que haces. Aprende todo lo que puedas y disfrútalo . De lo contrario, estás en un camino equivocado. De lo contrario, eligió el trabajo equivocado.

¿Cómo puedes llegar a ser un buen programador?
Necesitas practicar . Trabaja en proyectos. En proyectos propios, en otros proyectos … Eso no importa, pero necesitas resolver problemas. Cuanto más, más duro, mejor. Pero realmente resolver los problemas. No busques soluciones sucias. Busque soluciones reales. Te enseñarán cosas nuevas. No los hacks sucios te dan alguna solución.

Aparte de eso, debe leer sobre diseño de códigos, pruebas, nuevas tecnologías. Necesitas interesarte en todo lo relacionado con la programación. Eso te llevará más lejos. Y si llegas a un nivel decente algún día. Entonces puedes pensar en trabajar en google.

Es un proceso lento y constante. Aprende todos los días y practica lo que has aprendido ese día. Una vez que se sienta cómodo con el lenguaje y los algoritmos, comience a resolver problemas en el codificador superior o en sitios como los que ofrecen programación competitiva. Haz un hábito para codificar todos los días. Entonces te convertirás en un muy buen programador. Para obtener un trabajo en Google, esto depende de muchos otros factores además de tus habilidades de codificación.
Convertirse en un buen programador depende completamente de ti. Sin embargo, conseguir un trabajo en una empresa específica que no esté totalmente controlado por usted, por lo que debe convertirse en un buen programador.

Tu sueño es ser un SDE en google, ¿y es por eso que estás aprendiendo a codificar? Suena un poco a la inversa. Digamos que aprendes a codificar, pero no entres en Google, ¿te detendrías? Piénsalo.

Además, no puedo decirte cómo convertirte en un SDE en google. No hay una receta para exactamente eso. Pero hay uno por ser un buen SDE. Práctica. Recoge problemas y encuentra formas de escribir soluciones optimizadas.

Luego escribe programas para resolver algunos problemas del mundo real.

Puedes estudiar por meses pero no hará una diferencia hasta que comiences a construir cosas; Bibliotecas, complementos, aplicaciones, servicios, tutoriales que escribe … ¡necesita utilizar su conocimiento en acción!

Si resulta ser un experto en programación, puede estar listo para trabajar para Google en unas semanas o meses más. De lo contrario, es posible que desee centrarse en un problema específico que desee resolver, y luego simplemente resolverlo de alguna manera.

No será perfecto al principio, pero manténgalo hasta que tenga un prototipo / aplicación en funcionamiento. Para mí, mi primera aplicación fue un programa de C bastante simple escrito para probar una hipótesis sobre el mercado. Debes intentar hacer algo que te interese. Si haces algo que solo quieres hacer, será todo tuyo, y probablemente disfrutarás tanto del resultado como del aprendizaje (incluso si después de un tiempo te das cuenta de que es una especie de mierda).

También puede buscar en sitios como http://codeacademy.com y así sucesivamente: Vea también: ¿Cómo aprendo a codificar?

Espero que esto ayude.

“Un escritor escribe”, como dice el dicho. OMI se aplica igual de bien a la escritura de software. Lo que debes hacer es escribir algún software . Escoge un proyecto, uno pequeño, e implementalo. Entonces haz uno más grande. En el camino, investiga las cosas que necesitas saber, y aprende y usa.

Y sé que esta no es una respuesta popular en estos días, pero un título universitario en ciencias de la computación o (preferiblemente) ingeniería de software ayudará mucho.

No importa que estés aprendiendo en meses o años. Pero tienes que cambiar tu actitud ahora. No te subestimes a ti mismo. Sé optimista. Incluso con esta experiencia, deberías estar preparado para enfrentar cualquier entrevista. Entonces sabrás qué hacer.

Eso es como decir que quieres correr (y posiblemente ganar) un maratón de 42 km y acabas de entrenar un par de meses. (Suponiendo que empiece por ningún conocimiento). Espero que entiendas que con solo un par de meses de aprendizaje no llegarás muy lejos. La educación superior lleva años y después de eso necesitas mucha práctica.

Nunca he estado en un proceso para solicitar un trabajo en Google, así que no estoy seguro de lo que implica ingresar a Google como ingeniero de software. Pero, por lo que sé, Google y muchas otras grandes empresas requieren algún tipo de tareas realizadas, de modo que sea visible cuál es su conjunto de habilidades.
En lo autorizado, Google también necesita personas con múltiples disciplinadores (así como los del gurú), por lo que con la actitud correcta y el amplio conjunto de habilidades adecuadas puede lograrlo.

Dicho esto, trabajar con Open Source y tener su proyecto en Github u otro sitio web de codificación colaborativa podría ayudar.

buena suerte

Crea un programa. Si no encuentra ninguna idea creativa, intente copiar una existente. Comienza desde lo más simple, y mejora a lo largo del tiempo. Mover a uno más grande. Mejoralo. Intenta venderlo (¿por qué no?).

La práctica te traerá el camino que quieres seguir.

Y estar abiertos a la globalización. Google es solo una empresa, hay millones en todo el mundo!

No creo que sea una buena idea establecer primero la empresa objetivo y luego tratar de aprender lo suficiente para calificar. Ese no es el camino. Primero, averigüe qué quiere aprender, a qué le apasiona, luego sea realmente bueno en eso.

Y solo entonces descubra para qué compañía puede y quiere trabajar.

Diviértase con la programación, aprenderá rápido y la publicación que está intentando en Google no será fácil. Debe ser un experto que no se puede lograr con pocos meses de tutor. Incluso el año puede no ser suficiente. Tenga paciencia con su aprendizaje y se ensucie las manos con muchos códigos. Trate de hacer o completar algunos proyectos que van desde principiantes hasta difíciles. No solo aprendas mucho código. Y un día puedes estar donde esperas estar. Buena suerte….

¿Meses? Buen comienzo. Tardé cuatro años en aprender informática.

¿Por qué no establecer sus expectativas en consecuencia.

Participa en competiciones de programación. Cuanto más fracasen, más posibilidades de entrar.

More Interesting

Cómo hacer que la geografía sea más ‘divertida’ para leer

Probé Luminosity y tomé la prueba e hice una cuenta solo para llegar al final y pedirle que ingrese una tarjeta de crédito para recibir capacitación. ¿Hay otros servicios o descargas gratuitas que pueda usar para obtener una experiencia similar?

¿Realmente quiero aprender programación? ¿Qué debo seguir?

Soy un diseñador instruccional y busco comprar una herramienta que pueda ayudarme a diseñar módulos de aprendizaje. ¿Qué herramienta de autoría es la mejor opción?

Tengo 14 años y quiero empezar a aprender a codificar. ¿Cómo me recomienda empezar?

Quiero cantar una canción. ¿Cómo puedo aprenderlo rápido?

Quiero aprender cálculo. ¿Debería empezar a tratar de resolver problemas y aprender los conceptos básicos (de cálculo y anteriores) cuando sea necesario para resolver el problema, o debo aprender los conceptos básicos, luego aprender cálculo y luego hacer los ejercicios?

Soy un estudiante de primer año de IIT KGP y no he sido seleccionado en ninguna sociedad, así que, ¿qué buenas habilidades o cosas debo aprender por mí mismo?

Quiero aprender Java (soy un principiante completo), ¿debería aprender Python antes de aprender Java?

Casi no tengo educación Mi madre me sacó de la escuela en segundo grado y decidió estudiar en casa. El problema es que nunca me educó. Todo lo que he aprendido me lo enseñé. ¿Qué programas existen para ayudar a alguien como yo a obtener un GED para que pueda ir a la universidad? ¿Cómo empiezo?