Я решил научиться программированию. Я читаю SO в течение нескольких дней, и я думаю, что начну с C ++, так как я читаю некоторые статьи. Я немного знаю о циклах, массивах, логике программы и объектах, и мне нужен кто-то, кто бы осмотрел меня и помог мне с небольшими вопросами, которые возникают при выполнении моих первых проектов.
Так вот в чем вопрос - где мне найти такого парня? У меня нет друзей, которые программируют и все такое.
РЕДАКТИРОВАТЬ: 2 года спустя, я все еще ищу наставника. Я не активно код, просто начал 3 месяца снова. Я работаю над программированием Objective-C и iOS и программированием игр с Cocos2d. Если вы хотите стать моим наставником, напишите мне или комментарий.
Ответы:
Присоединение к проекту с открытым исходным кодом, безусловно, является одним из способов начать. Тем не менее, я использую программное обеспечение с открытым исходным кодом в течение многих лет, и, честно говоря, качество почти во всех таких проектах, как правило, в туалет. Если вы полностью овладеете своими навыками программирования и дизайна, вы, вероятно, подберете некоторые очень плохие, наряду с хорошими, без возможности определить разницу между ними.
Чему вы хотите научиться программировать ? Ответ на этот вопрос определит, что вы должны искать и где. Вот некоторые общие ответы, и мое профессиональное мнение о том , как им следовать (иметь в виду , что это просто мнение, хотя ИМХО, точно):
Просто сказать, что вы знаете, как это сделать.
Тогда вам действительно не нужен наставник, и C ++ - плохое место для начала. Я люблю C ++, это мой первый выбор для общего программирования, но вместо этого играть с другим языком. Я бы предложил Python; у него гораздо более мягкая кривая обучения, чем у C ++, и в отличие от некоторых языков (без упоминания названий, сегодня я не носил асбестовое нижнее белье), вы все равно выучите несколько полезных навыков, если захотите углубиться в него позже. Многие концепции могут быть переведены непосредственно на C ++, если вы решите продолжить этот путь.
Просто попробуйте и посмотрите, нравится ли вам это.
Проект с открытым исходным кодом может быть достаточно для этого. Выберите программу, которая вам нравится, но с которой вы столкнулись с некоторыми проблемами или раздражениями, и предложите свою помощь тому, кто ее запускает. Большинство проектов с открытым исходным кодом открыты для участия, поэтому, как правило, именно поэтому они с открытым исходным кодом.
Однако в этом случае не пытайтесь использовать C ++ в качестве первого языка программирования. Не сложно освоить основы, но C ++ достаточно низкоуровневый, чтобы вы могли получить серьезные и очень трудно найти ошибки в своих программах. Если вы уже не знаете, что любите программирование, или вы такой же упрямый, как бык из пословиц, или уже нашли наставника, который может направить вас в правильном направлении, это уничтожит любой зарождающийся интерес, который вы можете иметь в этой области. Посмотрите выше ответ о Python, он лучше подходит для этого.
Потому что у вас есть идея для конкретной программы, которую вы хотите написать.
(Я не думаю, что ОП в этой категории, я помещаю это для более поздних читателей.)
Есть ли у вас представление о времени, необходимом для освоения разработки и реализации программы? Как подсказка, это измеряется годами. Возможно, вам удастся придумать полуприличный дизайн после всего лишь нескольких месяцев обучения, если вы оба умны и чрезвычайно удачливы, но любой, у кого есть небольшой опыт работы над этим (включая вас, позже), сможет Жаль, что ты никогда не родился - я говорю из опыта. :-) Если идея не является настолько сверхсекретной, что никто больше не может знать об этом, пока она не будет сделана, не беспокойтесь. Наймите опытного программиста, который сделает это за вас, или если вы не можете себе этого позволить, но по-прежнему хотите, чтобы программа достаточно сильно, предложите сотрудничать с одним - вы занимаетесь бизнесом и позволяете ему заниматься программированием. Большинство хороших разработчиков предпочли бы программирование, поэтому такое предложение может стоить им.
Потому что вы уже знаете, что увлечены программированием и хотите узнать больше.
Тогда вы на правильном пути. :-) Является ли это просто хобби или что-то, что вы можете превратить в карьеру позже, если у вас есть такая личность, которая находит его бесконечно увлекательным, лучшее, что вы можете сделать, это погрузиться в это. В таком случае C ++ является таким же хорошим языком, как и любой другой, и наставник определенно поможет (и не только развивает ваши навыки; он может стать одиноким без друзей, которые разделяют вашу страсть).
источник
Чтобы найти наставника, не ищите наставника. Попробуйте улучшить себя особым образом. Если вы будете усердно работать над тем, чтобы стать лучше, вы оба обнаружите, что вступаете в контакт с единомышленниками, и обнаружите, что у вас есть что-то общее с этими людьми.
Группы пользователей - это место, где можно найти наставника, но никто не хочет помогать тому, кто там думает: «Я ищу наставника». Но если вы там думаете: «Мне бы понравилось, если бы кто-нибудь помог мне научиться писать хорошие модульные тесты JavaScript» или «Я бы с удовольствием с кем-нибудь пообщался и протестировал ката в Clojure», рано или поздно. Вы найдете кого-то, кто разделяет ваши интересы и немного дальше.
источник
Типы людей, которые делают действительно хороших наставников, обычно имеют дюжину или около того юниоров, тявкающих за свое время в любой момент. Итак, «найти» правильного наставника - это только начало, вы также должны сделать наставничество более привлекательным / полезным, чем наставничество кого-то другого.
Итак, первый шаг - присоединиться к сообществам, где вы можете встретить хороших наставников.
Шаг второй - стать достойным учеником. Некоторые вещи, которые я лично ищу в ученике:
Готовность быть ценной для проекта / сообщества, в котором я наставляю его, посредством:
источник
Присоединяйтесь к проекту с открытым исходным кодом. Вам не обязательно программировать для них. Большинство проектов хотели бы, чтобы кто-то помог с документацией. Вы можете посмотреть код и задать вопросы. Когда вы почувствуете себя комфортно, вы можете начать писать код для них.
источник
Что вы ожидаете от наставника? Предложения проекта с открытым исходным кодом или локальной группы пользователей предназначены для того, чтобы больше узнать о сетях и найти кого-то, кто находится на несколько шагов дальше того, кем вы хотите быть, чтобы они могли помочь вам в некотором роде. Думайте об этом как о попытке научиться готовить у Джейми Оливера или Гордона Рамсея, это может быть довольно увлекательно и полезно в конце дня.
В зависимости от ваших ожиданий может быть легко или удивительно трудно найти наставника. Если вы ожидаете кого-то, кто сможет прочитать ваши мысли и шаг за шагом дать вам секреты того, чтобы быть удивительным через год или меньше, то это может быть нереально. В то же время, если вы хотите найти кого-то, кто мог бы делать что-то лучше, чем вы, это может быть не так сложно сделать, возможно. Итак, сначала выясните, каковы ваши ожидания.
Во-вторых, теперь, когда вы знаете, чего хотите, вы должны это найти. Это может быть довольно сложно, так как не так много мест, посвященных демонстрации разработчиков, использующих их навыки, как у нас есть искусство в Канаде и США, поэтому я и подумал, что это предложение было дано. MentorNetбудет примером программы, которая может работать, хотя я не пробовал ее, я изучал ее некоторое время назад и не думал, что это для меня и того, что я хотел. Еще одна мысль: насколько хорошо твои друзья и семья знают, чего ты хочешь здесь? Они могут знать кого-то или какое-то место, которое может помочь вам, если вы спросите. Хотя это не исчерпывающий ответ, то, что вы спрашиваете, является немного расплывчатым, и, надеюсь, вы сможете добавить к этому больше, и я продолжу, как только вы предоставите более подробную информацию о том, что вы хотите, и как вы хотите, чтобы это было так не Burger King, но мы могли бы попытаться сделать это таким образом.
Экспертов по компонентам серверной части C ++ найти довольно сложно Есть ли поблизости учреждения высшего образования? У тех может быть кто-то, у кого есть те навыки, которые могут быть превращены во что-то другое в качестве возможной идеи. Удачи в поиске этого наставника.
источник
Проекты с открытым исходным кодом хороши для получения отзывов о конкретном коде, который вы добавили, и потенциально новых способах сделать что-то, но, как вы выяснили, это, вероятно, не будет равносильно отношениям наставника.
Я бы предложил то, что вы уже упомянули, и это группы пользователей. Группы пользователей обычно собираются довольно часто, поэтому вы можете получить фактическое время встречи с потенциальными наставниками. Это время может помочь быстрее и легче общаться. Это гарантирует, что все находятся в одном домене? Нет, но вы должны начать где-нибудь. Если вы найдете кого-то, у кого большой опыт, он все равно сможет помочь вам с вашим доменом, просто основываясь на другом опыте, который у них был.
источник
Вы можете проверить свою локальную группу пользователей Linux ( здесь вы найдете список), обычно большинство участников - программисты или, по крайней мере, Perl-хакеры. Плюс, если вы скажете им, что вы там, чтобы найти наставника по программированию, они будут любить вас.
Пост на Craigslist может стоить попробовать, но я бы не стал на это ставить.
Кроме того, если вы находитесь в Германии, есть несколько мест, которые я могу предложить, в частности.
источник
Учитывая, что вы зарегистрированы в Stack Exchange, у вас уже есть много неформальных наставников. Вы можете легко задавать вопросы или проверять свой код многими людьми, которые хотят помочь.
Более локально, если вы хотите наставничество или преподавание лицом к лицу, отличные варианты включают в себя:
источник
я думаю, что форумы были бы лучшим способом найти некоторых людей с опытом в этом вопросе. Я считаю, что вы должны начать там.
Посетите несколько сайтов на С ++ в Google или, может быть, у нашего дорогого друга stackoverflow, где есть множество ниндзя C ++, готовых ответить на ваши вопросы!
источник
Обучение программированию является амбициозным и (я думаю, что все на этом сайте согласятся) благородным делом. Тем не менее, это трудно начать с нуля и учиться, даже с наставником. Я думаю, что вы обнаружите, что лучшим вариантом будет пройти хотя бы несколько вводных уроков, чтобы дать вам основу.
Наставник - отличная идея, и я бы не стал здесь более 15 лет как программист без парня, который мирился с моими вопросами на моей первой «настоящей» работе, но на самом деле, один человек не сможет чтобы дать вам время и рекомендации, вам нужно стать успешным программистом. Он или она, вероятно, будут работать на полную ставку (или загружать курс) сами. Это не значит, что вы не должны найти наставника (или наставников), просто вам нужно что-то еще.
Такие сайты, как онлайн-учебники, книги, и все остальное - кусочки головоломки. Образование составляет пограничные фигуры.
Это не означает, что вас обескураживают; напротив, я думаю, что установление реалистичных ожиданий даст вам больше шансов на успех.
источник
Если вы работаете в компании, вы можете найти там наставника.
Что касается проекта с открытым исходным кодом, я сомневаюсь, что вы найдете наставника для проекта, который вы создаете, но вы можете найти его в проекте, который они создали.
Не забывайте, что они также должны получить что-то от этой договоренности. Они проводят свое ценное время, помогая вам. Будьте готовы сделать некоторую работу для них в обмен.
источник
«Как мне найти программиста? Это все, чего я хочу. Я просто хочу создать огромную армию роботов, чтобы захватить весь мир. Я умен и написал ИИ. У меня есть деньги, влияние, Я просто не могу смириться с этой отвратительной глупостью .NET или JVM ... Хм ... Как ... Как ?! Черт! "
Обычно я бы этого не объяснил, но мы в стеке. Некоторым людям это буквально нравится. Вы находите одного (наставника), будучи полезным. Вы можете быть полезны, решая проблемы, которые дети с опытом (или - может быть - мозги - или (хе) деньги) не хотят решать.
Решить эти проблемы кузнечик.
Или нет. Это информационный век. Сделай сам мой друг. Обращайтесь к сообществам, таким как Stack, чтобы сказать вам, когда вы глупы или мудры в отношении чего-то, связанного с кодом, или чего-то такого, что мы не так легко воспринимаем как махинации того инвестора, который готов вас обмануть, а затем и некоторых.
И поделитесь тем, что вы знаете. Немного поучаствуйте в коллективе, как только вы найдете свою канавку. Это не кузнечное дело в 1700-х годах. Твоим родителям не нужно было никого знать (хотя, конечно, все ценят, когда ты не собираешь себе ремесленные знания и не делишься с гильдией).
Вы просто решаете, что вы заинтересованы, и вы идете. Довольно чертовски расширяет возможности, когда это входит. Это занимает некоторое время (я знаю), но, поверьте мне (если только в этом, казалось бы, абсурдном моменте - мне потребовалось более десяти лет, чтобы понять, что да, я был чертовски программистом), все это действительно важно то, что у вас есть базовый уровень таланта и что вы на самом деле заинтересованы. Если нет, пожалуйста, @ # $ off и найдите то, что вас интересует.
Потому что иначе программирование / скриптинг / кодирование - ужасный выбор. Но я не хочу оставлять это на отрицательном, неприятном моменте. Если вам интересно, не беспокойтесь о том, насколько вы хороши. Задавать вопросы. Требуйте ответов. Смирись с такими затянувшимися сумками, как я. Вы попадете туда, если хотите.
Тебе нравятся головоломки? Вам нравится решать произвольные случайные задачи? Вам нравятся гладиаторские фильмы? Однозначно по первым двум пунктам, да? Не ищите наставника. Выучите один язык очень хорошо, выучите один или два других, которые не слишком похожи на ваш родной язык до точки начального уровня, хорошо прочитайте несколько книг и получите некоторые мнения. Наслаждайтесь оспариванием их и изменяйте их время от времени, даже если только для того, чтобы убедиться, что вы не ошиблись. Вы можете быть удивлены, как часто ваши инстинкты не так уж и плохи. Попросите людей выйти и дать вам пощечину за то, что вы задали неправильный вопрос, и вы можете обнаружить, что знаете лучше, чем большинство тех, кто подходит к этому случаю. Но в основном это проблема, которую нужно решить. Реши это.
источник
Для наставника, пойдите freenode (irc). Клянусь, вы можете получить большую часть степени CS из этого места, полезного на любом уровне квалификации. Вот где я многому научился. Не имеет значения, находится ли человек на этом канале один раз или круглосуточно, это в режиме реального времени, и это главное.
И, как говорили большинство других, не делайте C ++. Вместо этого начните со статически типизированного языка для сбора мусора и не переходите к ручному управлению памятью до тех пор, пока вы не узнаете достаточно, чтобы фактически победить сборщик мусора. Вы можете написать чертовски быстрый Haskell или OCaml, если попытаетесь.
источник