ACIK Опубликовано 10 сентября, 2013 Опубликовано 10 сентября, 2013 Он имел в виду: "Если хотите понять смысл скрипта, изучите его самостоятельно"? Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался. Как я уже отвечал выше: "Мудрость приходит только с годами" (с опытом), этому нельзя научить. Универсального и единственного решения (алгоритма) нет и быть не может.
VladimirS Опубликовано 11 сентября, 2013 Автор Опубликовано 11 сентября, 2013 код был написан правильно, и отлажен - но на реальных условиях задача не работала вообще, поскольку "сшивка" по ключам десятков огромных таблиц на каждый чих отнимало очень много ресурсов, критически важные расчеты в итоге шли в лучшем случае часами, индексация и прочие классические методики не помогали. Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас? В итоге БД была денормализована, многие вещи сделаны совершенно неправильно, но скорость работы в итоге возросла на 6 порядков ! Может ли тогда мое предположение, сделанное в данной теме быть верным: Необходимо изучить и в совершенстве понимать основные азы и стандарты программирования (первый топик в моей теме утверждает обратное. Каюсь, неверно выразил свою мысль ) В дальнейшем, не стоит глубоко погружаться в теорию, выискивая все новые классические алгоритмы (процесс этот может быть бесконечным). Лучшим вариантом продолжения обучения будет практика работы над конкретным продуктом - анализ характеристик собственных набитых шишек и их лечение. Параллельно, конечно, необходимо продолжить изучение классических алгоритмов, но уделять им уже значительно меньшее время, чем практике. теория алгоритмов. Без умения четко представить решение задачи, разбить ее на подзадачи и т.п. программу написать нереально. И наблюдая за своими дипломниками я нередко вижу, что они не могут четко себе представить, как будет работать их программа (или устройство - не важно). Вопрос к Вам, как к профессиональному преподавателю и, как я понял, активному программисту: так ли важно изучать вдоль и поперек эти теории алгоритмов? Насколько они помогают? Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался. То есть он был сторонником того, чтобы Вы самостоятельно придумали решение проблемы вместо того, чтобы воспользоваться готовым решением. Я стремлюсь найти ответ на животрепещущий вопрос: в каких случаях следует брать готовые решения, а когда - придумывать эти решения самому (даже в случаях, когда этими решениями можно воспользоваться) Цель: научиться эффективно программировать (допустим, жесткие сроки решения задачи отсутствуют)
ACIK Опубликовано 11 сентября, 2013 Опубликовано 11 сентября, 2013 (изменено) научиться эффективно программировать Ну, это звучит как: "хочу быть крутым"... Давайте все-таки определимся с приоритетами: ЗНАНИЯ (признание, слава, уважение, польза обществу, изобрести что-то новое) или ПРИБЫЛЬ ("быстро срубить бабла")? Выбор приоритета и будет ответом на ваш вопрос. В каких пропорциях смешивать приоритеты зависит только от вас. Никогда не ищите "идеал", выбирайте середину. Невозможно все знать, ровно как и нельзя заработать все деньги. Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас? Отвечу, с позволения, за "Zaitsev Oleg". Из любого правила есть исключения. Денормализация является вполне обычным приемом для "упрощения" структур БД, т.е. своего рода исключение и общего правила. Изменено 11 сентября, 2013 пользователем ACIK 1
Zaitsev Oleg Опубликовано 12 сентября, 2013 Опубликовано 12 сентября, 2013 код был написан правильно, и отлажен - но на реальных условиях задача не работала вообще, поскольку "сшивка" по ключам десятков огромных таблиц на каждый чих отнимало очень много ресурсов, критически важные расчеты в итоге шли в лучшем случае часами, индексация и прочие классические методики не помогали. 1. Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас? В итоге БД была денормализована, многие вещи сделаны совершенно неправильно, но скорость работы в итоге возросла на 6 порядков ! 2. Может ли тогда мое предположение, сделанное в данной теме быть верным: Необходимо изучить и в совершенстве понимать основные азы и стандарты программирования (первый топик в моей теме утверждает обратное. Каюсь, неверно выразил свою мысль ) В дальнейшем, не стоит глубоко погружаться в теорию, выискивая все новые классические алгоритмы (процесс этот может быть бесконечным). Лучшим вариантом продолжения обучения будет практика работы над конкретным продуктом - анализ характеристик собственных набитых шишек и их лечение. Параллельно, конечно, необходимо продолжить изучение классических алгоритмов, но уделять им уже значительно меньшее время, чем практике. теория алгоритмов. Без умения четко представить решение задачи, разбить ее на подзадачи и т.п. программу написать нереально. И наблюдая за своими дипломниками я нередко вижу, что они не могут четко себе представить, как будет работать их программа (или устройство - не важно). 3. Вопрос к Вам, как к профессиональному преподавателю и, как я понял, активному программисту: так ли важно изучать вдоль и поперек эти теории алгоритмов? Насколько они помогают? Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался. То есть он был сторонником того, чтобы Вы самостоятельно придумали решение проблемы вместо того, чтобы воспользоваться готовым решением. Я стремлюсь найти ответ на животрепещущий вопрос: в каких случаях следует брать готовые решения, а когда - придумывать эти решения самому (даже в случаях, когда этими решениями можно воспользоваться) Цель: научиться эффективно программировать (допустим, жесткие сроки решения задачи отсутствуют) 1. Как правильно заметил ACIK мой пример демонстрирует, что практически любой идеальный и в общем-то совершенно правильный алгоритм или подход не всегда работает, так как есть исключения или некая специфика. Отсюда следствие - слепое использование готовых алгоритмов и подходов неправильно и не оптимально. 2. С п.п. 2 списка не соглашусь - в теорию можно и нужно погружаться, но в разумных пределах. Нужно только найти некую "золотую середину", любой перегиб в сторону теории/практики/использования готовых алгоритмов ничего хорошего не даст. Я бы еще добавил одну позицию с номером 0 - "необходимо научиться составлять технические задания, четко и точно формализуя требования к разрабатываемому приложению и его функционалу". Дело в том, что без четкого и грамотно составленного ТЗ принципиально невозможно сделать нормальные алгоритмы, так как мы не знаем, что должна делать программа. И некачественное ТЗ зачастую приводит к многочисленным переделкам программы, или еще хуже - по изначальному ТЗ делается грамотное приложение, потом выясняется, что в ТЗ забыли учесть что-то важное, и грамотное решение для изначального ТЗ становится совершенного безграмотным и неоптимальным для нового. 3. Изучать теории алгоритмов важно. Но без фанатизма... Можно например потратить 5 лет на зазубривание трехтомника Кнута наизусть, и не применить и доли процента из описанного там. А можно прочитать его, поставить на полку и знать, что он там стоит и что в случае надобности в нем можно найти Аналогично в остальном... Плюс следует понимать, что задача задаче рознь - например, написание программ под 1C это одно, написание программы управления баллистической ракетой - другое. Универсального рецепта на все случаи жизни нет. По поводу обучения "эффективному программированию" - нет решения, как этому научиться, равно как нет волшебной таблетки от всех болезней В любом случае если занятие программированием серьезное, то я советую начать подбирать техническую библиотеку по предметной области, это никогда не будет лишним. 1
VladimirS Опубликовано 12 сентября, 2013 Автор Опубликовано 12 сентября, 2013 Давайте все-таки определимся с приоритетами: ЗНАНИЯ (признание, слава, уважение, польза обществу, изобрести что-то новое) или ПРИБЫЛЬ ("быстро срубить бабла")? Приоритет, конечно, знания. Стал бы я поднимать такую тему, если бы меня интересовало только бабло... Дело в том, что в процессе обучения программированию я люблю не только изучать сам предмет, но и исследовать сам процесс обучения. Это одно из моих хобби. Вот я и стремлюсь найти золотую середину: изучать больше полезного, и избегать лишнего с точки зрения приумножения знаний. Ведь всяких пособий, курсов и учебников по программированию настолько много, что в них можно утонуть. А также, программные комплексы, подходы, алгоритмы стремительно усложняются... Поэтому приходится изыскивать способы и возможности изучения всего этого дела. Никаким программам, курсам и преподам не могу доверять полностью, думаю, что всегда нужно думать своей головой даже в области, касающейся обучения. я советую начать подбирать техническую библиотеку по предметной области, это никогда не будет лишним. Можете ли поделиться правилами о подборе такой технической библиотеки? Понимаю, что все это расписано в интернете, но интересен Ваш подход к этому делу
Zaitsev Oleg Опубликовано 14 сентября, 2013 Опубликовано 14 сентября, 2013 Можете ли поделиться правилами о подборе такой технической библиотеки? Понимаю, что все это расписано в интернете, но интересен Ваш подход к этому делу У меня правило простое - я стараюсь постоянно пополнять домашнюю библиотеку, процесс сдерживается местом в шкафах и здравым смыслом Такой подход мне привили родители еще со школьных времен - что если занимаешься каким-то делом, то по нему следуют иметь максимально полный комплект литературы. Это себя оправдывает, например только по программированию/администрированию и электронике у меня сейчас под рукой 286 "бумажных" книг в личной библиотеке. Правила подбора простые: - я игнорирую книги серий "для чайников", лучше ничего, чем такое - по любому направлению желательно иметь комплект книг типа "справочник", "учебник", "практика использования X". Материал таких книг явно будет перекрываться, но это скорее плюс, чем минус. - по всем выбранным направлениям я отслеживаю новинки, сейчас это несложно делать через Интернет-магазины
Paddington Опубликовано 14 сентября, 2013 Опубликовано 14 сентября, 2013 @Zaitsev Oleg, не совсем в тему, какую литературу вы посоветуете для изучения электроники и проектирования усилителей? Очень желательно, чтобы эта литература была понятна начинающему.
Zaitsev Oleg Опубликовано 17 сентября, 2013 Опубликовано 17 сентября, 2013 @Zaitsev Oleg, не совсем в тему, какую литературу вы посоветуете для изучения электроники и проектирования усилителей? Очень желательно, чтобы эта литература была понятна начинающему. Изучение электроники - очень широкое направление. В идеале необходимо изучать с азов, причем если есть желание проектировать что-то свое - то задача радикально усложняется, так как придется изучать методику расчетов различных каскадов, способы их согласования, обратные связи с их плюсами и минусами и т.п. Плюс придется освоить методику моделирования электрических схем, это отдельное направление. Хороших учебников под рукой нет, так что не рискну советовать (когда я был студентом, у нас этот предмет вел известный своими книгами профессор Дьяконов, считали мы эти усилители на курсовых, могу поискать перечень рекомендуемой литературы в конспектах лекций - но элементная база за 20 лет поменялась радикально). Из известных мне книг мог бы посоветовать трехтомник Хоровц, Хилл "Искусство схемотехники" (книга старая, но хорошая и переиздается, найти ее не проблема), она в любом случае пригодится. Ну и конкретно по усилителям есть специальные книги, из свежих - http://www.ozon.ru/context/detail/id/19482522/ ... PS: еcли итоговая цель = построить свой усилитель мощности и аналог ресивера для домашней акустики, советую сразу плюнуть на эту затею 1
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти