Перейти к содержанию

Программирование - это практика? Правильный подход


VladimirS

Рекомендуемые сообщения

 

 


Он имел в виду: "Если хотите понять смысл скрипта, изучите его самостоятельно"?

 

Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался. Как я уже отвечал выше: "Мудрость приходит только с годами" (с опытом), этому нельзя научить.

 

Универсального и единственного решения (алгоритма) нет и быть не может.

Ссылка на комментарий
Поделиться на другие сайты

 

 


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

 

Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас?

 

 

 


В итоге БД была денормализована, многие вещи сделаны совершенно неправильно, но скорость работы в итоге возросла на 6 порядков !

 

Может ли тогда мое предположение, сделанное в данной теме быть верным:

  1. Необходимо изучить и в совершенстве понимать основные азы и стандарты программирования (первый топик в моей теме утверждает обратное. Каюсь, неверно выразил свою мысль :mmm: )
  2. В дальнейшем, не стоит глубоко погружаться в теорию, выискивая все новые классические алгоритмы (процесс этот может быть бесконечным).
  3. Лучшим вариантом продолжения обучения будет практика работы над конкретным продуктом - анализ характеристик собственных набитых шишек и их лечение. Параллельно, конечно, необходимо продолжить изучение классических алгоритмов, но уделять им уже значительно меньшее время, чем практике.

 

 

 


теория алгоритмов. Без умения четко представить решение задачи, разбить ее на подзадачи и т.п. программу написать нереально. И наблюдая за своими дипломниками я нередко вижу, что они не могут четко себе представить, как будет работать их программа (или устройство - не важно).

 

Вопрос к Вам, как к профессиональному преподавателю и, как я понял, активному программисту: так ли важно изучать вдоль и поперек эти теории алгоритмов? Насколько они помогают? 


 

 


Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался.

 

То есть он был сторонником того, чтобы Вы самостоятельно придумали решение проблемы вместо того, чтобы воспользоваться готовым решением.

 

Я стремлюсь найти ответ на животрепещущий вопрос: в каких случаях следует брать готовые решения, а когда - придумывать эти решения самому (даже в случаях, когда этими решениями можно воспользоваться) :morganie:

 

Цель: научиться эффективно программировать (допустим, жесткие сроки решения задачи отсутствуют) 

Ссылка на комментарий
Поделиться на другие сайты

научиться эффективно программировать

 

Ну, это звучит как: "хочу быть крутым"...

 

Давайте все-таки определимся с приоритетами: ЗНАНИЯ (признание, слава, уважение, польза обществу, изобрести что-то новое) или ПРИБЫЛЬ ("быстро срубить бабла")?

 

Выбор приоритета и будет ответом на ваш вопрос. В каких пропорциях смешивать приоритеты зависит только от вас.

 

Никогда не ищите "идеал", выбирайте середину. Невозможно все знать, ровно как и нельзя заработать все деньги.

 

Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас?

 

Отвечу, с позволения, за "Zaitsev Oleg".

Из любого правила есть исключения.

Денормализация является вполне обычным приемом для "упрощения" структур БД, т.е. своего рода исключение и общего правила.

Изменено пользователем ACIK
  • Сомневаюсь 1
Ссылка на комментарий
Поделиться на другие сайты

 

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

 

1. Правильно ли я понял: классические алгоритмы не работали должным образом, так как они были написаны и оптимизированы без учета необходимости "сшивки" той степени сложности, которая была у Вас?

 

 

 

В итоге БД была денормализована, многие вещи сделаны совершенно неправильно, но скорость работы в итоге возросла на 6 порядков !

 

2. Может ли тогда мое предположение, сделанное в данной теме быть верным:

  1. Необходимо изучить и в совершенстве понимать основные азы и стандарты программирования (первый топик в моей теме утверждает обратное. Каюсь, неверно выразил свою мысль :mmm: )
  2. В дальнейшем, не стоит глубоко погружаться в теорию, выискивая все новые классические алгоритмы (процесс этот может быть бесконечным).
  3. Лучшим вариантом продолжения обучения будет практика работы над конкретным продуктом - анализ характеристик собственных набитых шишек и их лечение. Параллельно, конечно, необходимо продолжить изучение классических алгоритмов, но уделять им уже значительно меньшее время, чем практике.

 

 

 

теория алгоритмов. Без умения четко представить решение задачи, разбить ее на подзадачи и т.п. программу написать нереально. И наблюдая за своими дипломниками я нередко вижу, что они не могут четко себе представить, как будет работать их программа (или устройство - не важно).

 

3. Вопрос к Вам, как к профессиональному преподавателю и, как я понял, активному программисту: так ли важно изучать вдоль и поперек эти теории алгоритмов? Насколько они помогают? 

 

 

Он имел в виду, что-то типа: "на ошибках учатся" и помогать особо не собирался.

 

То есть он был сторонником того, чтобы Вы самостоятельно придумали решение проблемы вместо того, чтобы воспользоваться готовым решением.

 

Я стремлюсь найти ответ на животрепещущий вопрос: в каких случаях следует брать готовые решения, а когда - придумывать эти решения самому (даже в случаях, когда этими решениями можно воспользоваться) :morganie:

 

Цель: научиться эффективно программировать (допустим, жесткие сроки решения задачи отсутствуют) 

 

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

2. С п.п. 2 списка не соглашусь - в  теорию можно и нужно погружаться, но в разумных пределах. Нужно только найти некую "золотую середину", любой перегиб в сторону теории/практики/использования готовых алгоритмов ничего хорошего не даст. Я бы еще добавил одну позицию с номером 0  - "необходимо научиться составлять технические задания, четко и точно формализуя требования к разрабатываемому приложению и его функционалу". Дело в том, что без четкого и грамотно составленного ТЗ принципиально невозможно сделать нормальные алгоритмы, так как мы не знаем, что должна делать программа. И некачественное ТЗ зачастую приводит к многочисленным переделкам программы, или еще хуже - по изначальному ТЗ делается грамотное приложение, потом выясняется, что в ТЗ забыли учесть что-то важное, и грамотное решение для изначального ТЗ становится совершенного безграмотным и неоптимальным для нового.

3. Изучать теории алгоритмов важно. Но без фанатизма... Можно например потратить 5 лет на зазубривание трехтомника Кнута наизусть, и не применить и доли процента из описанного там. А можно прочитать его, поставить на полку и знать, что он там стоит и что в случае надобности в нем можно найти :) Аналогично в остальном... Плюс следует понимать, что задача задаче рознь - например, написание программ под 1C это одно, написание программы управления баллистической ракетой - другое. Универсального рецепта на все случаи жизни нет.

 

По поводу обучения "эффективному программированию" - нет решения, как этому научиться, равно как нет волшебной таблетки от всех болезней :) В любом случае если занятие программированием серьезное, то я советую начать подбирать техническую библиотеку по предметной области, это никогда не будет лишним.

  • Сомневаюсь 1
Ссылка на комментарий
Поделиться на другие сайты


Давайте все-таки определимся с приоритетами: ЗНАНИЯ (признание, слава, уважение, польза обществу, изобрести что-то новое) или ПРИБЫЛЬ ("быстро срубить бабла")?

Приоритет, конечно, знания. Стал бы я поднимать такую тему, если бы меня интересовало только бабло...

 

Дело в том, что в процессе обучения программированию я люблю не только изучать сам предмет, но и исследовать сам процесс обучения. Это одно из моих хобби.

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

 

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

 

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


 


я советую начать подбирать техническую библиотеку по предметной области, это никогда не будет лишним.

 

 

Можете ли поделиться правилами о подборе такой технической библиотеки? Понимаю, что все это расписано в интернете, но интересен Ваш подход к этому делу :good:

 

 
Ссылка на комментарий
Поделиться на другие сайты

 

Можете ли поделиться правилами о подборе такой технической библиотеки? Понимаю, что все это расписано в интернете, но интересен Ваш подход к этому делу :good:

 

У меня правило простое - я стараюсь постоянно пополнять домашнюю библиотеку, процесс сдерживается местом в шкафах и здравым смыслом :) Такой подход мне привили родители еще со школьных времен - что если занимаешься каким-то делом, то по нему следуют иметь максимально полный комплект литературы. Это себя оправдывает, например только по программированию/администрированию и электронике у меня сейчас под рукой 286 "бумажных" книг в личной библиотеке. Правила подбора простые:

- я игнорирую книги серий "для чайников", лучше ничего, чем такое

- по любому направлению желательно иметь комплект книг типа "справочник", "учебник", "практика использования X". Материал таких книг явно будет перекрываться, но это скорее плюс, чем минус.

- по всем выбранным направлениям я отслеживаю новинки, сейчас это несложно делать через Интернет-магазины

Ссылка на комментарий
Поделиться на другие сайты

@Zaitsev Oleg, не совсем в тему, какую литературу вы посоветуете для изучения электроники и проектирования усилителей? Очень желательно, чтобы эта литература была понятна начинающему.

Ссылка на комментарий
Поделиться на другие сайты

@Zaitsev Oleg, не совсем в тему, какую литературу вы посоветуете для изучения электроники и проектирования усилителей? Очень желательно, чтобы эта литература была понятна начинающему.

Изучение электроники - очень широкое направление. В идеале необходимо изучать с азов, причем если есть желание проектировать что-то свое - то задача радикально усложняется, так как придется изучать методику расчетов различных каскадов, способы их согласования, обратные связи с их плюсами и минусами и т.п. Плюс придется освоить методику моделирования электрических схем, это отдельное направление. Хороших учебников под рукой нет, так что не рискну советовать (когда я был студентом, у нас этот предмет вел известный своими книгами профессор Дьяконов, считали мы эти усилители на курсовых, могу поискать перечень рекомендуемой литературы в конспектах лекций - но элементная база за 20 лет поменялась радикально). Из известных мне книг мог бы посоветовать трехтомник Хоровц, Хилл "Искусство схемотехники" (книга старая, но хорошая и переиздается,  найти ее не проблема), она в любом случае пригодится. Ну и конкретно по усилителям есть специальные книги, из свежих - http://www.ozon.ru/context/detail/id/19482522/  ...

PS: еcли итоговая цель = построить свой усилитель мощности и аналог ресивера для домашней акустики, советую сразу плюнуть на эту затею :)

  • Согласен 1
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • rupitsa
      От rupitsa
      Всем доброго времени! Возник вопрос по правильному хранению лицензий! Я почему то думал, что могу добавить ключ на my Kaspersky, и пока я не добавлю ни одного устройства, у меня ключ будет там в целости и сохранности, а оказалось все и на оборот, таким способом я уже потерял ключ от KSC, что очень жаль.
       Чтоб больше не возникло вопросов по их хранению, можно ли вообще их как то хранить на портале или нет?
       
    • Sandynist
      От Sandynist
      Добрый вечер! Давно хотел написать о проблеме, но всё руки не доходили. 
       
      Немного истории: с большими усилиями компании удалось выкупить региональный домен https://www.kaspersky.kz/
      Можете погуглить, история мутная, какой-то предприимчивый делец зарегистрировал это имя себе и запросил много бабла с компании. 
       
      Но вот теперь казалось бы всё должно наладится, и сайт должен заработать корректно, но ничего подобного.
      Если у нас попытаться открыть ссылку в виде:
      https://www.kaspersky.ru/about/press-releases/zhertvami-novoj-versii-troyanca-necro-mogli-stat-milliony-vladelcev-android-ustrojstv
      то происходит автоматический редирект на наш региональный домен:
      https://www.kaspersky.kz/about/press-releases/zhertvami-novoj-versii-troyanca-necro-mogli-stat-milliony-vladelcev-android-ustrojstv
      на котором никакой статьи не наблюдается. 
       

       
      Так всё это не работает уже более года, а может даже и двух. Хотел традиционно задать этот вопрос Евгению Валентиновичу, но он заметно нервничает, когда его начинают спрашивать по технической части. А я в свою очередь не знаю куда и кому адресовать жалобу, это же не антивирусный продукт.
      Написал письмо на адрес info@kaspersky.com , но очень сомневаюсь, что будет хоть какой-то результат.
       
      P.S. Раньше тут появлялись технические специалисты компании, которым напрямую можно было написать про такие проблемы, как сейчас с этим обстоят дела?
    • KL FC Bot
      От KL FC Bot
      Приложения для фитнеса в силу своей природы имеют доступ к большому количеству персональных данных, особенно те, которые отслеживают разнообразные активности на свежем воздухе, в первую очередь — бег. Во время трекинга они собирают массу данных: пульс и другие параметры физической активности, количество шагов, пройденную дистанцию, перепад высот и, разумеется, геолокацию, — для максимально подробного анализа тренировки.
      А люди редко занимаются бегом в каких-то случайных местах. Обычно их маршруты повторяются и расположены где-нибудь рядом с домом, работой, учебой, военной базой… То есть местом, где человек бывает часто и, скорее всего, в одно и то же время. Что будет, если эта информация попадет не в те руки?
      Последствия могут быть катастрофическими. Так, несколько лет назад опубликованная одним из беговых приложений карта выдала местоположение целого ряда секретных военных объектов. А летом 2023 года, предположительно, благодаря данным из того же приложения, наемным убийцей во время пробежки был застрелен командир российской подводной лодки Станислав Ржицкий.
      Разумеется, утечка геоданных может быть опасна не только для военных. Несложно представить сценарии, в которых она может привести к неприятностям не только для очевидных целей таргетированной атаки (например, знаменитостей, политических деятелей или топ-менеджеров какой-либо компании), но и для обычных людей.
      Зная о ваших перемещениях, злоумышленники с удовольствием используют их для шантажа и устрашения. Пресловутое «я знаю, где ты живешь и все твои передвижения» значительно повышает вероятность того, что жертва испугается и выполнит требования мошенников.
      Помимо прямых угроз, геотрекинг прекрасно дополняет данные, утекшие из других приложений или собранные при помощи доксинга, что заметно повышает успех таргетированной атаки. И не стоит думать, что уж вы-то точно не заинтересуете мошенников настолько, чтобы устраивать сложную атаку. Жертвой может стать каждый, и далеко не всегда конечной целью злоумышленников является финансовая выгода.
      Но не только геоданные собираются и анализируются приложениями для бега. Как и все фитнес-аппы, они следят за активностью и физическим состоянием, которые могут многое рассказать о здоровье человека. И эта информация также может оказаться полезной для атаки с применением социального инжиниринга. Ведь чем больше злоумышленник знает о жертве, тем изощреннее и эффективнее его действия.
      Так что к выбору приложения для трекинга бега и настройке его конфиденциальности стоит подойти максимально осознанно — и в этом вам помогут наши советы.
      Общие советы по выбору бегового приложения и настройке приватности в нем
      Первое, что делать категорически не стоит, — устанавливать подряд все трекеры бега и затем выбирать наиболее понравившийся. Таким образом вы передадите свои персональные данные всем подряд, что значительно увеличит риск их попадания в руки злоумышленников. Чем меньшим количеством приложений вы пользуетесь, тем меньше риск утечки. Но стоит помнить, что ни одна компания не может гарантировать стопроцентную сохранность данных.
      Кто-то вкладывается в безопасность своих пользователей больше, кто-то меньше, и предпочтение лучше отдавать тем, кто серьезно подходит к сохранности и анонимизации пользовательских данных. Для этого стоит внимательно изучить политику конфиденциальности (Privacy Policy) выбранного приложения. Добросовестные разработчики укажут, какие данные собирает приложение, с какой целью, какие из них могут быть переданы третьей стороне, какие права у пользователя в отношении персональных данных и так далее. Дополнительно полезно будет поискать в Сети или поинтересоваться у ИИ-ассистента, были ли случаи утечек данных у интересующего вас приложения. Для этого достаточно в поисковом запросе указать название приложения плюс data breaches или data leak. Ну и, разумеется, отзывы пользователей тоже никто не отменял.
       
      View the full article
    • KL FC Bot
      От KL FC Bot
      Спросите первого встречного о том, как защитить свою конфиденциальность в Интернете — и скорее всего, вы услышите про приватный режим браузера. Режим этот есть во всех популярных браузерах, хотя называется по-разному: в Chrome — Incognito, в Edge — InPrivate, в Firefox — Private Window/Tab, в Safari — Private Browsing. Все эти названия создают чувство защищенности, даже невидимости — кажется, что можно бродить по Интернету безопасно и анонимно. Увы, на практике этот режим далеко не «инкогнито», хотя все равно полезен, если понимать его особенности и дополнить защитой с антишпионскими функциями.
      Как работает режим инкогнито
      В приватном режиме браузер не сохраняет историю посещенных сайтов, не запоминает информацию, вводимую на сайтах в веб-формах, не сохраняет на диске компьютера графику и код посещаемых веб-страниц в браузерном кэше. Маленькие текстовые файлы куки (cookie), в которых сайты сохраняют настройки и предпочтения пользователя, хранятся до тех пор, пока открыто окно в режиме инкогнито, и удаляются при его закрытии. Таким образом, на компьютере пользователя не остается следов от посещения сайтов.
      Но действия пользователя по-прежнему видны извне. За ними могут следить: посещаемые сайты, сам браузер пользователя и браузерные дополнения, провайдер пользователя, системный администратор в офисе или учебном заведении, а также разнообразные системы рекламы и аналитики — например, принадлежащие Google.
      Некоторые браузеры — в частности, Firefox — в приватном режиме включают дополнительные меры защиты: отключение браузерных дополнений, блокировку известных сайтов аналитики, отслеживающих пользователей, и сторонних куки, установленных не тем сайтом, на который вы заходите. Все это, впрочем, тоже не дает полной «невидимости».
       
      Посмотреть статью полностью
    • st210165
      От st210165
      Уважаемые Гений Касперский и вся его команда
      а есть ли у Вас разработки своего на кирилице ассемблера и Свой на русском языке язык программирования - прямо с элементарного -если так можно сказать -железа ввода в память основ алфавита и программирования
      неплохо бы его с детского сада детям давать изучать и накапливать в базы данных 
      С уважением Ваш подписчик Игорь
×
×
  • Создать...