¿Por qué LeetCode es tan importante para un ingeniero de software? Por qué las universidades no nos enseñan a resolver problemas de LeetCode?

Estás cometiendo un error en tu primera pregunta.

LeetCode no es realmente importante para un ingeniero de software de ninguna manera. Casi todos los ingenieros de software nunca se enfrentan a preguntas similares a LeetCode en sus trabajos diarios. No vas a conseguir un aumento de sueldo o una promoción por tu habilidad para resolver estos rompecabezas.

Se puede decir que LeetCode es importante para la gente que busca un trabajo en este campo. Recién graduados, desempleados y demás. Eso también es un poco exagerado, ya que LeetCode no es el único sitio que puedes utilizar para desarrollar habilidades relacionadas con la resolución de este tipo de tareas, y no todas las empresas están haciendo este tipo de preguntas durante las entrevistas.

¿Por qué las universidades no te enseñan a resolver estos problemas? Por un lado – lo hacen. Durante los años de universidad deberías aprender algoritmos, estructuras de datos, etc., y deberías tener una idea de los conceptos básicos de la informática. Con estos conocimientos, para las preguntas de la entrevista que son «buenas» y no requieren que conozcas algunos trucos muy específicos que son difíciles de inventar por ti mismo, deberías ser capaz de resolverlas por ti mismo, o al menos de inventar varias ideas subóptimas para demostrar que tu cerebro es capaz de algo. Recuerdo cómo estaba discutiendo un problema con otro chico en Google durante mis prácticas, y cuando se le ocurrió alguna buena idea, le dije: «Sí, tiene sentido, esta la conozco de la programación competitiva… Pero pensaba que nunca habías hecho programación competitiva, ¿cómo la has conseguido?». Su respuesta fue: No se trata de programación competitiva, se trata de usar el sentido común.

Por otro lado – en la universidad probablemente no puedes esperar un curso enfocado específicamente a abordar este tipo de tareas. Honestamente, ni siquiera sé cuál es el objetivo principal de la educación universitaria – pero voy a suponer que tratan de enseñarte cosas necesarias para ser un buen ingeniero de software, en lugar de prepararte para la búsqueda de empleo. Ahora revisa el principio de mi respuesta – no necesitas LeetCode como ingeniero de software… Así que tiene sentido enseñarte algo más en su lugar, ¿no?