Me cuesta resolver problemas sencillos del algoritmo HackerRank. Primer semestre de primer año en la universidad, licenciatura en informática. ¿Esta bien? ¿Que puedo hacer?

¡Si! Probablemente vamos:

Tenga en cuenta que para la mayoría de estos sitios, la “dificultad” de un problema determinado está determinada algorítmicamente en parte por el número de personas que lo han resuelto correctamente. Si alguien publica públicamente una solución a un problema difícil, y muchas otras personas lo “resuelven”, entonces, de repente, es un problema “fácil”.

Aparte de eso, solo eres un estudiante de primer año. Es posible que su comprensión de los conceptos de CS no se mida bien por problemas deficientes en HackerRank o incluso problemas de programación competitivos, punto. Su tiempo en este momento es mejor gastado en dominar los fundamentos de su primer idioma y su primer curso. Si no obtuvo un 95 o mejor en su clase de introducción, debe revisar y practicar las pequeñas cosas * mucho *.

Las clases de CS tienen fama de tener altas tasas de fracaso. No estoy seguro de si esto es cierto [1], pero en mi experiencia, no es lo suficientemente alto. He enseñado a muchos estudiantes que deberían haber reprobado CS1 y que tuvieron situaciones absolutamente desesperadas en CS2. Si le preocupa su dominio de los conceptos de CS que ha visto hasta ahora, mi recomendación es hacer un trabajo adicional [2], como en este momento.

Trabaja en los ejercicios en cualquier libro de texto de introducción que tengas. Una vez que tenga una base sólida, pruebe algunos problemas de programación más y vea cómo funciona.

No me gusta HackerRank personalmente. He resuelto algunos problemas en ese sitio, pero encontré problemas que no se han probado correctamente, lo que significa que las soluciones incorrectas se aceptan como correctas.

¡Recomiendo echar un vistazo a Kattis!

[1] Tasas de falla en la programación introductoria

[2] Quizás la habilidad más valiosa que obtendrás en CS es la capacidad de aprender conceptos nuevos y difíciles rápidamente, y la forma de obtener esa habilidad es practicar el aprendizaje de conceptos nuevos y difíciles rápidamente.

Cuando fui a la universidad, ni siquiera sabía programación. Obtuve una ‘C’ (7/10) en el curso de Programación y Estructuras de Datos en el primer semestre. Hoy (4 años después) soy ingeniero de software en LinkedIn.

La perseverancia (que por cierto es una cualidad muy subestimada) te lleva muy lejos. Simplemente no te rindas, sigue codificando, intenta tu mejor nivel. Si aún no puede resolver un problema, pregunte a otras personas o vea la solución de otras personas. Luego intenta codificarlo tú mismo. Estoy bastante seguro de que mejorarás. Todo lo mejor !

En mi opinión, solo después de haber recibido una capacitación adecuada en Algoritmos y Estructuras de Datos (ya sea a través de un curso o por autoaprendizaje) debería estar resolviendo esos problemas.

En segundo lugar, para algunos problemas “fáciles”, el truco también puede residir en la teoría de números. Ahora, si no conoce la propiedad en particular, es posible que el problema ya no sea fácil para usted. No se preocupe por esto, a menos que realmente quiera convertirse en un experto en programación competitiva, en lugar de programar en general.

Por lo general, los estudiantes de primer año no han estudiado Algoritmos y estructuras de datos, así que espere para tomar ese curso (o estudíelo usted mismo, si realmente no puede esperar).

Estás empezando en tu educación en informática. Esta totalmente bien. ¡Sigue practicando y sigue aprendiendo informática!

A2A “Muchos de los desafíos en HackerRank son difíciles y suponen que ya conoce muy bien los algoritmos relevantes”. ¿Conoces los algoritmos relevantes? Porque esto es muy probable donde estás luchando; estás aprendiendo los requisitos previos y el nuevo material al mismo tiempo.

Le recomiendo que mire Algoritmos para asegurarse de comprender los requisitos previos de los algoritmos relevantes.

Como cualquier otra habilidad en tu vida, debes practicar para ser bueno en eso. Cada éxito en tu vida será un 80% de determinación y un 20% de habilidad. Si no practicas no te vuelves bueno.

Ese es el secreto de la vida adulta. Chuparás muchas cosas. Si quieres / necesitas ser bueno en algo que practicas.