Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования. Тут буду давать советы нубам. Погнали. 1) В 2019 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
2) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Всё потому имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
3) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
>>235920608 (OP) >1) В 2019 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы. Ты тупой пиздабол которому от силы 15, не о каких 20, тем опыта тут даже и не пахнет.
4) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
>>235920685 Если нуб блять элементарное программирование не знает то потоки и процессы он просто не поймёт. Только по бумашке сможет зачитать как ёбанный первоклассник с утренника.
5) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
>>235921042 >Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных Может НАОБОРОТ БЛЯТЬ НАПИШЕШЬ ЧТОБЫ ТВОЙ ВЫСЕР ИМЕЛ ХОТЬ КАПЛЮ ЁБАННОЙ ЛОГИКИ
>>235921028 Да, CAP (как и ACID) - принципы построения NoSQL баз-данных. CAP-теорема в частности - теорема о трёх принцпах проектирования баз данных на основе Redis (бэкенд БД) от компании Sun Microsystems (ныне поглощены GNU Software). Хотя теорема может быть применена и к другим подобным базам, работающих по такому же принципу. Расшифровывается как Consequently Available Partitions - заключается в том, что из key-value хранилищ, при нужде свести риску потери данных, данные можно получить только последовательно.
>>235921193 > Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём кекнул с этого синьера помидора с 4Б мимо лид фронтенда
6) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
7) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх.
>>235920608 (OP) И ты начинаешь сосать с пункта 1. Переводы с английского выходят с запозданием, если кто-то вообще будет переводить профильные форумы например. И при всём при этом с дичайшими косяками ( переводчикам доков по стандартной периферии stm32 сотой серии посылаю лучи поноса за куски которые они решили не переводить а просто выкинуть из текста ).
Если специалист не в состоянии поговорить сам с заказчиком - он до конца дней своих будет на подсосе у ПМов передастов. Надо ли пояснять как это отражается на карьере и заработке?
>>235921355 А вот ты и спалился, теоретик мамкин. Ведь CAP & ACID не привязан к дистрибутивным системам и акронимы обобщаются на многие области программирования.
8) В языках высокого уровня (Java, Python, Ruby, Rust — т. е. группа «процессорных» языков, о которых я говорил выше) отсутствуют «исключения». Потому что это, собственно, группа высокоуровневых языков, выполняющихся близко к процессору, поэтому в них нет такой абстракции, как «исключения». Языки высокого уровня и так подвержены ненадежности (к примеру, тяжелая высокоуровневая прога втупую может сменить вам значение переменных или значения внутри массива), если бы в них добавили исключения, это был бы очередной C# (то есть очередной полный провал не принимайте близко к сердцу, шарповики). Этот вопрос часто на собесах спрашивают, кстати.
>>235920608 (OP) > 1) В 2019 году английский язык для программистов почти не нужен понятно, так и будешь сидеть в парашаяндесах на рублевых зарплатах с потолком 250-300к, идиотина.
>>235921628 Пиздец, с какими долбоёбами я работаю в одной сфере, суууука. У тебя синдром Аспергера, или ты просто непробиваемо тупой, что элементарнейшего сарказма понять не можешь?
>>235920608 (OP) > В 2019 году английский язык для программистов почти не нужен. Вась, сейчас конец 20-го. Ты если пасту вставляешь, то хоть годик выправляй.
9) Конечно же, я не могу не упомянуть ООП (Объектно Ориентированное Программированиe). Все студентишки знакомятся с этой парадигмой, изучают классы, рекурсивность и т. п.. Объектно Ориентированное Программирование позволяет эффективно расходовать оперативную память, кэш процессора, и даже энергомощность блока питания за счёт того, что позволяет манипулировать остатками ячеек памяти уже пройденных компилятором, путём представления ячеек (или их совокупностей) через т. н. объекты. Классы описывают эти самые объекты. Всё очень просто.
>>235921709 > элементарнейшего сарказма Я слишком долго на дваче, чтобы понять, когда уёбок пытается заткнуть жопу пальцем, но шаровары уже в говне. Ты обосралась, маня.
10) Все языки программирования делятся на Тьюринг-полные и Тьюринг-частичные. Тьюринг полные языки так называются, потому что там присутствуют операторы, придуманные самим Тьюрингом (конструкция if, циклы while и for, а также тернарный оператор x ? y : z) Забавный факт: именно благодаря тернарному оператору Тьюринг смог разгадать усложненную версию шифровальной машины "Энигма" с четырьмя роторами. Хаскелль - пример Тьюринг-частичного языка, т.к. там отсутствуют конструкции for и while, но присутствует if.
11) Никогда не используйте локальные переменные. В группе Pascal-подобных языков они обозначаются ключевым словом lovar (Local Variable, "ловары"). Они значительно уменьшают нагрузку на процессор, но совершенно не годятся для моделирования, а так же приведёт к «засорению» памяти. Зачастую их используют скилловые бородатые дяди, когда пишут эксплойты (эксплоит — сленговое название ядра ОС). Они, конечно же, знают, где их нужно применять.
>>235921802 >Забавный факт: именно благодаря тернарному оператору Тьюринг смог разгадать усложненную версию шифровальной машины "Энигма" с четырьмя роторами. Но ведь Энигму создал Альберт Эйнштейн.
12) Сейчас существует огромное множество фреймворков для создания практически чего угодно. Большинство из них языко-независимые (language-free), и представляют собой прокачанные компиляторы. Для каждого второго есть графический интерфейс (для совсем нубов — можно работать через граф. редакторы типа пейнта/фотошопа). Для работы через Photoshop рекомендую ReactJS, написанный на языке Java.
>>235920816 >Front-end (передний конец) — это начальная стадия изготовления программного продукта Заорал. В качестве фронта может вообще консолька использоваться, а потом уже красота рисуется, когда бэк отлажен. Фронт это то что спереди, фасад. А енд в данном случае, что его делают самым последним в программном цикле
>>235920608 (OP) Можно ли вкатиться в айти сферу, имея опыт за спиной 6 лет проджект менеджером и руководителем коммерческой команды в международной компании? Меня не интересует именно разработка и изучение кода, скорее хочу переметнуться со своим бэкграундом и рекомендациями от руководства компания известная и всемирная, думаю рекомендации от вице-президента будут полезны. Интересует, скорее, смена сферы на более развивающуюся. Та сфера, где я щас работаю высоковольтное оборудование и электропроизводство, стоит на месте уже лет 10-15, все открытия в технологиях лишь минорные, в отличии от айти сферы, которой еще развиваться лет десять минимум вширь и вверх. Разумеется, изучая основы айти ПМа. Что мне для этого надо? Как я понимаю, достаточно знать базово языки, что где применяется. Что касается личных скиллов софтскилс, майндфулнес, ведение коммерческих переговоров, управление командой, гибкость и т.п и проф. навыков - все ок. Что скажешь?
13) Популярность так называемых «декларативных» языков программирования (т. е. таких, в которых декларации процессору хранятся в так называемом «стэке» деклараций) — лишь тренд. Скоро все эти ваши Ады и Perlы уйдут в тень, и вакансий будет мало. У себя в компании мы отказываемся от этих языков, в основном потому что проёбы на кастомных декларациях ведут к необратимым потенциальным ошибкам.
14) Шаблоны проектирования — типичный вопрос на собеседовании. Самый популярный шаблон — «Dependencies injection» — позволяет хранить данные («внедрять», «инжектировать») в оперативную память. Реализуется как две функции, при этом одна передаётся в другую. Вот пример простой на C++. ``` function void injector(func *funcPtr) { stdlib::ram::memorize(&funcPtr); }
function injectee() { stdout::cout(&"Hello world"); }
>>235920608 (OP) Вот скажите, в чем прикол быть погромистом? Нужно же постоянно по работе совершенствоваться, учить что-то там. Сам хожу на работу накуренный в основном, читал по РАБоте лит-ру последний раз лет 10 назад. З/п в районе 70 , мухосранск.
15) Модель OSI включает три уровня операционной системы (ОСи): уровень пользовательского приложения, уровень операционной системы и уровень драйверов. Стек TCP/IP относится ко второму и первому уровням. Создано это всё чтобы разграничить программы от драйверов.
16) IP-адрес это набор цифр (от -7 до 256), по которым твой комп может найти товарищ майор. Диапазоны адресов выдают провайдерам правоохранительные органы государств, в которых провайдеры работают, у нас это ФСБ, ну а дальше провайдер выдаст тебе какой-нибудь айпишник (4 цифры разделённые точкой, иногда добавляется слэш "/" и ещё три цифры, для ip-адресов v5 и v6) чтобы можно было понять кто это у нас смотрит ЦП. IP-адреса бывают белые и серые. Серый отличается от белого тем что провайдерам влом сделать всё как надо и под одним адресом в сети может оказаться много разных пользователей. То есть, если у тебя серый IP, твой адрес может совпасть с адресом какого-то Джона из Калифорнии на другом конце света.
17) TCP это один из стандартных протоколов (правил по которым программы общаются между собой через сеть). То есть он документирован - ты можешь найти в инете описания (RFC) и там всё расписано кто когда и какие байтики шлйт. UDP это undocumented protocol т.е. публичного стандарта нет и что там внутри знают только разработчики программы - например в онлайн играх.
>>235922623 Ебать ты даун, земля тебе пухом. /24 после IP это маска подсети. IP адрес тебе предлставляет провайдер для доступа в интернет он же покупает или арендует их у локального регулятора или другого провайдера. Читай как сети работают маня. Это базы, которые должны знать даже дети.
18) Юнит-тесты: Есть такой фрэйм (от англ. "Frame" - "кадр") для игр Unity. В этой же сфере гейм-дева есть и концепция Unit-тестов. То есть по факту, если вы не осилили IT в целом и программирование в частности, можете искать вакансии Unit-тестеров - они просто ищут баги в играх, написанных на Unity. Работа не шибко для умных, но требует усердий. Объясняю почему возник именно такой термин: Unity в виду своей простоты является самым популярным игродвижком. Соответсвенно, на нем больше всего игор, твои любимые киберпунки и гта5 написаны на нём, вот в геймдеве и появился такой отдельный термин для тестирования игр на Unity.
>>235922652 Я не только сетевик. А около DevOps. Если ты кодер нехуй пиздеть про все в мире. А базовые вещи типо IP/Масок/Протоколов транспортного уровня знать надо если делаешь вещи связанные с онлайн сервисами. А то тут чел так распетушился, а я более чем уверен что в основном он и в других сферах такой же лох.
>>235923403 Ты щас о вордпресс/реакт-котёнках говоришь, что ли? Ебать, ты ещё сравни, сука, рядового-срочника и профессионального бойца наёмной армии, блять.
>>235923300 Специльно для тебя. По сетям. 19) handshake это рукопожатие т.е. когда клиент соединяется с сервером по одному из UDP-протоколов то они обмениваются первоначальными пакетиками с помощью которых проверяют например версию друг друга, убеждаются что оба используют один и тот же протокол и всё в таком духе. Handshake нужен ИСКЛЮЧИТЕЛЬНО UDP-протоколам (Undocumented Protocol), потому как они плохо документированы, и им, чтобы общаться друг с другом, нужно обменяться некоторой информацией.
20) Про следующий прикол мне как-то рассказывал сам Кэн Томпсон, когда я работал в гугле в середине нулевых. Очень часто на собесах дают задание - написать прогу, которая переворачивает слово. Типа 'анон' -> 'нона'. Я тоже часто даю это. Если человек берет библиотечную функцию, то сразу шлю нахуй. Если пыжится, реализует через цикл - то еще даю шанс. Если реализует рекурсивно - то получает плюсик. Но есть один очень элегантный способ, который юзают только гуру. Короче, все программы сначала переводятся в язык ассемблера. Это наверно все знают. Но гораздо меньше людей знают, что у ассемблера 2 разных синтаксиса - от компании "Эндрю Таненбаум энд технолоджис" - сокращенно AT&T и от Интела. Суть в том, что эти 2 языка зеркальны друг по отношению к другу (один начинает работать с начала стека, а второй - с конца). Шарящий челик, зная, какая версия ассемблера в системе, может обмануть процессор, скомпилировав код под другой ассемблер - и, не сложно догадаться, - вся программа работает в обратном порядке, то бишь, в системе с Intel обычный код println("анон"), скомпилированный в AT&T выведет на экран "нона", т.к. байты поместятся в стек в обратном порядке
>>235920608 (OP) >Сейчас ведём разработку своего языка программирования. Пикрил уже сделал. Всё работает. Монополия на мелкий и средний бизнес тут давно. В крупном бизнесе регл. учёт всё равно на этой жёлтой хуйней. Зачем что-то делать. Недавно они выкатили 1С:Исполнитель - православный скриптовый Питон. Правда та еще хуйня, зато наш.
>>235922652 Я думаю что даже школьники знают что UDP - User Datagram Protocol, ну а вообще я бы посмотрел на человека который начитался этого тренда и пошел на собеседование. Там бы наверное несколько лет вспоминали это.
Тред не читал. ОП, если ты не хуй и реально работаешь в Яндексе, когда вы запилите нормальную ОС? Чтобы не слизанное с чего-то, как у вас Яндекс.браузер с Оперы, а действительно своё? Пилите российскую ОС, тогда я к вам с Винды пересяду.
>>235924283 У Юникс систем всегда одно ядро. Даже если на процессоре несколько ядер, или в компе несколько процессоров, Юникс-системы выберут одно и будут с ними работать. Windows тоже так делала до XP.
>>235924175 Завтра в 7:00 будет анонс YaOS, операционная система на базе DOS, с GUI как у MacOS X и с возможностью запуска Cyberpunk даже на ARM. Естественно поддержка обратной совместимости с величественной Symbian. А ещё стоит всего 499 рублей.
> слишком долго на дваче >триггерится на пасту, которую постят каждую неделю в течение n лет Господи с кем я сижу съебал нахуй с треда, залетный хуесос, к своей жирной заплывшей свиноматке с личинками в одноклассники
>>235920608 (OP) Кхем, кххаем. Всем привет, президент Российской Федерации из команды ООО "Озеро". 20 лет опыта (68 лвл). Владею 22 республиками, 9 краями и 46 областями России. Сейчас ещё ведём разработку ДНР и ЛНР. Тут буду давать советы нубам. Погнали. 1) В 2018 году выборы не нужны. Большинство документов подложены (особенно бумажные бланки). С наблюдателями общаются бухгалтеры и РМы.