He hecho bastantes proyectos, pero mi habilidad de algoritmo es muy débil, ¿cómo podría mejorar para ser un desarrollador real?

No creo que me clasifique como alguien perfecto para responder a tu pregunta (es decir, que me llamen “desarrollador real”), pero en lo que respecta a mejorar las estructuras de datos y las habilidades de algoritmos para descifrar entrevistas técnicas, debes centrarte en resolver problemas en varios sitios como SPOJ, Codechef, TopCoder, CodeForces, HackerEarth, etc.

Estos sitios le proporcionarán desafíos y problemas que implicarán la aplicación de una gran cantidad de algoritmos simples y complejos y lo ayudarán a mejorar su conjunto de habilidades. Lea los editoriales de problemas cuando no los reciba y le ayudarán a comprender el uso de un determinado algoritmo en una situación determinada. También hay una gran cantidad de Blogs disponibles en estos sitios que le brindan ciertos trucos y consejos para comprender qué algoritmo y estructura de datos se deben usar en un tipo particular de problema.

Pero decir que resolver estos problemas te hará un “desarrollador real” parece un poco endeble. Esto le ayudaría perfectamente a realizar entrevistas técnicas, pero ser un desarrollador real. Creo que se trata más de aplicar su conocimiento en líneas de código significativas y construir algo útil.

Diríjase a USACO Training Program Gateway e inicie el programa. Para cuando llegue a la sección 5, obtendrá un algoritmo y habilidades de estructura de datos muy altos. También asegúrese de asistir a algunas competiciones en línea como topcoder o code forces y, después de la competencia, repase todos los problemas que no pudo resolver.

La estructura de datos y el algoritmo son los elementos menos técnicos en la programación. Los problemas técnicos surgen cuando intenta traducir su algoritmo más o menos abstracto a la sintaxis de un lenguaje de programación determinado.

intente resolver algún problema en un sitio de programación competitivo como topcoder, uva, codeforces u otro sitio similar.