Я не программирую в свободное время. Это делает меня плохим разработчиком?

387

Кажется, что многие блоги и советы в Интернете говорят о том, что для того, чтобы стать великим разработчиком, недостаточно просто выполнять свою повседневную работу. Например, вы должны участвовать в проектах с открытым исходным кодом в свободное время, писать приложения для смартфонов и т. Д. На самом деле многие из этих советов говорят о том, что если вы не любите программирование настолько, чтобы заниматься им весь день, то вы вероятно, в неправильной карьере.

Это не звучит правдоподобно со мной. Мне нравится моя работа, но когда я прихожу домой из офиса, у меня нет настроения прыгать обратно в компьютер и начинать кодировать до сна. У меня есть только определенное количество часов свободного времени каждый день, и я предпочел бы потратить их на другие увлечения, встречи с друзьями или выход на улицу, чем за компьютером.

Я получаю удовольствие от программирования и время от времени хожу вне работы. Я занимаюсь своим личным развитием и провожу время за чтением технических блогов и книг, чтобы продолжать учиться и становиться лучше. Но это не распространяется на то, что я хочу использовать все свое свободное время для кодирования.

Значит ли это, что я не «настоящий» разработчик программного обеспечения в душе? Можно ли стать хорошим разработчиком программного обеспечения, не занимаясь чем-то еще вне своей работы? Мне было бы очень интересно услышать, что вы думаете.

Обновление: спасибо всем за ваши комментарии и ответы. Много хороших мыслей и советов!

not-my-real-name
источник
133
Я думаю, что это делает тебя более нормальным, у тебя, вероятно, больше связи с тем, что мы, гики, называем «реальной жизнью». Цените это.
Orbling
146
@Orbling О какой «реальной жизни» ты говоришь? Это похоже на WoW? Работает ли он на 64-битной ОС?
Бизиклоп
18
@biziclop - Это как WOW с лучшей графикой и геймплеем, который намного утомительнее.
ChaosPandion
39
@ChaosPandion: квесты затягивают р / л, долго, скучно, и добыча определенно не эпическая.
Orbling
4
Ради эффективности я рекомендую экспериментировать с новыми вещами и работать над личными проектами, когда вы должны работать. Таким образом, у вас все еще есть ограниченное свободное время. :-)
Carson63000

Ответы:

446

ИМО, это отношение исходит от людей, у которых ужасная, сосущая душу работа в сочетании с плохими навыками тайм-менеджмента. Если вы в основном печатаете веб-формы весь день, выходите на работу и ищите более сложную работу, или начинайте свою собственную.

Вот вещь Концертный музыкант (виолончелист / пианист / что угодно) будет заниматься не более 6 часов в день. Большинство практикуют только несколько часов в день. на самых высоких уровнях

Люди говорят, что программы больше, потому что вы учитесь больше, но это дымовая завеса. 8 часов в день достаточно .

Прогресс НЕ является линейным. Это логарифмический

введите описание изображения здесь

Единственная причина, по которой музыкант может заниматься дольше 3 часов, заключается в том, что ему нужно выжать лишние 1%, которые дают им эти часы. Если вы думаете, что это относится к вам, решая проблему CS, решенную 2 десятилетия назад, то у вас есть комплекс prima-donna для загрузки.

Я работал в компаниях по скороварке и, поверьте мне, фактический объем работы, которую выполняют эти парни, ничуть не лучше, чем компания, подобная 37signals, которая накладывает ограничения на объем работы: http://37signals.com / SVN / сообщений / 996-почему-я-любовь-рабочий с семью-людей

То, что в итоге происходит, так это то, что вы можете быть за компьютером в течение 10-12 часов, а в офисе - еще 2, но это не включает 90-минутный обед, который вы взяли, 2 часа, которые вы провели, просматривая обсуждение форумы, и час перерыва вы должны были играть в одну из многих игр, выложенных в офисе (настольный футбол, бильярд, яда ...).

Оглянись на этот график. Теперь вернемся ко мне.

Ваш ум на самом деле имеет возможность гораздо больше расширяться, если вы вовлекаете его в какое-то другое занятие: учитесь играть на музыкальном инструменте . Выучи иностранный язык . Еще лучше выйти и получить немного упражнений, и общаться с реальными живыми людьми .

По логарифмической природе производительности:

В известном исследовании молодых скрипачей, проведенном в 1993 году, исследователь производительности Андерс Эрикссон обнаружил, что все лучшие из них практиковали одинаково: утром, с тремя приращениями, не более 90 минут каждый, с перерывом между ними. Эриксон нашел такую ​​же модель среди других музыкантов, спортсменов, шахматистов и писателей.

Для реальной производительности меньше значит больше

Это на самом деле хорошо известный принцип в мире бизнеса, я удивлен, что больше программистов об этом не слышали.

Обновление: Подробнее об исследовании Ericsson.

Идея о том, что для освоения требуется 10 000 часов / 10 лет, на самом деле основана на исследованиях, проведенных Ericsson, а не Malcom Gladwell.

Как мы все знаем, 1 год опыта можно повторить 10 раз ... так что просто сидеть на заднице 10 лет не может. Что же право является то , что Ericsson требует осознанной практики .

Он нашел этот принцип справедливым в легкой атлетике, музыке, письме, шахматах и ​​математике. Кроме того, он определяет преднамеренную практику как настолько усердную, что даже на самых высоких уровнях вы можете работать только около 4 часов в день . В противном случае вы будете страдать от перетренированности или выгорания. Опять же, он признает, что отдача от преднамеренной практики уменьшается , примерно до 4 часов.

На предмет отсутствия хорошей / сложной работы:

Фигня. Либо найдите лучшую работу, либо вот идея: превратите свою текущую работу в то, чем она не является , по крайней мере, прямо сейчас.

Один из лучших моих знакомых программистов пришел на работу программистом по обслуживанию устаревшей системы, состоящей из десятков программ и сотен тысяч строк кода. Большинство из которых были взломаны за эти годы настолько, что вы могли бы сказать, что не было никакого последовательного дизайна для него больше.

Это была почти бесполезная, тупиковая работа. Менеджмент хотел, чтобы вы держали свою голову и просто исправляли эти чертовы ошибки. Хорошие разработчики работали над новым проектом. Люди либо приходили сюда, чтобы провести оставшиеся дни до выхода на пенсию, либо приобрели несколько лет опыта, прежде чем приступить к разработке новых приложений. Принимая во внимание, что большинство программистов будут жаловаться на отсутствие карьерного роста, или на возможность изучать новые вещи, или на отсутствие захватывающих проектов для работы, или, в более общем смысле, просто на смех, когда никто не позволяет им , этот парень просто сел и начал заниматься работа, которую нужно было сделать.

И в течение двух лет он превратил эту систему из гадкого адского кода спагетти в нечто прекрасное и функционирующее как швейцарские часы. Преобразование было настолько полным, что вице-президент подразделения стал уделять больше и больше внимания существующему проекту и начал сомневаться в ценности проекта «с нуля». Несмотря на то, что у него не было титула, операционные люди обращались к нему как к фактическому лидеру группы. Когда я ушел, вице-президент говорил о создании новой роли для него как системного архитектора ...

Я не уверен, что случилось с ним после этого, но он преподал мне пару очень важных уроков:

  1. Ваша работа - это то, что вы делаете, и везде есть интересные проблемы, которые нужно решать . Если вы ненавидите писать экраны CRUD, решите проблему, автоматически создавая их.

  2. Не сидите в ожидании возможности прийти к вам. Скорее всего, они никогда не будут.

красная грязь
источник
Комментаторы: комментарии предназначены для уточнения, а не для расширенного обсуждения. Если у вас есть решение, оставьте ответ. Если ваше решение уже опубликовано, пожалуйста, подпишите его. Если вы хотите обсудить этот вопрос с другими, используйте чат . Смотрите FAQ для получения дополнительной информации.
30
В этом и многих других ответах слишком много внимания уделяется программированию как практике. Продолжайте сравнение музыкантов, хотите верьте, хотите нет, но на самом деле они также играют для удовольствия. Интервьюеры, ищущие кого-то, кто ищет программы в свободное время, - это не тот, кто чувствует постоянную необходимость постоянно практиковаться. Они ищут кого-то, кто страстен и действительно наслаждается тем, что они делают. Если вы увлечены своей работой, вы также часто превращаете ее в хобби, и от нее трудно избавиться. Это ничем не отличается от любого другого хобби.
7
Пример музыканта не очень хорош. Когда музыкант достигает высокого уровня квалификации, когда он изучил всю теорию, когда он может составлять песни с закрытыми глазами, когда он может играть более 9000 инструментов одновременно, ему больше нечего делать. Программист или компьютерный инженер должны узнавать о новых технологиях всю жизнь. Всегда есть что-то новое, чтобы узнать. Итак, отвечая на вопрос, парень, который программирует весь день и не имеет социальной жизни, гораздо лучше, чем парень, который не программирует в свободное время.
2
@GabrielLlamas Теории музыки - это базовые вещи, такие как основы алгоритмов, распределенных вычислений и операционных систем, которые мы изучаем в колледже. Эти основы не сильно меняются со временем. Примерно через 20 лет у нас уже была модель клиента и сервера, и теперь у нас все еще есть модель клиента и сервера. Таким образом, основы клиента и сервера все еще применяются, просто вещи высокого уровня быстро меняются. Вы можете думать о разных инструментах как о разных технологиях, таких как HTML, Javascript. Но если вы сможете применять основы, то все будет аналогично.
Дэвид Гао
1
Другой пример: когда вы знаете, как программировать на c, изучение c ++ не составит труда. Я помню, что решил вопросы программирования моего соседа по комнате, используя схему, не зная никакой схемы. Изучение схемы было совсем не сложно для меня, потому что я знаю на высоком уровне, что такое функциональный язык.
Дэвид Гао
150

В этом сообщении скрыто больше

Многим программистам-энтузиастам нравится исследовать вещи, экспериментировать, следовать их идеям, вот как мы учимся и получаем свои навыки и видение.

Обычно вы не можете следовать своим интересам в рабочее время. Вы просто делаете то, что вам говорят, и все. Лишь немногим из нас повезло сделать на работе то, что мы сделали бы лично, даже если бы не заплатили.

Поэтому, если вы не делаете ничего лишнего, вы не развиваете свой потенциал. И это именно проблема.

user8685
источник
2
Ничего себе, это огромное облегчение, так как иногда я чувствую, что мне интересно узнать о другом аспекте программирования, но работа просто заставляет все чувствовать себя как размол.
melaos
3
Правда. Следует помнить о любых соглашениях об изобретениях, которые вы могли подписать во время приема. Мы не пользовались ими, но у меня было устное соглашение с моими программистами: если это нерабочее время и оно напрямую не конкурирует с компанией, тогда хорошо проведите время. Я даже не возражал, если бы они использовали оборудование компании, хотя было общее мнение, что было бы "чище" держать его дома.
Питер Роуэлл
3
Хорошо следовать вашему любопытству вне часов. Это может быть связано с тем, как автоматически развернуть следующую версию Windows в течение всей вашей компании в одночасье (Mwah hah hah). Или это может быть фотография, пивоварение или гребля. Внешние интересы делают вас более округлым человеком. Это НЕ ДОЛЖНО быть связано с вашей повседневной работой.
fast_now
5
-1 Как уже отмечали другие в других ответах и ​​комментариях, это означает, что вы не можете реально получить хорошую, веселую и сложную работу. По моему личному опыту это не так. До сих пор я узнал много нового в большинстве моих работ. ИМХО, это вопрос личного отношения хотя бы столько же, сколько и корпоративной культуры.
Петер Тёрёк
26
Если вы любите программирование и не наслаждаетесь своей работой, вы должны тратить свое свободное время на поиски лучшей работы.
nikie
70

Это не делает вас плохим разработчиком, но, к сожалению, вам все равно придется соревноваться с теми, кто это делает.

Прочтите это из блога Сета Година :


необоснованный

Неразумно вставать с постели в снежный день, когда школу отменяют, и превращать время простоя в шесть часов работы в дополнительной кредитной лаборатории по физике.

Неразумно запускать технологический продукт, который перескочит кривую развития на девять месяцев, и вывести следующее поколение намного раньше, чем более разумные конкуренты.

Для автотранспортной компании нецелесообразно отвечать на телефонные звонки при первом же звонке.

Неправильно начинать новую компанию без того, чтобы венчурное предприятие могло принести деньги.

Неразумно ожидать, что в кабинете врача будет приятный и услужливый персонал на стойке регистрации.

Неразумно уходить от хорошего концерта в современной экономике, даже если вы хотите сделать что-то смелое и оригинальное.

Для учителей неразумно ожидать, что мы сможем дать возможность детям из малообеспеченных районов города хорошо учиться в старшей школе.

Неразумно относиться к своим коллегам и конкурентам с уважением, учитывая давление, которое вы испытываете.

Неразумно ожидать, что кто-то, кроме великой женщины, обладающей драйвом и преимуществами, сможет сделать что-то важное в мире, где колода составлена ​​против обычных людей.

Неразумно тратить годы своей жизни на создание продукта, который большинство людей никогда не оценят.

К счастью, мир наполнен неразумными людьми. К сожалению, вам нужно соревноваться с ними.

Райан Хейс
источник
13
Да, это также неразумно работать 8 часов в день, а затем идти домой, чтобы работать еще немного. На кого ты работаешь? И почему? Вам нужно ответить на эти вопросы (кто платит? Почему? Чтобы получить что?) Если вы морально устали к концу дня, лучшее, что вы можете сделать для себя, - это что-то еще!
quick_now
37
Вы делаете предположение, что разработчики не сталкиваются с трудностями на работе и не наслаждаются своей работой. Неправда. Люди, которые только программируют на работе, не программируют дома, потому что они уже полностью удовлетворены
Никто
8
-1 потому что а) цитаты не имеют прямого отношения к этому вопросу, б) ИМО (большинство) эти вещи не являются необоснованными вообще. Многие разумные люди могут думать как о долгосрочной, так и о краткосрочной перспективе. OTOH у большинства из нас есть опыт в изобретении хороших (и фальшивых) рациональных объяснений нашей лени / некомпетентности / небрежности :-(
Péter Török
13
-1 Неразумно называть множество разумных вещей неразумными. Это ничего не добавляет к вопросу и звучит нормально, в основном, как многие вещи, которые пишет Сет Годин.
Vitor Py
5
«Необоснованно ожидать, что в кабинете врача будет приятный и услужливый персонал на стойке регистрации». Нет, это не так. Что неразумно, так это то, что доктора обвиняют себя в том, что они делают, а затем подвергают нас грубому офисному персоналу, долго ждут в своих комнатах ожидания в офисе и проявляют неуважение к себе лично.
GreenMatt
57

Чтобы ответить на поставленный вопрос: отсутствие программирования в свободное время не делает вас плохим разработчиком, однако программирование в свободное время может сделать вас лучшим разработчиком.

Программирование в свободное время, безусловно, не повредит вашим навыкам, но вы не должны чувствовать себя обязанным делать это. Программирование кажется относительно уникальной областью, потому что для многих людей это - и их работа, и их хобби, поэтому им нравится программировать в свободное время.

shortkaik
источник
8
Программирование не уникально, потому что это и карьера, и хобби. Пара примеров: я однажды знал, что у нескольких пилотов есть свои маленькие самолеты, на которых они летают ради удовольствия. Я знаю профессиональных астрономов, которые смотрят в сторону.
GreenMatt
4
Под « относительно уникальным» я подразумевал, что он один из немногих, но, конечно, не единственный. Я знаю гораздо больше людей, которые, хотя и могут получать удовольствие от своей работы, не будут тратить время на занятия, когда им не платят. Часто трудно получить работу, занимаясь тем, чем вы увлечены.
shortkaik
1: Технология, языки и методы меняются так часто и так быстро. Программисты должны потратить некоторое время на оттачивание своего мастерства. // Смежный вопрос: Вы бы чувствовали себя комфортно с PCP, который не читал медицинские журналы?
Джим Г.
Я думаю, что этот ответ лучше всего описывает ситуацию. Но это полностью зависит от ситуации. Если ваша работа удовлетворяет все ваши потребности в программировании, с точки зрения подталкивания себя в ногу с технологиями и т. Д., Вам гораздо меньше нужно работать в свое время. Тем не менее, если ваша работа довольно проста с использованием более старых технологий, то следует потратить некоторое время на улучшение своих навыков и знаний в свое время.
Неллиус
@shortkaik «программирование в свободное время может сделать вас лучшим разработчиком» - это не всегда так. Если вы испытываете трудности на работе, то если вы также программируете дома, это будет способствовать вашему утомлению и утомлению больше, чем вашим навыкам, а также может нанести ущерб вашей производительности на работе. С другой стороны, если вы не удовлетворены тем, что дает вам ваша работа (и забирает у вас), дополнительное кодирование после нее может быть хорошим решением.
23

Нет, это не делает тебя плохим программистом. В зависимости от того, что вы делаете, это может сделать вас лучшим программистом в долгосрочной перспективе. В начале вашей карьеры это может повлиять на то, как быстро вы освоите различные навыки, которые вам нужны. Тем не менее, вы можете приобретать навыки и информацию, которая поможет в долгосрочной перспективе. Выполнение некоторых упражнений также не повредит.

Существует немало исследований, которые показывают, что производительность повышается примерно до 40 рабочих недель. Хотя мы можем работать в течение некоторого времени, работая дольше, в долгосрочной перспективе мы теряем эффективность. Исследование, которое я видел, показывает, что люди, работающие 80 недель, примерно так же продуктивны, как и те, кто работает 40 часов в неделю.

Есть несколько вещей, которые вы можете отразить в нерабочие (или в нерабочие часы), которые могут помочь вам работать лучше:

  • Что делаешь? Вы можете сделать это лучше? Вам нужно это делать?
  • Что ты изучаешь? Что вам нужно выучить?
  • С какими проблемами вы сталкиваетесь? Кто лучше их разрешит? Что ты можешь сделать?
BillThor
источник
Программирование как хобби не означает работать в нерабочее время над бизнес-работой - это определенно не масштабируется. Но программирование игры на iPhone в ObjC как хобби может улучшить ваши навыки и общую производительность на работе (если работа, например, написание финансовых приложений на Java EE).
Хайко Рупп,
@Heiko Правда, но есть множество других навыков, помимо программирования, которые могут сделать вас лучшим программистом. Хороший разработчик имеет много навыков помимо программирования.
BillThor
Конечно :) Я имел в виду "максимальную производительность на 40 часов" - это звучало так, как если бы вы занимались программированием в 5 часов, вы можете работать только 35 часов. Что я не считаю правильным
Хейко Рупп
1
@ Heiko Если работа достаточно отличается, то вы можете сделать оба. Первые пару лет после выпуска я регулярно превышал 40 часов в неделю, но применял самые разные навыки. Многому научился и, похоже, не попал в стену спектакля. К счастью, у меня был друг, который вытащил меня из офиса когда-нибудь вечером. В другом проекте я пошел домой в 2 часа дня, когда понял, что ничего не достиг с 10 часов утра. Все еще выставлено 4 часа.
BillThor
15

Можно ли стать хорошим разработчиком программного обеспечения, не занимаясь чем-то еще вне своей работы?

Определенно.

Это может занять больше времени, чем если бы вы потратили дополнительные часы, оттачивая свое мастерство. Мне также было трудно уделять достаточно времени самосовершенствованию, если я работаю полный рабочий день и мало занимаюсь программированием в нерабочее время.

Когда я был моложе, я тратил на изучение гораздо больше времени, чем сейчас. Концепции, которые я использую изо дня в день, глубоко укоренились на этом этапе, и кажется, что легче получить дополнительные знания с этим опытом под моим поясом.

«Хорошие» программисты, кажется, тратят на дополнительные часы больше времени, потому что они навязчивы по своей природе, стремятся к антисоциальному концу спектра и искренне любят программирование и весь цикл решения проблем.

Квентин-starin
источник
13

В общем, все дело в том, чтобы найти правильный баланс в жизни.

Важно то, нравится ли вам программирование и продолжаете ли вы учиться независимо от того, на каком уровне вы находитесь. Независимо от того, программируете ли вы вне работы, вы автоматически не становитесь «хорошим» или «плохим» программистом.

Чтобы дать личное представление, я программирую около 25 лет (сначала в детстве, а потом профессионально). Я очень люблю это.

Однако я почти никогда не программирую вне работы. Это связано с несколькими вещами:

  • Мне очень повезло, что на работе я делаю то, что люблю, каждый день, целый день.
  • Проще говоря, в жизни есть и другие вещи, а в течение дня столько часов.
NPE
источник
-1: Да, в жизни есть и другие вещи, но это не отвечает на вопрос; Вы просто пытаетесь убедить себя, что выбираете лучший путь.
Джим Г.
9

Вы можете стать хорошим программистом, просто программируя во время работы, особенно если вы хорошо управляете своей карьерой. Тем не менее, лучшие программисты пишут и в нерабочее время. Сказав это, человек, который выбирает хорошую работу с большим количеством возможностей для обучения, хорошо использует свое время на работе и т. Д., Будет лучшим программистом, чем тот, кто кодирует дома, потому что он не может найти работу, которая создает интересные проблемы во время рабочий день

Хотя домашнее программирование ценно, я бы сказал, что максимизация ценности вашей рабочей среды (обучение у коллег, выбор хорошей работы, агрессивное управление карьерой) зачастую еще более ценна. Величайшие программисты делают и то, и другое, и имеют отличное отношение к обучению и наставничеству для других.

Этель Эванс
источник
«Тем не менее, лучшие программисты пишут и в нерабочее время». У вас нет никаких доказательств этого вообще.
Джехлин
7

Реальная проблема в том, достаточно ли нового разработчика (достаточно сложных задач) для того, чтобы пройти несколько сотен тысяч строк практического кода и стать достойным программистом.

Теоретически это можно сделать на работе, или в свободное время, или и то, и другое. Практика должна быть в некоторой степени направлена ​​на себя, чтобы вы могли выучить то, что вам нужно выучить. Это означает, что работа немного гибкая.

Много раз задания начального уровня - это исправление ошибок или другая работа, которая не научит вас быть хорошими. Что вам нужно сделать, это написать много кода с нуля, и этот код, вероятно, будет плохим. Работодателям трудно платить за это. Вот почему люди заканчивают тем, что делают проект с открытым исходным кодом на стороне или запускают запуск или что-то еще.

Когда люди говорят, что вы должны программировать в свободное время, я думаю, что это действительно означает, что вы должны получать силы в течение многих лет осмысленной практики на раннем этапе. Вы должны сделать все возможное, чтобы получить практический опыт и научиться писать и поддерживать большую кодовую базу с нуля. Если никто не платит вам, чтобы написать, возможно, катастрофическую серию проектов с нуля, тогда свободное время - единственный вариант.

Если вы уже практиковались, когда были моложе и стали хорошим программистом, я не думаю, что вы потеряете базовые навыки, если в дальнейшем вы сохраните их 9–5. Позже это больше будет идти в ногу с новыми технологиями, которые не так много времени.

Тем не менее, это редкая работа начального уровня, которая сама по себе даст вам количество и качество практики, чтобы стать хорошим программистом. Новый разработчик должен взять на себя инициативу, чтобы учиться, а не просто тусоваться в работе начального уровня, выполняя задачи начального уровня.

Было бы очень сложно стать хорошим программистом с нуля, если у вас уже есть семья и вы делаете упор на баланс между работой и личной жизнью. Так же, как было бы очень трудно стать врачом или виртуозным музыкантом или кем-то еще в этой ситуации. Есть причина, по которой люди склонны проходить тысячи часов практики, когда они моложе, а не когда они старше.

Havoc P
источник
5

Если бы я потратил время в течение следующих шести месяцев на разработку основной игры в свободное время, а вы нет, и предположим , что все остальные вещи равны (они никогда не бывают), кто из нас узнает больше? Кто из нас будет иметь больше навыков и опыта?

Этот эффект будет кумулятивным, так как более ранние знания в нерабочее время будут влиять на новую работу и новые знания в нерабочее время.

И именно поэтому люди советуют программировать в свободное время, насколько я могу судить.

Пол Натан
источник
5

Между большим и плохим существует много уровней. Вы не можете стать великим разработчиком, занимаясь этим всего 8 или около того часов в день, возможно, работая над проблемами из очень ограниченной области.

Если ваша работа достаточно разнообразна, вы можете стать «приличным» или «выполненным» или любым другим прилагательным, который вы предпочитаете, но, чтобы быть хорошим разработчиком, вы должны быть немного умны, я боюсь.

Еще одна причина для занятия хобби-программированием заключается в том, что на работе вам часто приходится придерживаться неоптимальных стандартов и идти на компромиссы в целом, и даже когда вы узнаете что-то новое, вам может быть запрещено его использовать.

И еще один, еще более прозаичный - то, что любой код, который вы пишете на работе, принадлежит вашему работодателю. Вы не можете вернуться к этому и учиться на своих старых ошибках спустя годы, когда вы работаете на кого-то другого.

biziclop
источник
5

Требуется 10000 часов усилий, чтобы стать экспертом во всем. [Майкл Гладуэлл, "Выбросы"]

Таким образом, выполнение дополнительной работы до того, как вы достигнете этого уровня, ускорит вас на пути к настоящему статусу эксперта.

После того, как вы пройдете этот уровень, тратя больше времени, вы получите небольшую / убывающую отдачу.

Йорген Телин
источник
3
Но что такое «вещь» во всем? Является ли «программирование» отдельной «вещью» или «haskell», «lisp», «java», «python» и т. Д.? Или «функциональное программирование», «программирование в графическом интерфейсе», «низкоуровневое программирование» и т. Д.? Само по себе это ничего не говорит нам.
Андре Парамес
4

Вы не должны смотреть на это как «Делает ли это меня плохим программистом», потому что, как и каждый навык, больше практики только делает одного лучше.

Так что, если вы хотите быть лучше, чем вы есть в настоящее время, и изучать новые технологии и области, которые ваша работа не позволяет, вот где дополнительные усилия и затраченное время пригодятся.

Но дополнительное время, затрачиваемое на кодирование (просто для того, чтобы доказать кому-то, что вы кодируете дополнительно), не обязательно означает, что вы станете хорошим программистом, если вы не научитесь тому, что делаете, и сделаете что-то другое или улучшите то, что вы уже знаете, а не будете слепо вырезать / копировать / вставить и собирая хаки. Я полагаю, что добавление дополнительных часов и выполнение одного и того же снова и снова никоим образом не поможет вам стать лучше.

Саймон
источник
Я думаю, что точка зрения ОП заключается в том, что некоторые программисты распространяют идею о том, что если вы не программируете вне работы, то вы плохой программист. Я потерял счет тому, сколько раз я видел посты на SO, здесь и в других местах, в которых кто-то говорит, что, когда он берет интервью у предполагаемого нового сотрудника, он спрашивает, какие побочные проекты у собеседника, и если ответ «Нет». ", тогда собеседник не считается настолько увлеченным программированием, как не считается для работы.
GreenMatt
+1 - Это не очень хорошо, если все, что вы делаете, это то, что вы уже делаете на работе.
Данк
Одна лишь практика сама по себе не делает вас лучше, вы должны излагать правильные вещи, чтобы вы могли на самом деле укоренить вредные привычки и стать еще хуже.
HLGEM
4

В течение дня ваши программы коротких ставок. Есть деньги, которые нужно заработать, вы точно знаете, сколько и зачем, и вы не можете получить намного больше, чем зарплата.

Ночью вы работаете над длинными ставками - сумасшедшими идеями, которые в основном не будут работать вообще. Это проекты, которые катапультируют вас из ряда вон. Вот как вы становитесь изобретателем PHP, а не обезьяной кода, использующей его.

Я беру интервью у многих программистов, и то, делали ли они интересные странные вещи вне рабочего времени, - это мгновенный зеленый свет. Это удивительно редко.

Хотя я скажу так: был один раз, когда парень, который делал много классных вещей вне рабочего времени, оказался полным неудачником найма. Я все еще в тупике от этого парня.

Лукас
источник
3

Быть хорошим разработчиком программного обеспечения в глубине души зависит от вашего сердца. Вы можете попытаться стать великим музыкантом и уделять много времени музыке, но все же это не делает вас хорошим музыкантом. Вам нужно получать удовольствие от того, что вы делаете, чтобы быть хорошим в этом. Изначально у меня были те же вопросы, что и у вас. Да, но теперь из-за того, что мне нравится, я начал делать дополнительные вещи с программным обеспечением, отличным от обычной работы. Это улучшило мою производительность в обычной работе, а также предоставило мне много времени для участия в других мероприятиях, не связанных с программным обеспечением. Таким образом, основная линия в том, чтобы получать удовольствие от того, что вы делаете, и в конечном итоге вы будете делать то, что требуется

Сива
источник
3

Настоящий вопрос в том, что вы делаете весь день. Аналогии со спортсменами и музыкантами обычно не применяются правильно. Ваша дневная работа - это не практика, а производительность, если у вас нет явной возможности провести часть своего рабочего дня в настоящей «практике». Откуда вы знаете? Если у вас никогда не было времени сделать что-то «правильное» или тщательно выучить новый язык / технологию / фреймворк / и т.д., то вы не практикуете, вы выполняете. Профессиональные спортсмены и музыканты не поправляются во время игры или концерта, они поправляются во время сосредоточенной практики. Так что, если вы похожи на большинство, у вас есть только один раз, когда у вас есть настоящая «практика» кодирования, это внешняя работа. Это сказанное, это только стоит, если это сосредоточено. Если вы взламываете весь день, а затем взламываете всю ночь, вы просто устаете, не лучше.

Например, вам нужно оптимизировать фрагмент кода на работе, и вы добавляете к нему обычные инструменты профилирования, ускоряете его, может быть, на 50% и переходите к следующей задаче, но вы думаете, что есть другие вещи, которые вы могли бы сделать, которые могли бы помочь даже больше, но у вас нет времени, чтобы попробовать их. Если вы возьмете этот кусок кода домой и потратите несколько лишних часов на то, чтобы действительно его обернуть, вы изучите методы, которые сделают вас лучше в следующий раз, когда вы что-то оптимизируете. Вы не делаете то же самое дома, как на работе.

Практика заключается в добавлении навыков и оттачивании навыков, и эти действия обязательно выполняются искусственным образом (это похоже на изоляцию группы мышц в тренажерном зале, никто не делает это в обычной физической активности). Создание приложений дома не является автоматической практикой. Работа на дому должна быть сосредоточена на методах и процессе, а не на конечном продукте. Если конечный продукт - это то, что вам нужно для мотивации, отлично. Просто не попадайтесь в ловушку его развития так же, как на работе.

Движение кодирования ката является примером того, что такое практика.

вай
источник
3

Чтобы ответить на ваш вопрос: нет, это не делает вас плохим разработчиком.

Тем не менее , это может сделать вашу профессиональную жизнь немного сложнее. Если у вас есть работа, где вы постоянно осваиваете новые технологии, которые помогут вам продвинуться по карьерной лестнице (будь то повышение по службе на вашей нынешней работе или новые рабочие места в разных компаниях), то все готово.

Но если вы в настоящее время работаете в компании, где используемая технология редко меняется, то через 2 или 5-10 лет вам может быть трудно получить эту следующую работу. Если вы программируете дома с новыми технологиями и вам есть, что показать (приложение, веб-сайт, проект с открытым исходным кодом и т. Д.), Вам будет гораздо проще получить эту следующую работу.

Конечно, вы можете быть абсолютно счастливы делать то же самое в течение следующих 40 лет, и пока ваша компания и технологии продолжают существовать, то все готово!

taggartgorman
источник
1

В моей жизни были времена, когда я много занимался программированием вне работы, и времена, когда я ничего не делал, потому что работал над другими вещами. Вы должны всегда учиться, но это не значит, что вы всегда должны учиться программированию в свободное время. Если вы хотите заняться каким-то другим навыком, будь то столярное дело, иголка, садоводство и т. Д. В свободное время, это поможет вам расти как личность.

Просто не попадитесь в ловушку, думая, что вы знаете все, что вам нужно знать о программировании, чтобы вы могли перестать учиться.

Захари К
источник
1

Это действительно интересный пост. Я занимаюсь разработкой программного обеспечения уже 10 лет и люблю свою работу! У меня тоже много хобби, и я стараюсь правильно ими управлять. Но я получаю удовольствие от того, что пробую новые вещи, проводя час или два перед компьютером перед тем, как лечь спать. В моем случае я увлекаюсь изучением и написанием игрового кода. У меня не всегда есть время играть в игры, но я люблю читать код про игры. Если честно, я думаю, что лучший код, который я когда-либо видел, пришел из игр, и я применяю эти навыки в своем коде на работе. Я постоянно изучаю КАЖДЫЙ ОДИН ДЕНЬ, поэтому, IMO, если вы разработчик, вы никогда не достигнете своего пика, всегда есть лучший способ сделать что-то ....

user17544
источник
1

Это отличная статья.

Я бы сказал, нет, это не делает вас плохим программистом. Если ваши отзывы были хорошими, и вы выполняете свои задачи хорошо и вовремя, то вы совершенно противоположны. Честно говоря, я завидую вам, что вы получаете полный код, пока на работе.

Основная причина, по которой я программирую в свободное время, заключается в том, что меня не волнует, что я делаю на работе, и я использую свободное время, чтобы заниматься тем, что мне нравится. Что мне нравится делать, так это программирование видеоигр. Нет действующей компании по производству игр, в которой я бы работал (у меня здесь сейчас есть семья), поэтому я могу помочь с независимыми играми, когда смогу. Это единственный способ вылечить зуд. Если бы я делал то, что любил весь день, то, скорее всего, я бы не стал заниматься этим в свободное время.

Corv1nus
источник
1

Мой совет будет таким: используйте свое время в пути, чтобы узнать что-то новое, чтобы держать вас в курсе: читать информационные книги, слушать подкаст Dev и т. Д. Что касается вашей деятельности после работы: ничего не изменится. Иначе ты станешь скучным человеком.

Пьер Ватле
источник
1

Это не делает вас плохим разработчиком, это может даже не сделать вас «нормальным» разработчиком, это просто делает вас тем, кто вы есть. Я думаю, однако, что вы найдете большинство людей, которые действительно отличные хакеры, как правило, любят пробовать новые вещи. В любое время я буду исследовать множество разных языков, баз данных, веб-фреймворков, робототехники и т. Д. У меня есть два маленьких ребенка и жена, ипотека, и все такое - но я с нетерпением жду, когда смогу получить 2 или 3 часы, чтобы взломать вещи. Конечно, C # и .NET хорошо зарабатывают на зарплату, и я действительно получаю удовольствие от своей работы, но возиться со Scala и Lift стало для меня настоящим взрывом в последние несколько месяцев. Есть разработчики, которые бы классифицировали себя как «страстных» и тех, которые просто «обходились».

Nodey The Node Guy
источник
1

Значит ли это, что я не «настоящий» разработчик программного обеспечения в душе?

Точно нет. Это просто означает, что вам нравится делать что-то, кроме программирования. В этом нет ничего плохого, и это не делает вас лучше или хуже, чем кто-либо другой, разработчик или нет.

Можно ли стать хорошим разработчиком программного обеспечения, не занимаясь чем-то еще вне своей работы?

Конечно. Отчасти это зависит от того, на что похожа ваша рабочая среда. Если у вас есть скучная, сосущая душу работа, которая отнимает у вас все время, а затем некоторые занимаются скучной работой по обслуживанию, то возможность использовать рабочее время для развития своих навыков будет очень ограниченной. Если у вас есть среда, в которой у вас есть свобода действий для изучения и изучения, то воспользуйтесь этой возможностью, чтобы развить новые навыки, которые также помогут вашему работодателю или коллегам.

Если вы найдете что-то интересное, о чем вы хотите узнать больше, и у вас нет времени или возможности использовать это на работе, то вам придется взвесить это в сравнении с другими требованиями вашего времени, будь то семья, друзья или хобби.

оборота афразир
источник
+1. Да, это действительно зависит от рабочей среды. В месте с умными ( желательно умнее себя ) людьми, которые, как команда, заботятся о том, что они делают, и постоянно стремятся улучшить все (конечный продукт, базовый код, инструменты, условия на рабочем месте и т. Д.), У вас есть хороший шанс стать великим разработчиком, даже если вы предпочитаете проводить свободное время где-то еще, чем за компьютером.
Jonik
1

Я недавно был на нескольких собеседованиях, чтобы нанять программистов. Я обнаружил, что кандидаты, которые больше всего меня впечатляют, как программисты, так и люди, с которыми я не возражаю работать, являются теми, кто тратит значительное количество времени на занятия непрограммированием (в частности, музыкой, но и чистой математикой, философия и литература). Конечно, большинство также занимаются программированием для хобби, но у них также есть баланс интересов.

PSU
источник
Теперь, если я могу только убедить музыкантов в этом ... они, кажется, думают, что ты не можешь быть хорош в чем-то одном. Музыка и программирование очень похожи.
Майкл К
Вы ответили на совершенно другой вопрос. Тип людей, с которыми вы бы предпочли работать, вероятно, будет сильно отличаться от того, какого типа люди делают для великого программиста. Если вы хотите получать удовольствие от людей, с которыми работаете, и хорошо проводить время в обществе, то, возможно, Uber-программист вам не подходит. Однако, если ваша типичная рабочая нагрузка составляет 2-3 месяца, чтобы завершить 12-месячные проекты, то личность не будет иметь большого значения, когда вы обнаружите, что программист убер позволит вам жить вне работы, даже если эта жизнь делать больше программирования.
Данк
Просто как примечание: я обнаружил, что люди, которые больше всего впечатляют меня как людей на собеседовании, - это те, кого я больше всего волную. В моей ранней карьере единственные люди, которых я рекомендовал для найма, которые оказались менее технически способными, также оказались наиболее социально способными и убедительными на собеседовании.
Данк
1

Если у вас есть работа, которая дает вам полностью увлекательный интеллектуальный опыт, то, скорее всего, это будет ваша умственная жизнь - внешняя работа предназначена для выдувания пара. Если ваша работа не привлекает вас, вы, скорее всего, найдете интеллектуальное удовлетворение после рабочего дня. Это верно для любого бизнеса, а не только для кодирования.

Кодирование в офисе подрывает ваш творческий потенциал, и точка. По крайней мере, 8 часов в день, ваш разум делает непрерывный спринт от чьего-либо имени. Нормально выходить из этого и не хотеть возвращаться на компьютер. Когда я работал в офисе, у меня было то же самое - я возвращался домой и хотел только готовить, или сходить посмотреть фильм, повесить с друзьями или просто посмотреть телевизор. Затем, в 2001-2004 гг. Или около того, после того, как компания, на которую я работал, заправилась танком и разбилась, я бросила такси, поехала на такси и стала ждать столов. Именно тогда я действительно начал писать в нерабочее время.

Правда в том, что я не думаю, что у кого-то есть более 8 часов в день высококачественного времени на кодирование. У многих кодеров только 2-3, но они могут быть самыми эффективными людьми. Это просто, как вы используете это, как вы распространяете это.

забастовка
источник
1
Вы никогда не были вокруг разработчиков OSS, не так ли? Когда кодирование становится страстью, иногда хочется быть в ней 24 часа подряд.
Мартин Питерс
1

Можно ли стать хорошим разработчиком программного обеспечения, не занимаясь чем-то еще вне своей работы?

Это зависит от отрасли, в которой вы работаете. Некоторые более конкурентоспособны, чем другие.

Если вам не нравится изучать новые вещи самостоятельно, вы, вероятно, останетесь на том же уровне, что и сейчас. Этого может быть достаточно ... или нет.

Речь идет не о выделенном времени, а о любопытстве и жажде знаний и мастерства. Очевидно, что это не имеет ничего общего с тем, чтобы оставаться в курсе , речь идет о фундаментальных, часто сложных вещах: компиляторах, монадах, архитектурах памяти и т. Д. Вещи, которые растягивают и расширяют ваш мозг.

Желание кодировать дома - это только важные побочные эффекты. Но не стоит недооценивать это, не делая, обучение часто поверхностно.

Все лучшие разработчики, которых я знаю, имеют эти черты характера.

Лайонел Баррет
источник
1

Нет, это не делает тебя менее программистом, чем кто-либо еще. Ты просто более общительный. Я завидую, если честно.

Вам не нужно использовать все свое свободное время для написания кода. Моя работа довольно проста: управление сервером. Я пишу много кода, потому что мне не нужно много работать на работе. Это не делает меня лучше или хуже, чем кто-либо. Если вы увлечены программированием, почему бы не заняться фрилансом? Я часто выставляю рекламу Craigslist для своих услуг и зарабатываю на этом хорошую сумму. Это также отличный опыт обучения, так как вы будете работать со стартапами, а иногда даже с большими веб-сайтами. Надеюсь это поможет. :)

iamandrus
источник
Хобби программирование делает вас «более социальным» по своей сути. Вы можете самостоятельно программировать в одиночку.
Муфаса
0

Я задал похожий вопрос пару дней назад. Кажется, что людям кажется, что мы более увлечены нашей работой, если мы посвящаем ей не только весь свой день, но и все время, которое у нас есть для нашей личной жизни.

Я иногда пишу какой-то код в свободное время, но делаю это для удовольствия, а не потому, что намереваюсь получить некоторый профессиональный рост или признание. Я аплодирую людям, у которых есть энергия для этого, но вам больше нравится перегорать, работая дольше и над дополнительными проектами, чем на самом деле стать экспертом во всем.

В конце концов, все, что имеет значение, это ваша способность изучать новые вещи (особенно на работе), ваша способность хорошо общаться и иметь хорошие навыки управления временем. Что ты превратил тебя в хорошего профессионала.

Пабло
источник
1
Я думаю, что вы достигли ключевой точки. Если программирование дома похоже на выполнение дополнительной работы, то оно мало чем поможет и, вероятно, даже пагубно. Тем не менее, большинство (если не все) люди, которых я знаю, эту программу дома делают, потому что это весело для них. Просто так получилось, что это те же люди, которых я хочу в своих проектах, потому что они гораздо более опытны, чем те, кто этого не делает. Является ли программирование дома причиной, по которой они более опытны, может быть, а может и нет, но я склонен думать так, потому что они делают то, что им нравится. Кроме того, довольно сложно оставаться в курсе своих навыков, если вы не тратите время.
Данк
0

Можно ли стать хорошим разработчиком программного обеспечения, не занимаясь чем-то еще вне своей работы?

Для меня это все о балансе.

Хотя я люблю программировать, это всего лишь одна сторона меня, у меня есть другие интересы. Поскольку я вижу это, если я счастлив (занимаюсь другими делами, которые мне нравятся) и считаю свою работу интересной и полезной (что я делаю), то в долгосрочной перспективе я нахожусь на пути к тому, чтобы стать лучшим разработчиком программного обеспечения.

PS Признаюсь, я не читал все предыдущие посты на этой странице.

Илан Хуберман
источник
Почему -1? Это вполне разумный ответ. + 1
zzzzz