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