Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования. Тут буду давать советы нубам. Погнали. 1) В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
2) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Всё потому имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
3) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
>>239300214 (OP) Вот ты где, хуесос. Вы что с яндексом сделали говноеды? Что за уебищная дрисня выкатывается слева, если к ней мышку подвести? Нахуя сделали ссылки на видео и картинках? Хочешь остановить видео, попадаешь на ссылку. Почему новое письмо создается, через отдельное окошко? Стоит куда-тотнажвть, эта хуйня сама сворачивается. Почему если нажимаешь на черновик открывается письмо? Если перетаскиваешь картинку в тело письма, то картинка вставляется в само письмо. Новый язык такой же убищный будет? Все засрете своимифичвми? Ммм, архитектор говна?
>>239300623 >Поясни за лемму йонеды Смотри. Есть такая штука SOLID. По сути это аббревиатура пяти принципов программирования микроконтроллеров (Web-программирование, короче). Буква L означает Lemmu-Ioneda principle в честь учёной, первой сформулировавшей этот принцип. Заключается от в следующем: количество все операторы в пределах одного оператора программы должны быть взаимозаменяемы. Т. е. если перемешать if-ы, while-ы и or/and-ы программа должна работать также, как и раньше. )(Точнее, результат её исполнения может измениться, но код обязан скомпилиться).
>>239301039 >Заключается от в следующем: количество все операторы в пределах одного оператора программы должны быть взаимозаменяемы. все операторы в пределах одного программного модуля фикс
4) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
>>239300214 (OP) Живу в жопе мире +9 Мск. Пытаюсь вкатится в java разработку, хочу работать либо удаленно первое время, либо с переездом(даже за свой счет) при получении офера в какой нибудь крупный город. Сделал 170 откликов на hh.ru пригласили только на 1 собеседование. Че писать в резюме и какой проект с какими технологиями лучше создавать и заливать на гитхаб, чтоб ХР нормально шли на контакт?
5) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
>>239301556 Что я не так написал, маня? Хочешь поспорить — приходи на собес — разъебу тебя, + оставлю фидбек для других. Или пиши сразу тут, что твоему микромозгу непонятно стало.
6) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
>>239302249 Ебанько, ты либо пиши сразу, где ты увидел то, что не знал ранее и что у тебя вызвало вопросы, либо пиздуй нахуй из треда, трэйни-кодерок блять.
7) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх. >>239302468 +- согласен. Чтобы не сбивать счёт, оставлю свой пункт под седьмым номером.
>>239300214 (OP) Пффф, ваш Яндекс полный отстой. Я из компании Jet Brains, по должности - senior Archicontext. Ты знаешь самую известную IDE для джавы - intellij idea? Так вот я её проектировал, 90% функционала там написана на html.
Не слушайте этого псевдо спеца, он не знает о чем говорит.
>>239302498 Макака jsная, оставь свой IRC. Попиздим, покажешь что ты не испугалась и какие знания у тебя на самом деле. Если ты, конечно, не конченный студент 1-го курса ПТУ.
>>239300214 (OP) >английский язык для программистов почти не нужен Охуенный блядь совет, чтобы работать на пидорашкинскую галеру за обесценивающийся каждый день рубль.
>>239302779 >Охуенный блядь совет, чтобы работать на пидорашкинскую галеру за обесценивающийся каждый день рубль. Моя месячная ЗП больше твоей годовой.
9) В языках высокого уровня (Java, Python, Ruby, Rust — т. е. группа «процессорных» языков, о которых я говорил выше) отсутствуют «исключения». Потому что это, собственно, группа высокоуровневых языков, выполняющихся близко к процессору, поэтому в них нет такой абстракции, как «исключения». Языки высокого уровня и так подвержены ненадежности (к примеру, тяжелая высокоуровневая прога втупую может сменить вам значение переменных или значения внутри массива), если бы в них добавили исключения, это был бы очередной C# (то есть очередной полный провал не принимайте близко к сердцу, шарповики). Этот вопрос часто на собесах спрашивают, кстати.
>>239302945 >stackoverflow >github >90% контор с нормальной зп работают на аутсорсе у СШП, дабы брать нормальные деньги за заказы >документация изначально на инглише Повторяю: не палится!
>>239303175 Дебил, для всех перечисленных ресурсов есть русскоязычные версии. А ЗП в яндексе/рамблере и так повыше в несколько раз, чем у автосорс/автостафф-макак.
10) Конечно же, я не могу не упомянуть ООП (Объектно Ориентированное Программированиe). Все студентишки знакомятся с этой парадигмой, изучают классы, рекурсивность и т. п.. Объектно Ориентированное Программирование позволяет эффективно расходовать оперативную память, кэш процессора, и даже энергомощность блока питания за счёт того, что позволяет манипулировать остатками ячеек памяти уже пройденных компилятором, путём представления ячеек (или их совокупностей) через т. н. объекты. Классы описывают эти самые объекты. Всё очень просто.
>>239303120 На каждом собесе по java спрашивают иерархию исключений, какие из них проверяемые а какие не проверяемые, и куда входит стак. овер флоу. А их оказывается вообще нету в java
>>239303656 >и куда входит стак. овер флоу. А их оказывается вообще нету в java Да, потому что стэковеофлоу написан на питоне. Я в своё время даже участвовал в разработке его.
>>239303539 приходят как-то джун, интерн и студентота в яндекс устраиватся, а hr им: "предлагаю должность оператора техподдержки с хорошей ЗП" ))))))))
>>239304374 Джанго это не столько фреймворк, сколько подход к написанию программ web-embedded (т. е. IoT сфера). Когда пишешь django-admin startproject foobar и настраиваешь settings.py впервые — это и есть фронтэнд. По сути в этот момент ты являешься front-end разработчиком.
Запомни важное для джанго-разрабов: НИКОГДА НЕ ИСПОЛЬЗУЙ ЧТО-ЛИБО КРОМЕ ВСТРОЕННОГО СЕРВЕРА. Который ты запускаешь через manage.py runserver. То есть все эти nginx/apache/uwsgi — это дурным тоном считается, хотя раньше по другому было никак. Щас джанга научилась свой сервер использовать.
11) Все языки программирования делятся на Тьюринг-полные и Тьюринг-частичные. Тьюринг полные языки так называются, потому что там присутствуют операторы, придуманные самим Тьюрингом (конструкция if, циклы while и for, а также тернарный оператор x ? y : z) Забавный факт: именно благодаря тернарному оператору Тьюринг смог разгадать усложненную версию шифровальной машины "Энигма" с четырьмя роторами. Хаскелль - пример Тьюринг-частичного языка, т.к. там отсутствуют конструкции for и while, но присутствует if.
12) Никогда не используйте локальные переменные. В группе Pascal-подобных языков они обозначаются ключевым словом lovar (Local Variable, "ловары"). Они значительно уменьшают нагрузку на процессор, но совершенно не годятся для моделирования, а так же приведёт к «засорению» памяти. Зачастую их используют бородатые дяди, когда пишут эксплойты (эксплоит — сленговое название ядра ОС). Они, конечно же, знают, где их нужно применять.
13) Сейчас существует огромное множество фреймворков для создания практически чего угодно. Большинство из них языко-независимые (language-free), и представляют собой прокачанные компиляторы. Для каждого второго есть графический интерфейс (для совсем нубов — можно работать через граф. редакторы типа пейнта/фотошопа). Для работы через Photoshop рекомендую ReactJS, написанный на языке Java.
>>239300524 >Поток — это определенная сущность Всё, дальше не читал, уже на этот моменте ты обосрался и не прошел собес, за такой бред тебе сразу скажут, что мы вам перезвоним, прогонят нахуй и еще долго будут проигрывать.
14) Популярность так называемых «декларативных» языков программирования (т. е. таких, в которых декларации процессору хранятся в так называемом «стэке» деклараций) — лишь тренд. Скоро все эти ваши Ады и Perlы уйдут в тень, и вакансий будет мало. У себя в компании мы отказываемся от этих языков, в основном потому что проёбы на кастомных декларациях ведут к необратимым потенциальным ошибкам.
15) Шаблоны проектирования — типичный вопрос на собеседовании. Самый популярный шаблон — «Dependencies injection» — позволяет хранить данные («внедрять», «инжектировать») в оперативную память. Реализуется как две функции, при этом одна передаётся в другую. Вот пример простой на C++. ``` function void injector(func *funcPtr) { stdlib::ram::memorize(&funcPtr); }
function injectee() { stdout::cout(&"Hello world"); }
16) Модель OSI включает три уровня операционной системы (ОСи): уровень пользовательского приложения, уровень операционной системы и уровень драйверов. Стек TCP/IP относится ко второму и первому уровням. Создано это всё чтобы разграничить программы от драйверов.
>>239300214 (OP) > 1) В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
Лол, какая же дрисня, а не литература на русском языке. Может быть, будучи тимлидом ты и знаешь всё, но джуну без английского никак, гуглить ошибки/задачи на русском невозможно, это будет какое-то говно по типу переведенных ботом ответов стековерфлоу или вопросы новичков с киберфорума. Переведенные книги же либо древнее говно, либо просто говно
17) IP-адрес это набор цифр (от -7 до 256), по которым твой комп может найти товарищ майор. Диапазоны адресов выдают провайдерам правоохранительные органы государств, в которых провайдеры работают, у нас это ФСБ, ну а дальше провайдер выдаст тебе какой-нибудь айпишник (4 цифры разделённые точкой, иногда добавляется слэш "/" и ещё три цифры, для ip-адресов v5 и v6) чтобы можно было понять кто это у нас смотрит ЦП. IP-адреса бывают белые и серые. Серый отличается от белого тем что провайдерам влом сделать всё как надо и под одним адресом в сети может оказаться много разных пользователей. То есть, если у тебя серый IP, твой адрес может совпасть с адресом какого-то Джона из Калифорнии на другом конце света.
>>239303601 ROP - REAR ORIENTED PATCHING архитектурный паттерн проектирования больших и сложных программных комплексов, который применяется сразу после запуска программы, различные части программы могут свободно вносить изменения в любые другие части программы на лету(HOT PRELOAD), что облегчает понимание кода начинающими разработчиками, причем ускорение достигается за счет эффективного перемешивания исполняемого кода и данных, а качество измеряется в в CTR- crash time remount.
18) TCP это один из стандартных протоколов (правил по которым программы общаются между собой через сеть). То есть он документирован - ты можешь найти в инете описания (RFC) и там всё расписано кто когда и какие байтики шлйт. UDP это undocumented protocol т.е. публичного стандарта нет и что там внутри знают только разработчики программы - например в онлайн играх.
19) Юнит-тесты: пишу для будущих гейм-девов. Есть такой фрэйм (от англ. "Frame" - "кадр") для игр Unity. В этой же сфере гейм-дева есть и концепция Unit-тестов. То есть по факту, если вы не осилили IT в целом и программирование в частности, можете искать вакансии Unit-тестеров - они просто ищут баги в играх, написанных на Unity. Работа не шибко для умных, но требует усердий. Объясняю почему возник именно такой термин: Unity в виду своей простоты является самым популярным игродвижком. Соответсвенно, на нем больше всего игор, твои любимые киберпунки и гта5 написаны на нём, вот в геймдеве и появился такой отдельный термин для тестирования игр на Unity.
>>239300214 (OP) >из команды Яндекс Это там где в платят в 2-3 раза ниже рынка (ко-ко-ко работать у них большая честь кудах-тах-тах), пока ты у них не просидел 10 лет? Спасибо, не надо
>В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы. Манямир/10. Полно проектов и команд где разработчики могут участвовать в общении и обсуждениях с заказчиком или его представителями непосредственными, например, им важно понимание насколько их идеи манямир или таки стоит пробовать. И чтобы без 10 слоев бюрократии когда таски и спринты утвеждаются сначала месяц прежде чем кто-то палец об палец ударит.
Сразу с ОП-поста хуйня пошла. Аноны, не слушайте чухана. Он либо в манямире, либо сознательно вредные советы даёт т.к. один из тех ебланов, которые боятся, что пара человек на рынок еще зайдут и обваляет его зарплату ололо.
21) Про следующий прикол мне как-то рассказывал сам Кэн Томпсон, когда я работал в гугле в середине нулевых. Очень часто на собесах дают задание - написать прогу, которая переворачивает слово. Типа 'анон' -> 'нона'. Я тоже часто даю это. Если человек берет библиотечную функцию, то сразу шлю нахуй. Если пыжится, реализует через цикл - то еще даю шанс. Если реализует рекурсивно - то получает плюсик. Но есть один очень элегантный способ, который юзают только гуру. Короче, все программы сначала переводятся в язык ассемблера. Это наверно все знают. Но гораздо меньше людей знают, что у ассемблера 2 разных синтаксиса - от компании "Эндрю Таненбаум энд технолоджис" - сокращенно AT&T и от Интела. Суть в том, что эти 2 языка зеркальны друг по отношению к другу (один начинает работать с начала стека, а второй - с конца). Шарящий челик, зная, какая версия ассемблера в системе, может обмануть процессор, скомпилировав код под другой ассемблер - и, не сложно догадаться, - вся программа работает в обратном порядке, то бишь, в системе с Intel обычный код println("анон"), скомпилированный в AT&T выведет на экран "нона", т.к. байты поместятся в стек в обратном порядке.
>>239309907 >Манямир/10. Полно проектов и команд где разработчики могут участвовать в общении и обсуждениях с заказчиком или его представителями непосредственными, например, им важно понимание насколько их идеи манямир или таки стоит пробовать. Большинство заказчиков мира IT из России, еблан. Практически все доки так же переведены на русский.
>>239309452 Ебать ты тупая зелень.. Не пиши ничего про гейдев, если в этом не шаришь. > твои любимые киберпунки и гта5 написаны на нём ну ты хоть вики бы открыл, школота, или дальше бы куски из пасты копировал
>>239310436 Вы нахуя вообще на борду заходите дауны? В биопроблемных поплакать и очко свое подрочить? Это же смешно блять, можно лулзов половить с джунов молодых
>>239311248 Двачую Ныть с иронии на дваче Нормисы уже совсем отупели круче этих тредов только треды блистательного Хі далёкий шаг нефритовый жезл мешок риса
22) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Всё потоки имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
У меня от хуйни в этом итт треде глаза вытекли пиздец. Физически больно всё это читать, я морщусь и скриплю зубами, проглядывая оповские высеры. Спасибо, оп, ты своим вопиющим пиздецом значительно приблизил срок моего визита к стоматологу.
23) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
>>239312838 >Поясняй, паскуда. Нахуй мне твой тред целиком читать? Прочитал ОП пост и бегло пробежался (хуем тебе по губам). >МАМО Я ПРОГРАМИСТОМ СТАЛ. РОМОЧКА НЕ ПРЫГАЙ ПО КЛАВИАТУРЕ
24) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
25) Никогда не используйте локальные переменные. В группе Pascal-подобных языков они обозначаются ключевым словом lovar (Local Variable, "ловары"). Они значительно уменьшают нагрузку на процессор, но совершенно не годятся для моделирования, а так же приведёт к «засорению» памяти. Зачастую их используют бородатые дяди, когда пишут эксплойты (эксплоит — сленговое название ядра ОС). Они, конечно же, знают, где их нужно применять.
ОП, ты тут? Объясни процесс программирования по пунктам с примерами и картинками. С чего начинается, как выглядит программный код, как выглядит конечный продукт?
25) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
26) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
27) В языках высокого уровня (Java, Python, Ruby, Rust — т. е. группа «процессорных» языков, о которых я говорил выше) отсутствуют «исключения». Потому что это, собственно, группа высокоуровневых языков, выполняющихся близко к процессору, поэтому в них нет такой абстракции, как «исключения». Языки высокого уровня и так подвержены ненадежности (к примеру, тяжелая высокоуровневая прога втупую может сменить вам значение переменных или значения внутри массива), если бы в них добавили исключения, это был бы очередной C# (то есть очередной полный провал не принимайте близко к сердцу, шарповики). Этот вопрос часто на собесах спрашивают, кстати.
программист - это не только чтение документации по языкам
к примеру дали задание работать с баллистическими расчетами, идешь на википедию читать про полеты снарядов, видишь нормальную статью с формулами на нормальном языке: https://en.wikipedia.org/wiki/Range_of_a_projectile
28) Конечно же, я не могу не упомянуть ООП (Объектно Ориентированное Программированиe). Все студентишки знакомятся с этой парадигмой, изучают классы, рекурсивность и т. п.. Объектно Ориентированное Программирование позволяет эффективно расходовать оперативную память, кэш процессора, и даже энергомощность блока питания за счёт того, что позволяет манипулировать остатками ячеек памяти уже пройденных компилятором, путём представления ячеек (или их совокупностей) через т. н. объекты. Классы описывают эти самые объекты. Всё очень просто.
>>239315459 >Так к каким БД классически относятся РАЗНЫЕ ВИДЫ joinов? К реляционным или нереляционным (NOSQL)? Всё очень просто. Join — основной операторов консольных интерфейсов большинства nosql Баз Данных (таких как Golang, Prometheus, cUrl). Join используется для того, чтобы "заджоинить" write-запрос в БД. Читай мануалы, практикуйся и через годик-два приходи начинай ходить по собесам.
>>239315536 Это вам зелени еще учиться и учиться, если вы не понимаете о чем я пишу. Но кроме пердежа в треде ничего и не видно
>>239315722 Ок, хорошо, я понял. Большинство зумерков приходят на проекты, где вместо нормальной БД стоит монга, куда как в мусорку скидывают данные, после чего джуны ебуться с join и страдают. Пирожок, спешу тебя огорчить и если я правильно понял высер >>239313524 и все вернутся обратно на реляционные БД, то там ты также будешь ебаться с операторами JOIN, которые там были испокон веков
>>239300214 (OP) Работал в яндексе саппортом второй линии ветки умных колонок. Колонки, на деле, тупые как пробки, а сотрудниЦЫ-саппорты ещё тупее, ведь им важно SLA, а не помощь юзеру. многие таски висят по несколько месяцев, есть и старше, много тасков с жалобами на наебалово. Артёмка Лебедев для яндекса авторитет, поэтому везде дохуя англицизмов и тюремного жаргона, а также здесь принято всем тыкать, а к юзерам обращаться во множественном числе ("вы" вместо "Вы" - Тёмка сказал, что это канцелярит и от него надо избавляться!). Внутренние системы - кривое говно кривого говна, тикеты обрабатываются на внутреннем аналоге толоки, самсара и стартрек (так и называются, ага) кривые, забагованные лагающие говнины. В итоге за три месяца работы с переработками получил 6к, благо у мамки на шее сидел, так ещё и увольнение по срочному договору пидарасы задним числом поставили и я по факту работал почти месяц просто так.
Почему платят за Algol такие большие деньги? Потому что огромное количество банковского ПО разработано на этом языке программирования в 70е-80 годы, но т.к. Algol показал свою безумную надежность, то ошибок в работе не возникало, и поддерживать было больше нечего, поэтому программисты ушли на другие языки, и Algol был забыт. Т.е. осталось крайне мало спецов, которые знают этот мощный язык программирования. Все бы ничего, но когда наступил миллениум, возникла серьёзная уязвимость связанная с утечкой памяти (с ОЗУ на НГМД),и начался взрывоопасный рост на специалистов по Algol с бешенными зарплатами. Я лично знаю программиста, который зарабатывает около полумиллиона долларов в месяц обслуживая 5 банков в штатах. Возникнет резонный вопрос, стоит ли сейчас начать вкатывание в ИТ с изучение Algol'a? Мое мнение - разумеется стоит, кроме мощной академической базы вы получите работу мечты с космической оплатой вашего труда.
29) Все языки программирования делятся на Тьюринг-полные и Тьюринг-частичные. Тьюринг полные языки так называются, потому что там присутствуют операторы, придуманные самим Тьюрингом (конструкция if, циклы while и for, а также тернарный оператор x ? y : z) Забавный факт: именно благодаря тернарному оператору Тьюринг смог разгадать усложненную версию шифровальной машины "Энигма" с четырьмя роторами. Хаскелль - пример Тьюринг-частичного языка, т.к. там отсутствуют конструкции for и while, но присутствует if.
>>239316137 >будешь ебаться с операторами JOIN А теперь ты, чмоня, пиздуешь и гуглишь различие между оператором и директивой. Я серьёзно уже. Понял, незумер хуев?
30) Никогда не используйте локальные переменные. В группе Pascal-подобных языков они обозначаются ключевым словом lovar (Local Variable, "ловары"). Они значительно уменьшают нагрузку на процессор, но совершенно не годятся для моделирования, а так же приведёт к «засорению» памяти. Зачастую их используют бородатые дяди, когда пишут эксплойты (эксплоит — сленговое название ядра ОС). Они, конечно же, знают, где их нужно применять.
31) Сейчас существует огромное множество фреймворков для создания практически чего угодно. Большинство из них языко-независимые (language-free), и представляют собой прокачанные компиляторы. Для каждого второго есть графический интерфейс (для совсем нубов — можно работать через граф. редакторы типа пейнта/фотошопа). Для работы через Photoshop рекомендую ReactJS, написанный на языке Java.
32) Популярность так называемых «декларативных» языков программирования (т. е. таких, в которых декларации процессору хранятся в так называемом «стэке» деклараций) — лишь тренд. Скоро все эти ваши Ады и Perlы уйдут в тень, и вакансий будет мало. У себя в компании мы отказываемся от этих языков, в основном потому что проёбы на кастомных декларациях ведут к необратимым потенциальным ошибкам.
>>239316028 Это толстота от скучающего долбоёба, даже не пытающегося в красоту и изящность. То есть, да, в точности вредные советы бесталанного еблана Остера.
Шаблоны проектирования — типичный вопрос на собеседовании. Самый популярный шаблон — «Dependencies injection» — позволяет хранить данные («внедрять», «инжектировать») в оперативную память. Реализуется как две функции, при этом одна передаётся в другую. Вот пример простой на C++. ``` function void injector(func *funcPtr) { stdlib::ram::memorize(&funcPtr); }
function injectee() { stdout::cout(&"Hello world"); }
>>239318660 Есть два вида программистов: нубьё и кодеры. А всякие жуниоры с синиорами - это не программисты, а копрохуесосы. Отставить тащить жаргон джавистов-ентерпрайзщиков из начала нулевых в мой уютый 2021.
>>239300214 (OP) > Знаю 20 языков программирования Если это не бототред и тимлид с опытом почти в возраст самого яндекса измеряет свои знания так, то не удивительно что вы подзалупное говно и рака жопы вам.
Расскажу свою былину. Вкатился в программирование. 2 года изучал Java, теперь блять не могу фрилансить, ибо Java используется практически всегда в крупных проектах и в крупных кампаниях, кто с фрилансерами не работает, и спецы нужны в штате. Ебаный мистицизм блять. Лучше бы php или питон задрочил бы. А вообще javaScript + react + node js рулит. можно зарабатывать удаленно дохуярд бабла на небольших проектах, которые отпускают на фриланс. А с джавой сидишь блять и ебашишь нетленки или поддерживаешь легаси 10 летней давности, 2 дня ищешь куда вставить 1 строчку кода сука.
34) Модель OSI включает три уровня операционной системы (ОСи): уровень пользовательского приложения, уровень операционной системы и уровень драйверов. Стек TCP/IP относится ко второму и первому уровням. Создано это всё чтобы разграничить программы от драйверов.
35) handshake это рукопожатие т.е. когда клиент соединяется с сервером по одному из UDP-протоколов то они обмениваются первоначальными пакетиками с помощью которых проверяют например версию друг друга, убеждаются что оба используют один и тот же протокол и всё в таком духе. Handshake нужен ИСКЛЮЧИТЕЛЬНО UDP-протоколам (Undocumented Protocol), потому как они плохо документированы, и им, чтобы общаться друг с другом, нужно обменяться некоторой информацией.
>>239300214 (OP) >Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта >В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы. О блять, года два этого не видел.
36) Про следующий прикол мне как-то рассказывал сам Кэн Томпсон, когда я работал в гугле в середине нулевых. Очень часто на собесах дают задание - написать прогу, которая переворачивает слово. Типа 'анон' -> 'нона'. Я тоже часто даю это. Если человек берет библиотечную функцию, то сразу шлю нахуй. Если пыжится, реализует через цикл - то еще даю шанс. Если реализует рекурсивно - то получает плюсик. Но есть один очень элегантный способ, который юзают только гуру. Короче, все программы сначала переводятся в язык ассемблера. Это наверно все знают. Но гораздо меньше людей знают, что у ассемблера 2 разных синтаксиса - от компании "Эндрю Таненбаум энд технолоджис" - сокращенно AT&T и от Интела. Суть в том, что эти 2 языка зеркальны друг по отношению к другу (один начинает работать с начала стека, а второй - с конца). Шарящий челик, зная, какая версия ассемблера в системе, может обмануть процессор, скомпилировав код под другой ассемблер - и, не сложно догадаться, - вся программа работает в обратном порядке, то бишь, в системе с Intel обычный код println("анон"), скомпилированный в AT&T выведет на экран "нона", т.к. байты поместятся в стек в обратном порядке.
37) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Все потоки имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
>>239321475 38) Algol — мощнейший язык программирования, который, как сказано в посту выше, очень хорошо оплачивается. Благодаря лёгкости в освоении алгол может осилить даже школьник и начать зарабатывать реальные деньги.
>>239319854 хули ты педик выебываешься и у всех IRC требуешь, слабо тут-то проявлять свои "познания", когда тебя почти на каждый твой высер тебя в парашу опускают за твою тупость
Зря ты, человек реально опытный, прошел хорошую школу и получил отличную практику работы над серьёзными проектами. Делится мудростью, а школота типа тебя эрегирует. Проваливай, иди чини кран бабе-рае.
>>239321668 > сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, Чего блять? Это с OpenMP ты имеешь ввиду или стебаешься тут пидорилка?
39) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
40) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
41) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
42) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх.