Профессиональный программист, работающий полный рабочий день, может сделать большую работу, постоянно учась на своей работе. Как программист-любитель может стать хорошим программистом?
** Если вам нравится играть музыку или петь, вы можете сделать это, потому что это ваше хобби, и вы заинтересованы, и вы можете стать хорошим певцом или музыкальным проигрывателем. Но вам не нужно становиться профессиональным певцом или заниматься пением для жизни. Это также верно для программистов? Любой программист-любитель, который знаменит?
Ответы:
Ключом к тому, чтобы стать действительно хорошим, является работа в хорошей команде. Многие любители работают в одиночку, поэтому они зашли так далеко. В команде вы учитесь у других, и вы становитесь дисциплинированными, потому что ваши сверстники будут поражать вас тем, что пригодится в противном случае.
По этой причине я предлагаю вам присоединиться к команде, например, к проекту с открытым исходным кодом, или создать хобби-проект с несколькими друзьями.
источник
Путь к тому, чтобы стать хорошим в программировании, такой же, как и для пения или воспроизведения музыки: практика, практика, практика. Если вы тратите достаточно времени на регулярную разработку программного обеспечения в течение нескольких лет, скорее всего, у вас это получится, будь то в рабочее или нерабочее время.
Теперь, помимо того, что я трачу больше времени на занятия, есть еще одна причина, по которой профессионалы в определенном смысле становятся лучше, чем любители (как в музыке, так и в программировании). Если вы профессионал, вы должны выполнять задачи, которые вам не обязательно нравятся, но относятся к более широкой работе по разработке программного обеспечения (например, тестирование, обсуждения с клиентами, написание документации, настройка среды разработки / разработки, написание сценариев сборки и т. Д.). ). Время от времени вас также заставляют шагать в незнакомые области, изучать новые языки или платформы. Как любитель, вы не обязаны делать то, чего не хотите, что делает вероятным, что вы останетесь в своей зоне комфорта большую часть своей жизни. Другими словами, вы можете легко ограничиться одной или несколькими конкретными областями, которые вам больше всего нравятся,
OTOH многие профессиональные разработчики тоже попадают в это, оставаясь в одной и той же компании, выполняя ту же рутинную работу, с трудом изучая что-то новое в течение десятилетий ... Так что ключ к улучшению - это ваше отношение. Если вы продолжите учиться и осознанно будете искать возможности выйти из своей зоны комфорта на новую, незнакомую территорию, вы в конечном итоге превзойдете эти рой медленно окаменевших «профессионалов». Хорошим способом для этого может быть участие в некоторых проектах с открытым исходным кодом.
Рекомендуемое чтение - «Прагматичный программист: от путника до мастера» , с множеством полезных и очень практических советов о том, как стать лучше.
источник
Вы становитесь лучше, учась, что частично делает, частично отражает то, что было сделано.
В общем, нет никакой разницы между любителями и профессионалами, но «подводные камни» устроены немного иначе.
Любительские Подводные камни, imho
необходимость завершить ваш проект, несмотря ни на что, не так сильна, когда вы не профессионал . Это может быть хорошей вещью, потому что вы не привыкнете сокращать углы, когда дело доходит до качества, но отделка (вообще! Вовремя даже лучше) - очень важный навык, который труднее тренировать как любитель, потому что легко просто позволить проекту умереть и начать другой.
необходимость хорошо общаться не так сильна. В профессиональном проекте есть сильный стимул, чтобы по-настоящему понять клиентов, даже если они совершенно не в состоянии составить всего одно связное предложение о том, какую проблему они хотят решить. Если вы их неправильно поняли или (в обычном случае) не заметили, что они не говорят о том, что вам нужно понять, это станет вашей проблемой, рано или поздно. Любительский проект может легко потерять всех потенциальных пользователей из-за нерешенности их проблем и быть «законченным» в техническом плане.
Профессиональные ловушки
часто мало мотивации, чтобы стать лучше . Вы там 40 часов в неделю, независимо от того, нашли ли вы лекарство от рака или просто пьете кофе таким образом, который выглядит продуктивно. Обучение - это то, что вы делаете в основном для себя, и часто, если вы пытаетесь применить то, что вы узнали, против этого действуют силы (консервативное групповое мышление, иерархии, даже руководства по стилю можно использовать как оружие против улучшений). Профессии нужно много любви, чтобы не просто бросить ее, взломать часы и искать альтернативные цели в жизни.
часто есть чему поучиться . Да, один МОЖЕТ попытаться принять все как вызов, но мы должны быть честными: после 1 года использования кода Спагетти вам не разрешается проводить рефакторинг («вы усложняете это!») На языке, который у вас есть больше лет Из опыта, в котором он, вероятно, просуществует, единственное, чему он научится, - это проявить терпимость к разочарованию и корпоративной политике
Вам, конечно, не нужно, но сколько музыкантов отказались бы от возможности уйти с работы и заработать на музыке?
В ИТ эти возможности немного более вероятны, чем в музыке, поэтому я думаю, это не значит, что невозможно стать известным любителем, но часто любители делают свою страсть своей работой (с аналогичными проблемами, которые возникают у музыкантов, когда им приходится выяснить их грань между коммерцией и искусством)
источник
Боюсь, что для любителей больше возможностей для обучения, чем для корпоративных дронов. Как любитель, вы не ограничены какой-либо технологией, средой, дизайном и разработкой. Вы можете делать все, что считаете полезным для вашего личного развития. Как разработчик, работающий полный рабочий день, вы, вероятно, будете работать над одним и тем же продуктом в течение многих лет, следуя той же процедуре, ограниченной теми же корпоративными правилами. Для большинства из нас это не что иное, как застой. Из корпоративной среды можно немного узнать, когда вы ознакомитесь с общими основами.
Вот почему многие разработчики, работающие полный рабочий день, также являются любителями, они продолжают писать код после работы, играют в свои собственные игрушечные проекты - это немного свободы, необходимой для роста.
источник
Как программист-любитель, у вас есть много возможностей улучшить свои навыки. Я сделал следующее, чтобы улучшить свои навыки во время изучения программной инженерии.
Конечно, вы также должны применять свои знания. Сделайте это через стажировку, проект с друзьями или учебный курс. Есть много способов улучшить себя, вы просто должны посвятить свое свободное время. Кроме того, получайте удовольствие, узнавая что-то новое !
источник
Да, это возможно , однако это занимает много времени:
Опять из того же источника :
источник
Как любитель, у вас есть больше возможностей для поиска лучших практик, чем у многих профессионалов. Профессионалы часто находятся под давлением, чтобы «просто сделать это».
Я не видел никаких курсов, на которых я учился программированию, но я учился на некоторых коротких (1-3 часа) бесплатных курсах, представленных университетом, в котором я учился. Они были предназначены для того, чтобы дать возможность деловым людям понять код, написанный для них. Курсы представили очень хорошо написанный код (включая комментарии), который решил обычную проблему в реальной жизни. Код был затем рассмотрен с объяснением особенностей языка и почему они были использованы так, как они. Ни один из курсов полного языка, которые я видел, не привел к созданию кода, близкого к качеству того, что я выучил из этого курса. Прошло несколько лет, прежде чем я переключился на изучение компьютерных наук.
Интернет и библиотека предоставляют множество ресурсов и примеров. Я нахожу, что многие примеры не очень хороши ни для чего, кроме как сделать это. Когда вы смотрите на примеры, сначала посмотрите на код. Можете ли вы понять его цель и структуру без объяснения причин? Если так, возможно, вы нашли хороший пример.
Некоторые ключевые практики, которые вы должны изучить и применять:
источник
Не за что. Это программное обеспечение инжиниринг . Это не основано на "естественном таланте". Быть великим программистом основано на многолетнем образовании и многолетнем опыте . Вы только получаете это, работая над реальными проектами .
источник
На собеседованиях, на которых я был (со стороны работодателя), я всегда спрашивал, что собеседник программирует как любитель (кроме школьных заданий) - это было явным признаком подлинного интереса в этой области и наличия страсть учиться самостоятельно. Это не только возможно, это почти требование для того, чтобы стать хорошим.
источник
Является ли это возможным? Да. Тем не менее, чем больше времени вы тратите на программирование, тем больше времени вам нужно для этого. Говорят, что требуется 10 лет / 10 000 часов совещательной практики, чтобы развить опыт в области технических навыков Это не 10 000 часов выполнения такого же вида кодирования в вашей зоне комфорта (например, написание простого кода JQuery для различных веб-сайтов), а 10 000 часов обучения / чтения по программированию / чтению исходного кода / написанию исходного кода / изучению других языков / работа с другими и т. д.
Если вы собираетесь посвятить этот уровень времени этому; Вы также можете получить работу программиста и отказаться от статуса любителя. (Если вы не являетесь независимо богатым).
источник
Каждый любитель во всем в одной точке. Если вы хотите стать хорошим программистом, и это то, чем вам нравится заниматься, вы это сделаете. Ключ программирует самостоятельно. Школа вас ничему не научит. Большая часть вашего обучения будет сделано самостоятельно и на работе. Если хочешь быть хорошим, иди хорошим.
источник
учитывая
реальноепервоначальное значение этого слова (французское любительское «любитель», из старофранцузского и, в конечном счете, из латинского amatorem nom. amator , «любовник» - Википедия), хотелось бы полагать, что большое количество профессионалов также являются любителями. Если вы не любите свое ремесло, вы бы практиковали его?Конечно, это возможно - если вы любите программирование, вы будете его практиковать, и со временем у вас это получится. (Может быть, никогда не бывает великим, учитывая личные таланты или их отсутствие), но, по крайней мере, хорошо
источник
Я не то, что определяет хороший программист. Но изучать что-то свое и работать с группой людей - это нечто другое. Страстные программисты-любители действительно в изучении новых вещей и взлома. Там они находят вещи интереснее. Но работа с группой людей - это слегка дисциплинированный акт, когда вы сотрудничаете, общаетесь, делитесь / получаете информацию от экспертов в этой области.
Но получение знаний - это дело страсти. Есть люди, которые провели ночи, чтобы самостоятельно изучить материал и, в конце концов, принести в мир что-то новое, например, Билла Дж. Марка Цака и т. Д. Сложно сравнить. но если вы хотите стать лучшим инженером-программистом (я не буду называть программиста), присоединяйтесь к компании или работайте над некоторыми хорошими продуктами, которые используются другими.
Наконец прочитайте много, чтобы улучшить свои навыки, отношение, обновления в отрасли, развить вкус и идти со страстью. Вещи легко последуют за вами!
источник
На вопрос: "Любые программисты-любители стали знаменитыми?" Ответ: «Да, но большинство так не осталось». Самый известный пример, который я могу вспомнить, - это Рой Филдинг, который выполнял некоторые из своих самых важных работ, пока (я считаю) неоплачиваемым в университете (любительское означает неоплачиваемое по определению).
Хитрость в профессиональном качестве заключается в том, чтобы иметь наставника или набор наставников (таких как команда в проекте с открытым исходным кодом) и серьезное посвящение времени теме. Как бывший профессиональный музыкант, мой опыт показывает, что оба они необходимы, чтобы быть хорошими как профессионалами, так и любителями. Некоторым можно научиться по книгам, но без постоянной внешней критики становится очень трудно избавиться от вредных привычек, приобретенных новичком.
Тем не менее, в случае с программистом, его гораздо легче выучить, чем у музыканта. По моему опыту, как музыканту, музыканту гораздо сложнее увидеть ваши педагогические ошибки, чем код, который просто не работает С другой стороны, для того, чтобы стать хорошим разработчиком, требуется значительно больше времени.
источник
Как и все остальное, лучший способ стать лучше - погрузиться в среду, в которой вы хотите стать хорошим, и окружить себя людьми, намного превосходящими вас, которые готовы терпеть вас и учить вас. Это нелегко сделать, но я обнаружил, что это лучший способ научиться быть хорошим в чем-то быстром.
Но когда дело доходит до того, чтобы быть по-настоящему одаренным программистом, вы должны быть именно таким, одаренным. Если вы не по-настоящему талантливый скрипач, вы никогда не будете так же хороши, как мастера, независимо от того, как сильно вы стараетесь или какой инструмент покупаете. Точно так же, если у вас нет такого дара, который делает программистов по-настоящему гениальными, вы никогда ими не станете.
источник