Які методи допомагають зберегти знання з програмування? [зачинено]


44

Як ви пам’ятаєте речі, пов'язані з програмуванням? У вас виникло відчуття, що ви стикалися з помилкою, яку ви мали перед вами зараз, кілька років тому, і ви могли б поклястися, що тоді знали причину, але тепер це забули?

Ви працювали з синтаксичним розбором рядків xsl деякий час тому, але тепер ви не можете згадати, які саме функції рядка складаються з xsl, і вам потрібно починати з нуля? Або, можливо, ви забули про якусь особливість від Apache Commons, наприклад "фільтрування колекції за яким-небудь присудком", яку ви неодмінно використовували в минулому.

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

Чи є у вас якісь системи, які допоможуть вам запам'ятати свій досвід програмування? Яке налаштування?


82
моє налаштування: 1.google 2. bookmark page 3.забудьте про закладку 4.goto-> 1.
e-MEE

4
Використовуйте особисту Wiki. Запишіть кожну проблему, яку ви вирішили, щоб ви та інші могли її переглянути згодом. Просто зробіть це за пару місяців, і у вас є маса інформації. Я використовую WikidPad і його досить приємно
Ubermensch

2
google - це фантастично для відповідей, але я не думаю, що він справді вирішує це питання щодо техніки пам’яті. Звичайно, це лише коментар.
Майкл Дюррант

4
Мій мозок - це мій процесор і кеш. Я кладу речі в кеш, роблячи це. Решта моїх знань - в інших місцях, таких як старий вихідний код, нотатки та stackoverflow.com.
Distortum

5
@ e-MEE: хоча ситуація, яку ви описали, часто використовується, це погана практика, і ви не можете на неї покластися. Це трудомісткий і зайвий. Ви можете використати цей час для побудови дивовижних можливостей, не винаходити колесо :)
Клавдіу Константин

Відповіді:


64

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

  • Знайдіть час і блог про це . Майбутнє - ви будете дуже вдячні теперішньому-вам;
  • Працюйте з крихітними демонстраціями та архівуйте їх якимось чином. Ви неодмінно багато разів переходите через цей архів;
  • Скористайтеся своїм профілем stackexchange . Позначте цікаві питання / проблеми / проблеми / поради / підказки як обрані для подальшого дослідження;
  • Продовжуйте робити , продовжуйте програмувати. Чим більше ви використовуєте певну частину рамки, тим більше ви ознайомлюєтесь з нею і тим більше пам'ятаєте.

5
+1 для частини "продовжуй робити", начебто оновлення знань.
tehnyit

Пункт 1 нагадує мені епізод з Офісу ...
JBRWilkinson

Я зареєструвався тут просто для підтвердження вашої відповіді. Ідеальний
Мартін.

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

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

20

Мій ключ -

Різноманітність


Повторення. Раз може бути швидкоплинним. Бачити 100-ту подію має значення!

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

Бібліотека кодів - Зберігайте особистий запас коду та хитрощів, які ви використовували та бачили.

Централізація. Я зберігаю 1 файл із усіма своїми іменами користувачів (сотнями) на 1 ПК. Я застосовую до нього безпеку.

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

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

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

Мнемоніка , наприклад css замовлення кордону Tarball (TaRBalL) TopRightBottomLeft. Я також використовую кольори та форми, щоб запам’ятати слова та теми. Часто чим химерніше, тим запам'ятовується!

Продовження використання - це ефект "використати або втратити". Усі знання з часом згасають. Час ++ Fade ++

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

Dropbox - я зберігаю загальні невеликі файли з об'єктами, пов'язаними з пам'яттю

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

Ефект Google - жоден перелік елементів справді не буде повним, не згадуючи про це. Це більше про те, що вам не потрібно пам’ятати - адже ви можете його гугл і знайти. Це теж важливий розгляд. Оскільки все більше людей стає більш досвідченим у цьому способі отримання знань, необхідність насправді запам'ятовувати будь-який даний факт падає. Однак це також «піднімає планку» для працівників, які знають, що все більше і більше потребує глибокого концептуального розуміння, яке потрібно здійснити в сучасних умовах. Звичайно, що з CME !

Мій власний блог

Мій власний сайт із закладками .

  • Як оновлювати свій блог та закладки? Ну і наприкінці дня я думаю, що це дисципліна та витонченість, тобто так, для цього потрібна певна кількість відданості. Однак якщо ви ходили до школи за спеціальністю і заплатили 100 000 доларів (або навіть 10 000 доларів) або ви самоучки, знаєте сенс відданості та наполегливості. Це нічим не відрізняється. Вибагливість, або "вишуканий фактор", полягає в тому, що, коли ви бачите крутий веб-сайт із крутим підручником або технікою чи будь-яким іншим, або ви долаєте важку тернисту проблему, ви переходите "ей, це чудово!" - тож коли ви відчуваєте це (або будь-яку фразу, яку ви використовуєте), тепер пов'язуйте це із "Я повинен вести щоденник чи записати цю закладку". Є хороший шанс, що ви не на ПК, оновлюючи свій блог саме в цей момент, тому надішліть собі електронний лист, текст або навіть голосову пошту або нове завдання у своєму списку завдань - що б вам не подобалося- нагадати собі це зробити! Наприклад, у мого андроїд телефону є програма, яка корисна для цього.

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

+1 для різноманітності. Дійсно працює, і я це переживав багато разів.
Karthik Sreenivasan

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

7

За останній рік Evernote стала програмою, без якої я не могла обійтися. Я копіюю все в Evernote. Кодові фрагменти, знімки екрана, контактні дані, історія версій тощо. Тому мені не потрібно пам’ятати стільки деталей. Я просто знаю, що там десь.

Базова версія безкоштовна. Тож спробуйте!


1
Отже, що б ви зробили, коли послуги evernote знижуються, або немає Інтернету (адже, наприклад, вашого оператора запустили)? Не рекомендую покладатися на "хмару" для зберігання важливих ноу-хау.
Містер Сміт

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

@danleadgy, я згоден з тегами. Мені довелося бути більш виборчим, про що я насправді не повинен турбуватися.
Кайл Хейс

Задавши це ж запитання про Stack Overflow, я почав використовувати Evernote, і він працює дуже добре. Окрім інформації про програмування, я зберігаю процеси "як". Наприклад, як настроїти свою розроблювальну машину з нуля (встановити ОС, встановити програмне забезпечення, налаштувати). Це було надзвичайно корисно. Також ви можете отримати ту саму інформацію з будь-якого пристрою. Тож ви можете читати на одному комп’ютері чи планшеті та працювати на іншому.
B Сім

6

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

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

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


4

Ну, можливо, моя справа є особливою ... але: у мене є кожен клаптик програмного забезпечення, який я писав із 76 року на своєму ноутбуці, програми, сценарії, конфігурації тощо. Отже, з часом (треба визнати), тягар моєї пам'яті змістився з запам'ятовування ' речі ", щоб запам'ятати метадані про речі. Звичайно, багато цього вже не актуально, але я вважаю, що найважливішою є ідея, а не реальна їх реалізація. Отже, метадані - це в основному індекс того, що «ідеї» можна знайти де.

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

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


4

Як і інші, я стежу за речами, використовуючи закладки.

Раніше я користувався Delicious, але тепер перейшов на Pinboard.

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

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


Я і в минулому використовував смачненьке, але вони зробили безлад з цього проекту. Зараз я використовую Diigo для закладки та яскравих моментів. Мені доведеться перевірити Pinboard.
jmq

3

"Пригадайте картину, забудьте дрібні штрихи"

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

Закладки, блоги, зошити є прекрасними для зберігання цих тонких деталей. Але в кінцевому підсумку все ж потрібно пам’ятати про більшу «картину». Інакше повторне виявлення цих «тонших» деталей буде набагато складніше.


2

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

Я зберігаю велику ієрархію невеликих, коротких файлів, що мають одну тему. Файли переважно вільної форми, але я переходжу на використання Markdown. Пошук за допомогою grep / find. Я зберігаю папку в своєму DropBox, тому вона мені завжди доступна.


Раніше я робив це як файли, подібні до цього, але я знайшов Evernote гарним сховищем для цього типу даних.
Кайл Хейс

1

У кожного може бути свій стиль, до якого він звик, для мене я відокремлюю знання на категорії:

  • Книги

  • Статті

  • Колекції (речі, які мені здаються цікавими, обмежуються кількома абзацами - я фактично копіюю інформацію та інколи коментую джерело) - Наприклад: OODevelopment, Generics, ... тощо.

  • Код, який можна повторно використовувати (текст та фрагменти) - кожен з окремих файлів під хорошою організацією дерева. Наприклад, вузол DataValidation міститиме багато методів перевірки різних елементів даних, кожен в окремому файлі

  • Виконані проекти

  • Особисті відеоуроки (я іноді записую відео про те, як робити речі, коли в них задіяно занадто багато кроків).

  • Посилання

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

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

Також за допомогою Google Desktop пошук тексту чи файлів відбувається дуже швидко.


Було б цікаво побачити своє дерево, якби ви готові поділитися.
Кайл Хейс

@KyleHayes, я можу надати зразок
NoChance

0

Я використовую OneNote. У мене дуже багато різних мов програмування, з якими я працюю, тому в мене є різні розділи для кожної мови та різні вкладки для різних типів приміток.

Тепер я також починаю використовувати Stack Exchange.


-1

Ви повинні бути врівноваженою між пам’яттю та «пам’яттю». Якщо ви занадто багато покладаєтесь або помиляєтесь у пам’яті, проблема ==, якщо ви занадто багато покладаєтесь на зберігання всього == марного.

Мої правила:

-Не зайве прикрашати! напишіть важливі матеріали, навіть якщо розмір шрифту змінюється у вашому документі :)

-Не переборщити. Переконайте себе, що для упорядкування ваших думок потрібна структура дерева на 10 рівнів

-Проведено ЧАС у пошуку того, що потрібно записати. ви можете знайти 5 рішень для тієї ж проблеми. в ту мить, коли ви їх записуєте ВСЕ, ви втрачаєте. Запишіть 1-2, які дійсно вам допоможуть. НЕ дозволяйте собі сказати, що зараз у вас немає часу на це. Це досить дивно, але це стосується: "Витратили час, щоб отримати час"

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

То що робити?

Все, що ви можете отримати інформацію з мінімальними зусиллями.

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

Ще одна проблема полягає в тому, що ніхто не гарантує, що знайдені посилання спрацюють завтра (уявіть, 5 років потому). Тому спробуйте скопіювати інформацію:

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

Ознайомтеся: ви програміст і ви робите програми для інших людей. Зробіть простий для себе і став ВАШИМ найкращим клієнтом.

мій 2с


-1

Коротка відповідь:

Практика, практика, практика.

Не дуже коротка відповідь:

Як ви пам’ятаєте, як ходити? Як ти пам’ятаєш, як говорити? Ці навички не зовсім однакові, і вони не потребують, здавалося б, енциклопедичних знань (як мінімум для початківців), але ви використовуєте те саме: пам'ять.

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

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

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

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

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

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

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

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

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

Сподіваюся, що це допомагає

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