Por un lado, el objetivo de los conjuntos de problemas y los ejercicios de topcoder es que se supone que causan daño a su cerebro, ya que lo exponen a formas de hacer cosas que presumiblemente no ha visto antes.
Si fueran fáciles, todos obtendrían una A en sus clases de programación y los concursos de programación serían tan inútiles como los torneos de tres en raya. Y la programación pagaría mucho menos de lo que paga, ya que todos podrían hacerlo fácilmente.
Dicho esto, si puede desarrollar aplicaciones exitosas, obviamente ha aprendido un tipo útil de programación, y si le gusta hacerlo, en realidad está bien preparado para el comercio de programación.
- Cómo encontrar un trabajo de informática o informática donde pueda ganar $ 100K por año
- ¿Cuáles son las alternativas a un título de CS si ya tiene un título universitario y no puede regresar para obtener un título de CS pero está interesado en programar como carrera?
- Tengo unas vacaciones de dos meses por venir. ¿Qué debo hacer para convertirme en un mejor programador al final de estas vacaciones?
- ¿Debo abandonar mi doctorado en CS si estoy interesado en un puesto de ingeniero en la industria? ¿Tener un doctorado ofrece una ventaja significativa en la industria, en comparación con una maestría? ¿Qué otros factores debo considerar para tomar una decisión informada?
- ¿Puedo disfrutar la programación incluso si no me gustan las matemáticas?
La programación del “mundo real” se parece mucho más al desarrollo de su aplicación que a los ejercicios de tarea. Para crear sus aplicaciones, debe crear requisitos, determinar un diseño general, ejecutar la codificación, hacer muchas pruebas, implementar la aplicación y hacer que la gente la use.
Por el contrario, los ejercicios de tarea y los problemas del concurso de programación tienden a venir con requisitos precisos, escenarios de prueba bastante simples (a menudo, solo ejecutan un conjunto exacto de datos) y son “desechados” como código una vez que haya “terminado”. Y nadie “usa” los programas. Como modelo de trabajo, este tipo de codificación está muy alejado de la programación del mundo real.
Donde el tipo de algoritmos y desafíos que ve en los problemas de tarea son importantes en el trabajo del “mundo real” es principalmente en el código de fondo y el código de rendimiento. Los motores de base de datos (donde he pasado la mayor parte de mi carrera de programación) están llenos de cosas grandes, estructuras de datos sofisticadas, ejercicios ocasionales de conteo de bits, preguntas de empaquetado de bytes, etc., pero al igual que el trabajo de su aplicación, Son proyectos a largo plazo con requisitos oscuros y cambiantes, preguntas de soporte continuas, la necesidad de involucrar a los usuarios y otros desafíos de la “vida real”.