Блог им. Therollingstones
ЯЗЫК ПРОГРАММИРОВАНИЯ
C#5.0
И ПЛАТФОРМА .NET 4.5
б-е издание
Эндрю Троелсен
После нескольких месяцев довольно туманных исследований справочника Microsoft, я нашел это! Очень, очень, очень плавное введение в .NET,
вот прям взяли и собрали все что нужно. В первой главе, введение в NET так и говорится, дословно, в первой главе "мы собрали информацию, которая вас научит думать как NET"
Ну а я, че я, я составил схему этого введения.
Качаете книжку, открываете первую главу Философия NET, начитаете читать, потом понимаете, что схема очень хорошая вещь. Глава большая, схема включает только самые азы, основы, вы поймете до куда. Но, если вы начали знакомство с программированием с этого топика, Вам конкретно повезло. И развивайте ее!!!
1drv.ms/i/s!Aik_YYEGJIBwhGxgtKVyvlLxciqK
Очень хорошо, что попалась эта книга.
Я пометил, на главной топик выводится не будет, так что, полайкайте, пусть которые читают общую ленту получат доступ к этой информации тоже.
У нас работают два типа кодеров: 1) кто очень хорошо знает C# и читал подобную книгу, и делает платформу 2) кто плохо знает C#, но умеет кодировать алгортмы и формулы.
Для каждых задач свои потребности. Например, в подобных книгах делается сильный упор на GC + алгоритмы коллекций. В принципе, это бесполезные знания для разработки стратегий. И крайней важные, если делаются системные вещи, вроде коннекторов.
Mikhail Sukhov, те, кто плохо знают, как работают структуры данных и GC, могут запросто в своем алгоритме написать какую-нибудь мега-лямбду с LINQ, которая вместо O(1) или O(log(n)) будет O(n^2), и/ли new() во внутреннем цикле и мусорить так, что старания первой категории писателей платформы становятся напрасны при многомерной оптимизации на коротких таймфреймах и длинных данных. Сам грешил и видел такое, что специально не придумать. Как пример, буквально вчера бродил по ГитХабу в поисках новых репо на тему торговли, обратил внимание на этот метод — вычисляют сумму полностью каждый раз (это O(n)) да еще и через Range (sic!), хотя могли бы добавлять новое значение и вычитать выбывающее значение (это O(1)), у вас в S# как бы почти так и сделано, но безобидный и удобный метод Sum() пересчитывает сумму каждый раз заново. Также вы или копите все значения инпута в буфере, или строчкой выше удаляете первый элемент, что для List тоже строго O(n) и много мусора — я с первого взгляда не понял, что значит isFinal. В Lean тоже используют List как буффер, но только как внутренний контейнер для circular buffer, который гарантирует смещение за O(1). Затем для рассчета суммы они вычитают выбывающую точку и добавляют новую точку, что также O(1). И это только для одного простейшего индикатора — а если их много вложенных, и надо прооптимизировать минутки честно walk-forward на большой решетке параметров, такие мелочи приводят к тому, что кто-то делает рассчет за пару минут, а кто-то — полчаса. Первые за час могут подкрутить стратегию много раз, пока вторые греют чай на процессоре :) На тему «бесполезности таких знаний» и premature optimization — мой любимый пост от гуру производительности, в котором есть еще примеры.
(не шума ради дублирую, случайно удалил оригинальный коммент, но он сохранился в другом месте)
Но не суть. Я описал процесс работы в нашей компании. Как мы делаем роботы. Вот например есть человек, который не знает ничего об алгоритме сборки мусора. Он написал 2.5 года назад стратегию, которая до сих пор зарабатывает на рынке (с дркрутками). И было очень много людей, которые себя считали гурами, знали очень много умных слов и технологий, но не выдали ни одной зарабатывающей строчки кода. Как я устал лично их всех собеседовать, вводить в курс дела, вести за собой, обучать и затем увольнять =)
Как в вашей компании устроен процесс получения прибыльных стратегий?
Один из ключевых моментов в процессе — пересчитать максимальное количество идей/вариантов/параметров за единицу времени, так как 99% — это мусор.
Никаких намеков. Я лишь попытался показать, что акцент должен быть на прибыльности, а не на кодировании. Кодирование ради кодирования — лишено смысла. Мы же не в чисто ИТ бизнесе. Мы больше к финансовым рынкам.
надо заполнять))
Вот за что люблю Борландовские Дельфи, так это за то что есть исходники почти от всего, и при желании всегда можно залезть и посмотреть что там и как происходит… и поправить если очень уж хотелка зачесалась… С++ конечно в этом смысле тоже хорош, но… дебажить чужие темплейты это удовольствие то еще.