A diferencia de la mayoría de las respuestas que te instan a elegir entre el “diablo y el mar azul profundo”, diría que hay otra manera …
… pero antes de sugerir lo que puede hacer, sería preferible que me permitiera volver a analizar su pregunta y hacer algunos puntos conmovedores:
Tengo 27 años y tengo una maestría. Actualmente estoy trabajando como desarrollador web.
¡Felicidades y cuente sus bendiciones! Eres maduro, tienes un logro académico y actualmente tienes una ocupación. Piense en otros que son mayores, no tienen títulos académicos y actualmente están desempleados.
… carecen de habilidades para resolver problemas y la capacidad de escribir algoritmos. Hmm suena mal … ¿eh?
¡Realmente no! Puede pensar que tiene pocas habilidades para resolver problemas o que es muy malo para crear algoritmos elegantes, pero no estaría de acuerdo porque las habilidades no caen del cielo; tampoco se crea un algoritmo de grado NASA desde cero …
Debería seguir intentándolo …
Sigue intentándolo, por supuesto. Si lo intentas, puedes perder, pero si no lo haces, ¡ya has perdido! 😉
… O enfrentar la verdad y seguir buscando algo más?
¿Cuál es la verdad? ¡Si supieras la verdad sobre ti mismo, no estarías en duda!
Hasta ahora me he dado cuenta de dos inconvenientes en mí . Un buen comienzo para identificar algunos puntos de debilidad … “No puedes saber a dónde vas, a menos que sepas dónde has estado”
Desafortunadamente, pertenezco al grupo de desarrolladores que carecen de habilidades y algoritmos para resolver problemas a pesar de tener un mayor grado y líneas escritas sobre líneas de código .
Bueno, tener un título no es un requisito para ser un buen desarrollador. En Quora, encontrará preguntas similares como ¿Cuáles son algunas cosas que los programadores saben pero no los informáticos? El desarrollo es una habilidad que aumenta siempre que el desarrollador tenga curiosidad por aprender más y lidiar con preguntas desafiantes (aunque tales problemas a menudo parecen triviales a primera vista).
También me di cuenta de que no tengo memoria consistente / confiable. La mayoría de las veces no puedo recordar cosas triviales que he leído hace un momento o incluso tener en cuenta un número cuando hago cálculos mentales simples .
Bueno, supongo que la memoria es complicada y varía bajo ciertas condiciones. Nos va mal cuando enfrentamos lo siguiente: malestar, hambre, cansancio, estrés laboral, baja estima, falta de sueño, problemas financieros o sociales. Además, el desarrollo de software moderno es tan vasto, que la comprensión (es decir, ser capaz de explicar el conocimiento complejo de manera trivial a un extraño o aplicarlo a un dominio problemático) es mucho más importante que tener en mente datos históricos. Por supuesto, más retención de memoria significa más velocidad en el desarrollo (es decir, menos tiempo para buscar referencias), pero ¿para qué sirven los libros de referencia ?
He llegado a un punto en el que estoy cansado de intentarlo continuamente y sentirme un fracaso porque nunca seré lo suficientemente bueno .
Ok, suponga que se siente así y manténgase enraizado en este punto: ¿qué pasaría? Marque … toque , el reloj sigue marcando; el tiempo no tiene empatía ni te espera. Ninguna solución mágica aparecerá de la nada y te sacará de tu desesperación … a menos que tomes esos pequeños pasos en busca de una. “Un viaje de mil kilómetros comienza con un solo paso”
Muy bien, se acabó el tiempo de análisis y comienza el asesoramiento.
Descargo de responsabilidad : en aras de la divulgación, no soy un psicólogo calificado o consejero o experto en proporcionar asesoramiento profesional sobre planificación de carrera …
Solo soy un desarrollador que hace unos 11 años casi cometió el error de renunciar al desarrollo de software, porque sentí que no estaba tallado para mí … tenga en cuenta mi error: en lugar de decidir mis pasos, estaba cediendo a las circunstancias … esperando cosas para ser resuelto por mí, sin mover un dedo … Al final resultó que, la perseverancia me volvió a encaminar y ahora puedo disfrutar de su resplandor posterior … Sé que es mi experiencia limitada y la tuya puede ser totalmente diferente, pero … ¿eres tú? ¿Está dispuesto a probar algo nuevo o, por ejemplo, volver a probar las cosas viejas de una manera nueva? Si no, deja de leer; de lo contrario, consulte a continuación.
Al volver a leer su pregunta y sus declaraciones, me siento más convencido de que la raíz de sus problemas es una base deficiente en el desarrollo de software. Puede considerar la lista a continuación, como una lista de verificación de las áreas principales en las que necesita tener una base sólida en:
- Tipos de datos (estructuras, clases, estáticos, variables, matrices …)
- Construcciones de flujo de programa (sentencias, bucles, condicionales, manejo de excepciones, subprocesos múltiples …)
- Funciones, delegados y eventos \ oyentes.
- Polimorfismo (genéricos, interfaz, herencia, etc.)
- Acceso a datos (archivos, bases de datos, …)
- Seguridad.
Por supuesto, aprender esto y no poner el conocimiento en uso en un problema de la “vida real” es peligroso, porque solo reduce su experiencia de aprendizaje a académica aunque histórica. En otras palabras, necesita tiempo para “volver a aprender” los fundamentos de la programación, mientras aplica los conocimientos recién adquiridos de la manera más natural posible. Tenga en cuenta mi énfasis en lo natural , porque si aprende de una manera no natural , podría encontrarse en el mismo estado que ahora. Natural significa usar su sentido común para resolver un problema, no el sentido común de otra persona.
Por lo tanto, le aconsejaría que aplique tácticas de prueba y error cuando aborde un problema, sin importar el desafío en cuestión. Comience con la solución más simple que conozca y, si no funciona, pruebe con otra. Siga probando con estrategias alternativas de desarrollo propio hasta que se resuelva el problema. Evite la necesidad de visitar StackOverflow o similar de inmediato, especialmente porque su comprensión de algunos conceptos aún es débil. Una vez que tenga un avance en el problema, busque en Internet (o en libros o colegas) soluciones alternativas y compare su solución con otras. Trata de entender por qué otros lo razonaron de manera diferente a la tuya. Al comprender el por qué primero, también puede comprender la diferencia entre su cómo y su cómo . Después de resolver muchos problemas, observará un cambio en su comprensión y hábitos de codificación; problemas que alguna vez fueron difíciles se vuelven más fáciles de resolver y se gana más confianza para atacar los casos más difíciles.
En aras de la brevedad (¡qué chiste, mi respuesta es casi experimentar un desbordamiento del búfer!), Debería dejar de escribir ahora … … pero no sin estas simples palabras sabias (aprendí la semana pasada): el por qué de un concepto de software es más importante que es cómo .