быстро выучить highload
От: Molchalnik  
Дата: 09.11.19 21:13
Оценка: +1 :))) :)))
Как быстро выучить highload с++? я опытный с++ программист с большим стажем, со знанием линукса, винды, андроида, ассемблера, системного программирования, qt, могу под ядро, могу User-space, шаблонный маг. К примеру, понимаю, когда и как атомарен volatile int на однопроцессорных и многопроцессорных системах. Неплохо знаю многопоточку, но там, где я работаю, она нахер не нужна. Поэтому я несколько неуверен в этой области — практики мало, хотя в теории я вполне могу и safe-thread-queue на бумажке без компа. Побаиваюсь ошибок из-за отсутствия обратной связи и оценки моих знаний.

Времени на обучение мало, нужен оптимальный ("бархатный") путь. Идти с понижением в хайлоад (что дало бы мне быстрое обучение) не хочу — место у меня сейчас вполне приличное.
Да и нет у меня цели попасть в хайлоад любой ценой. Хайлоад — лишь один из путей, и мощнейший нервный узел современного с++, поэтому хочу иметь опцион на найм в подобные конторы в любой момент. На большие деньги это чуть ли не половина вакансий.

Что читать, смотреть, чтобы БЫСТРО въехать во все тонкости и изучить все грабли?
Какие технологии нужно выучить?

бывает ли хайлоад без сетевого программирования? как отсутствие сетевого меняет шансы на найм в хайлоад?

Какие пункты в большем, а какие в меньшем приоритете для опытного программиста?
highload высоконагруженные с++
Re: быстро выучить highload
От: reversecode google
Дата: 09.11.19 22:25
Оценка: +1 -1
Здравствуйте, Molchalnik, Вы писали:

M>Как быстро выучить highload с++?

...
M>бывает ли хайлоад без сетевого программирования? как отсутствие сетевого меняет шансы на найм в хайлоад?

если вы не знаете что такое хайлоад, то может он вам и не надо ?
а вообще термины в современном мире очень относительны
лучше более специализировать вопрос
Re[2]: быстро выучить highload
От: Molchalnik  
Дата: 09.11.19 22:44
Оценка:
Здравствуйте, reversecode, Вы писали:

R>Здравствуйте, Molchalnik, Вы писали:


M>>Как быстро выучить highload с++?

R>...
M>>бывает ли хайлоад без сетевого программирования? как отсутствие сетевого меняет шансы на найм в хайлоад?

R> если вы не знаете что такое хайлоад, то может он вам и не надо ?

Так и поясните, что вам не понравилось? Я понимаю хайлоад как высоконагруженные приложения, а высоконагруженные приложения бывают обычно на серверах, которые обычно имеют доступ в сеть. Это серверная часть приложений. Это, как я думаю, всякое обслуживание корпоративной видеосвязи, игроков на бирже (в том числе, и тех, которые играют в мгновенный трейдинг, где сделки совершаются на интервалах в секунды), обслуживание сервисов вроде яндекс такси и поисковики. Но при этом я, например, не знаю — может, в хайлоаде принято, что один человек пишет транзакции с сетью, а другой оптимизирует многопоточные алгоритмы

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

R>если вы не знаете что такое хайлоад, то может он вам и не надо ?

Я же в начале и говорил, что я не работал в хайлоаде, и хочу его изучить. Разве это говорит о моём знании темы? и таки да, надо.

R>а вообще термины в современном мире очень относительны

R>лучше более специализировать вопрос

Специализировать вопрос не имеет смысла, т.к. я для повышения своей конкурентноспособности хочу иметь возможность войти в как можно большее число проектов с высокой оплатой.
Re[3]: быстро выучить highload
От: reversecode google
Дата: 09.11.19 22:58
Оценка: +1
взаимо исключающие вопросы
в одном спрашиваете как быстро выучить хайлоад
в другом сомневаетесь о том что такое хайлоад
вы определитесь

если хотите быстро влиться надо было посетить
https://www.highload.ru/moscow/2019/abstracts
https://www.youtube.com/user/profyclub/videos
зазнакомится в разными людьми
поспрошать если у них вакансий

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

по поводу высоко оплачиваемая очень сомнительно

другой вариант быстро войти,- реализовать что то для хайлоада, с больше тысячи звездочек и форков на гитхабе
что бы другие смогли оценить
Re: быстро выучить highload
От: L.K. Марс  
Дата: 09.11.19 23:31
Оценка:
M>поэтому хочу иметь опцион на найм в подобные конторы в любой момент

Я угадываю что твой родной язык это английский.

Ну а по сути вопроса: что такое "выучить хайлод"? На каком уровне?

Одно дело — разработка специального ПО. Тут нужно знать алгоритмы (вроде сортировки), многопоточное программирование. Крайне желательно знать ассемблер. Нужно продумывать масштабирование ПО.

Другое дело — применение чужого ПО. Тут нужно знать настройки этого ПО, уметь его масштабировать применительно к конечной задаче, обеспечивать отказоустойчивось и т.п.
Re[4]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 08:36
Оценка:
Здравствуйте, reversecode, Вы писали:

R>взаимо исключающие вопросы

R>в одном спрашиваете как быстро выучить хайлоад
R>в другом сомневаетесь о том что такое хайлоад
R>вы определитесь
Я никогда не писал, что сомневаюсь в том, что такое хайлоад. Я был готов выслушать вашу точку зрения — в надежде, что вы разбираетесь лучше.
Но, думаю, мы отвлеклись от темы обсуждения в сторону моей личности и моих представлений. Давайте всё же вернёмся к тому, как быстро выучить программирование высоконагруженных систем.

R>по поводу высоко оплачиваемая очень сомнительно

Какая, по вашим данным, вилка lead programmer в highload c++?

R>другой вариант быстро войти,- реализовать что то для хайлоада, с больше тысячи звездочек и форков на гитхабе

R>что бы другие смогли оценить
Только звёздочек будет десять, а оценивать не будет никто, и если я в силу неопытности сделаю типовые ошибки, то даже не узнаю об этом. Что обесценивает идею.
Re: быстро выучить highload
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 10.11.19 09:04
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Что читать, смотреть, чтобы БЫСТРО въехать во все тонкости и изучить все грабли?

M>Какие технологии нужно выучить?

M>бывает ли хайлоад без сетевого программирования? как отсутствие сетевого меняет шансы на найм в хайлоад?


M>Какие пункты в большем, а какие в меньшем приоритете для опытного программиста?


Хороший и интересный вопрос, очень! С одной стороны, reversecode выше верное ответил, для начала стоило бы определиться с тем, что именно хочется, так как highload — он разный. Обычно под хайлоад понимаю разработку высоко нагруженных сетевых систем активно работающих с данными. Тут нужен не столько С++, сколько знания кучи технологий и инструментов, объедения которые вместе и добавляя к ним доменную бизнес-логину можно получить высоко нагруженную систему. У меня бывший коллега зашел в эту область с десктопа сразу на позицию архитектора довольно красиво — он получил корочку архитектора AWS, корочку разработчика в k8s ну и еще по мелочам. Но, надо признать, он очень усидчивый и мозговитый, такой путь сильно не для всех. Ну и С++ в этой области скорее вреден чем полезен.

Но судя по тому что вы перечислили выше, видится скорее не разработка высоко нагруженных бизнес-решений, а самих компонент для высоко нагруженных систем. Ну, тут, по большому счету, та же разработка, иногда на С++, иногда на Java, иногда на Go, иногда на Erlang. Если хочется в эту область, тут уж стоит определиться, толи с теорией разработки баз данных разбираться, то ли с оптимизацией сетевого стека, то ли еще что...

Ну и еще, иногда, к highload относят HFT и вот тут и С++ любят и всякие оптимизации. Но еще они любят опыт в банках и аналогичной сфере.

Так вот, а о каком именно highload шла речь изначально?

P.S. я не думаю что в эту область вообще можно быстро войти, она, честно говоря, огромна и очень объёмна
Re[2]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 09:44
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Molchalnik, Вы писали:


M>>Что читать, смотреть, чтобы БЫСТРО въехать во все тонкости и изучить все грабли?

M>>Какие технологии нужно выучить?

M>>бывает ли хайлоад без сетевого программирования? как отсутствие сетевого меняет шансы на найм в хайлоад?


M>>Какие пункты в большем, а какие в меньшем приоритете для опытного программиста?


KP>Так вот, а о каком именно highload шла речь изначально?

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

Тут нужен не столько С++, сколько знания кучи технологий и инструментов, объедения которые вместе и добавляя к ним доменную бизнес-логину можно получить высоко нагруженную систему.

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

KP>

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

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

KP>

Ну и еще, иногда, к highload относят HFT и вот тут и С++ любят и всякие оптимизации. Но еще они любят опыт в банках и аналогичной сфере.

опять же, есть ли что почитать про потребностям работодателей в высокочастотном трейдинге?

KP>P.S. я не думаю что в эту область вообще можно быстро войти, она, честно говоря, огромна и очень объёмна

Речь не идёт о том, чтобы войти — только пока о получении квалификации, необходимой для неё[области]. И речь не идёт о том, чтобы получить эту квалификацию быстро — в смысле, в абсолютных временных единицах. Речь идёт о том, чтобы получить эту квалификацию кратчайшим путём. С минимумом набитых шишек. А быстрейший путь может быть всё равно довольно долгим.
Re[3]: быстро выучить highload
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 10.11.19 10:03
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Если по интересности задач, то я полагаю, для меня во всех перечисленных направлениях задачи найдутся.

M>Поэтому конечным критерием является — сколько за это платят и сколько сил нужно приложить.

Да так же как и за любую другую область заплатят, никакой магии в высоконагруженных приложениях нет, опыта в ракетостроении не требуется

M> Поэтому, было бы здорово услышать рецепты обучения по всем трём областям, и тогда определится, какой хайлоад интересен больше.

M>можно подробнее про эту кучу, доменную логику? Список областей и необходимых навыков и что читать.

Я очень извиняюсь, но это смахивает на банальную лень. У всех же свой стартовый уровень, откройте статью Distributed computing, и ходите по линкам до тех пор, пока в голове не сложится некая картина мира. Просто доменных отраслей огромное множество и ответ на вопрос о необходимых навыках на 100% зависит от выбранной тематики.

M>опять же, есть ли что почитать про потребностям работодателей в высокочастотном трейдинге?


Ну, вот, например. Вообще, как мне кажется, при переходе в новую отрасль основной критичный навык это поиск в гугле и анализ информации.
Re[4]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 10:25
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Я очень извиняюсь, но это смахивает на банальную лень.

Если лень — это экономия ресурсов, то да, это лень. Но тогда лень — это хорошо. Один мой тренер по рукопашке говорил — лень бывает полезной и вредной. И надо отличать одно от другого.
M>>опять же, есть ли что почитать про потребностям работодателей в высокочастотном трейдинге?

KP>Ну, вот, например.

спасибо

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

Это не бархатный путь, так как идя по нему вы совершите ВСЕ типовые ошибки. Или потратите мегатонны времени на сидение на форумах, чтобы получить список ошибок. Думаю, что посылать человека в гугль или справляться о его аналитических способностях вместо конкретной помощи не совсем корректно, имхо.
Re[5]: быстро выучить highload
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 10.11.19 11:35
Оценка: +1
Здравствуйте, Molchalnik, Вы писали:

M>Если лень — это экономия ресурсов, то да, это лень. Но тогда лень — это хорошо. Один мой тренер по рукопашке говорил — лень бывает полезной и вредной. И надо отличать одно от другого.


Если это экономия ресурсов, то, скорее всего, она приведет к банальному провалу. Очень рекомендую обратить внимание на набор тезисов с HighLoad++ 2019, где есть всё, начиная от конфигурирования iptables и защиты от DDoS, заканчивая квантовыми компьютерами. Никто не может знать этого всего, вряд ли кто-то сможет суммировать тут и привести пути развития в каждом из направлений... поэтому, тому кто спрашивает хорошо бы понимать что именно он хочет получить на выходе, иначе ему никто не может ничего по существу посоветовать.
Re: быстро выучить highload
От: skeptic  
Дата: 10.11.19 11:45
Оценка: 3 (1) +1
Здравствуйте, Molchalnik, Вы писали:

Насчёт "быстро выучить" не подскажу но вообще:

1. Теория — Статистика/Теория вероятностей/Теория массового обслуживания aka queuing theory — нужна обязательно, поскольку весь этот ваш highload крутится вокруг систем массового обслуживания
и моделирование этих систем очень полезный навык если Вы хотите быть успешным в этой области.

2. Психология — highload это область победившего или по крайней мере побеждающего DevOps, тут "обычному" разработчику который 10 лет фиксил багу/пилили фичу — а там дальше пускай тестеры тестят/ops'ы деплоят/админы админят иногда сложно чисто психологически въехать в процессы бесконечной автоматизации всего и вся — деплоя/тестирования/администрирования/мониторинга и т.д и сильно совместной работой с Ops'ами/тестерами/админами в некоторых случаях вплоть до стирания границ между ними.

3. Языки — Java & Co/C++/C/Go/PHP/Python/JS/Erlang — основные в этой сфере но есть нюанс — языки далеко не главное, тут куда важнее предметная область в домене + п.1 + скилы в т.н. problem solving и широкий кругозор в IT вообще,а уж какие то сильно глубокие знания нюансов конкретного языка или тем более 1001'й способ хитровывернуться на плюсах не то что бы бесполезны но имхо не так важны ибо микросервисы, а микросервис должен быть переписан за итерацию, чему развесистые плюсовые обобщённые клюквы могут только мешать, впрочем это уже чисто холиварное имхо конечно, извините если задел чьи то чувства

4. Технологии — сильно пригодиться хорошее знание всяких кишочков ядер ОС и железок, короче низкий уровень — не то что бы придётся постоянно что то там писать (хотя и это иногда) но знать как оно там внутри очень полезно. Сети это вообще №1 область — но тут не просто послать пачку данных куда то там, а тонкости — как работают сетевые карты, какие там оптимизации, как работает интернет в целом, маршрутизация, какие там проблемы у основных протоколов/виртуализация/и т.д. БД — это вторая, после сети, критическая область знаний/опыта которых тут много не бывает — и опять же не просто запросить чего то там из БД — а кишоки/оптимизации/и т.д и т.п В модели конкуренции и параллелизма само собой тоже надо уметь.

5. Тулинг — инструментария тут написано переписано овер 100500 уже и будут ещё — надо уметь лавировать и не утонуть в куче инструментария — область сейчас на подъёме, индустриальных стандартов не так много и они все в шатком положении поскольку каждый год появляется новый стильный молодёжный инструмент который претендует на роль лидера — чем то всё это напоминает современный JS со своими фреймворками. Да и вообще область живёт на постоянном хайпе, надо уметь в нём не утонуть.


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

P.S. выше уже давали ссылку на HL++ — полезно походить по их каналу на youtube и по технострим каналу там же и посмотреть видосики.
Re[5]: быстро выучить highload
От: reversecode google
Дата: 10.11.19 13:32
Оценка:
M>Я никогда не писал, что сомневаюсь в том, что такое хайлоад.
о том можно ли обойтись без сетевого программирования это разве не сомнение ?

M> Давайте всё же вернёмся к тому, как быстро выучить программирование высоконагруженных систем.

очевидно лучщий способ быстро научиться плавать это прыгнуть в воду
уникумов которые стоя на берегу и изучая плавание по учебникам, зайдут в воду и поплывут единицы

R>>по поводу высоко оплачиваемая очень сомнительно

M>Какая, по вашим данным, вилка lead programmer в highload c++?
150к рублей в месяц, все открыто на hh.ru

R>>другой вариант быстро войти,- реализовать что то для хайлоада, с больше тысячи звездочек и форков на гитхабе

R>>что бы другие смогли оценить
M>Только звёздочек будет десять, а оценивать не будет никто, и если я в силу неопытности сделаю типовые ошибки, то даже не узнаю об этом. Что обесценивает идею.

люди оценивают по потребностям
если бы Сысоев когда разрабатывал nginx думал так же, то nginx бы и не было
Re[6]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 13:47
Оценка:
Здравствуйте, reversecode, Вы писали:

R>>>другой вариант быстро войти,- реализовать что то для хайлоада, с больше тысячи звездочек и форков на гитхабе

R>>>что бы другие смогли оценить
M>>Только звёздочек будет десять, а оценивать не будет никто, и если я в силу неопытности сделаю типовые ошибки, то даже не узнаю об этом. Что обесценивает идею.

R>люди оценивают по потребностям

R>если бы Сысоев когда разрабатывал nginx думал так же, то nginx бы и не было

Мне всё же кажется, что вы путаете. Войти в хайлоад, стать экспертом в области, почувстовать, где нужно прикладывать неоправданно много усилий и оформить это ощущение в библиотеку — это да. Выложить её на гитхаб и получить тыщу звёзд — да.
А вот без знаний области написать такую же библиотеку, и получить тыщу звёзд — это невероятная удача, я полагаю. Не то чтобы невозможная, но сильно рассчитывать на это не стоит.
Re[7]: быстро выучить highload
От: reversecode google
Дата: 10.11.19 13:53
Оценка:
один маленький мальчик с далекой Украины не зная как работает компьютер, как работает сеть написал fast-http для go
https://github.com/valyala/fasthttp
как вы думаете он эксперт в сетевом кодинге или хайлоаде или программировании ?
поищите его выступления на разных конфах что бы мое мнение которое я не хочу озвучивать не было предвзятое
Re[6]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 14:39
Оценка:
Здравствуйте, reversecode, Вы писали:


R>>>по поводу высоко оплачиваемая очень сомнительно

M>>Какая, по вашим данным, вилка lead programmer в highload c++?
R>150к рублей в месяц, все открыто на hh.ru

куда не ткнёшься, в какую сферу не залезешь, везде до 200к
откуда же берутся замечательные люди, которые претендуют на эти вакансии?

и ведь их не пяток — только по москве 7 десятков
Re[7]: быстро выучить highload
От: reversecode google
Дата: 10.11.19 15:11
Оценка:
станьте на место местного горботодателя
к которому за 150 никто не идет а горбатиться надо
они ставят вилку чуть выше средней
и срезают на собеса мол вы все равно ничего не знаете, а мы вам медвежью услугу сделаем что хоть что то платить будем
в ит можно иметь большой доход когда либо хайп поймал, либо окучил себя множеством клиентов
Re[8]: быстро выучить highload
От: Molchalnik  
Дата: 10.11.19 15:22
Оценка:
Здравствуйте, reversecode, Вы писали:

R>станьте на место местного горботодателя

R>к которому за 150 никто не идет а горбатиться надо

Во-первых, я с понижением не пойду, а во-вторых, вон, человечек в соседней теме утверждал, что нашёл 240 в мск.
Re[9]: быстро выучить highload
От: reversecode google
Дата: 10.11.19 15:26
Оценка:
https://hh.ru/vacancy/34445382
https://hh.ru/search/vacancy?st=searchVacancy&from=employerPage&employer_id=899854

никто и не говорит что их вообще нет
но надо уметь выбирать
Re: быстро выучить highload
От: alex_public  
Дата: 11.11.19 01:37
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Как быстро выучить highload с++?


Да забудь ты про этот highload, он уже давно не в моде. ) Т.е. понятно, что сама по себе эта тема вечная, но сейчас она стала просто очевидной рутиной, а не чем-то особо революционным.

Вот тут на днях одновременно проходили две конференции, HighLoad++ 2019 и AIJ 2019. Так вот на второй, не смотря на её молодость, уже было больше участников, был создан крупнейший в России альянс в IT области, и под конец даже Путин заглянул на огонёк с посланием о том, что это теперь приоритетное направление. Вот тут чувствуется драйв, а не рутина... Причём тот же самый highload и тут используется во всю (тот же суперкомпьютер Christofari чего стоит, хотя его опять же заявили не на HighLoad++ 2019), но исключительно как само собой разумеющийся мелкий подсобный инструмент.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.