Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования. Тут буду давать советы нубам. Погнали. 1) В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
2) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Все потоки имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
3) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
4) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
5) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit plus social creditplus social creditplus social credit
>>240229780 (OP) >>240229915 Блядь, кто-то на это говно еще ведется, я не пойму? Зачем этот идиот это делает? И зачем вообще эти дегенеративные макаки, "успешные погромисты", создают подобные треды, мол дохуя специалисты, задавайте ответы, а когда их что-то спрашиваешь по существу, они в ответ "бээ.. мээ.. мг-м.. нефритовый стержень знает.. погугли". Это литературно скам харкача, что этот толстый чёрт, что все эти хуесосы со своими бездарными тредами, которые якобы серьезные погромисты. Ей-богу, блядь, даже зумеры со своими фап-тредами и рулетками лучше.
>>240231952 Алгоритм Сосницкого — подвид быстрой сортировки, которую учат в каждом тех. вузе студенты IT-специальностей сразу после сортировки пузырьком. Однако в отличии от пузырьковой и быстрой сортировок, алгоритм сортировки Сосницкого нашёл применение на практике и действительно сейчас используется во множестве библиотек и программных продуктов. Однако применяться она может исключительно для связных списков. Связный список в свою очередь является подвидов переменной, похожей на массив, однако все его элементы связаны какой-то общей тематикой (как правило общим примитивным типом данных) — то есть все числа, все строки (текст), все байты, или же пользовательские типы данных (т. е. которые вы создавали). Суть алгоритма в следующем: в коллекции (в связном списке то есть) выбирается т. н. "Опорный элемент" (англ. "pidot"). Он по сути может быть произвольным, любой элемент из списка, однако в некоторых случаях его выбор имеет значение, но таких кейсов не очень-то много. Далее проходимся циклом по каждому из элементов справа от этого элемента. Если элемент меньше — цикл заканчивается. Затем начинаем идти влево. Если больше — цикл заканчиваем. Итак повторяем столько раз, пока на месте pidot-а не побывает каждый элемент.
6) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
7) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх.
9) В языках высокого уровня (Java, Python, Ruby, Rust — т. е. группа «процессорных» языков, о которых я говорил выше) отсутствуют «исключения». Потому что это, собственно, группа высокоуровневых языков, выполняющихся близко к процессору, поэтому в них нет такой абстракции, как «исключения». Языки высокого уровня и так подвержены ненадежности (к примеру, тяжелая высокоуровневая прога втупую может сменить вам значение переменных или значения внутри массива), если бы в них добавили исключения, это был бы очередной C# (то есть очередной полный провал не принимайте близко к сердцу, шарповики). Этот вопрос часто на собесах спрашивают, кстати.
>>240233632 Да ну тебя. Ты типа в великой стране живешь и работаешь на контору, которая работает Только на внутренний рынок и русскоговорящие ближнее зарубежье. Действительно, зачем учить английский, если на работе он не нужен. Заграницу вы тоже, видимо не ездите, так что и доллары нахуй идут с евро.
11) Все языки программирования делятся на Тьюринг-полные и Тьюринг-частичные. Тьюринг полные языки так называются, потому что там присутствуют операторы, придуманные самим Тьюрингом (конструкция if, циклы while и for, а также тернарный оператор x ? y : z) Забавный факт: именно благодаря тернарному оператору Тьюринг смог разгадать усложненную версию шифровальной машины "Энигма" с четырьмя роторами. Хаскелль - пример Тьюринг-частичного языка, т.к. там отсутствуют конструкции for и while, но присутствует if.
>>240229780 (OP) Всем привет, СЕО-застройщик из команды Гугол в треди. 60 лет опыта (80 лвл). Владею 60-ю языками программирования. Сейчас ведём разработку своих 3х языков программирования (Нанайского, Мордовского и Чеченского). Тут буду давать советы нубам. Погнали. 1) ОП ваще лалка, такие смишные шутки шутит, что я аж пацталом!!!!одинодин =))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
12) Никогда не используйте локальные переменные. В группе Pascal-подобных языков они обозначаются ключевым словом lovar (Local Variable, "ловары"). Они значительно уменьшают нагрузку на процессор, но совершенно не годятся для моделирования, а так же приведёт к «засорению» памяти. Зачастую их используют бородатые дяди, когда пишут эксплойты (эксплоит — сленговое название ядра ОС). Они, конечно же, знают, где их нужно применять.
Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования. Тут буду давать советы нубам. Погнали. 1) В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы
>>240229780 (OP) > В 2021 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. Пиздец, ты их сам читал? Эти переводы настолько хуёвого качества, что их невозможно читать от слова ты конченный тупорылый хуисос
13) Сейчас существует огромное множество фреймворков для создания практически чего угодно. Большинство из них языко-независимые (language-free), и представляют собой прокачанные компиляторы. Для каждого второго есть графический интерфейс (для совсем нубов — можно работать через граф. редакторы типа пейнта/фотошопа). Для работы через Photoshop рекомендую ReactJS, написанный на языке Java.
14) Популярность так называемых «декларативных» языков программирования (т. е. таких, в которых декларации процессору хранятся в так называемом «стэке» деклараций) — лишь тренд. Скоро все эти ваши Ады и Perlы уйдут в тень, и вакансий будет мало. У себя в компании мы отказываемся от этих языков, в основном потому что проёбы на кастомных декларациях ведут к необратимым потенциальным ошибкам.
15) Шаблоны проектирования — типичный вопрос на собеседовании. Самый популярный шаблон — «Dependencies injection» — позволяет хранить данные («внедрять», «инжектировать») в оперативную память. Реализуется как две функции, при этом одна передаётся в другую. Вот пример простой на C++. ``` function void injector(func *funcPtr) { stdlib::ram::memorize(&funcPtr); }
function injectee() { stdout::cout(&"Hello world"); }
>>240229780 (OP) блятЬ, ОП, объясни, нахуя ты это делаешь??? Вот что у человека должно щелкнуть в голове, чтобы подумать: А ЧТО? НЕПЛОХАЯ ИДЕЯ! НАЧНУ ПЕРЕПОЩИВАТЬ СТАРЫЙ ТРЕД ВЕЧЕРОМ ПОНЕДЕЛЬНИКА! это же так весело!
>>240229780 (OP) Ну что, ОП-хуесос, сможешь написать простую программу на чистом С, которая использует только системные библиотеки и делает следующее: "Пользователь вводит число N. Программа на i-ом шаге порождает N - i процессов и каждый порожденный процесс делает тоже самое для i + 1. Если i >= N, то программа выводит на STDOUT_FILENO зависимость каждого процесса друг от друга в виде дерева, в узлах которого написаны PID."
>>240229780 (OP) > Большинство док переведены (особенно по С++) на русский. На каждый программный продукт ведется своя документация и не на русском, разумеется.
>>240230080 >>сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков как перестать орать? и этот мракобес вообще различает программные потоки и хардварные?
16) Модель OSI включает три уровня операционной системы (ОСи): уровень пользовательского приложения, уровень операционной системы и уровень драйверов. Стек TCP/IP относится ко второму и первому уровням. Создано это всё чтобы разграничить программы от драйверов.
>>240236121 #include <iostream> #include <string> using namespace std; int main() { int foo = << cin; arr int spawned = []; for int i in range(foo) { if i > foo { goto Mark; } stdspawn >> new Process(); spawned = << stdspawn; } Mark; stdout_no_file >> print (spawned); }
17) IP-адрес это набор цифр (от -7 до 256), по которым твой комп может найти товарищ майор. Диапазоны адресов выдают провайдерам правоохранительные органы государств, в которых провайдеры работают, у нас это ФСБ, ну а дальше провайдер выдаст тебе какой-нибудь айпишник (4 цифры разделённые точкой, иногда добавляется слэш "/" и ещё три цифры, для ip-адресов v5 и v6) чтобы можно было понять кто это у нас смотрит ЦП. IP-адреса бывают белые и серые. Серый отличается от белого тем что провайдерам влом сделать всё как надо и под одним адресом в сети может оказаться много разных пользователей. То есть, если у тебя серый IP, твой адрес может совпасть с адресом какого-то Джона из Калифорнии на другом конце света.
Положняк такой. 1.Любой васян считает себя программистом окончив курс хуйбокс-говноскилс или что-то такое. 2.При этом не понимая основ вычислительной техники. 3.Не понимая сетей. 4.А оп про английский, толсто ведь дорогой, фром май харт блять. 5.Не зная хотя бы базы- си и ассемблера. 6.Не зная основ веба - хтмл, ксс, жабаскрипт. Мимо просто мидл...
>>240240093 Всё так. Я соглашусь с тем, что это не нужно в 90% таски веб-макаки/гейдева/AI-макаки. Тем не менее, так сложилось, что говновкатывальщики совсем не трогали си, в отличие от олтфажных тру инженеров, ну или не олдфажных — просто люди, которые хотят узнать, как тот же CPython написан, может SWIG-ом прикрутить высокопроизводительный C++ модуль. Я вот Ceph сорсы недавно курил, на плюсах написаны, и хотя сам питон-макакич.
18) TCP это один из стандартных протоколов (правил по которым программы общаются между собой через сеть). То есть он документирован - ты можешь найти в инете описания (RFC) и там всё расписано кто когда и какие байтики шлйт. UDP это undocumented protocol т.е. публичного стандарта нет и что там внутри знают только разработчики программы - например в онлайн играх.
>>240240616 Я бля 350к получаю, си и говносемблер в глаза не видел, чо ты мне затирать будешь? Пиши на своём низкоуровневом говне - мы за языки высокого уровня
>>240239753 Самое печальное что оно везде лезет осыпая всех вокруг терминами смысла которых оно до конца не понимает. Со временем, зализав жопу кому надо, оно становится управленцем и начинает ебашить продукты построенные на основе новомодных технологий, обосновать применение которых оно не может. В итоге получается закономерное говно, которое если и работает, то только потому, что кто-то подставил костыли.
>>240240760 >> мы за языки высокого уровня Вы за долбоебизм. Нельзя проектировать машины не зная как работает двигатель. Никто вас не заставляет учить ассемблер, но Неймана вы знать должны.
>>240240760 Ты ебанутый? Депутаты тоже ни си, ни ассемблеры не видели в глаза, так и по лому получают. Чо сказать-то хотел? Типа на Си нельзя писать за 350к? Я тебе так скажу: мидл вилка в норм. конторах начинается от 100 штук в год
>>240241199 > Дадада, конечно, в следующий раз, когда ко мне на собеседование придёшь, не забудь трусы запасные взять. Хуяндексовское чучело, ты? Обычно эти кловены любят студентиков-оленей олимпиадников гонять.
19) Юнит-тесты: для тех кто хочет игры пилить Есть такой фрэйм (от англ. "Frame" - "кадр") для игр Unity. В этой же сфере гейм-дева есть и концепция Unit-тестов. То есть по факту, если вы не осилили IT в целом и программирование в частности, можете искать вакансии Unit-тестеров - они просто ищут баги в играх, написанных на Unity. Работа не шибко для умных, но требует усердий. Объясняю почему возник именно такой термин: Unity в виду своей простоты является самым популярным игродвижком. Соответсвенно, на нем больше всего игор, твои любимые киберпунки и гта5 написаны на нём, вот в геймдеве и появился такой отдельный термин для тестирования игр на Unity.
Аноним # OP 20/12/20 Вск 15:43:28 №23581761794 20) handshake это рукопожатие т.е. когда клиент соединяется с сервером по одному из UDP-протоколов то они обмениваются первоначальными пакетиками с помощью которых проверяют например версию друг друга, убеждаются что оба используют один и тот же протокол и всё в таком духе. Handshake нужен ИСКЛЮЧИТЕЛЬНО UDP-протоколам (Undocumented Protocol), потому как они плохо документированы, и им, чтобы общаться друг с другом, нужно обменяться некоторой информацией.
>>240244676 >Handshake нужен ИСКЛЮЧИТЕЛЬНО UDP-протоколам (Undocumented Protocol), потому как они плохо документированы, и им, чтобы общаться друг с другом, нужно обменяться некоторой информацией. Пошел просто нпхуй, пикабушно.спехопанорамное отродье
21) Про следующий прикол мне как-то рассказывал сам Кэн Томпсон, когда я работал в гугле в середине нулевых. Очень часто на собесах дают задание - написать прогу, которая переворачивает слово. Типа 'анон' -> 'нона'. Я тоже часто даю это. Если человек берет библиотечную функцию, то сразу шлю нахуй. Если пыжится, реализует через цикл - то еще даю шанс. Если реализует рекурсивно - то получает плюсик. Но есть один очень элегантный способ, который юзают только гуру. Короче, все программы сначала переводятся в язык ассемблера. Это наверно все знают. Но гораздо меньше людей знают, что у ассемблера 2 разных синтаксиса - от компании "Эндрю Таненбаум энд технолоджис" - сокращенно AT&T и от Интела. Суть в том, что эти 2 языка зеркальны друг по отношению к другу (один начинает работать с начала стека, а второй - с конца). Шарящий челик, зная, какая версия ассемблера в системе, может обмануть процессор, скомпилировав код под другой ассемблер - и, не сложно догадаться, - вся программа работает в обратном порядке, то бишь, в системе с Intel обычный код println("анон"), скомпилированный в AT&T выведет на экран "нона", т.к. байты поместятся в стек в обратном порядке
>>240229780 (OP) Какие ещё бухгалтера общаются с заказчиком совсем ебнутый чтоль? Есть сейлз, юр служба и архитекторы на пресейлз. Бухгалтер ведёт собственно бухгалтерию и как и с кем контракты заключаются ему поебать.
>>240234432 сразу видно, что ты программируешь слаботочное говно. как только выйдешь на уровень настоящего промышленного программирования, узнаешь, что и уровни напряжения можно менять программно. а если вырастешь настолько, что тебя пустят на электростанции, то, может, тебе удастся и задвижками на газовых котлах поуправлять, там так поджарить от ошибок может, что картинки смотри в дарк-вебм-тредах
>>240242475 Двойное чаепитие. Смотрю в их логи и обоссываюсь: вместо двух запросов к базе хуярятся 115. Причем их можно даже средствами ЖПА подсократить неплохо, но этим ебланам в голову не приходит, что можно что-то оптимизировать. Фреймворки же все за них делать должны
>>240249496 Без всяких шуток, даже создатель яваскрипта так разочаровался в своем детище, что хотел назвать его Моча. Но деньги порешали, и это говно пошло в народ.
>>240229780 (OP) >20 языков программирования Я знаю только: Basic, C, Pascal, Asm и матерный русский. И я порву твою нежную душу на множество лоскутков, черт. Ведь все остальные "языки" программирования просто дети этих пяти.
>>240229780 (OP) нах делать свой яп, не верю что нету уже имеющегося, который не отвечал бы требованиям, также кто учить этот новый язык будет, кому он будет нужен кроме вас? Ни один пришедший специалист не будет владеть им, вам придется каждого обучать. хотя почему нет, вдруг выстрелит и станет одним из стандартов
>>240257159 Дважды двойное чаепитие. В свое время меньше, чем за год поднялся от мидла до тимлида, по сути занимаясь только тем, что в громоздкой и навороченной системе, общавшейся с базой через EF, "пооптимизировал запросики", немного покурив dotTrace и SQL Server Profiler (до этого, написанная фреймворкомакакой выборка 50 записей из таблицы с 10000 могла занимать по 10 секунд и херачила по 1000 запросов) - достаточно было правильно поставить джойны и повесить один индекс, время выполнения тут же падало до сотых долей секунд.