Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования.Тут буду давать советы нубам. Погнали.1) В 2019 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать.Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Все потоки имеют свою память.Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
3) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
>>223165264Объясни подробнее, тут нихуя не понятно.Я думал, что бэк-энд работает на сервере, а фронт-энд - на клиенте
4) Многие считают динамическую злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
>>223165425Это уже нубы такое определение перевертели под себя в последние 7-8 лет. Когда начали вот эти JS-фреймворки типа Ларавел и Джанго набирать обороты. До этого определение понятия было другим.
5) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. По сути каждая релятивная (реляционная) БД представляет собой хранилище бинарников — двоичного (а иногда шестнадцатиричного) представления данных.Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
>>223165627А, все, я просек твою фишку. Троллишь тупостью. Потому что джоин как раз-таки и является свойственным только реляционным бд
>>223165627Дополню, что использование индексов в БД является дурной практикой и было актуально лет 30 назад.Аналогично нельзя стесняться вложенных SELECT, особенно если БД уже не перегруженная индексами – все современные базы умеют оптимизировать такие запросы.
>>223165177Форк потокового процесса – это процесс разделения ветвей кода. Ранее использовали условные операторы, затем монады, сейчас синтаксис упростился и можно использовать GOTO. Это создает компактный код.
>>223165901Если ты долбоеб, то опхуй прав.А так просто сравни, сколько памяти сжирает прога на питоне против такой же на си плюсах
6) UML-диаграммы это User Model Layout. Это типичная схема описания сущности пользователь – знать эту модель досконально не обязательно, достаточно знать что такое есть.
>>223165177Но ведь ифы не могут выполниться один раньше другого? значит они не выполняются в разных "сущностях"?
6) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
>>223166012И че там сжирает, пару байтов, бывает, зато си язык линукса, хакеров, а питон язык школьников и пидарасов жирных
7) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх.
7) Скрэм-модель разработки подразумевает совместную работу высококвалифицированных профессионалов. Тимлид раздает задачи на встречах 1 на 1, вы оцениваете задачу, а тимлид должен угадать это число. Вскрываетесь когда наступает дедлайн.
>>223166093Также всем известная виртуальная машина CLR от Microsoft, которая выполняет приложения .net является форком jvm
9) Покер планирования – это когда вы встречаетесь на ежедневной дейли встрече каждый день и выбираете задачи. Но соль в том, что выполнять их не нужно, нужно делать те задачи, которые интересны.
10) Немногие знают что HR-специалист и зачастую психолог. После собеседования можно попросить остаться один на один и получить бесплатную консультацию. Основной нюанс в том, почему это работает – это врачебная тайна, так как многие HR имеют вторым высшим медицинское образование.Не стесняйтесь выкладывать как можно больше подробностей о себе, многие HR-специалисты ведут базы – открытость кандидата идет в зачет
>>223166253Сразу видно дивана.Дебаггер - это такое приложение, которое иногда ставится вместе с продвинутыми антивирусками, позволяющее автоматически находить баги в приложениях, не заморачиваясь наймом QA команды
>>223165090 (OP)" В 2019 году английский язык для программистов почти не нужен"После этого сразу же ссу тебе в ебало с твоими 20+ лет опыта. Запомни чмоня, если за 20 лет опыта у тебя сложилось такое впечатление. это означает что ты никогда не был, не станешь и не будешь одним из лучших специалистов в этой отрасли. Ты обычный бездумный хуесос copy/paste. Вопросы?
11) Знайте уровни абстракций языков, это входной билет, дальше этого вопроса никто разговаривать не будет:ASM, C+ – Верхнеуровневый, позволяет "по-верхам" закрывать потребности в программированииJAVA – Средний уровень – большинство рутинных задач, ранее его место занимал Haskell. Многие считают, что последний еще актуален, но на нем писали около 20 лет назад, на заре моей карьеры.C++, C#, Python – Низкоуровневый – для решения повседневных задач.Есть еще многомодальные язык – JS, PostScript, Cobol (с версии 4). Они позволяют писать многокомпозиционные схемы с использованием интерпретатора обратной байт-машины.
12) Частый вопрос про инвалидацию кэша – оптимальная стратегия тут – привязка к процессорному времени. Мало кто знает, но современные процессоры позволяют привязывать кэш в системным тикам. Тем самым он всегда будет в актуальном состоянии.
13) Что такое замыкание? В Си-подобных языках, отсуствие нижняя скобка считается причиной утечки памяти. Замыкание это процесс "сверки" парности скобок для того, что бы контур "вращения" программного кода находился "в оси".
Объектно-ориентированное программирование это методология разработки когда программист входит в некое подобие транса и концентрирует свои мысли на определенном объекте. Опытным разрабам код приходит в голову сам собой, девелопер выступает лишь посредником
>>223165090 (OP)О, тред вредных советов!Люблю такое, можно неплохо проверить свой скилл, угадывая, в каких из постов несут хуйню. во всех
>>223165090 (OP)Привет, посоветуй как правильно развиваться программисту? у меня опыт два года уже, правда на разных языках, но чувствую себя очень не уверенно. Работаю в геймдеве, По началу был javascript сейчас C++. Но по факту на первой работе был json программист, а сейчас xml программист. Т.к. В общем суть одна пишем парсер конфига и заполняем конфиг в нужном фрмате, на выходе игра. Возможно это специфика отрасли но, с таким подходом разработка идет быстро, но непосредственно роста как программиста я не ощущаю. Как развиваться до крутого спеца? статьи и книги преимущественно для ждунов посюду, но при этом есть много фундоментальных вещей которые мог упустить в самом начале.
14) Часто на собеседованиях спрашивают про таск-менеджер. Обычно это роль внутри команды, которую исполняют младшие, но самые перспективные члены команды. Поэтому смело отвечайте, что выполняли роль Таск-менеджера.
15) Не многие знают, но чистое лямьда-исчисление, термы которого, называемые также объектами («обами»), или лямбда-термами, построены исключительно из переменных применением аппликации и абстракции. Изначально наличие каких-либо констант не предполагается.
>>223167849Важно вовремя сделать паузу чтобы не "перегрузить" мозг. Универсальный совет - сменить на время область деятельности. Поработать год-два в автомастерской или баристой. После этого можно с новой силой приниматься за развитие в IT сфере.
>>223167849Если хочешь развиваться, как программист, изучай html. Сейчас большинство проектов делают под веб, так что у тебя будет преимущество перед дурачками, которые учат устаревшие языки типа питона и плюсов.
>20 лет опыта, знаю 20 языков>При этом работает в яндексе>английский для программистов не нужен, большинство доков переведены>с заказчиками общаются бухгалтераПиздец.
>>223165090 (OP)Всем привет, в треде СЕО корпорации Интел. Миллиардер, IQ в топ 0.001%, профессор 4-х универов. Тут буду давать советы нубам.1) Науки не нужны. Наши ведущие специалисты всё делают на компьютрах. Достаточно уметь пользоваться.
>>223168349Ваши деньги вас ждут, не можем перевести т.к. не знаем реквизитов. Пришлите ФИО и номер счета по адресу finance@intel.com
>>223165177>Процесс — вид потокаСкрыл дауна. Мимо джуниор из ноунейм галеры, 15 минут опыта, знаю один язык (русский).
16) Немного отвлечемся от программирования и перенесемся в процесс онбординга.Зачастую новичкам дают задачи "на лоха". Первые две недели просто отказывайтесь исполнять тот мусор что вам дают. Рано или поздно вас вызовут на встречу "1 на 1". Пригласите туда эйчара, потому что он не считается за человека. Выскажите все что думаете о компании. Обычно после этого ваш статус меняется на Middle. Посмотрите на бедолаг вокруг – они сидят по году в статусе джуна и забивают себе голову ненужной литературой и упражнениями.
>>223165090 (OP)> 1) В 2019 году английский язык для программистов почти не нужен.Всегда знал, что яндекс для хуесосов.мимо-лид
>>223168897двачу бро, учу уже второй язык, так как польский дал ощутимый буст. Посмотрим что дат испанский
>>223168228Я что ты хотел, яндекс за последние годы превратился в косоёблую помойку с кривыми продуктами. Я еще до #яндекскуколда удалил их карты, потому что юзер интерфейс написан по-собачьи просто, чтоб вернуться из окна поиска на карту надо тыкнуть в экран раз пять.
>>223169052Выучил суахили, сразу же зарплату подняли в джва раза. Попробуй, это реально работает, английский никому не нужен уже давно. Щас начал учить тагалог, посмотрим что из этого выйдет
>>223165090 (OP)>тимлид-архитектор из команды ЯндексВо 1) первых вы там все рукожопые долбоебы, во 2 (вторых) пошел нахуй в свой грязный чушатник. В тре (3) тьих хватит распространять вирусно свои ебучие яндексбары яндксбраузеры и прочую гавну. И что ты мне зделоиш, я в другом городе?
17) Вернемся к разработке. Паттерны. Начнем с определения – паттернам сейчас много внимания уделяется. На русском языке это узор. Казалось бы, при чем здесь разработка? Посмотрете на свой код в маленьком масштабе. Важно что бы код, помимо логики выражал ваше творческое начало (это как вы знаете и есть тот самый Т-шейп, то есть двунаправленность – просто "технари" никому не нужны). Для этого надо тренироваться писать код красиво.Отключите линтер и прочие инструменты проверки качества кода, потому что мы переходим в performance mode среды (во всех современных языках такое есть). Попробуйте с чего-то простого, типа код "ромбом" или "каре" и коммите сразу в мастер (так как это незначительные изменения, то они не требуют ревью).
>>223165090 (OP)>английский язык для программистов почти не нужен.Понятно.И математика не нужна и вообще нихуя не нужно, так программируй, усилием воли.Быдломенеджер набирает быдлокодеров для своей убогой командоньки в которой он будет царь и бох
>>223169350Half of advices написал I, Architector of Haskell RnD Booking dot com. I see you, is "smekalistiyt" (in russian words) guy. Please send me your CV
>>223165090 (OP)> стикер "Coding is my cardio"Пиздец, кто-то действительно клеит такое? Этот значок плох на многих уровнях одновременно.
>>223169742Выслал тебе скидку на Skillbox. Профессия Lead Analyst of modern CSS solutions. Просвятись, потом возвращаейся, что бы на уровне в наших кругах вращаться. rotate, u know? okay, see you
>>223165904Не знаю про какие 90 процентов тредов ты говоришь, но то что в тредах про ИТ пиздят про ЗП и лёгкость вката это правда, потому что есть я
18) Давайте вспомним пять букв которые знают все Solid.Это принцип функциональной разработки, который подразумевает написание обширных функций, покрывающие больше области отвественности. Нет перегружать компилятор ненужными инструкциями, когда можно включать фрагменты кода прямо внутрь одной функции или метода. Корни из этого идут из Perl ванлайнеров, те самые бородатые дядьки, мои ровесники писали код в таком стиле. Сегодня они занимают топовые позиции.
19) Передача объекта по ссылке в Flux-архитектуре.Многие начинающие стесняются передачи объекта по ссылке и поэтому постоянно пересоздают объекты. Опытные разработчики знают, что пора все переписать, но руки не доходят.Итак ты новый член команды – не жди пока тимлид поставит тебе задачу "Закрыть вопрос с иммутаблеьностью". Удаляй архаичные конструкции вроде { ...items, item }, { ...object, field: value }. Просто изменяй объект напрямую и получай прирост производительности и удобство отладки.
>>223165090 (OP)Почему хейтят веб? Что значит макака? Что делать, если мне нравится веб не потому что легко и красочно, а потому что просто нравится?
>>223172054>вебПлатят очень низкие зарплаты, офисы зачастую в подвалах и на промзонах>макакаРабский труд на низкоуровневых языках, почти все надо писать с нуля, куда не ткни – нужно начинать с процессорных инструкций
>>223172368>Free pascalС пятой версии хорошо реализовали множественное наследование>АдаЯ конечно старый, но не такой бумер
>>223172650> С пятой версииНедавно только 3.2.0 вышла.> Я конечно старый, но не такой бумерGnat современный есть.
>>223165090 (OP)ОП, расскажи как попасть в яндекс ваш без кучи собесов? Лидом?Эйчарки который раз пишут, я пишу в ответ типа снова 4 этапа? Они такие "ну да((". Пиздец, то есть я должен кучу времени выкинуть.
>>223168617А я вот прям поменял мнение о жабаскрипте и html после того как понял, что CrossCode нафигачен целиком на этой фигне. Больше всего удивляет то, что там очень отзывчивое и приятное управление с геймпада и никаких тормозов. Ёбаные браузерки с почти статичными картиками грузятся в разы дольше, ещё и выдают местами слайдшоу. В общем, если руки из правильного места растут то даже на такой хрени можно писать нормальные вещи.