Программирование и накопление опыта/знаний

Тема в разделе "WASM.HEAP", создана пользователем Andrew1988, 20 окт 2009.

  1. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Доброго времени суток, уважаемые форумчане.
    Хотелось бы получить ответ от опытных (более или менее) программистов на вопрос:
    Насколько необходимо специально запоминать частные случаи использования определенных единиц информации в программировании? Поясню: например, недавно разбирался с использованием контрола ListView средствами Win32API. Опыта приобрел немеряно, однако, чтобы твердо запомнить весь этот объем на большой срок мне (лично мне) нужно "прогнать" через мозг всю эту инфу несколько раз с флагами "запомнить" и "анализировать", что требует достаточно много "процессорного времени" и, учитывая фрагментацию, достаточно большого объема "запоминающего устройства".
    Нужно ли запоминать все, или достаточно сохранить указатель на источники информации? С одной стороны - знаний, необходимых современному программисту настолько много, что запомнить все просто нереально... С другой - кто знает, что может пригодиться сегодня-завтра, а тратить время на поиск с нуля достаточно накладно...
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    надо еще аргументы всех функций запоминать!!
    И описание этих аргументов!
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    вроде такая тема уже была - ищите по форуму
     
  4. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Интересно, это сарказм или суровая правда жизни? Мне как начинающему рано судить, но исходя из того, что все нужно планировать и учиться на чужих ошибках... Хотелось бы увидеть аргументированные ответы.
    MSDN - это хорошо, но... НО...

    p.s. IntelliSense помогает с аргументами и венгерская нотация вкупе.
     
  5. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Под запоминанием я имел в виду именно частные случаи, а не то, что необходимо "каждый день". Запомнить все нереально, и я это понимаю. Однако имеет ли смысл запоминать то, что возможно не понадобится еще долгие годы (в т.ч. "экзотические" функции их аргументы и описания)?

    Спасибо, поищу еще (искал перед созданием темы).
     
  6. reversecode

    reversecode Guest

    Публикаций:
    0
    а еще запомнить как каждая функция выглядит на asm'e
     
  7. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Спасибо за развернутые, логически обоснованные ответы. Не ожидал, ей богу...
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Andrew1988
    Чего вы ждали ???? В вижуал студии эта проблема давно решена подстрочечной подсказкой. Хочется удобств ?? пишите в инлине асм от студии

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

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    в конце концов ведите дневник куды скидывайте всякие найденные секреты шаманства
     
  10. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Andrew1988
    Никакого смысла запоминать частности и т.п. нет. Надо разбираться с идеями, общими методами использования, помнить про существование тех или иных компонентов, функций и т.д. Это нужно для того, чтобы, когда эти компоненты и т.п. потребуются для решения конкретной задачи, быстро сообразить, а что же именно надо использовать, ну а после этого -- быстро найти подробную информацию по нужному компоненту. Ну а в голове всё не удержишь, да и, как уже написал, смысла нет.

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

    Или, например, система команд процессора. Архитектура ИА-32 слишком сложна и запутанна, чтобы всё упомнить, тем более что в обычной работе используется 5-10% всех имеющихся инструкций. Но очень полезно ознакомиться со всеми -- когда-нибудь это может пригодиться.
     
  11. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    SII

    Большое спасибо. Это тот ответ, которого я ожидал.

    p.s. Я изучаю программирование на досуге самостоятельно с нуля, не в ВУЗе. Просто пока я не могу понять, что нужно запоминать, а что не стоит. Можно биться головой об стену и делать по своему, пока не расшибешь голову, но лучше спросить у других - возможно он шли по другому пути и голову не разбили...
     
  12. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Andrew1988
    Ну, грубо говоря, пока ты занимаешься всякими там многочленами, вызубрить назубок формулы сокращённого умножения просто необходимо -- что и делают в школе. Если потом, во взрослой жизни, работа с этим не связана, формулы, вполне возможно, будут забыты. Но если в школе учил хорошо, то при нужде сможешь достаточно быстро восстановить и знания, и навыки (например, чтоб уже своим детям вдалбливать в головы то, что не могут вдолбить учителя в школе).

    Аналогично и в программировании. Наизусть учатся, например, синтаксические конструкции языка, на котором пишешь (а как иначе писать? перед каждым оператором штудировать описание языка?). Однако хороший программист сможет быстро перейти на другой язык, поскольку принципы везде одинаковы (ну, почти везде, так как есть экзотические языки, но речь ведём не о них): ему потребуется изучить новые синтаксические правила, но смысл операторов, объявлений и т.п. ему будет в общем ясен сходу. К примеру, знаток Си почти без проблем поймёт Паскаль, хотя синтаксически эти языки сильно отличаются.

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

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

    shsh Member

    Публикаций:
    0
    Регистрация:
    3 янв 2008
    Сообщения:
    69
    сначала зубрите от корки до корки мсдн а только потом приступайте к программированию, иначе никак - остается только убится ап стену
    и вобще вспомните как вы в "школе" тупо зазубривали стихи (наверно даже побуквенно ?)

    а по теме: мануалы (справочники) для того и сделаны чтоб в процессе написания чего-либо ими пользоватся а не зубрить тупо всю инфу оттуда, и в процессе практики самые часто употребимые моменты и так запонятся, а уточнить чтото в мануале не зазорно )
     
  14. Andrew1988

    Andrew1988 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Запомнить стих для меня совсем не сложно. Пары вдумчивых прочтений четверостишья вполне достаточно, чтобы запомнить на годы (после прочтения, конечно, стих "прочитывается" в памяти еще раз семь). У меня имеется высшее образование. Гуманитарное. Но вопреки распространенному мнению, гуманитарное не означает отсутствие математического...

    SII
    Спасибо еще раз.
     
  15. KingT

    KingT Member

    Публикаций:
    0
    Регистрация:
    12 янв 2006
    Сообщения:
    208
    Запоминать как работает тот или иной контролл в windows нет смысла.Помнить надо примерно где описана работа этого контрола.А запоминать стоит общие подходы программирования,особенности языка,как представляются разные числа и что из этого следует
     
  16. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    shsh
    Извините, но сие есть глупость. МСДН от корки до корки не знает никто; сомнительно, что кто-то хотя б прочитал внимательно от корки до корки. Более того, умение программировать, даже под Винду, никак не связано со знанием того, что изложено в МСДН. Можно совершенно не знать Вин32 АПИ и создавать в Винде сложные программы, требующие высокой квалификации -- например, компиляторы. Другое дело, что работающий в Винде высококвалифицированный программист, способный создать компилятор, наверняка имеет определённые познания и в АПИ Винды, но не эти познания определяют его квалификацию.
     
  17. Monogen

    Monogen New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2008
    Сообщения:
    90
    1. MSDN - это, по-сути, справочник. Кто-нибудь заучивает наизусть справочники?
    2. Детали запоминать не надо. Они все равно плохо помнятся. Все детали собраны в справочниках.
    3. Не заучивайте ничего. Просто читайте и стремитесь понять. Почаще применяйте ваши знания. Беспокоиться и том, что вы что-то забудете не надо. Если забудете - прочитаете в книге снова: не страшно. Вы не на экзамене. Это лучшая, на мой взгляд, стратегия обучения.
    4. Языки программирования заучивать не надо. Старайтесь писать программы. Не страшно, если придется часто лезть в справочник по языку. Язык лучше и быстрее всего выучивается при помощи практики его использования.
    5. Никогда не знаешь что пригодится, а что нет. Потому лучше не ничего заучивать, а просто искать нужные в данный момент знания в книгах и применять их.
    6. Старайтесь познакомиться с самыми разнообразными языками и технологиями. Но не вникайте серьезно в них. Главное знать - что они есть и представлять, где их можно применить. Кругозор полезен.
     
  18. reversecode

    reversecode Guest

    Публикаций:
    0
    а еще можно раззззпилить дополнительный разьем в мозговой памяти и добавить пару терабайтных римм модулей
     
  19. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Причем тут Linux ?