[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: big O
Страницы: 1, 2
Ron
Цитата (chee @ 20.09.2017 - 01:32)
Чем больше изучаю базовые алгоритмы и структуры данных, тем больше понимаю, что их нужно знать любому программисту.

chee, поделись годными материальчиками-то? =)
twin
Цитата (waldicom @ 20.09.2017 - 06:22)
Предлагаю спросить твина, согласен ли он с алгоритмами
Меня зачем спрашивать, я всегда говорил, что алгоритмы первичны, а методологии - фантики.

Теперь это и до сhee дошло. Так что не будет холивара. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
waldicom
Цитата (twin @ 21.09.2017 - 02:43)
Теперь это и до сhee дошло. Так что не будет холивара. 

предааааатель smile.gif


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
chee
Плейлист на Ютубе по видео, которые я смотрел
https://habrahabr.ru/post/188010/
Алгоритм сортировки
Видеолекции курса «Алгоритмы и структуры данных»

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 21.09.2017 - 05:43)
алгоритмы первичны, а методологии - фантики

таки нет, алгоритмы не первичны, как и методологии. В профессии программиста - абстрактное мышление, вот что первично. Мне например алгоритмы бинарного поиска и оценка сложности, дали большего понимания как работает база данных. Также я начал задумываться о использовании SPL классов в своём коде.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Ron
Цитата (twin @ 21.09.2017 - 05:43)
Меня зачем спрашивать, я всегда говорил, что алгоритмы первичны, а методологии - фантики.

Это совершенно разные понятия, ни одно из них не является первичным. Профессиональный программист должен владеть и тем и другим. Одно оптимизирует вычислительные затраты, другое - время модификации кода (работы с кодом программиста). Поскольку время инженера значительно дороже машинного, допустИм небольшой перевес в сторону методологий. Подчеркиваю, небольшой! То есть, хорошо структурированный код, реализующий не самый идеальный алгоритм лучше идеального нечитаемого. Ок?

Что значит алгоритмы первичны? Когда человек не видит разницы между O(n!) и O(logn), ну тогда наверное слово программист вообще по отношению к нему не применимо. Да, можно не знать математического выражения сложности, но любой скилловый разработчик так или иначе прикидывает эффективность решения, пусть выраженную в субъективных понятиях, не столь важно.

twin, ты это что ли имеешь ввиду? То есть перефразирую на более упрощенный язык: программист в программировании лучше чем не программист. biggrin.gif Ну ок, никто не спорит. wink.gif Можно сказать что это условие не то что первично, но даже ультимативно.

Arh
Ron
Цитата
Это совершенно разные понятия, ни одно из них не является первичным.
Одно оптимизирует вычислительные затраты, другое - время модификации кода
Поскольку время инженера значительно дороже машинного, допустИм небольшой перевес в сторону методологий.


Если разделить программирование на логическое и архитектурное.
То логическое это алгоритмы, это математика и всё такое, а архитектурное это тоже ООП, mvc, фреймворки.

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

А может наоборот, в коде всё красиво и удобно, но игра говно, которое ничего не умеет, зато dlc удобно выпускать с очередной новой шмоткой для персонажа.

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

А если у тебя задача какие нибудь электромагнитные волны на основе местности рассчитывать, тебе вообще класть на архитектуру, ты по уши в математике сидишь. Потом просто перенесёшь это на какойнить подходящий язык, как получится. И будет у тебя говнокод, который на 146% улучшает качество мобильной связи.

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

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

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
Arh, как там не крути, но одно без другого будет выглядеть убого.

Цитата (Arh @ 22.09.2017 - 21:51)
Математика первична, точнее даже не математика, а прикладная "наука".

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

Но я тоже с тобой могу согласиться в том плане, что теория очень важна и в ряде случаев гораздо важнее любой практики. Скажем, физика, с точки зрения программирования, ничто иное, как теория в чистейшем виде. Как убежденный теоретик выступаю за познание наук, в том числе и смежных. В этом смысле, если абстрагироваться, да, знания первичны. =) Но только software engineering тоже наука, и какая из них первична в частности, вопрос остается открытым. С одной стороны для запуска, якобы, качественого продукта первичны алгоритмы (прикладная наука). С другой стороны, поддержка плохого кода может вызвать настолько много глюков и багов, что самая лучшая идея будет запорота в глазах потребителя. Им не объяснишь откуда идут глюки от плохого алгоритма или архитектуры, которую невозможно эффективно поддерживать. Намекаю на сильно связанный код, например, делаешь одно - ломается другое и хрен за этим уследишь.

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

Arh
Ron
Цитата
И вообще твина плохо понимаю, то он спорит про наукоёмкие подходы, а то вдруг - раз - оказывается имелись ввиду банальнейшие вещи.


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

Типа архитектура это фантик, что в общем то и является обёрткой/окружением, не поспоришь.
Так можно и OS типа Linux фантиком назвать для какого нибудь nginx или того же php. Правда в таком изречении это обидно слышать архитекторам linux =)
Но по сути так и есть, пустая OS без программ никому не нужна. Правда как и программа без OS, как OS без компьютера в конце концов. Компьютер без электричества (физика первична =)) . Понесло.

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

Мне как то давно сказали что нельзя быть профи в двух сферах. Типа быть хорошим админом и хорошим программистом, нужно сосредоточится на чём то одном, а второе можно взять как хобби, поверхностно.
В принципе пришло время согласиться)

Вот взять допустим нейросети, ну или что то такое из логического программирования и окунуться туда надолго.
Будешь всё больше и больше сворачивать в сторону математики, а тренды типа интерфейсов PSR будешь забывать или просто не успевать за новыми.
Так вот если ты в этом спец и не хочешь останавливаться, стоит ли забивать голову архитектурой какого нибудь фреймворка. Это уже не твой профиль, ты слишком далеко свернул.
И мне кажется твин по "той же" части. Правда не понятно куда именно он свернул, так как не видел от него "нейросетей". Может в степь типа как студентов обучать или ..., да чё гадать. твин?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Ron
Цитата (Arh @ 23.09.2017 - 01:07)
Компьютер без электричества (физика первична =)) . Понесло.

Вот именно! ) Поэтому я много раз уже повторял: некоторые вещи должны оставаться за скобками. И я искренне не понимаю людей, которые берут банальщину из-за скобок и вбрасывают в дискуссию, со словами "я же говорил". Получается так, что вся ветка рассуждений и доказательств сводится к банальщине, типа, с этого начал это и доказал(-вал). Якобы. Вопрос вот в чем: если это не лукавтсво, то на кой х%й надо было начинать!? wink.gif

twin
Цитата (Ron @ 22.09.2017 - 11:28)
twin, ты это что ли имеешь ввиду? То есть перефразирую на более упрощенный язык: программист в программировании лучше чем не программист
Нет, немного не то. Я имел ввиду, что алгоритмами владеть нужно обязательно, а методологию выбирать уже потом, под задачу. И можно вообще не владеть ООП к примеру, и писать качественный кодё


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (Arh @ 22.09.2017 - 21:51)
А если у тебя задача какие нибудь электромагнитные волны на основе местности рассчитывать, тебе вообще класть на архитектуру, ты по уши в математике сидишь.

Поверь - этот пример неудачный smile.gif Потому что расчет радиопокрытия от сотовой связи не является сложной задачей. Берешь правильную формулу (она очень простая!!!), берешь оцифрованную карту местности и делаешь расчет (вот тут как раз проблемы, т.к. правильные карты стоят очень дорого, а сам хрен сделаешь). Там основной гимор будет сделать это всё красиво и удобно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Arh
sergeiss
Ну я не спец, просто работал раньше в НИИ радио, там целый ВЦ для расчётов этой штуки запускали, вот и вспомнилось)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.