Depende de la razón por la que no eres bueno en la programación competitiva. Hay cuatro razones probables en las que puedo pensar:
- Podrías ser bueno para resolver problemas algorítmicos, pero malo para codificar a la velocidad vertiginosa de un concurso de codificación.
- Podría ser malo en la resolución de problemas algorítmicos, incluso si comprende las estructuras de datos y los algoritmos.
- Realmente no podría tener una buena comprensión de las estructuras de datos y algoritmos, y se ha engañado a sí mismo al pensar que sí (este tipo de situación es fácil de suceder).
- Podrías ser malo codificando.
Si está en la primera situación, no debería tener muchos problemas con las entrevistas técnicas. Estar en esta categoría significaría que es bastante capaz de resolver problemas de programación competitivos, algunos de ellos bastante rápido, simplemente no implementa sus soluciones tan rápido como sus competidores, mientras las implementa a una velocidad que sería razonable para codificación a nivel de producción. No tiene problemas para completar los detalles de los algoritmos y convertir sus ideas en código.
Si no usa nombres de variables de una letra y métodos abreviados para reducir la cantidad de escritura que tiene que hacer, bien . Las empresas quieren que las personas escriban un código claro y comprensible durante la entrevista, no que lo escriban súper rápido a expensas de la comprensión. Realmente no es necesario conocer la forma más simplificada o concisa de implementar cada algoritmo, siempre que comprenda los conceptos claramente y pueda usar esos conceptos para producir un código razonable en un plazo razonable.
- Cómo generar una clave privada en el algoritmo RSA
- ¿Cuáles podrían ser los buenos proyectos basados en algoritmos?
- ¿Cuál es el mejor algoritmo para encontrar una ruta más corta a través de todos los puntos de control dados?
- ¿Qué puedo aprender ahora en solo 10 minutos que podría mejorar mi pensamiento algorítmico?
- ¿Por qué la clasificación de montón se considera un algoritmo in situ?
Si la razón por la que eres malo en la programación competitiva es uno de los otros tres, tendrás más dificultades.
Si eres malo para convertir ideas claras en código, eres malo para codificar. Y si eres malo en la codificación, no puedes esperar borrar las mejores entrevistas. Aconsejaría mejorar sus habilidades de codificación hasta que pueda convertir fácilmente ideas en código, incluso antes de mirar demasiado las estructuras de datos y los algoritmos.
Si está seguro de que puede convertir ideas que están claras en su cabeza al código, pero no puede resolver problemas de programación competitivos, debe averiguar si es porque es malo en la resolución de problemas algorítmicos o si no tiene el conocimiento . Una buena manera de probar su conocimiento es tomar un par de conceptos centrales que surgen mucho en los problemas que intenta, y luego ver si puede explicarlos a un amigo, en detalle. Si no puedes, probablemente te estás perdiendo algo.
Si aprueba el “examen de enseñanza”, entonces probablemente sea malo en la parte de resolución de problemas. Esa habilidad se construye a través de la experiencia. Siga resolviendo problemas y mejorará.