Я работаю в технической группе в крупной архитектурной фирме. Хотя здесь много людей, которые очень владеют различными языками программирования и написания сценариев, это далеко не так, как окружающая среда среды разработки софтверной компании. Редко есть еще больше, чем один или два человека, работающие над проектом разработки, большинство из которых являются просто сценариями автоматизации. Нет никакого источника управления или настройки управления версиями или что-то в этом роде.
Мой академический опыт - инженер, но не CS или CE. Таким образом, я принимаю несколько программных классов в школе и на самом деле много переделал с VB, когда был маленьким ребенком. Тем не менее, только в прошлом году на моей нынешней должности у меня действительно была возможность заниматься каким-либо реальным развитием за пределами домашних заданий в школе. В прошлом году у меня появились переходы от создания простых сценариев автоматизации для полномасштабных приложений для плагинов в С#.NET.
У меня есть семья и друзья, которые являются специалистами в области CS или CE, и работают для компаний, основным продуктом которых является программное обеспечение. Хотя они не заинтересованы в том, чтобы фактически работать в компании-разработчике программного обеспечения, но похоже, что у них есть главное преимущество над мной. В своей работе у них есть люди с большим опытом, которые могут просматривать их и давать им предложения по улучшению их кода или логики. Такие сайты, как Stack Overflow, отлично подходят для решения проблем и получения рекомендаций, но только тогда, когда вы знаете, что вам нужен совет. Я уверен, что есть много раз, когда я принимаю совершенно неправильный подход к чему-то.
Каковы некоторые из лучших способов улучшить эти навыки программирования в реальной жизни? Есть ли способ найти проекты с открытым исходным кодом (желательно на основе .NET), над которыми я могу помочь, поэтому я могу получить некоторый опыт работы с другими (более опытными) программистами? Я также изучал шаблоны проектирования, но с трудом узнаю, когда использовать определенные шаблоны.