100 días de código: una guía completa para principiantes y experimentados

¿Quieres convertirte en un desarrollador de software exitoso y sueñas con ingresar a las grandes empresas tecnológicas?

¿Eres alguien que ya está trabajando como desarrollador pero que busca un gran cambio en su carrera?

Bueno, si usted es uno de ellos, seguramente habrá tratado de hacer algo de preparación y podría haber tratado de cubrir varios temas. Haces un plan, tratas de seguir tu plan y comienzas a prepararte a través de varios recursos, tutoriales y videos. Empiezas a aprenderlo pero después de un par de días o meses, te das cuenta de que no vas a ninguna parte. No estás progresando y las cosas te resultan abrumadoras. 

No estás solo y está sucediendo con tantos programadores novatos y desarrolladores experimentados. Intentan aprender a codificar y tratan de cubrir varios temas, pero debido a la falta de una buena hoja de ruta y orientación, las cosas se vuelven complicadas y confusas para ellos. Durante su preparación, se pierden muchas cosas importantes que cubrir. 

100 Days of Code - GeeksforGeeks

Para ayudarlo con esto, hemos creado una hoja de ruta práctica «100 días de código» basada en mucha investigación y la experiencia de los desarrolladores de software que trabajan en grandes empresas de tecnología. Esta hoja de ruta le brindará una guía completa para desarrollar un sólido hábito de codificación y lograr su objetivo como desarrollador de software. Todo lo que necesita es una computadora portátil, una conexión a Internet que funcione, determinación para resolver problemas regularmente y, en unos pocos meses, puede desarrollar el hábito de la codificación, aprender lo esencial y descifrar las entrevistas. 

Aquí, hemos cubierto:

¿Qué es 100 Días de Código?

¿Cuál es el plazo razonable para descifrar las entrevistas de las grandes empresas tecnológicas?

Esta pregunta viene a la mente de todos los programadores novatos y experimentados. 

Bueno, hay muchos temas y cosas que cubrir si te diriges a algunas grandes empresas tecnológicas. El desafío es el marco de tiempo limitado y, según nuestra investigación, debemos decir que puede demorar casi 14 semanas o 100 días. Hemos dividido los temas completos en 100 días y todo lo que tiene que hacer es seguirlo y mantenerse comprometido con la codificación durante 100 días. 

Si sigue este enfoque y se mantiene comprometido con la codificación, no solo desarrollará un buen hábito de codificación, sino que también podrá descifrar las entrevistas del 60-70% de las empresas de tecnología. 

Cubriremos 5-6 temas principales en 100 días, y nos centraremos en las entrevistas de grandes empresas tecnológicas como Facebook, Google, Microsoft, Amazon, etc. Estos temas se detallan a continuación…

  1. Estructuras de datos y algoritmos (parte de codificación y resolución de problemas)
  2. Diseño de sistemas
  3. Sistema operativo y DBMS (sistema de gestión de base de datos)
  4. Diseño orientado a objetos
  5. Ajuste Cultural

Algunas cosas a tener en cuenta antes de continuar con la hoja de ruta…

  • Si es un principiante, establezca el objetivo de resolver casi 450-500 preguntas de codificación.
  • Si es una persona experimentada, establezca el objetivo de resolver casi 300 a 350 preguntas.
  • La ronda de diseño del sistema se solicita principalmente a personas con experiencia, por lo que los principiantes deben concentrarse menos en esta sección, pero los experimentados deben concentrarse más en esta sección.
  • Si es un principiante, intente dedicar su tiempo durante al menos 4-6 horas todos los días.
  • Si tiene experiencia, debe comprometerse durante 2-3 horas todos los días.
  • Idealmente, no debería tomar más de 20 a 30 minutos para resolver cualquier problema, pero tenga en cuenta que esta regla no se aplica a todas las preguntas. 

Requisito previo: asumimos que si es un principiante, ya ha completado algunos proyectos en su universidad y si es un desarrollador experimentado, seguramente podría estar trabajando en algunos proyectos.

Debe leer : ¿Cómo aprender a programar puede cambiar su vida?

100 días de código para principiantes

Antes de continuar, tenga en cuenta que, como programador novato, se verá abrumado con tantas preguntas y enfrentará muchas dificultades para resolver los problemas. Está bien si te tomas más tiempo para resolver las preguntas, pero no te desanimes. 

Intente resolver los problemas por su cuenta primero, incluso si le lleva un par de horas más. Después de pasar muchas horas, si no obtiene la solución, puede estirarse durante unos días o tomar las sugerencias. A medida que progreses, verás mejoras en ti mismo y también tardarás menos en resolver las preguntas.

Día 1 a Día 10

Elige un lenguaje de programación y aprende sus fundamentos

Debes elegir un lenguaje de programación y debes apegarte a él. Explore varios lenguajes de programación, lea sobre ellos, pruébelo en su editor de código y verifique si se siente cómodo con él o no. 

Surgirán muchas preguntas cuando elija un idioma. ¿Python es mejor que Java? C++ es un lenguaje más rápido, así que debo elegir este lenguaje, la sintaxis de Java es más complicada pero las grandes empresas están trabajando en ello, ¿y si sé más de un idioma? 

Todas estas preguntas crearán confusión y también cambiará a algunos idiomas diferentes cuando pruebe los idiomas en su editor de código. Explore los idiomas y elija el que sea mejor para usted. No elija un idioma solo porque es muy popular en la industria tecnológica. Tienes que elegir un idioma con el que te sientas más cómodo. Casi tomará de 4 a 5 días aprender un idioma.

Una vez que elija un idioma, aprenda los fundamentos del mismo, pero si ya conoce los fundamentos (es posible que haya creado su proyecto en ese idioma), entonces repáselo. Se ha visto que mucha gente olvida las cosas básicas de su idioma elegido. Por lo tanto, debe asegurarse de tener un buen dominio del idioma elegido. Aprenda la sintaxis básica, realice algunas pruebas en línea y recuerde las cosas básicas de su idioma elegido. Puede tomar alrededor de una semana o 7 días aprender los fundamentos de su idioma. 

Algunas cosas que debes recordar son…

  • Lectura/Escritura desde/hacia archivos.
  • Lectura de entrada desde la consola.
  • Strings divididas
  • Implementación de array 2D y cómo usarla.
  • Cosas muy básicas del lenguaje como en C/C++ manejando strings terminadas en nulo

Muchas empresas como Lyft y Salesforce tienen una ligera diferencia en su procedimiento de contratación. Quieren que el candidato escriba código y resuelva los problemas en una computadora portátil. Deberá escribir el programa completo y su código debe pasar los casos de prueba dados. Puede que tenga que trabajar en los argumentos de la línea de comandos o puede que tenga que analizar los archivos CSV o de texto. 

Otras empresas como Google, Amazon o Microsoft utilizan una pizarra. Por lo tanto, es bueno que conozca los conceptos básicos de su idioma para manejar los dos escenarios de codificación en su entrevista. Por lo tanto, tomará casi 10 días tomar una decisión sobre qué idioma es mejor para usted y con el que se siente cómodo.

Recurso

También puede probar los cursos gratuitos de GeeksforGeeks :

Día 11 a Día 20

Aprenda estructuras de datos y algoritmos

Ahora es el momento de aprender la parte más importante de la codificación, es decir, estructuras de datos y algoritmos. Esta materia se enseña principalmente en la licenciatura y la mayoría de la gente ignora la importancia de la misma. Pero el tema en este tema es lo más importante para cubrir en las entrevistas de codificación. 

Aprenda los conceptos básicos de varias estructuras de datos y algoritmos, incluida la parte de complejidad. Los temas se dan a continuación…

Cubra todos los fundamentos anteriores e implemente varios DSA en su editor de código. También debe cubrir la parte de la string, que probablemente se pregunte en las entrevistas.

Si está pensando que ya conoce todos los temas de DSA, simplemente haga algunas pruebas en línea y pruebe su habilidad. Seguramente encontrará que todavía necesita revisar los conceptos básicos. 

Aprenda a implementar una array, una lista vinculada, una pila, una cola, un árbol, etc. La base básica ayuda mucho a resolver la pregunta de codificación, así que no la salte y tenga una buena comprensión de ella. 

Recurso

Día 21 a Día 40

Resolver problemas de nivel básico

Una vez que se familiarice con la estructura de datos básica y la práctica de algoritmos para las preguntas básicas de codificación. Practicar preguntas de nivel básico te ayudará a expandir tu mente y te preparará para abordar problemas de nivel medio.

No se salte el nivel básico, de lo contrario, tendrá dificultades para resolver problemas más difíciles y tendrá que volver al nivel básico nuevamente. Intenta resolver casi 200 preguntas de nivel básico en 10 días. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. Casi 8-12 preguntas al día dentro de un plazo de 4-6 horas lo ayudarán a construir una buena base. 

Problemas de array de muestra

Ejemplos de problemas de listas enlazadas

Ejemplos de problemas de pila y cola

Problemas de árboles de muestra

Ejemplos de problemas de gráficos

Ejemplos de problemas de montón

Día 41 a Día 60

Resolver Problemas de Nivel Medio

Ahora es el momento de practicar algunas preguntas de nivel medio. Los problemas de nivel medio lo prepararán para resolver problemas más difíciles y es muy probable que estas preguntas se hagan en las entrevistas. Intenta resolver casi 150-170 preguntas de nivel medio en 20 días. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. Casi 7-8 preguntas al día dentro del plazo de 4-6 horas son suficientes.

Problemas de array de muestra

Ejemplos de problemas de listas enlazadas

Ejemplos de problemas de pila y cola

Problemas de árboles de muestra

Ejemplos de problemas de gráficos

Día 61 a Día 75

Resolver problemas de nivel difícil

Una vez que resolviste la pregunta de nivel básico y medio, pasa a los problemas difíciles que son los últimos. Intente resolver casi 80-90 preguntas de nivel difícil en 15 días. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. 

Problemas de muestra

El mejor recurso para resolver preguntas de codificación: Portal de práctica GeeksforGeeks

Día 76 a Día 85

Diseño de sistemas

Para los principiantes, esta sección no es muy importante, pero a veces los entrevistadores también hicieron preguntas relacionadas con el diseño del sistema a los candidatos sin experiencia. Por lo tanto, también es bueno conocer la parte del diseño del sistema. En primer lugar, aprenda el concepto básico del diseño del sistema , como el equilibrio de carga, el almacenamiento en caché, los proxies, el teorema CAP, la coherencia, el sharding o la partición de datos, etc. 

Se le pedirá que diseñe un servicio a escala web. Entonces, una vez que haya terminado con los conceptos básicos, prepárese para algunas de las preguntas más probables sobre el diseño del sistema, como…

  • Servicio de acortamiento de URL (TinyURL)
  • Diseño de noticias de Facebook
  • Diseño Uber o Lyft

Preparar estas preguntas lo ayudará a manejar esta ronda y sabrá exactamente qué tiene que hacer en esta ronda. Te harás cargo de esta ronda y describirás los diferentes componentes del sistema. 

Los entrevistadores verifican si el candidato es capaz de construir un sistema grande y complejo o no. Como hemos mencionado, esta ronda en su mayoría no es solicitada por los principiantes, por lo que no necesita profundizar demasiado en esta sección. Sin embargo, debe tener el conocimiento de lo que sucede exactamente en esta ronda, de modo que, en caso de que se le pregunte en la entrevista, pueda manejarlo.

Debe pasar por:

Día 86 a Día 92

SO y DBMS

Ahora es el momento de estudiar las dos materias informáticas más importantes, los sistemas operativos y los sistemas de gestión de bases de datos. La mayoría de las veces, los ingenieros junior luchan con las preguntas relacionadas con el sistema operativo y el DBMS y se saltan esta parte. Pero preparar estos dos temas también es importante para las entrevistas.

Repase los conceptos básicos del sistema operativo, como

  • Gestión de Procesos y Procesos
  • Subproceso y concurrencia
  • subprocesos múltiples
  • Cerrar
  • Programación de procesos
  • Sincronización y Deadlock
  • Programación de CPU
  • sistema de archivos distribuido
  • Gestión de la memoria
  • Problema de la sección crítica

Además, prepárese con algunas preguntas relacionadas con la base de datos, como bases de datos relacionales y no relacionales, fragmentación, escalado, propiedad ACID, indexación, etc. 

Recursos

Día 93 a Día 99

Diseño orientado a objetos

Prepárese para una pregunta de diseño orientado a objetos durante 7 días. Debe tener una buena comprensión de los patrones de diseño de software, los principios SÓLIDO/SECO y varios conceptos de oops. Algunas preguntas de diseño orientado a objetos se dan a continuación…

  • Diseña un cajero automático
  • Máquina expendedora de diseño
  • diseñar un estacionamiento
  • Diseñe un sistema de reserva de entradas para el cine

Su objetivo principal es reunir todos los requisitos y transformarlos en clases comprensibles. Debe identificar diferentes objetos y entidades a partir de un enunciado del problema. 

En las entrevistas, deberá explicar diferentes componentes y su interfaz. Además, explicará cómo los diferentes componentes interactúan entre sí mediante las interfaces. Prepárese con un diagrama de casos de uso, un diagrama de actividades y un diagrama de clases.  

día 100

Ajuste Cultural

Último día prepárate para la ronda cultural. Las empresas no contratan personas tóxicas y tampoco contratan candidatos que no sientan pasión por el producto. Comprender la cultura de la empresa. Por ejemplo, en Amazonas la cultura está muy arraigada, y ellos llevan la ronda de subir el listón. Les importa mucho el principio de liderazgo. 

En las entrevistas, deberá mostrar interés por el producto y deberá ser honesto. La gente falsa no se entretendrá. Así que asegúrese de tener en cuenta todas estas cosas y prepararse con la actitud correcta. 

100 días de código para experimentados

Antes de seguir adelante, tenga en cuenta que debe concentrarse en muchas cosas. Se espera que tenga un buen desempeño en la ronda de codificación, la ronda de diseño del sistema y también en las otras rondas. Tiene la ventaja de utilizar los conocimientos adquiridos en su trabajo diario. 

A veces, no son los años de experiencia lo que importa para el entrevistador, sino el tiempo que pasas perfeccionando tu codificación o tus habilidades técnicas. Así que no es bueno juzgar tus habilidades sobre la base de años de experiencia. Realice un seguimiento de sus conocimientos, realice algunas pruebas en línea y compruebe cuánto le queda por recorrer.

Día 1 a Día 7

Elige un lenguaje de programación y aprende sus fundamentos

Al ser un desarrollador experimentado, le resultará fácil elegir un lenguaje de programación y aprender los fundamentos del mismo. Puede probar un nuevo idioma o puede elegir un idioma que esté usando en su trabajo diario. Una vez que tomes la decisión, repasa todos los conceptos básicos.

No piense que no necesita repasar los conceptos básicos solo porque está usando su idioma en su trabajo diario. Muchas veces los desarrolladores olvidan los conceptos básicos o se pierden algunas cosas. Así que no te saltes esta parte y domina bien el idioma elegido.

Algunas cosas que debes recordar son…

  • Lectura/Escritura desde/hacia archivos.
  • Lectura de entrada desde la consola.
  • Strings divididas
  • Implementación de array 2D y cómo usarla.
  • Cosas muy básicas del lenguaje como en C/C++ manejando strings terminadas en nulo

Muchas empresas como Lyft y Salesforce tienen una ligera diferencia en su procedimiento de contratación. Quieren que el candidato escriba código y resuelva los problemas en una computadora portátil. Deberá escribir el programa completo y su código debe pasar los casos de prueba dados. Puede que tenga que trabajar en los argumentos de la línea de comandos o puede que tenga que analizar los archivos CSV o de texto. 

Otras empresas como Google, Amazon o Microsoft utilizan una pizarra. Por lo tanto, es bueno que conozca los conceptos básicos de su idioma para manejar los dos escenarios de codificación en su entrevista. Casi tomará 7 días para cubrir esta parte.

Recurso

También puede probar los cursos gratuitos de GeeksforGeeks :

Día 8 a Día 14

Aprenda estructuras de datos y algoritmos

El desarrollador experimentado ya utiliza estructuras de datos y algoritmos en su trabajo diario (ejemplo: la array se usa más ampliamente en varias aplicaciones). Usan su lógica de codificación con diferentes estructuras de datos y varios algoritmos que profundizan en los requisitos. 

Aún así, muchos de ellos olvidan la implementación básica y no pueden realizar tareas simples. Así que es mejor no saltarse esta parte y saltar directamente a la codificación.

Repase todos los fundamentos de las estructuras de datos, como una array, una lista vinculada, una cola, una pila, un árbol, etc., y su implementación. Repase las operaciones básicas realizadas en estas estructuras de datos. Despeja todos los conceptos de complejidad, aprende sobre los diferentes algoritmos y su implementación. 

La base básica de la codificación, es decir, los conceptos de DSA deben ser sólidos para resolver los diferentes niveles de preguntas de codificación. Puede verificar su habilidad básica dando algunas pruebas en línea. 

Recurso

Día 15 a Día 28

Resolver problemas de nivel básico

Una vez que repase la estructura de datos y los algoritmos, practique las preguntas de codificación de nivel básico. Con desarrolladores experimentados, la mayoría de las veces no se hacen preguntas de nivel básico en la ronda de entrevistas. Incluso si lo es, es solo una especie de problema de calentamiento. Durante la entrevista telefónica, puede encontrar este tipo de problemas. Así que no ignores esta parte y resuelve primero las preguntas básicas antes de pasar a la compleja. 

Dale 14 días a las preguntas de nivel básico e intenta resolver casi 70-80 preguntas. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. Casi 5-6 preguntas al día dentro de un plazo de 2-3 horas es lo suficientemente bueno para prepararlo para las entrevistas telefónicas, los problemas de preparación y también para construir una base básica. 

Problemas de array de muestra

Ejemplos de problemas de listas enlazadas

Ejemplos de problemas de pila y cola

Problemas de árboles de muestra

Ejemplos de problemas de gráficos

Problemas de montón de muestra

Día 29 a Día 49

Resolver Problemas de Nivel Medio

Después de practicar las preguntas de codificación de nivel básico, pase a las preguntas de nivel medio y comience a resolverlas. Los problemas de nivel medio lo prepararán para resolver problemas más difíciles y es muy probable que estas preguntas se hagan en las entrevistas. Try tendrá que resolver casi 120-130 preguntas de nivel medio en 21 días. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. Es bueno resolver casi 5-6 preguntas al día dentro del plazo de 2-3 horas. 

Ejemplos de problemas de listas enlazadas

Ejemplos de problemas de pila y cola

Problemas de árboles de muestra

Ejemplos de problemas de gráficos

Día 50 a Día 70

Resolver problemas de nivel difícil

Una vez que resolvió la pregunta de nivel básico y medio, pase a los problemas de nivel complejo o difícil y resuélvalos. Dale 21 días e intenta resolver casi 100-110 preguntas. Dependiendo del tiempo y la velocidad se puede aumentar el número de preguntas. 

Problemas de muestra

El mejor recurso para resolver preguntas de codificación: Portal de práctica GeeksforGeeks

Día 71 a Día 85

Diseño de sistemas

Esta sección es más importante para que los desarrolladores experimentados se concentren. El diseño del sistema es la ronda más importante en las entrevistas, especialmente para ingenieros senior. Los desarrolladores experimentados deben centrarse más en esta parte y en las entrevistas, tendrán que decirle el enfoque al entrevistador para diseñar un sistema altamente escalable. 

En primer lugar, aprenda todos los conceptos básicos del diseño de sistemas , como el equilibrio de carga, el almacenamiento en caché, los proxies, el teorema CAP, la consistencia, la fragmentación o la partición de datos, etc. como…

  • Servicio de acortamiento de URL (TinyURL)
  • Diseño de noticias de Facebook
  • Diseño Netflix/YouTube
  • Diseño Uber o Lyft

Preparar estas preguntas lo ayudará a manejar esta ronda y sabrá exactamente qué tiene que hacer en esta ronda. Te harás cargo de esta ronda y describirás los diferentes componentes del sistema. En esta ronda, los entrevistadores verifican si el candidato es capaz de construir un sistema grande y complejo o no. 

Después de preparar alrededor de 5-6 preguntas, tendrá una idea de cómo se ve esta ronda, qué se supone que debe hacer exactamente y cómo debe manejarla. 

Debe leer:

Día 86 a Día 92

SO y DBMS

Ahora es el momento de estudiar las dos materias informáticas más importantes, los sistemas operativos y los sistemas de gestión de bases de datos. Se supone que los ingenieros sénior se desempeñarán bien cuando se les pregunte sobre los conceptos de estos dos temas en las entrevistas porque estarían recibiendo la ayuda de múltiples núcleos e hilos mientras escriben el código en su trabajo diario. 

En el sistema operativo repase algunos conceptos básicos que dejó hace mucho tiempo durante su programa de pregrado…

  • Gestión de Procesos y Procesos
  • Subproceso y concurrencia
  • subprocesos múltiples
  • Cerrar
  • Programación de procesos
  • Sincronización y Deadlock
  • Programación de CPU
  • sistema de archivos distribuido
  • Gestión de la memoria
  • Problema de la sección crítica

Además, prepárese con algunas preguntas relacionadas con la base de datos, como bases de datos relacionales y no relacionales, fragmentación, escalado, propiedad ACID, indexación, etc. 

Recursos

Día 93 a Día 99

Diseño orientado a objetos

Prepárese para una pregunta de diseño orientado a objetos durante 7 días. Debe tener una buena comprensión de los patrones de diseño de software, los principios SÓLIDO/SECO y varios conceptos de oops. Algunas preguntas de diseño orientado a objetos se dan a continuación…

  • Diseña un cajero automático
  • Máquina expendedora de diseño
  • diseñar un estacionamiento
  • Diseñe un sistema de reserva de entradas para el cine

Su objetivo principal es reunir todos los requisitos y transformarlos en clases comprensibles. Debe identificar diferentes objetos y entidades a partir de un enunciado del problema. 

En las entrevistas, deberá explicar diferentes componentes y su interfaz. Además, explicará cómo los diferentes componentes interactúan entre sí mediante las interfaces. Prepárese con un diagrama de casos de uso, un diagrama de actividades y un diagrama de clases.  

día 100

Ajuste Cultural

Último día prepárate para la ronda cultural. Las empresas no contratan personas tóxicas y tampoco contratan candidatos que no sientan pasión por el producto. Comprender la cultura de la empresa. Por ejemplo, en Amazonas la cultura está muy arraigada, y ellos llevan la ronda de subir el listón. Les importa mucho el principio de liderazgo. 

En las entrevistas, deberá mostrar interés por el producto y deberá ser honesto. La gente falsa no se entretendrá. Así que asegúrese de tener en cuenta todas estas cosas y prepararse con la actitud correcta. 

Cursos GeeksforGeeks:

Cursos básicos de lenguaje [ Programación C / C++ / JAVA / Python ]

En todas las industrias, la demanda de ingenieros de software está en auge. Como resultado, mantenerse actualizado y tener conocimiento de los lenguajes de programación se ha vuelto esencial para todo profesional de TI. Con los cursos básicos de idiomas de GeeksforGeeks: programación en C | Fundación Java | Fundación Python | C++ Foundation puedes aprender cualquier lenguaje de programación desde cero y convertirte en un mejor programador.

Preparación completa de la entrevista

Lleve su preparación para la entrevista al siguiente nivel, con este curso completo de preparación para la entrevista , puede satisfacer todas sus necesidades de preparación para la entrevista en un solo lugar, ya que le brinda todo lo que necesita para prepararse para cualquier trabajo basado en productos, servicios o empresa de nueva creación a los precios más asequibles.

DSA a su propio ritmo

¿Quiere aprender estructuras de datos y algoritmos? entonces has venido a la plataforma correcta. Aprenda estructuras de datos y algoritmos para prepararse para entrevistas con los principales gigantes de TI como Microsoft, Amazon y Adobe con el curso autodirigido de DSA , donde aprenderá y dominará algunos de los conceptos importantes de estructuras de datos y algoritmos como clasificación, strings, búsqueda , árboles y más.

Publicación traducida automáticamente

Artículo escrito por anuupadhyay y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *