@kotlin_lang

Страница 690 из 982
Quantum Harmonizer
30.05.2018
08:38:51
на линкедлисте вроде lock free queue можно сделать ?
JB уже сделали :) А обычный LinkedList не нужен.

Жабра
30.05.2018
08:39:04
Это байтоебская база, которая нахрен не уперлась в продуктовой разработке. Давно в проде линкед лист использовал? Я вот - ни разу.
Тогда пошлите туда же и алгебру, и дискретную математику. Вы давно сами использовали в проде что-то из вектроной алгебры, к примеру? Я вот ни разу. Но понимание важно.

Leonid
30.05.2018
08:40:10
Асимптотический анализ? (или он не совсем там?)

Google
Евгений
30.05.2018
08:40:14
для формошлепства на спринге ничо не надо

Alexander
30.05.2018
08:41:16
А что там, в этой дискретной математике? (У меня её никогда не было.)
Зависит от курса. Где-то там асимптотический анализ, графы. Где-то теория множеств и тд.

Жабра
30.05.2018
08:41:35
А что там, в этой дискретной математике? (У меня её никогда не было.)
"В широком смысле ДМ включает в себя такие сложившиеся математические разделы, как теория множеств и отношений, математическая логика, комбинаторный анализ, а также ряд других, которые стали развиваться наиболее интенсивно в связи с внедрением вычислительной техники. В узком смысле ДМ ограничивается только этими новыми разделами, к которым относятся: теория функциональных систем, теория графов, теория автоматов, теория кодирования, теория алгоритмов и др."

Евгений
30.05.2018
08:44:17
и вот ты уже синьор помидор, и тебе приносят задачу по реализации валидации наименований организаций в системе, чтоб на формочке вывелось предупреждение, что организация с похожим наименованием существует в системе. И ты такой ... эээээ ... блджад ... пойду погуглю, а тебе там "используйте расстояние Левенштейна", а ты такой: чего блджад? и вот тут тебя настигает понимание, что матан надо было не просто зубрить, но еще и практиковать

Dmitry
30.05.2018
08:45:22
Тогда пошлите туда же и алгебру, и дискретную математику. Вы давно сами использовали в проде что-то из вектроной алгебры, к примеру? Я вот ни разу. Но понимание важно.
Да, база продуктового разработчика - понимать как работает ПК, как исполняется его код, знать шаблоны, многопоточность и т.п. Но никак не дискретную математику. И знание векторной алгебры мне нафиг не уперлось для работы. Вот совсем. Гораздо важнее умение правильно пользоваться профайлером, что-то налабать на питоне, или хотяб баше и т.п.

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

Евгений
30.05.2018
08:48:18
http://lmgtfy.com/?q=%D1%80%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5+%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0
да это понятно, что сейчас можно нагуглить, и это расстояние Левенштейна элементарный пример, но базис все таки лучше знать

Dmitry
30.05.2018
08:48:37
Какие-то другие готовые алгоритмы нельзя нагуглить?

Евгений
30.05.2018
08:49:54
В вузе может быть полезно научиться читать матетический язык, чтобы модель памяти джавы прочитать, например. Но знание алгоритмов наизусть - это маразм.
ну про это и разговор, вроде. Не надо учить алгоритмы наизусть, но надо помнить, что такие алгоритмы есть, и они могут решать конкретные задачи

Dmitry
30.05.2018
08:50:05
Меня умиляет, когда на собеседованиях спрашивают знание байтоебской "базы" наизусть, которая гуглится за 1 минуту и понадобиться с вероятностью 0,000000%, но никто не спрашивает как нормально запрофайлить как ускорить загрузку экрана, хотя это понадобиться почти наверняка

Google
Dmitry
30.05.2018
08:51:10
Когда есть конкретная задача, и профайлер показывает проблему, то алгоритмы под задачу гуглятся. На крйний случай можно спросить у байтоеба, который может быть один на команду. Всем это знать - совершенно бесполезно ИМХО.

Понимание алгоритмов реально нужно, чтобы придумывать новые алгоритмы. Что конечно нужно, если пишешь модуль ядра, гипервизор или что-нибудь в этом роде. А если вебчик, мобилку, или отчетики в CRM фигачишь (уже не всегда), готовых - достаточно.

Quantum Harmonizer
30.05.2018
08:56:25
Евгений
30.05.2018
08:57:17
я знал, что найдется человек, который натыкает меня носом в "дискретка не матан!!!11" ))

Денис
30.05.2018
08:58:51
Ну так не матан же)

Dmitry
30.05.2018
08:59:18
Какая разница, это одинаково бесполезные для продуктового разработчика дисциплины.

Ради общего интереса можно их поизучать, вместо философии.

Денис
30.05.2018
09:01:13
Какая разница, это одинаково бесполезные для продуктового разработчика дисциплины.
Ну такое, прикладное представление о дискретке полезно почти любому разрабу. Умение писать и хорошо разбираться во внутрянке сравнительно сложных алгоритмов - да, уже не всем далеко, а более поверхностное - плюс-минус всем, как по мне.

Dmitry
30.05.2018
09:06:38
Например? Какое знание полезно?

Что-нибудь типа Homotopy Type Theory Univalent Foundations of Mathematics Наверное будет полезно для понимания базы языков программирования, чтобы функциональщину двигать с пониманием и т.п. Но этому в вузах СНГ не учат, насколько я знаю

Евгений
30.05.2018
09:08:07
Теория графов полезна

Dmitry
30.05.2018
09:08:17
Зачем?

Malik
30.05.2018
09:15:01
Можешь ознакомиться с первыми языками программирования высокого уровня, например Алгол 60, почитать Вирта про построение компиляторов Полезно для понимания того, как и во что превращается написанный код

Dmitriy
30.05.2018
09:19:06
Теория графов полезна
Я пока вижу в теории графов пользу только в прохождении лабиринтов и в оценке решения той задачи где есть двери и нужно провести линию что бы через все двери прошла и не пересекалась ?

Dmitry
30.05.2018
09:20:47
Можешь ознакомиться с первыми языками программирования высокого уровня, например Алгол 60, почитать Вирта про построение компиляторов Полезно для понимания того, как и во что превращается написанный код
Понимать во что превращается - может и полезно. Вот беда, этому в ВУЗах бойтоебов не учат, поэтому это тоже никто не спрашивает. Типа раз нас не учили, значит и знать не нужно.

Google
Alexander
30.05.2018
09:22:12
Я бы сказал, что большинство задач решается без алгоритмов. Из того небольшого списка задач, где нужны алгоритмы, большинство гуглится неподготовленным человеком, но проще знать хоть какие-то алгоритмы, чтобы понимать язык, на котором их обычно описывают. Какую-нибудь топологическая сортировку или расстояние Дамерау-Левенштейна можно понять не прочитав ни одного алгоритма, но дольше. Итого есть пару разделов, которые явно неплохо бы знать (алгоритмическая сложность, минимальное количество алгоритмов для понимания нотации), остальное пригодится в крайне редком случае. Т.е. знать прикольно, но это так же прикольно знать как "а вот если затолкать такой набор действий, то компилятор Котлина превращается в тыкву"

Malik
30.05.2018
09:23:17
Нас учат. От самого низкого - физического уровня до верха - прикладного программирования

Алексей
30.05.2018
09:24:04
Такой подход к алгоритмам

Я просто полностью согласен, но на каждом шагу вижу/слышу, что алгоритмы жизненно необходимы

Прям вот без них ничего не пишется

Dmitry
30.05.2018
09:25:33
Кстати есть у кого-нибудь хорошая задачка на примете на понимание нотаций? На обычную житейскую задачу, где н = десятки, а константа - миллиард. Чтобы проверить, понимает ли человек, что от (н"2) вполне может быть быстрее, чем функция от н.

Алексей
30.05.2018
09:28:49
Alexander
30.05.2018
09:32:16
Кстати есть у кого-нибудь хорошая задачка на примете на понимание нотаций? На обычную житейскую задачу, где н = десятки, а константа - миллиард. Чтобы проверить, понимает ли человек, что от (н"2) вполне может быть быстрее, чем функция от н.
Из нежизненных часто есть вопрос "чем 20 элементов в массиве сортировать будешь?" Чуть более жизненное - вопрос "нужна ли тебе либа X, если у тебя гоняется 100 элементов туда-сюда". Пример X пусть будет Apache Ignite.

Dmitry
30.05.2018
09:35:04
Нее, это слишком топорно, даже до байтоеба дойдет. Скорее так, мы отображаем машины вокруг пользователя на экране, как их отсортировать. Чтобы посмотреть, у человека алгоритмы головного мозга или он задачу понимать умеет, что не будем мы отображать миллиард машин на экране никогда.

Mikhail
30.05.2018
11:36:03
Алгоритмы не так уж и связаны с байтоебством

Андрей
30.05.2018
11:39:06
Алгоритмы не так уж и связаны с байтоебством
и по большей части алгоритмы не нужны, потому что все обычно реализовано в языке в лучшем виде

Андрей
30.05.2018
11:39:45
поэтому странно смотреть как джунов отправляют учить алгоритмы сортировки или еще чего

Нуу, до лучшего вида в JDK порой далеко :)
да ладно Double Pivot Quicksort всяко лучше чем пузырек от джуна

Quantum Harmonizer
30.05.2018
11:40:15
Андрей
30.05.2018
11:40:18
ну или TimSort, смотря что в коллекции

Google
Quantum Harmonizer
30.05.2018
11:41:34
например?
(Linked)HashMap

Kirill
30.05.2018
11:41:45
например?
https://news.ycombinator.com/item?id=9100107 Иногда алгоритмы

Андрей
30.05.2018
11:41:58
кейс использования LinkedHashMap реально редкий

да и в чем там проблемы?

https://news.ycombinator.com/item?id=9100107 Иногда алгоритмы
это интересно, кстати, спасибо

я правильно понимаю что в котлин всё то же самое перетекло?

Андрей
30.05.2018
11:47:06
Не понял вопроса
в котлине используются жабовские коллекции, алгоритм сортировки также в котлине используется жабовский или там все таки свой напилили?

хотя тимсорт пофиксили давно я смотрю

Kirill
30.05.2018
11:49:10
в котлине используются жабовские коллекции, алгоритм сортировки также в котлине используется жабовский или там все таки свой напилили?
Не уверен, надо посмотреть. Скорее всего там всё из collections framework. Я не помню, чтобы я в котлин стдлиб видел сортировки

Egor
30.05.2018
11:49:15
А-тя-тя, ArrayList уже давно из kotlin.collections импортируется

Или просто List, нужно посмотреть

Но своих имплементаций в котлине уже по-моему сто лет как запилили

Андрей
30.05.2018
11:50:39
https://github.com/JetBrains/kotlin/blob/1.2.40/libraries/stdlib/src/generated/_Arrays.kt#L6705

Роман
30.05.2018
11:51:07
народ грааль кто-нибудь уже трогал?

Mikhail
30.05.2018
11:53:29
но джунам особо и не нужно ничего специфичного

Андрей
30.05.2018
11:55:12
или не реализованно, если нужно что-нибудь специфичное
ну это редкий кейс, понятно что в гугле/яндексе такое необходимо, но пока пишешь какое-нибудь андроед приложение где в лучшем случае список будет из 100 элементов приходить уже отсортированным с сети, то можно классические алгоритмы годами не видеть

Dmitry
30.05.2018
11:56:02
но джунам особо и не нужно ничего специфичного
Не только джунам. Задач, где это нужно вообще - мало.

Google
Dmitry
30.05.2018
11:56:54
Народ вон крупнейшие социальные сети на пхп пишет.

Kirill
30.05.2018
11:59:58
Народ вон крупнейшие социальные сети на пхп пишет.
А как это связано со знанием алгоритмов?

Mikhail
30.05.2018
12:01:13
на пхп разве нет алгоритмов?

dimiii
30.05.2018
12:07:22
если нужен прям рандом рандомыч, то SecureRandom :)
Был у меня интересный опыт, когда приложение залипало на чтении из /dev/random, из-за нехватки энтропии, на виртуалке

Dmitry
30.05.2018
12:09:39
Интерпретируемый динамический язык. Это просто про перфоманс.

Mikhail
30.05.2018
12:12:48
я слышал они там подкрутили перфоманс в последней версии

Leonid
30.05.2018
12:15:27
Интерпретируемый динамический язык. Это просто про перфоманс.
если ты про вк, то они запилили свой компилируемый в С пхп ?

Kirill
30.05.2018
12:16:06
Интерпретируемый динамический язык. Это просто про перфоманс.
у facebook свой пхп, называется hack. типизированный и компилируемый в С

Mikhail
30.05.2018
12:16:12
и кажется, что как раз таки в тормознутом языке правильные алгоритмы поважнее будут

Андрей
30.05.2018
12:16:39
хотя это не так

alix
30.05.2018
12:17:59
Привет чат

есть вопросик

а корутины в котлине это аналог тасков в сишарпе?

Mikhail
30.05.2018
12:20:42
а корутины в котлине это аналог тасков в сишарпе?
это более общая штука, на базе которой в стандартной библиотеке есть аналог тасок в сишарпе

Андрей
30.05.2018
12:20:45
а корутины в котлине это аналог тасков в сишарпе?
ну в плане использования ресурсов потоков - да

Mikhail
30.05.2018
12:21:25
ты про футуры (фьючерсы)?
да, но они называются в котле Deffered

Страница 690 из 982