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:
- ¿Son los ingenieros de software en el banco más ricos que los ingenieros de software en las empresas de inicio y software?
- ¿En Java es tan fácil manejar la interfaz de usuario como en JavaScript?
- ¿Cómo afectará el aprendizaje automático al ingeniero de software promedio?
- Trabajar con el desarrollo de software es muy agotador hoy en día. Todos los días, se crea un nuevo idioma, biblioteca o marco. ¿Cómo podemos 'sobrevivir' en este contexto?
- Trabajo: ¿Realmente los ingenieros de Facebook, Google, Dropbox, etc. utilizan su conocimiento algorítmico en su trabajo diario o solo se usa como una forma de eliminar a los candidatos inadecuados?
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 🙂