Я не програмую у вільний час. Це робить мене поганим розробником?


387

Дуже багато блогів та порад в Інтернеті дозволяють зробити висновок, що для того, щоб стати чудовим розробником, недостатньо займатися щоденною роботою. Наприклад, ви повинні у свій вільний час робити внесок у проекти з відкритим кодом, писати програми для смартфонів тощо. Насправді багато цієї ради, мабуть, говорять про те, що якщо ви не любите програмування достатньо, щоб це робити цілий день, то ви ймовірно, в неправильній кар’єрі.

Це не відповідає мені. Я насолоджуюся своєю роботою, але коли я повертаюся додому з офісу, я не в настрої стрибати прямо на комп’ютер і починати кодувати далеко до сну. У мене є лише певна кількість вільного часу щодня, і я краще витрачаю їх на інші захоплення, бачачись з друзями або виходячи на вулицю, ніж перед комп’ютером.

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

Чи означає це, що я по душі не справжній розробник програмного забезпечення? Чи можна стати хорошим розробником програмного забезпечення, не роблячи зайвих поза вашою роботою? Мені було б дуже цікаво почути, що ти думаєш.

Оновлення: дякую всім за ваші коментарі та відповіді. Дуже багато гарних думок та порад!


133
Я думаю, що це просто робить тебе більш нормальним, ти, мабуть, маєш більше зв’язку з тим, що ми, гіки, називаємо "реальним життям". Цінуй це.
Орлінг

146
@Orbling Яке таке "реальне життя"? Чи схожий він на WoW? Він працює на 64-бітній ОС?
biziclop

18
@biziclop - Це як WOW з кращою графікою та грою, що набагато більш втомлює.
ChaosPandion

39
@ChaosPandion: Квести всмоктують r / l, довгі, тьмяні, і бабло, безумовно, не епічна.
Орлінг

4
З метою ефективності я рекомендую експериментувати з новими речами та працювати над особистими проектами, коли ви повинні працювати. Таким чином у вас все ще є обмежений вільний час. :-)
Carson63000

Відповіді:


446

ІМО таке ставлення походить від людей, які мають жахливі, які смотрять на душі роботи, поєднуються з поганими навичками управління часом. Якщо ви в основному набираєте веб-форми цілий день, вийдіть і займіться більш складною роботою або почніть власну.

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

Люди кажуть, що програмуйте більше, тому що ви дізнаєтесь більше, але це димовий екран. 8 годин на день - це багато .

Прогрес НЕ лінійний. Це логарифмічно:

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

Єдиною причиною того, що музикант може тренуватись довше 3 годин, є те, що їм потрібно видавити зайві 1%, які ці години їм дають. Якщо ви думаєте, що це стосується вас, повторне вирішення проблеми, вирішеної 2 десятиліття тому, тоді у вас є комплекс примадонна для завантаження.

Раніше я працював у компаніях, що працюють з плитою під тиском, і, повірте, фактичний обсяг роботи, який ці хлопці виконують, не є кращим за компанію типу 37 сигналів, яка обмежує обсяг роботи: http://37signals.com / svn / posts / 996-why-i-love-working-with-family-people

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

Подивіться на цей графік. Тепер поверніться до мене.

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

Про логарифмічну природу продуктивності:

У відомому дослідженні молодих скрипалів у 1993 році, дослідник виступу Андерс Ерікссон виявив, що найкращі всі практикували однаково: вранці, в три кроки, не більше 90 хвилин кожен, з перервою між кожним. Еріксон знайшов таку ж схему серед інших музикантів, спортсменів, шахістів та письменників.

Для реальної продуктивності менше менше справді більше

Це насправді відомий принцип ділового світу, я здивований, що більше програмістів не чули про нього.

Оновлення: докладніше про дослідження Ericsson.

Все уявлення про те, що знадобитися 10 000 годин / 10 років, щоб стати досвідченим, насправді походить від досліджень, проведених Ericsson, а не від Малком Гладвелл.

Як ми всі знаємо, у вас може бути досвід роботи 1 рік, повторений 10 разів ... тому просто зайняти дупу на сидінні протягом 10 років не може бути кваліфікованим. Що таке кваліфікація - це те, що Ericsson називає навмисною практикою .

Він виявив, що цей принцип є справжнім в галузі легкої атлетики, музики, письма, шахів та математики. Далі він визначає навмисну ​​практику як настільки зусильну, що навіть на найвищих рівнях можна виставляти лише 4 години на день . Інакше ви будете страждати від перетренованості або вигорання. Знову ж таки, він визнає, що зменшення віддачі за навмисну ​​практику триває приблизно до 4 годин.

Що стосується недостатньо хорошої / складної роботи:

Хогваш. Або отримайте кращу роботу, або ось ідея: перетворіть свою поточну роботу на щось таке, що не є , принаймні зараз.

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

Це була в значній мірі робота в нікуди, тупик. Менеджмент хотів, щоб ти спустив голову, і просто виправити прокляті помилки. Хороші розробники працювали над проектом «Грінфілд». Люди або приїхали сюди, щоб провести свої дні, поки не вийшли на пенсію, або набули кількарічного досвіду, перш ніж перейти до розробки нових додатків. Тоді як більшість програмістів скаржиться на відсутність кар’єрного розвитку або можливість вчитися новому, або не маючи захоплюючих проектів, над якими працювати, або взагалі просто кусає, що ніхто не дозволяє їм , цей хлопець просто сів і пішов робити щось робота, яку потрібно було зробити.

І впродовж двох років він перетворив цю систему з грізного пекла коду спагетті на щось, що було красивою і функціонувало як швейцарський годинник. Настільки повною була трансформація, що ВП підрозділу почало приділяти більше уваги існуючому проекту та почало ставити під сумнів значення проекту «зеленого поля». Незважаючи на те, що він не мав титулу, люди з операцій перейшли до нього як фактично лідера групи. Коли я пішов, ВП говорив про створення нової ролі для нього як архітектора систем ...

Я не впевнений, що з ним сталося після цього, але він навчив мене декількох дуже важливих уроків:

  1. Ваша робота - це те, що ви робите, і є цікаві проблеми, які потрібно вирішити скрізь . Якщо ви ненавидите писати екрани CRUD, вирішіть проблему, автоматично створивши їх.

  2. Не сидіть навколо, не чекаючи, коли можливі можливості прийти до вас. Швидше за все, вони ніколи не будуть.


Коментатори : коментарі призначені для пошуку роз'яснень, а не для розширеного обговорення. Якщо у вас є рішення, залиште відповідь. Якщо ваше рішення вже розміщено, будь ласка, підкажіть його. Якщо ви хочете обговорити це питання з іншими, скористайтеся чатом . Див . FAQ для отримання додаткової інформації.

30
Цей та багато інших відповідей надають занадто великий акцент програмуванню як "практикуючий". Щоб продовжити порівняння музиканта, вірите чи ні, але насправді вони також грають для задоволення. Те, що шукають когось, хто програмує у вільний час, інтерв'юери - це не той, хто відчуває постійну потребу постійно практикуватись. Вони шукають того, хто пристрасний і справді насолоджується тим, що вони роблять. Якщо ви захоплені своєю роботою, часто також перетворюєте її на хобі, і від неї важко піти. Це нічим не відрізняється від того, щоб вибрати будь-яке інше хобі.

7
Приклад музиканта не дуже хороший. Коли музикант досягає високого рівня майстерності, коли він засвоїв усю теорію, коли він може складати пісні із закритими очима, коли він може одночасно грати на 9000 інструментах, йому більше нічого робити. Програміст або комп'ютерний інженер повинен дізнатися про нові технології ВСЕ життя. Завжди є чомусь новому навчитися. Отже, відповідаючи на запитання, хлопець, який цілий день програмує і не має соціального життя, набагато кращий, ніж хлопець, який не програмує у вільний час.

2
@GabrielLlamas Теорії музики - це основні речі, такі як основи алгоритмів, розподілених обчислень та операційних систем, які ми вивчаємо в коледжі. Ці основи не змінюють настільки понаднормово. Ще приблизно через 20 років у нас вже була модель клієнта та сервера, а тепер у нас ще є модель клієнта та сервера. Тож основи клієнта та сервера все ще застосовуються, це просто речі високого рівня швидко змінюються. Ви можете придумати різні інструменти як різні технології, такі як HTML, Javascript. Але якщо ви зможете застосувати основи, то все буде схожим.
Девід Гао

1
Ще один приклад, як колись ви знаєте, як програмувати на c, вивчення c ++ не буде складним. Пам’ятаю, я вирішував питання програмування мого сусіда за допомогою схеми, не знаючи жодної схеми. Схема навчання мені зовсім не була складною, тому що я на високому рівні знаю, що таке функціональна мова.
Девід Гао

150

У цьому повідомленні є ще приховане.

Багато захоплених програмістів люблять досліджувати речі, експериментувати, слідувати їх ідеям, саме так ми вчимось та отримуємо свої навички та бачення.

Зазвичай ви не можете слідувати своїм інтересам у робочий час. Ви просто робите те, що вам сказано робити, і все. Лише небагатьом з нас пощастило зробити на роботі те, що ми зробили б особисто, навіть якби не платили.

Тому, якщо ви нічого зайвого не робите, ви не розвиваєте свій потенціал. І саме в цьому проблема.


2
Уау, це величезне полегшення, тому що іноді я відчуваю, що мені цікаво дізнатися про інші аспекти програмування, але робота просто змушує все відчувати себе як подрібнення.
мелаос

3
Правда. Одне, що слід пам’ятати, це будь-які угоди про винахід, які ви могли підписати під час прийому. Ми цим не користувалися, але я мав усну угоду з моїми програмістами: якщо це поза робочим часом і не конкурує безпосередньо з компанією, то добре провести час. Я навіть не заперечував, якщо вони використовували обладнання компанії, хоча існувала загальна згода, що тримати його вдома «чисто».
Пітер Роуелл

3
Чудово слідкувати за цікавістю не по годинах. Це може бути в тому, як автоматично розгорнути наступну версію Windows у всій вашій компанії протягом ночі (Mwah hah hah). Або це може бути фотографія, чи пивоваріння, чи веслування. Зовнішні інтереси роблять вас людиною більш округлою. НЕ МАЄ бути пов’язаним із вашою денною роботою.
швидко_віть

5
-1 Як зазначали інші в інших відповідях та коментарях, це означає, що ви не можете реально отримати хорошу, веселу та складну роботу. На мій особистий досвід це неправда. Я дізнався багато нового в більшості своїх робіт досі. ІМХО - це питання особистого ставлення хоча б настільки ж, як і культурної культури компанії.
Петер Тьорьк

26
Якщо ви любите програмування і не любите свою роботу, вам слід витратити вільний час на пошуки кращої роботи.
nikie

70

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

Прочитайте це з блогу Сет Годіна :


Нерозумно

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

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

Недоцільно, коли компанія, що здійснює перевірку, відповіла на телефон на перший дзвінок.

Нерозумно заводити нову компанію без заспокоєння, що гроші можуть принести.

Нерозумно очікувати, що в кабінеті лікаря буде приємний та корисний персонал рецепції.

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

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

Нерозумно поводитися з колегами та конкурентами з повагою, враховуючи тиск, який ти відчуваєш.

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

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

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


13
Так, це також нерозумно працювати 8 годин на день, а потім їхати додому, щоб ще трохи працювати. Для кого ти працюєш? І чому? Вам потрібно відповісти на ці запитання (хто платить? Чому? Щоб отримати що?) Якщо ви розумово зношені до кінця дня, найкраще, що ви можете зробити для себе - щось інше!
quick_now

37
Ви робите припущення, що розробники не викликають труднощів на роботі і не насолоджуються своєю роботою. Це неправда. Люди, які програмують лише на роботі, не програмують вдома, тому що вони вже повністю задоволені
ніхто

8
-1 тому що: а) цитати прямо не пов'язані з цим питанням; б) ІМО (більшість) ці речі взагалі нерозумні. Багато розумних людей можуть думати як довгострокову, так і короткострокову. ОТОГО більшість із нас мають досвід винаймати приємні (і підроблені) раціональні пояснення нашої лінивості / некомпетентності / необережності :-(
Péter Török

13
-1 Нерозумно називати багато розумних речей нерозумними. Це нічого не додає до питання і просто звучить нормально, переважно, як багато речей, які пише Сет Годін.
Vitor Py

5
"Нерозумно очікувати, що в кабінеті лікаря буде приємний та корисний персонал рецепції". Ні це не так. Нерозумно, що лікарі стягують з них те, що вони роблять, а потім піддають нас грубим офісним персоналом, довго чекають у залах очікування в офісі та особисто ставляться до неповаги.
GreenMatt

57

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

Програмування у вільний час, безумовно, не зашкодить вашим навичкам, але ви не повинні відчувати себе зобов'язаними робити це. Програмування здається відносно унікальним напрямком, оскільки для багатьох людей це і робота, і їх хобі, тому вони користуються програмуванням у вільний час.


8
Програмування не є унікальним у тому, щоб мати його як кар'єру, так і хобі. Кілька прикладів: я колись знав, що кілька пілотів авіакомпанії мають свої маленькі літаки, які вони літають для розваги. Я знав професійних астрономів, які зірвали на боці.
GreenMatt

4
Під " відносно унікальним" я мав на увазі, що він один з небагатьох, але точно не єдиний. Я знаю ще багато людей, які, хоч і могли б насолоджуватися своєю роботою, не витрачали часу на те, щоб не отримувати зарплату. Часто важко влаштуватися на роботу, роблячи те, чим ти захоплюєшся.
shortkaik

1: Технологія, мови та методи змінюються так часто і так швидко. Програмісти повинні витратити деякий час у вільний час, відточуючи свою майстерність. // Питання, пов'язані з цим: Чи почуваєтесь ви добре з PCP, який не читав медичні журнали?
Джим Г.

Я думаю, що ця відповідь найкраще підводить ситуацію. Але це повністю залежить від чиєїсь ситуації. Якщо ваша робота задовольняє всі ваші потреби в програмуванні, з точки зору того, щоб наполягати на собі, бути в курсі технологій тощо, набагато менше потрібно робити роботу у свій час. Однак якщо ваша робота досить легка, використовуючи старіші технології, то деякий час слід витратити на вдосконалення своїх навичок та знань у свій час.
Нелліус

@shortkaik "програмування у вільний час може зробити вас кращим розробником" - Це не завжди так. Якщо ви зіткнулися зі своєю роботою, то, якщо ви також займаєтесь програмою вдома, це сприятиме вашому виснаженню та вигоранню більше, ніж вашим навичкам, також це може зашкодити вашій продуктивності на роботі. З іншого боку, якщо ви не задоволені тим, що ваша робота дає (і бере від вас), додаткове кодування після неї може бути хорошим рішенням.

23

Ні, це не робить тебе поганим програмістом. Залежно від того, що ви робите, це може зробити вас кращим програмістом у довгостроковій перспективі. На початку вашої кар’єри це може вплинути на те, наскільки швидко ви засвоїте різноманітність необхідних навичок. Однак, можливо, ви наберете навички та інформацію, яка допоможе в довгостроковій перспективі. Отримати вправу теж не завадило б.

Існує велика кількість досліджень, які показують ефективність роботи близько 40 робочого тижня. Хоча ми можемо виробляти виробництво протягом певного часу, працюючи довше годин, але ми з часом втрачаємо ефективність. Дослідження, які я бачив, показують, що люди, які працюють 80 тижнів, настільки ж продуктивні, як і ті, хто працює 40 годин на тиждень.

Є кілька речей, які ви можете роздумувати в неробочі години роботи, які можуть допомогти вам краще:

  • Що ви робите? Ви можете зробити це краще? Вам це потрібно робити?
  • Чого ти вчишся? Що вам потрібно навчитися?
  • З якими проблемами ви стикаєтесь? Кому найкраще їх вирішити? Що ти можеш зробити?

Програмування як хобі не означає працювати після години на бізнес-роботі - це, безумовно, не має масштабів. Але програмування гри на iPhone в ObjC як хобі може покращити ваші навички та загальну продуктивність на роботі (якщо робота, наприклад, написання фінансових додатків на Java EE).
Хайко Рупп

@Heiko Правда, але є багато інших навичок, крім програмування, які можуть зробити вас кращим програмістом. Хороший розробник має багато навичок, крім програмування.
BillThor

Звичайно :) Я особливо мав на увазі "максимум продуктивності за 40 год" - це звучало так, як якщо ви займаєтесь програмою хобі на 5 годин, ви можете робити лише 35 годин на роботі. Що я не вважаю правильним
Heiko Rupp

1
@Heiko Це робота досить інша, то ви можете зробити і те, і інше. Мої перші пару років після закінчення навчання я регулярно перевищував 40 годин на тиждень, але застосовував широкий спектр навичок. Багато чого навчився і, схоже, не потрапив у стіну виступу. На щастя, у мене був друг, який витягнув мене з офісу десь ввечері. В іншому проекті я пішов додому о 2:00, коли зрозумів, що нічого не досяг із 10:00. Ще виставили рахунок за 4 години.
BillThor

15

Чи можна стати хорошим розробником програмного забезпечення, не роблячи зайвих поза вашою роботою?

Безумовно.

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

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

"Хороші" програмісти, здається, додають додаткових годин більше, тому що вони нав'язливі за своєю природою, схильні до антисоціального кінця спектру, і справді насолоджуються програмуванням і цілим циклом вирішення проблем.


13

У великій схемі речей все полягає у пошуку правильного балансу в житті.

Важливо те, чи любите ви програмування та чи продовжуєте вчитися незалежно від того, на якому рівні ви знаходитесь. Незалежно від того, програмуєте чи не програмуєте поза межами роботи, це автоматично не робить вас "хорошим" чи "поганим" програмістом.

Щоб дати особисту перспективу, я займався програмуванням близько 25 років (спочатку як дитина, потім професійно). Я це абсолютно люблю.

Однак я майже ніколи не програмую поза роботою. Це стосується кількох речей:

  • Мені дуже пощастило в тому, що на роботі я отримую займатися тим, що люблю, щодня, цілий день.
  • Простіше кажучи, в житті є й інші речі, а в день є лише стільки годин.

-1: Так, в житті є інші речі, але це не відповідає на питання; ви просто намагаєтесь переконати себе, що ви обираєте найкращий шлях.
Джим Г.

9

Ви можете стати хорошим програмістом, який просто кодує під час роботи, особливо якщо ви добре керуєте своєю кар'єрою. Однак найбільші програмісти кодують і в неробочий час. Сказавши це, людина, яка підбирає хороші робочі місця з великою кількістю можливостей для навчання, добре використовує свій час на роботі, і так далі буде кращим програмістом, ніж той, хто кодує вдома, тому що не може знайти роботу, яка поставить цікаві проблеми під час робочий день.

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


"Однак найбільші програмісти кодують і в неробочий час." У вас немає жодних доказів для цього.
djechlin

7

Справжнє питання полягає в тому, чи кодує новий розробник достатньо (на досить складних проблемах), щоб пройти кілька сотень тисяч рядків коду практики та стати гідним програмістом.

Теоретично це можна зробити на роботі, або у власний час, або і те і інше. Практика повинна бути дещо самонаправленою, щоб ви могли навчитися тому, що вам потрібно навчитися. Це означає, що робота трохи гнучка.

Багато разів завдання початкового рівня - це купа виправлення помилок або іншої роботи, яка не навчить вас бути хорошими. Що вам потрібно зробити, це написати багато коду з нуля, і цей код, ймовірно, буде поганим. Роботодавцям важко заплатити за це. Ось чому люди в кінцевому підсумку роблять проект з відкритим кодом збоку або запускають стартап чи що завгодно.

Коли люди кажуть, що потрібно програмувати у вільний час, я думаю, що це насправді означає, що вам доведеться жити через багаторічну багатозначну практику. Вам потрібно зробити все необхідне, щоб отримати практику та навчитися писати та підтримувати велику кодову базу з нуля. Якщо вам ніхто не платить, щоб писати, мабуть, катастрофічну серію проектів з нуля, тоді вільний час - єдиний варіант.

Якщо ви вже пробували практику, коли молодший і став хорошим програмістом, я не думаю, що ви не втратите базових навичок, якщо пізніше будете тримати його від 9 до 5. Пізніше це справа не відставати від нової технології, яка не так забирає багато часу.

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

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


5

Якби я витрачав час на наступні півроку на розробку основної гри у вільний час, а ти цього не робиш, і якщо припустити, що всі інші речі рівні (їх ніколи не буває), хто з нас би знав більше? Хто з нас мав би більше навичок та досвіду?

Цей ефект був би кумулятивним, оскільки попередні знання в неробочий час подавали б нову роботу та нові знання у позаробочий час.

І тому люди радять програмувати у вільний час, наскільки я можу сказати.


5

Між великим і поганим є багато рівнів між ними. Ви не можете стати чудовим розробником, роблячи це лише 8 годин на день, можливо, працюючи над проблемами з дуже обмеженої сфери.

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

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

І ще одне, ще прозаїчніше - те, що той код, який ви пишете на роботі, належить вашому роботодавцю. Ви не можете повернутися до цього і вчитися на своїх старих помилках через роки, коли працюєте на когось іншого.


5

Щоб стати експертом у будь-чому, потрібно 10 000 годин. [Майкл Гладвелл, "Атлети"]

Отже, додаткова робота до того, як дійти до цього рівня, прискорить вас на шляху до реального статусу Експерта.

Після того, як ви пройшли цей рівень, витрачаючи більше часу, ви матимете невеликі / зменшуючі прибутки.


3
Але що в чомусь "річ"? Чи "програмування" є однією "річчю", або це речі "haskell", "lisp", "java", "python" тощо? Або "функціональне програмування", "програмування GUI", "програмування низького рівня" тощо? Саме по собі це нічого не говорить.
Андре Парамес

4

Ви не повинні дивитися на це як на "Чи робить мене поганим програмістом", тому що, як і кожен навик, більшу практику робить лише один кращим.

Тож якщо ви хочете бути кращими, ніж ви є зараз, та вивчати нові технології та сфери, які ваша робота не дозволяє, саме тут знадобляться додаткові зусилля та витрачений час.

Але додаткове витрачання часу на кодування (просто довести комусь, що ви додатково кодуєте) не означає, що ви станете хорошим програмістом, якщо ви не навчитесь робити те, що ви робите, і робите щось інше або покращуєте те, що вже знаєте, а не сліпо вирізати / копіювати / вставляти і збирання хаків. Відкладати зайві години і робити те ж саме знов і знов, я не думаю, що допоможе вам покращитись.


Я думаю, що справа ОП полягає в тому, що деякі програмісти поширюють думку, що якщо ти не програмуєш поза роботою, то ти поганий програміст. Я втратив підрахунок кількості разів, коли я бачив публікації на ТА, тут і в інших місцях, де хтось каже, що під час співбесіди з потенційним новим наймом вони запитують, в які бічні проекти йде опитаний, і якщо відповідь - "Ні ", тоді опитуваний не сприймається як пристрасний щодо програмування, оскільки не вважається за роботу.
GreenMatt

+1 - Це не дуже добре, якщо все, що ти робиш, це те, що ти вже робиш на роботі.
Данк

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

4

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

Вночі ви працюєте над довгими ставками - божевільні ідеї, які в основному взагалі не спрацюють. Це ті проекти, які будуть катапультувати вас поза рядками. Так ви станете винахідником PHP, а не кодуванням мавпи, що використовує його.

Я опитую багато програмістів, і те, чи робили вони цікаві дивні речі поза робочим часом, - це миттєве зелене світло. Це напрочуд рідко.

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


3

Будучи сердечним добрим розробником програмного забезпечення, насправді залежить від вашого серця. Ви можете спробувати бути чудовим музикантом і приділяти багато часу музиці, але все-таки це не робить вас гарним музикантом. Вам потрібно насолоджуватися тим, що ви робите, щоб бути хорошим у цьому. Початково у мене виникали ті ж питання, що і ви я мав, але тепер через мої симпатії я почав займатися додатковими речами на програмному забезпеченні, відмінному від звичайної роботи. Це покращило мою роботу в звичайній роботі, а також забезпечило мені багато часу для участі в інших заходах, не пов'язаних із програмним забезпеченням. Тож базовою лінією є насолоджуватися тим, що ви робите, і з часом ви зробите те, що потрібно.


3

Справжнє питання - чим ти займаєшся цілий день. Аналогії спортсменів і музикантів, як правило, не застосовуються правильно. Ваша щоденна робота - це не практика, це виконання, якщо ви не маєте явної здатності витратити частину робочого дня на справжню "практику". Звідки ти знаєш? Якщо ви ніколи не маєте часу робити щось «правильно» або ретельно вивчати нову мову / технологію / рамку / тощо, то ви не практикуєтесь, ви працюєте. Професійні спортсмени та музиканти не покращуються під час гри або концерту, вони стають кращими під час цілеспрямованої практики. Тож, якщо ти подобаєшся більшості, єдиний час, коли ти маєш справжню "практику" кодування, - це поза роботою. Коли це сказано, варто лише тоді, якщо він зосереджений. Якщо ви зламаєте весь день, а потім зламаєте всю ніч, ви просто втомитеся, а не краще.

Наприклад, вам потрібно оптимізувати фрагмент коду на роботі, і ви кинете на нього звичайні інструменти для профілювання і пришвидшити його, можливо, на 50%, і перейти до наступного завдання, але ви думаєте, що ви можете зробити інші речі, які могли б допомогти навіть більше, але у вас немає часу, щоб спробувати їх. Якщо ви берете з собою цей фрагмент коду і витрачаєте кілька додаткових годин, дійсно його викручуючи, ви вивчаєте методи, які покращують вас наступного разу, коли ви щось оптимізуєте. Ти не робиш те саме, що вдома, як на роботі.

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

Рух ката кодування - приклад того, що стосується практики.


3

Щоб відповісти на ваше запитання: Ні, це не робить вас поганим розробником.

Однак це може ускладнити ваше професійне життя в дорозі трохи складніше. Якщо у вас є робота, де ви постійно вивчаєте нові технології, які допоможуть вам продовжити кар’єрний шлях (будь то підвищення кваліфікації на вашій нинішній роботі чи нові робочі місця в різних компаніях), тоді ви налаштовані.

Але якщо ви зараз працюєте в компанії, де використовувана технологія рідко змінюється, то через 2 або 5 o 10 років вам може бути важко отримати наступну роботу. Якщо ви кодуєте вдома новітні технології і вам є що показати (додаток, веб-сайт, проект з відкритим кодом тощо), вам буде набагато простіше отримати наступну роботу.

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


1

Були в моєму житті часи, коли я робив багато кодування поза роботою, і періоди, коли я нічого не робив, бо працював над іншими речами. Ви завжди повинні вчитися, але це не означає, що ви завжди повинні вчитися програмуванню у вільний час. Якщо ви хочете попрацювати над якоюсь іншою майстерністю, будь то столярні роботи, рукоділля, садівництво тощо у вільний час, це допоможе вам рости як людина.

Просто не потрапляйте в пастку думок, ви знаєте все, що вам потрібно знати про програмування, щоб ви могли припинити навчання.


1

Це справді цікавий пост. Я розробляю програмне забезпечення вже 10 років і люблю свою роботу! У мене теж багато захоплень і намагаюся правильно ними керувати. Але я отримую удар з спроб нових речей, витрачаючи годину чи дві перед ПК перед сном. У моєму випадку я захоплююсь вивченням та написанням ігрового коду. У мене не завжди є час на ігри, але я люблю читати код про ігри. Якщо чесно, я вважаю, що найкращий код, який я коли-небудь бачив, був саме з ігор, і ці навички я застосовую до свого коду на роботі. Я постійно вчуся кожного кожного дня, тому ІМО, якщо ви розробник, ви ніколи не досягнете свого піку, ЗАВЖДИ є кращий спосіб зробити щось ....


1

Це чудовий пост.

Я б сказав, ні, це не робить тебе поганим програмістом. Якщо ваші відгуки були хорошими, і ви добре і вчасно виконуєте завдання, то ви навпаки. Чесно кажучи, я заздрю ​​вам, що ви отримуєте заповнення коду під час роботи.

Основна причина, яку я програмую у вільний час - це те, що я не дуже дбаю про те, що роблю на роботі, і я використовую вільний час, щоб робити те, що мені подобається. Мені подобається займатися програмуванням відеоігор. Немає дійсної ігрової компанії, яка б працювала там, де я живу (у мене зараз тут сім'я), тому я допомагаю в інді-іграх на боці, коли можу. Це єдиний спосіб вилікувати свербіж. Якби я робив те, що любив цілий день, то, дуже вірогідно, я цього не зробив би у вільний час.


1

Моєю порадою буде: Використовуйте свій час на дорозі, щоб вивчити речі, щоб бути в курсі: читайте ІТ-книги, слухайте Dev-подкаст тощо. Що стосується вашої роботи після роботи: нічого не змінюється. Інакше ти станеш нудною людиною.


1

Це не робить вас поганим розробником, можливо, навіть не зробить з вас свого роду "нормальним" розробником, він просто зробить вас такими, якими ви є. Я думаю, що ти знайдеш більшість людей, які справді є чудовими хакерами, як правило, люблять намагатися нові речі. У будь-який момент я буду досліджувати багато різних мов, баз даних, веб-рамок, робототехніки тощо. У мене є двоє маленьких дітей та дружина, застава, все це - але я з нетерпінням чекаю часу, коли я можу отримати 2 або 3 годин, щоб виламати речі. Звичайно, C # і .NET - це все добре і добре для заробітної плати, і я насправді отримую задоволення від своєї роботи, але возитися зі Scala і Lift було справжнім вибухом для мене за останні кілька місяців. Є розробники, які б класифікували себе як "пристрасних", а також тих, хто просто "переживає".


1

Чи означає це, що я по душі не справжній розробник програмного забезпечення?

Абсолютно ні. Це просто означає, що вам подобається робити інші речі, крім кодування. У цьому немає нічого поганого, і це не робить вас кращим чи гіршим за будь-кого іншого, розробника чи ні.

Чи можна стати хорошим розробником програмного забезпечення, не роблячи зайвих поза вашою роботою?

Звичайно. Деякі з них залежать від того, яке ваше робоче середовище. Якщо у вас нудна робота, яка засмоктує душу, яка весь час засмоктує вас, а потім виконуються нудні роботи з технічного обслуговування, то можливість використання робочого часу для розвитку своїх навичок буде дуже обмеженою. Якщо у вас є таке середовище, де у вас є певна широта робити те, що ви хочете досліджувати та вчитися, тоді скористайтеся цією можливістю для розвитку нових навичок, які також допомагають вашому роботодавцю чи колегам.

Якщо ви знайдете щось цікаве, про яке хочете дізнатися більше, і не маєте часу чи можливості використовувати його на роботі, то вам доведеться зважити це на інші вимоги вашого часу, будь то сім'я, друзі чи захоплення.


+1. Так, це дійсно залежить від робочого середовища. У місці з розумними ( бажано розумнішими за себе ) людьми, які в команді дбають про те, що вони роблять, і постійно прагнуть вдосконалити все (кінцевий продукт, базовий код, інструменти, умови на робочому місці тощо), ви маєте хороший шанс стати прекрасним розробником, навіть якщо ви віддаєте перевагу проводити свій вільний час де-небудь ще, ніж перед комп’ютером.
Джонік

1

Нещодавно я брав участь у багатьох інтерв'ю, щоб найняти програмістів. Я виявив, що ті кандидати, які мене найбільше вражають, як програмісти, так і як люди, з якими я б не проти працювати, - це ті, хто витрачає значну кількість часу на заняття програмуванням NON (зокрема, музику, а також чисту математику, філософія та література). Безумовно, більшість також займається хобі програмуванням, але вони мають і балансуючі інтереси.


Тепер, якщо я можу лише переконати музикантів у цьому ... вони, здається, думають, що ти не можеш бути хорошим у більш ніж одній справі. Музика та програмування дуже схожі.
Майкл К

Ви відповіли на зовсім інше питання. Тип людей, з якими ви хотіли б працювати, напевно, буде зовсім іншим, ніж тип людини для чудового програміста. Якщо ви хочете насолоджуватися людьми, з якими працюєте, і добре провести час в соціальному житті, то, можливо, убер-програміст не найкраще підходить. Однак якщо типовий навантаження складає 2-3 місяці, щоб 12-місячні проекти були завершені, то особистість не матиме великого значення, коли ти виявиш, що uber-програміст дозволить тобі життя поза роботою, навіть якщо це життя робити більше програмування.
Данк

Як зауваження: я виявив, що люди, які мене найбільше вражають як людей на співбесіді, - це ті, кого я маю найбільше турбувати. У моїй ранній кар’єрі єдині люди, яких я рекомендував приймати на роботу, які виявилися менш технічно спроможними, також виявилися найбільш соціально спроможними та переконливими на співбесіді.
Данк

1

Якщо у вас є робота, яка забезпечує вам інтелектуальне враження, швидше за все, це буде ваше розумове життя - зовнішня робота - це видування пари. Якщо ваша робота вас не займає, ви набагато більше шансів знайти інтелектуальне задоволення після робочого часу. Це вірно в будь-якій справі, а не тільки в кодуванні.

Кодування в офісі зменшує вашу творчість, період. Щонайменше 8 годин на день, ваш розум робить безперервний спринт від чужого імені. Це нормально виходити з цього і не хочеться повертатися назад за комп’ютером. Коли я працював в офісі, для мене було те саме - я б повернувся додому і хочу лише приготувати їжу, або піти подивитися фільм, повіситись з друзями або просто в зоні перед телевізором. Потім з 2001-2004 років, після того, як компанія, в якій я працював на танкістах, і розправилася, я кинула і поїхала на таксі і чекала столи. Ось тоді я справді почав кодувати у неробочий час.

Правда в тому, що я не думаю, що хтось має більше 8 годин на день, якісного часу кодування в них є. Багато кодерів мають лише 2-3, але вони можуть бути найефективнішими людьми там. Це просто те, як ви його використовуєте, як ви їх розповсюджуєте.


1
Ви ніколи не були багато серед розробників ОС, чи не так? Коли кодування стає пристрастю, іноді хочеться бути на ньому протягом 24 годин на протязі.
Martijn Pieters

1

Чи можна стати хорошим розробником програмного забезпечення, не роблячи зайвих поза вашою роботою?

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

Якщо вам не подобається самостійно вивчати нові речі, ви, ймовірно, будете залишатися на своєму поточному рівні кваліфікації. Цього може бути достатньо ... чи ні.

Йдеться не про час, присвячений, це про цікавість та жагу до знань та майстерності. Очевидно, що це не має нічого спільного з тим, щоб бути в курсі , це про фундаментальні складні матеріали: компілятори, монади, архітектури пам'яті тощо. Те, що розтягує і розширює ваш мозок.

Бажання кодувати вдома - лише важливі побічні ефекти. Але не варто недооцінювати це, не роблячи цього, навчання часто дрібне.

У всіх найкращих розробників, яких я знаю, є характеристики тез.


1

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

Вам не потрібно використовувати весь свій вільний час для написання коду. Моя робота досить проста: управління сервером. Я пишу багато коду, тому що не потрібно багато робити на роботі. Це не робить мене кращим чи гіршим за всіх. Якщо ви захоплені програмуванням, чому б не зробити якусь позаштатну роботу? Я часто виставляю рекламу Craigslist для своїх послуг і заробляю на цьому непогану суму грошей. Це також чудовий досвід навчання, оскільки ви будете працювати зі стартапами, а іноді навіть великими веб-сайтами. Сподіваюся, це допомагає. :)


Хобі програмування робить вас "більш соціальним" по своїй суті. Ви можете самостійно програмувати окремо.
Муфаса

0

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

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

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


1
Я думаю, ти потрапив у ключовий момент. Якщо програмування вдома - це як виконувати додаткову роботу, то це не дуже допоможе і, мабуть, навіть згубно. Однак більшість (якщо не всі) люди, яких я знаю, що вдома програму роблять, тому що це їм цікаво. Так буває, що це ті самі люди, яких я хочу в своїх проектах, тому що вони набагато кваліфікованіші, ніж ті, хто цього не робить. Чи є програмування вдома причиною того, що вони більш кваліфіковані, можливо, можливо, ні, але я схильний би так вважати, бо вони роблять те, що їм подобається. Крім того, досить важко залишатися в курсі своїх навичок, якщо ви не встигаєте вчасно.
Данк

0

Чи можна стати хорошим розробником програмного забезпечення, не роблячи зайвих поза вашою роботою?

Для мене все стосується балансу.

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

PS Признаюсь, я не читав усіх попередніх публікацій на цій сторінці.


Чому -1? Це абсолютно розумна відповідь. + 1
zzzzz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.