¿Cuánto tiempo debería permitirme resolver un problema * difícil * de Leetcode?

Hay 2 recomendaciones que tengo para ti.

  1. Solo sal y entrevista. Intenta obtener tantas entrevistas como puedas. Entrevista con Google, Facebook, Amazon, Microsoft, Apple, Salesforce, Twitter, Uber, Airbnb, Yelp, Dropbox, Palantir, Oracle, Snapchat, Spotify, Pandora, etc. (perdón si extrañé su empresa: p). Aprenderás una cosa. Tienes 45 minutos para demostrar que eres un programador competente. Necesitas una solucion. La solución puede no ser perfecta, pero tiene que ser razonable y estar por encima del promedio. A veces tendrás suerte y te pedirán LRU Cache o algún problema “difícil” muy común y lo resolverás en 20 minutos; otras veces tendrás que pensar en tu vida. La experiencia te hace mejor, ¡así que salta al fondo y mira cómo te va! Además, ¡las múltiples ofertas harán que sus negociaciones sean mucho más fluidas!
  2. Entrevista a tus amigos. Vea cómo es desde el punto de vista de un entrevistador. Diferentes personas se preocupan por diferentes cosas porque todos somos únicos. Entenderá cuando comience a entrevistar a personas, algunas personas no se preocupan por la sintaxis, algunas personas solo quieren que el código se compile, algunas personas quieren un código limpio, algunas personas quieren ver casos de prueba. Todo tendrá sentido una vez que comience a convertirse en el “evaluador”: está tratando de presentarse como un “paquete” para la empresa para la que está entrevistando. Debe decidir cuánto tiempo desea asignar a la teoría de diseño / estructura de datos, cuánto tiempo desea pasar mostrando que puede escribir código limpio y compilable, y cuánto tiempo pasa escribiendo casos de prueba para demostrar que su código es robusto y funcionará en producción.
  3. Recomendación de bonificación. Tenga en cuenta que los problemas “difíciles” en realidad son bastante difíciles en el primer intento. La única razón por la que se les pide en las entrevistas es porque la mayoría de las preguntas de Leetcode han existido durante años y años. Quizás incluso cerca de una década o más. No son tan difíciles para alguien que ha estado en la industria y ha visto estas preguntas una y otra vez, así que no seas demasiado duro contigo mismo si no puedes resolverlo en 30–45 min. ¡Mejorará con el tiempo! En todo caso, incluso leer la descripción de una solución de GeeksforGeeks y luego codificarla, compilarla y aprobar todos los casos de prueba lo mejorará, ¡así que continúe! ¡Cualquier conocimiento adquirido es siempre una victoria! ¡Buena suerte!

Enchufe para mi empresa: si siente que está bien preparado técnicamente y quiere que lo ayude a tratar de programar una entrevista en Uber, envíeme un mensaje directo 🙂

Creo que no soy la mejor persona para responder esta pregunta, ya que yo mismo lucho con bastante frecuencia para resolver problemas “difíciles” en Leetcode. 🙂 Pero intentaré ayudarte a encontrar la respuesta con lo mejor de mi conocimiento.

Creo que un factor muy importante será ¿cuál es su objetivo final? Si su objetivo es aparecer en entrevistas en Big Four / Five (Apple, Amazon, Facebook, Google), puede comenzar a practicar apareciendo para entrevistas en estas empresas una por una. Por lo general, esperan que encuentres la solución para 1 problema difícil y 1 medio en 45 minutos. Por lo tanto, poder resolver la mayoría de los problemas difíciles rápidamente es una señal de buena preparación.

Sin embargo, si su objetivo es prepararse para la “Programación competitiva”, es posible que desee pasar a cosas más nuevas, como en los libros: (1) Perla de programación (2) Desafíos de programación (Skiena). También debe considerar pasar a los desafíos de TopCoder.

Para ambos objetivos, su futura dirección de preparación tendrá que ser muy diferente.

Al seguir mejorando, creo que leer más material (libros) y resolver más pero diferentes acertijos parece ser la mejor manera.

Espero eso ayude.

La velocidad de resolución de problemas varía entre los desarrolladores y lo que es más importante que la velocidad es cómo resuelve el problema y su precisión. Si desea práctica adicional para ayudar a mejorar su velocidad de codificación, considere programar entrevistas simuladas de codificación en plataformas como Pramp y InterviewCake. Claro, Leetcode es un gran recurso, y es genial que quieras acelerar tu proceso de resolución de problemas, pero debes probar otras plataformas y diversificar tu práctica de codificación.

Con Pramp, te emparejarás con otro desarrollador de software de un nivel similar, por lo que la entrevista se adapta a tu experiencia. Podrá desempeñar el papel tanto del entrevistador como del entrevistado, lo que será valioso al repensar su estrategia de entrevista. Al practicar en un entorno diferente, puede aprender de su compañero y descubrir nuevas formas de abordar los problemas, lo que podría ayudarlo a acelerar su proceso para esos difíciles problemas de Leetcode. Pruebe muchos recursos diferentes para practicar para obtener una buena variedad.

Además de ayudarlo a resolver problemas técnicos, las plataformas de entrevistas simuladas en línea lo ayudarán a practicar habilidades de comunicación y otros componentes de la entrevista que serán cruciales para la realidad. Date la mejor oportunidad de conseguir un trabajo programando y realizando una práctica de entrevista simulada.

Dado que LeetCode no tiene tantos problemas como TopCoder y Codeforces, resolver problemas en LeetCode solo probablemente no ayudará mucho.

Para mí, parece que la dificultad de la mayoría de las preguntas de la entrevista se encuentra entre 500-Div2 y 1000-Div2 o 250 Div1 TopCoder, por lo tanto, practicar esos tres tipos de problemas podría ayudar. Además, Codeforces tiene una categoría dedicada para problemas ad-hoc que podría ser útil.

Un tipo peculiar de pregunta de entrevista es la implementación que se concentra en evaluar qué tan rápido un candidato puede detectar y organizar casos de esquina en una implementación sucinta. Esta habilidad podría agudizarse analizando soluciones de codificadores legendarios en TopCoder y Codeforces.

El factor tiempo puede controlarse manualmente o mediante la función de concurso virtual de Codeforces.