Trabajo en el grupo técnico en una gran firma de Arquitectura. Aunque hay varias personas que son muy competentes en varios lenguajes de programación y scripting, está lejos del entorno de desarrollo de una compañía de software. Rara vez hay más de una o dos personas trabajando en un proyecto de desarrollo, la mayoría de las cuales son scripts de automatización. No hay control de fuente, ni configuración de control de versiones ni nada de eso.Cómo obtener habilidades de programación en el mundo real cuando no trabaja para una compañía de software
Mi formación académica es ingeniería pero no CS o CE. Así que tomé una serie de clases de programación en la escuela, y de hecho jugué mucho con VB cuando era un niño pequeño. Sin embargo, no fue sino hasta el año pasado en mi trabajo actual que realmente tuve la oportunidad de hacer un desarrollo real fuera de los problemas de tareas en la escuela. El año pasado pasé de hacer simples scripts de automatización a aplicaciones completas de plug-in en C# .NET.
Tengo familiares y amigos que son CS o CE mayores, y trabajo para empresas cuyo principal producto es el software. Aunque no tengo ningún interés en trabajar para una compañía de software, parece que tienen una gran ventaja sobre mí. En su trabajo, tienen personas con más experiencia que pueden revisar su deber y darles sugerencias para mejorar su código o lógica. Los sitios como Stack Overflow son excelentes para resolver errores y obtener consejos, pero solo cuando sabes que necesitas el consejo. Estoy seguro de que hay muchas ocasiones en que tomo el enfoque completamente equivocado de algo.
¿Cuáles son algunas de las mejores maneras de mejorar estas habilidades de programación de la vida real? ¿Hay alguna manera de encontrar proyectos de código abierto (preferiblemente basados en .Net) en los que pueda ayudar a trabajar, para poder ganar experiencia trabajando con otros programadores (más experimentados)? También he estado buscando patrones de diseño, pero me cuesta reconocer cuándo usar ciertos patrones.
En sus comentarios sobre las respuestas, señala que el problema es que no tiene a nadie que revise su código. Debe actualizar su pregunta para reflejar este problema. –