Це нормально, якщо я не можу вирішити проблему, сидячи перед комп’ютером? [зачинено]


12

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

Іноді я можу вирішити проблему, сидячи перед комп’ютером, але з певною боротьбою. Це нормально?


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

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

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

7
Перед комп'ютером може бути найгірше місце, щоб спробувати вирішити проблему, тому що ви занадто спокушаєтесь почати вводити текст, коли вам варто задуматися. Часто добиратися до машини краще, оскільки це змушує думати не діяти . Більшість моїх найскладніших проблем було вирішено пішки в офіс вранці.
Gort the Robot

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

Відповіді:


34

Я схильний вирішувати свої найскладніші проблеми:

  • Перед дошкою (іноді навіть нічого не малюючи - просто думка про те, як візуалізувати проблему, іноді може призвести до вирішення)
  • Поки пояснюючи їх колегам
  • Дивиться у вікно
  • Під час прогулянки
  • Під душем
  • На туалет

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

Розв’язання проблеми відбувається у вас в голові. Введення програмного коду - це те, як ви пояснюєте своє рішення комп'ютеру.


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

2
Я пам’ятаю, як читав книгу (не можу пригадати, яку, на жаль,), що пропонував тримати гумову качку на своєму столі, і коли ви тупцюєте, опишіть проблему вголос до гумової качки.
Gort the Robot

7
@StevenBurnap Це називається налагодженням гумової качки, і ви, ймовірно, читали про це в «Прагматичному програмісті » Аддісона Веслі.
Філіпп

2
"Введення програмного коду - це те, як ви пояснюєте своє рішення комп'ютеру." - Алан Перліс сказав: "Програми повинні бути написані для того, щоб люди читали, і лише випадково їх могли виконувати машини". Я б скоріше дивився на такий спосіб: введення коду - це те, як ви пояснюєте своє рішення колегам . Той факт, що коли ви неоднозначно описуєте рішення таким чином, що будь-яка людина (включаючи вас, через 6 місяців) може зрозуміти це, він також стає виконаним машиною, є лише побічним ефектом, який він ретельно описується. достатньо, щоб не було двозначностей. …
Jörg W Mittag

4
Re: гумовий каченя. Також є подібна історія з ведмедиком. Репетитори MIT звикли сидіти плюшевих ведмедиків біля своїх офісів. Постукати вас дозволили лише після того, як ви пояснили ведмедику свою проблему. Половина учнів ніколи не постукали у двері, з'ясувавши їхню проблему, пояснивши це ведмедику. Формулювання добре написаного, добре вивченого, добре відформатованого, детального, якісного запитання щодо StackExchange може мати той самий ефект , який є (однією з причин), чому ми так аналізуємось саме так!
Йорг W Міттаг

7

Я думаю, що це гарне питання. З того, як я це інтерпретую, я вважаю, що ви запитуєте: "Чи добре, що мені періодично доводиться відходити від комп'ютера"?

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

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

Деякі речі, які ви можете зробити, щоб очистити свою думку і вирішити проблему:

  • Перериватись
  • Поговоріть з колегою
  • Проблема / концепція дошки
  • Спати на ньому!

Не дивуйтеся, якщо ви прокинетесь серед ночі з рішенням.


1

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

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