Що робити, коли кодування починає відчувати себе нудно, начебто все просто більше того ж? [зачинено]


33

Я почав програмувати у віці 6 років на Commodore 64. Зараз мені 28, і я повинен пройти 4 курси першого ступеня з інформатики.

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

Я можу написати код на C, C ++, Python або будь-якій іншій мові, але я не можу хвилюватися тим, що роблю. Я не можу відчути жодних викликів. Я написав багатопотоковий код, HTTPS MITM проксі та додаток WSGI без необхідності будь-якого конкретного алгоритму.

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

У своїй щоденній роботі мені стає нудно навіть під час пошуку помилок, чи тестування тестів на коді, або вирішення проблеми з бібліотекою X, Y, Z.

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

Настав час зробити аванс у кар’єрі? Або отримати більш складні речі в галузі інформатики? Можливо, отримайте вищу ступінь CS?

Я почав читати свою першу книгу з управління проектами "Peopleware" і мене все більше цікавить життєвий цикл розробки програмного забезпечення. Що ви пропонуєте зробити?

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

Будь-які пропозиції?

PS: У мене є великий інтерес, я не в депресії :) Я люблю гору, походи, фотосесію і я спортивний альпініст, люблю плавати і займатися спортом взагалі, іноді біжу, насправді я ' м читаю книгу про мою країну (Італію) історію від АС до сьогоднішнього дня, і я люблю подорожі (цього літа я зробив 4000 км, щоб побачити багато місця в Іспанії та залізти в неї, всього за 3 тижні, не свято, а марафон , 24 км похідних травм зробив мою грижу), я люблю театр і життя взагалі.


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

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

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

Після цього нагадування люди пропонують:

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

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


10
Це справді гнітюче. Чому ти хочеш бути менеджером?

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

9
@George: Я думаю (але, зізнаюся, не впевнений), це написав хтось, хто не говорить / пише англійською мовою як свою першу мову.
FrustratedWithFormsDesigner

2
Дивіться, в чому полягає метапрограмування для веселої метафори на цю тему (виконайте те саме у всьому).

2
@George: Звичайно, англійська мова не є моєю першою мовою. я починаю робити деякі зміни, щоб вдосконалити свою англійську мову та пояснити свої розчарування щодо кодування.
boos

Відповіді:


50

Це мало статися.

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

Зацікавтеся розвитком продуктів і насолоджуйтесь, як люди їх використовують. Це кінцева мета написання коду, правда? Код - це лише інструмент, щоб зробити щось більше.


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

@boos, спробуйте clojure.org/Jobs
Робота

2
+1 Яке корисне безцільне кодування? Це схоже на те, щоб продовжувати будувати стіну замість будинку.
Mayank

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

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

21

Я відповім на ваше запитання питанням ...

Чи завдання програміста кодувати чи вирішувати проблеми?

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

Але як ти дійшов висновку, що той код - це той код, який слід писати? Більшість проблем мають сотні способів її вирішити, але існує лише один найкращий спосіб.

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

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


1
@Rnesis: Я люблю вирішувати проблеми, я перестаю любити кодування! це серце мого «питання». Проблема всіх програм - це завжди одні і ті ж речі, пошук речей, замовлення іншого, якщо це зробити, якщо інше, до інших речей, підключення до БД, з'єднання з віддаленою службою, спілкування з нею, повернення до іншої служби, пр.
бус

1
@boos - дякую за відповідь, додав абзац "якщо ви любите вирішення проблем".
Ніколь

9

Звуки для мене , як ви зробили ЧИ процедурне програмування і набридли йому - що я повністю розумію. Позначення крок за кроком є приблизно однаковим у всіх процедурних мовах.

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

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

Ось повна функція сортування:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Див. Http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding пояснення )

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

Удачі, веселися.


+1 До такого ж висновку я дійшов, прочитавши ОП. ОП потрібно відійти від процедурних. Світ програмування настільки більший, йому просто потрібно вийти і дослідити! :)
Темна ніч

8

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

Я знайшов натхнення і з фотографією, і з вивченням досвіду користувачів. Подумайте над цим, як це так, що Apple може змусити людей, що слиняться над собою, щоб наступне діло вийшло з Санта-Клари, коли інші продавці отримають гарячу реакцію? Ви серйозно думаєте, що Android набув би такої великої реакції, якби Apple так довго не чинила опір випуску iPhone на Verizon? Я дам вам великий підказку: не обов’язково ці продукти настільки технічно вдосконалені. Манія має величезний психологічний компонент.

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


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

Спробуйте програвання ігор: D, це в основному проблеми із зором
Домінік МакДоннелл,

7

Напевно, вам просто не вистачає технічної проблеми?

  • Спробуйте високо розподілені системи. Чи можете ви легко кодувати систему для збору журналів з 1000 комп’ютерів у кластер, з мікросекундною точністю?
  • Спробуйте в режимі реального часу. Упакуйте всі свої процеси за одне обертання двигуна.
  • Спробуйте комп’ютерне бачення чи обробку зображень. Математичні навички, навички формулювання до коду, навички оптимізації - все це корисно.
  • Спробуйте AI. Подивіться, як комп’ютер IBM грає в небезпеку? Ймовірно, певна алгоритмічна витонченість пов'язана з цією сферою.

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


4

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

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

Але це варіант, який, можливо, варто розглянути.


4

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

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

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

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

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

Я вважаю, що написання постійного коду насправді є великою проблемою. Це часто означає, що ви не будете писати надто розумний та високооптимізований код складання (пам’ятайте, The Story of Mel - справжній програміст , будь-хто? Чим ближче ви можете отримати свій код до деяких правил бізнесу та проблемної області, тим краще. Тут надходять усі ці нові бібліотеки. Якщо вони дозволяють записати код, щоб він був чистим, зрозумілим, стислим та зрозумілим, тоді це добре.

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


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

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

@boos, якщо вам подобається теорія, то в cs / математиці / фізиці тисячі тем втрачають голову.
Робота

3

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

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


3

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


2

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

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

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

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


2

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

Я можу написати код на C, C ++, Python або будь-якій іншій мові, але я не можу хвилюватися тим, що роблю. Я не можу відчути жодних викликів. Я написав багатопотоковий код, HTTPS MITM проксі та додаток WSGI без необхідності будь-якого конкретного алгоритму.

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

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


Звичайно, я знаю, що тут багато складних речей :) Я трохи кодер зараз! проблема полягає в тому, що складність навколо програмування не робить мене щасливим. З усією відповіддю я отримую крапку, мені потрібно вивчити більше академічних речей, щоб відчути себе начебто. У будь-якому випадку дякую :)
boos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.