¿Qué beneficios obtendré al resolver problemas en sitios como Codeforces si quiero ser ingeniero de software?

No necesariamente debe detenerse, pero sí necesita ampliar sus habilidades con proyectos más grandes. No tienen que ser “grandes”, solo más reales.

He visto brevemente algunos de estos sitios. Tienen problemas interesantes que pueden ser útiles para practicar cosas pequeñas o expandir su pensamiento. Dicho esto, los tipos de problemas que he visto en estos sitios no son particularmente representativos de la gran mayoría de los problemas que encontrará como programador.

Imaginemos un problema llamado Age Calculator que podría comenzar la vida como un problema en uno de estos sitios:

Implemente una calculadora de edad que calcule la edad de una persona dada su fecha de nacimiento y cualquier fecha arbitraria. La entrada es un cumpleaños y una fecha arbitraria en el formato MMDDYYY. La producción es la edad de la persona en años (truncada) y días.

Entonces ahí está tu problema. Lo resuelve y aprende algo sobre el cálculo de fechas.

Ahora el resto del mundo real:

  • Su programa ofrece respuestas sin sentido cuando la fecha arbitraria es anterior al cumpleaños. Modifíquelo para dar un mensaje de error útil.
  • Su programa solo toma fechas del formato MMDDYYYY. Modifíquelo para aceptar adicionalmente fechas en el formato MM / DD / AAAA.
  • Modifique su programa para aceptar adicionalmente fechas en formato DD / MM / AAAA.
  • Modifique su programa para aceptar adicionalmente fechas en las que el mes se exprese como LLL, donde LLL es la abreviatura de tres letras para el mes.
  • Modifique su programa para aceptar adicionalmente fechas donde el mes se deletrea completamente.
  • Modifique su programa para admitir español, francés y alemán. Además del texto del programa, el programa debe admitir los nombres y abreviaturas de los meses en el idioma deseado.
  • Convierta su programa para que esté basado en la web y esté disponible públicamente en Internet. Haga su propia elección para la implementación de backend y el alojamiento web.
  • Modifique su página web para usar un calendario para seleccionar el cumpleaños y la fecha arbitraria. Desarrolle el calendario usted mismo o use una fuente de terceros. Si utiliza una fuente de terceros, debe ser gratuita. Si utiliza una fuente de terceros, asegúrese de comprender el acuerdo de licencia. Explique el acuerdo de licencia a un amigo o colega.
  • Haga un análisis de costo-beneficio del alojamiento web externo versus el hardware interno para alojar su sitio.
  • Lavar un gato Ocasionalmente se le pedirá que haga algo totalmente ajeno a su trabajo como desarrollador de software. Para este ejercicio, lava un gato. El gato no debe requerir atención médica antes, durante o después del lavado. Puede obtener la atención médica que necesite, pero solo después de lavar al gato.
  • Ignore los resultados del análisis anterior de costo-beneficio. Implemente una solución interna de alojamiento y transfiera su aplicación a la solución interna.
  • Ahora es el momento de monetizar su aplicación. Modifique su programa para permitir a los usuarios crear cuentas y guardar los nombres y cumpleaños de otras personas y recibir recordatorios por correo electrónico al propietario de la cuenta cuando se acerque un cumpleaños guardado. Pídale a un amigo o colega que determine la estructura de tarifas, pero no le diga hasta al menos una semana después de haber comenzado el desarrollo. Asegúrese de seguir todos los requisitos y recomendaciones actuales de seguridad y manejo de tarjetas de crédito. Elija la base de datos que le parezca apropiada.
  • Implemente una prueba gratuita de 30 días para su aplicación.
  • Alguien en la gerencia superior acaba de leer un artículo sobre node.js. Convierte tu backend a node.js. Si ya está en node.js, conviértalo a Java / Spring.
  • Desconocido para ti, las redes sociales han descubierto tu aplicación y la adoran. Su solución de alojamiento interno ya no puede manejar el tráfico. Elige un número entre 2 y 10; llámalo n. Google “alojamiento web” y elija el enésimo servicio de alojamiento web en los resultados de búsqueda. Transfiera su aplicación al nuevo servicio de alojamiento web. No inicie el cambio real al nuevo servicio hasta las 3 am hora local.
  • Ahora descubres que la razón por la que tu aplicación es tan popular es que los adolescentes escriben frases obscenas en los campos de entrada de tu aplicación y luego tuitean imágenes de los mensajes de error resultantes a sus seguidores. Implemente un reconocedor de palabras obsceno en todos los idiomas admitidos y modifique sus mensajes de error adecuadamente.
  • Debido a su cambio más reciente en los mensajes de error, la popularidad de su aplicación se ha desplomado. Junto con la popularidad, sus ingresos de la aplicación también se han desplomado. Haga una lluvia de ideas sobre nuevas formas de ganar dinero con su aplicación.
  • Debido a su experiencia y la de su empresa en el dominio de cumpleaños, decide convertir su aplicación en una aplicación de astrología. La aplicación dará predicciones de astrología diarias o semanales al usuario junto con predicciones mensuales adicionales. Ajuste su tarifa programada en consecuencia. Permitir a los usuarios guardar sus datos de cumpleaños de amigos y familiares existentes en Google Calendar
  • Mira cómo entra el dinero.

No encontrará este tipo de ejercicios en los sitios web de resolución de problemas.

Espero que esto ayude 🙂

Un tren salió de la estación alfa hace dos horas y viaja a 50 mph al sur. Otro tren acaba de salir de la estación alfa y viaja en un camino paralelo al sur a 70 mph. ¿Cuánto tiempo pasará hasta que el segundo tren alcance al primero?

Para la mayoría de las personas, esta pregunta nunca reflejará un problema de la vida real que tendrán. Sin embargo, este tipo de preguntas a menudo se les da a los estudiantes que estudian álgebra. Estos problemas “poco realistas” son una práctica en el fortalecimiento de las técnicas y en la construcción de la memoria del músculo cerebral mediante el uso de diferentes algoritmos y métodos para resolver problemas similares.

Ahora para mostrar lo que quiero decir:

El producto A tiene un costo de $ 50K por producción, pero hubo dos ejecuciones de producción fallidas debido a errores de fábrica. Si se espera que el producto A traiga 70K por corrida, ¿cuántas corridas de producción se necesitarían hasta que el producto A alcance el punto de equilibrio?

Aunque estos son dos escenarios completamente diferentes, utilizan las mismas técnicas algebraicas.

La respuesta es sí, esos sitios web nunca reflejan la realidad de lo que es el desarrollo de software en el mundo real.

Le recomiendo que comience a trabajar en proyectos reales, elija un lenguaje de programación, una herramienta de desarrollo y comience a leer la documentación y vea tutoriales en sitios como Pluralsight, luego, cuando se sienta listo para dar el siguiente paso, trabaje como pasante para una empresa para que expertos revisen su código, la técnica aquí es trabajar con personas experimentadas para que puedan decirle qué hizo mal.

More Interesting

¿Cómo es la vida de un ingeniero de software en Bangalore?

¿Por qué es mejor trabajar como ingeniero de software en los Estados Unidos en comparación con la India?

¿Cuándo debo programar mi entrevista de pasante de Google SDE?

¿Todavía es posible para un joven de 31 años convertirse en un ingeniero de software exitoso y eventualmente ganar $ 100k + / año?

¿Por qué los ingenieros de software se consideran ingenieros?

Para un ingeniero de software que es una ubicación ideal: ¿Phoenix / Scottsdale o Austin?

¿Cuáles son algunas habilidades comunes requeridas para un ingeniero informático / de software?

¿A qué nivel contrataría como ingeniero de software a alguien que anteriormente había sido ingeniero de software pero fue ascendido a gerente y, por lo tanto, no está actualizado en sus habilidades de ingeniería de software?

¿Qué debo hacer si quiero construir un sistema de pago basado en etiquetas RFID para una fiesta que usa pulseras con MIFARE Classic?

No pretende lastimar a nadie. ¿Pero los ingenieros de software son esclavos de la nueva era?

¿Se está muriendo la ingeniería de software? ¿Debería llamarse ingeniería de TI?

¿Qué hace un ingeniero de software de sistemas?

¿Debo elegir a Philips para un puesto de ingeniero de software senior sobre las ofertas de Myntra y Walmart Labs?

¿Cómo puede un ingeniero de software en línea ingresar al hardware de codificación?

Cómo conseguir un trabajo como ingeniero de software sin experiencia previa