• XSS.stack #1 – первый литературный журнал от юзеров форума

Алгоритмы для злокодера

ALPAN

RAID-массив
Пользователь
Регистрация
07.04.2023
Сообщения
90
Реакции
74
Всем сап!
В универе коллеги программисты решили толпой пойти записаться на олимпиады по кодингу. Суть таких олимпиад, в основном, заключается в знании и применении алгоритмов и структур данных. Я к такому движу равнодушен и использую алгоритмы по мере надобности(очень редко), но ребятки прямо-таки фанатеют и уверяют, что незнание алгоритмов - залог некудышного кодера и ля-ля-ля...
А вы как считаете? И нужно ли в нашем деле уметь в алгоритмы?
 
даже если в практическом применении ты их нигде не используешь, алгоритмы - это, как минимум, хороший тренажер для мозга.
 
даже если в практическом применении ты их нигде не используешь, алгоритмы - это, как минимум, хороший тренажер для мозга.
Это само собой =)
Интересно узнать, про практическое применение алгоритмов в вирмейкинге. Может у кого был такой опыт. Интересно было бы почитать
 
Всем сап!
В универе коллеги программисты решили толпой пойти записаться на олимпиады по кодингу. Суть таких олимпиад, в основном, заключается в знании и применении алгоритмов и структур данных. Я к такому движу равнодушен и использую алгоритмы по мере надобности(очень редко), но ребятки прямо-таки фанатеют и уверяют, что незнание алгоритмов - залог некудышного кодера и ля-ля-ля...
А вы как считаете? И нужно ли в нашем деле уметь в алгоритмы?
Для школьников олимпиады это шанс прокатиться на социальном лифте - попасть в более крутой вуз. То есть тема более чем имеет право на жизнь. Зачем оно студням - трудно сказать, скорее нет, чем да. В таком возрасте и таком месте надо бухать и стартапы мутить с сынками-мажорами богачей, если сам не такой везучий. Олимпиадный стиль программирования - в целом плохой с точки зрения индустрии, кое-где при приёме на работу такое засчитают в минус. Самих олимпиадных алгоритмов штук 10 популярных, там "знать" то особо нечего.
ЗЫ: Забыл сразу написать, есть бесплатная финская книжка, где все основные олимпиадные алгоритмы перечислены, гуглится так: "Competitive Programmer’s Handbook". Есть её русский перевод называется вроде "Олимпиадное программирование", Анти Ларксонен.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
А вы как считаете? И нужно ли в нашем деле уметь в алгоритмы?
Для прохождения собесов -- нужно. Для работы -- очень ситуативно (редко).
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Как это ты не применяешь алгоритмы и сд? Эти сущности используются повсеместно и малварь кодинг не исключение
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Как это ты не применяешь алгоритмы и сд? Эти сущности используются повсеместно
Если это было мне, то отвечу -- что и где применяется повсеместно? На собесе будут спрашивать, например "метод скользящего окна" (частый вопрос), я не могу сказать, что он "повсеместно" используется. Остальные аналогично.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
доводилось видеть бинарный поиск в локере.
а по поводу алгоритмов - спорно. Определенно бывают ситуации, когда надо их использовать (я не про малварь, а просто про кодинг), но далеко не каждый день.
+очень зависит от задач, что ты делаешь. Иногда и поиск в ширину может пригодиться. Но это специфичные задачи
 
Алгоритмы нужны всегда, это тренерует мозг, учит тебя находить правильные и быстрые решения. Одну и ту же задачу можно решить разными путями, но кто-то сделает это более элегентно, красиво, быстро в плане исполнения, а кто-то заговнокодит. Кто-то сейчас скажет "ну заговнокодил и что, ну работает же, бабки приносит, пусть так будет". Ну отчасти это так, но это уровень скрипткидди. Рано или поздно любой кодер приходит к некоторому потолку возможностей, там заканчивается развитие, ты попадаешь в некотрое плато, и двигаешься в одной плоскости, как будто застрял по пояс в болоте. Это плохо. А что бы выбраться из этого болта, нужно изучать что-то новое. Вообще программирование это процентов на 50, а может и больше, работа с алгоритмами, даже банальный обход массива циклом for, это тоже алгоритм, но очень простой. Так что алгоритмы это неотъемлемая часть кодинга. И уважения к программистом, которые умеют в алгоритмы лично у меня больше, чем к тем кто кодит, бездумно копируя код со стаковерфлоу или чатгпт.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
И уважения к программистом, которые умеют в алгоритмы лично у меня больше, чем к тем кто кодит, бездумно копируя код со стаковерфлоу или чатгпт.
Разумеется, это крайности. Можно подумать между "гуру алгоритмов" и "копипастер с чатгпт" -- никого больше нет. Конечно, это не так. Повторюсь, алгоритмы нужны, но далеко не всегда и зацикливаться на них не стоит. А вот чего точно не следует делать, так это копипастить код откуда-то в надежде что "и так сойдёт". Программер должен понимать каждую строку и что в ней происходит. Лучше скормите непонятный вам код в тот же чатгпт и попросите объяснить его. Это сильно лучше для вас, чем бездумно копипастить. Всем успехов.
 
Одну и ту же задачу можно решить разными путями, но кто-то сделает это более элегентно, красиво
Здесь спорный момент. Так как по ходу общения, я понял, что у олипиадников другое видение и подход к решению задачи. С мелкими тасками они достаточно хорошо справляются, но, когда дело доходит до полноценного проекта, то получается целая каша из попыток оптимизаций, которая и образует этот самый говнокод. + на такие проекты у них уходит гораздо больше времени.
Это всё конечно мои наблюдения.

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

доводилось видеть бинарный поиск в локере
Интересный случай!
 
в практике преимущество за кодерами, которые больше уделяют времени своим велосипедам, нежели за теми, у кого практика ограничена решением задачек
В практике преимущество за балансом одного и второго. За тем, кто постоянно практикуется со своими велосипедами, но при этом "мыслит алгоритмически".
 
Мне кажется, в практике преимущество за кодерами, которые больше уделяют времени своим велосипедам, нежели за теми, у кого практика ограничена решением задачек.
Что бы эффективно строить свои велосипеды, нужно знать базу, что бы было от чего отталкиваться. Знание алгоритмов это не зубрежка этих самых алгоритмов для последующего использования.
Приведу аналогию - что бы писать красивые стихи на французском, ты должен выучить французский, а потом писать стихи. Ты можешь зазубрить стих, но это не творчество, это как раз "решение задачек", частные случаи. А вот когда ты знаешь французский (читай АЛГОРИТМЫ), ты можешь писать стихи (читай ЭФФЕКТИВНЫЙ КОД / СВОИ ВЕЛОСИПЕДЫ).
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Приведу аналогию
Да, мы поняли, академические задроты рулят, а все кто не юзает алгоритмы -- говнокодеры. Ну я шучу, конечно))

Не надо никогда зубрить. Надо понимать. However, про алгоритмы я уже сказал ранее. Ни на что особо их знание или незнание не влияет. Красота и изящность кода это вообще вкусовщина в большинстве случаев. Есть стандарты, но нет связи с алго. Если кодеры будут хотя бы доков придерживаться, уже прорыв случится)))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще-то программирование это и есть процесс переноса алгоритмов на некий понятный машине язык. Как вообще можно рассматривать эти термины в отрыве друг от друга?
"Программы = алгоритмы + структуры данных" (с) Никлаус Вирт
 
Вообще-то программирование это и есть процесс переноса алгоритмов на некий понятный машине язык. Как вообще можно рассматривать эти термины в отрыве друг от друга?
"Программы = алгоритмы + структуры данных" (с) Никлаус Вирт
Прямо в граните отлито, жаль что устарело, как и Паскаль. Сам Вирт кстати жив ещё, на ютубчике можно заценить интервью - матёрый человечище, гигант.
Первая моя книжка по Паскалю в 91-м году вместе с основными алгоритмами и модулями турбо-паскаля была страниц на 300, а первая книжка по апи OS/2 сразу была страниц на 1000, если не толще. То есть основная стандартная работа программиста уже тогда была не в выборе алгоритмов, тем более олимпиадного уровня (которых мало и нужны они редко), а в выборе правильных функций апи (которых очень много и нужны они всегда).
 
Вообще-то программирование это и есть процесс переноса алгоритмов на некий понятный машине язык. Как вообще можно рассматривать эти термины в отрыве друг от друга?
"Программы = алгоритмы + структуры данных" (с) Никлаус Вирт
Они поймут это позже, а пока, нам остается отвечать, отвечать, отвечать на одни и те же вопросы🙂
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Процесс переноса алгоритмов в некий понятный машине код - это кодирование, а не программирование.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Кодирование есть часть программирование. Программирование есть формулирование задачи, составление процедур по решению этой задачи (написание символьных выражений), отладка
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Кстати, раз уж мы ударились в терминологию, кто-то сможет дать определение термину "алгоритм"? :) Мне просто интересно.

залог некудышного кодера
А что у них подразумевается под "кудышным"? Уверен, каким бы не был их ответ, всегда можно будет привести контр-пример.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх