Присоединение к проекту с открытым исходным кодом, безусловно, является одним из способов начать. Тем не менее, я использую программное обеспечение с открытым исходным кодом в течение многих лет, и, честно говоря, качество почти во всех таких проектах, как правило, в туалет. Если вы полностью овладеете своими навыками программирования и дизайна, вы, вероятно, подберете некоторые очень плохие, наряду с хорошими, без возможности определить разницу между ними.
Чему вы хотите научиться программировать ? Ответ на этот вопрос определит, что вы должны искать и где. Вот некоторые общие ответы, и мое профессиональное мнение о том , как им следовать (иметь в виду , что это просто мнение, хотя ИМХО, точно):
Просто сказать, что вы знаете, как это сделать.
Тогда вам действительно не нужен наставник, и C ++ - плохое место для начала. Я люблю C ++, это мой первый выбор для общего программирования, но вместо этого играть с другим языком. Я бы предложил Python; у него гораздо более мягкая кривая обучения, чем у C ++, и в отличие от некоторых языков (без упоминания названий, сегодня я не носил асбестовое нижнее белье), вы все равно выучите несколько полезных навыков, если захотите углубиться в него позже. Многие концепции могут быть переведены непосредственно на C ++, если вы решите продолжить этот путь.
Просто попробуйте и посмотрите, нравится ли вам это.
Проект с открытым исходным кодом может быть достаточно для этого. Выберите программу, которая вам нравится, но с которой вы столкнулись с некоторыми проблемами или раздражениями, и предложите свою помощь тому, кто ее запускает. Большинство проектов с открытым исходным кодом открыты для участия, поэтому, как правило, именно поэтому они с открытым исходным кодом.
Однако в этом случае не пытайтесь использовать C ++ в качестве первого языка программирования. Не сложно освоить основы, но C ++ достаточно низкоуровневый, чтобы вы могли получить серьезные и очень трудно найти ошибки в своих программах. Если вы уже не знаете, что любите программирование, или вы такой же упрямый, как бык из пословиц, или уже нашли наставника, который может направить вас в правильном направлении, это уничтожит любой зарождающийся интерес, который вы можете иметь в этой области. Посмотрите выше ответ о Python, он лучше подходит для этого.
Потому что у вас есть идея для конкретной программы, которую вы хотите написать.
(Я не думаю, что ОП в этой категории, я помещаю это для более поздних читателей.)
Есть ли у вас представление о времени, необходимом для освоения разработки и реализации программы? Как подсказка, это измеряется годами. Возможно, вам удастся придумать полуприличный дизайн после всего лишь нескольких месяцев обучения, если вы оба умны и чрезвычайно удачливы, но любой, у кого есть небольшой опыт работы над этим (включая вас, позже), сможет Жаль, что ты никогда не родился - я говорю из опыта. :-) Если идея не является настолько сверхсекретной, что никто больше не может знать об этом, пока она не будет сделана, не беспокойтесь. Наймите опытного программиста, который сделает это за вас, или если вы не можете себе этого позволить, но по-прежнему хотите, чтобы программа достаточно сильно, предложите сотрудничать с одним - вы занимаетесь бизнесом и позволяете ему заниматься программированием. Большинство хороших разработчиков предпочли бы программирование, поэтому такое предложение может стоить им.
Потому что вы уже знаете, что увлечены программированием и хотите узнать больше.
Тогда вы на правильном пути. :-) Является ли это просто хобби или что-то, что вы можете превратить в карьеру позже, если у вас есть такая личность, которая находит его бесконечно увлекательным, лучшее, что вы можете сделать, это погрузиться в это. В таком случае C ++ является таким же хорошим языком, как и любой другой, и наставник определенно поможет (и не только развивает ваши навыки; он может стать одиноким без друзей, которые разделяют вашу страсть).