Всем привет, тимлид-архитектор из команды Яндекс в треде. 20 лет опыта (40 лвл). Владею 20-ю языками программирования. Сейчас ведём разработку своего языка программирования. Тут буду давать советы нубам. Погнали. 1) В 2019 году английский язык для программистов почти не нужен. Большинство док переведены (особенно по С++) на русский. С заказчиками общаются бухгалтеры и PMы.
2) Часто нубы лезут в кодинг не зная чем поток отличается от процесса, а этот вопрос часто любят на собесах нубам задавать. Ответ: Поток — это определенная сущность программы. Каждый оператор (хотя это во многом зависит от реализации языка) выполняется отдельным потоком. Если говорить максимально просто, зачастую, сколько в программе if’ов, for‘ов и т. п., столько она и имеет потоков, но бывают и исключения (как в языке Haskell, детали гуглите). Всё потому имеют свою память. Процесс — вид потока, который исполняется напрямую в процессоре, а не в системном интерпретаторе потоков, как это делают классические потоки. Процессы имеют общую память (кэш процессора).
4) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
Идите вы нахуй со своим программированием. Я не могу математику 10-11 класса освоить, а вы своё программирование здесь продвигаете. Идите в пизду, долбаебы.
3) Когда собеседовал студентов, постоянно видел людей, которые не понимают, зачем вообще нужен фронтенд и что это вообще такое. Front-end (передний конец) — это начальная стадия изготовления программного продукта. Всё, на этом определение можно закончить. Никакие интерфейсы тут непричём, но тем не менее, фронтенд очень помогает кодерам пилить продукт вдальнейшем.
Короч у меня проблема. Есть самопписный сорс-плагин на ГатсбиЖС, который вытягивает с указанного API и эндпоинтов всю инфу и распихивает его по нодам, которые потом идут в GraphQL гатсбивский.
Ну так вот, как мне задать между данными связи, если они в джейсоне указаны в качестве ебучих ссылок, а не айдишниками?
4) Многие считают динамическую типизацию злом, и совершенно напрасно. Динамическая типизация позволяет выделять как можно меньше памяти на выполнение программы ю, поскольку выделением памяти занимается сам компилятор, на не процессорные «ассемблеры». В свою очередь, процессорные ассемблеры являются более надёжным и «типобезопасным» способом выделения памяти. Они так же являются подвидом компиляторов, только разработаны по другому принципу.
5) Реляционные БД в последнее время набирают обороты, возможно, скоро вообще все переключатся на них, вытеснив этим самым так-называемые Key-value и Value-key базы данных. Так что можете забывать всякие виды join‘ов и прочую муть, связанную с нерелятивными БД, на собесах спрашивать это уже почти не актуально (хотя всё-таки знания всегда поощряются).
6) Все современные языки похожи друг на друга. К примеру, Python, PHP и Java исполняются на одной и той же виртуальной машине (JVM), названной в честь Jav’ы. Языки этой группы используют процессы вместо потоков, за что получили быстрый перформанс и ненадёжность значений переменных.
>>237614169 >В 2019 году английский язык для программистов почти не нужен Это если через галеру работать, и то, в некоторых командах НУЖНО на английском общаться - часть команды англоязычная (индусы, кек). Ну и оффер в США или европе без англа не выбьешь.
7) Сразу учитесь использовать дебаггер. Кратко: «баг» (англ. «жук») — ошибка программы, связанная с утечкой памяти процессора (кэша) на жесткий диск/ssd. Но в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх.
9) В языках высокого уровня (Java, Python, Ruby, Rust — т. е. группа «процессорных» языков, о которых я говорил выше) отсутствуют «исключения». Потому что это, собственно, группа высокоуровневых языков, выполняющихся близко к процессору, поэтому в них нет такой абстракции, как «исключения». Языки высокого уровня и так подвержены ненадежности (к примеру, тяжелая высокоуровневая прога втупую может сменить вам значение переменных или значения внутри массива), если бы в них добавили исключения, это был бы очередной C# (то есть очередной полный провал не принимайте близко к сердцу, шарповики). Этот вопрос часто на собесах спрашивают, кстати.
10) Конечно же, я не могу не упомянуть ООП (Объектно Ориентированное Программированиe). Все студентишки знакомятся с этой парадигмой, изучают классы, рекурсивность и т. п.. Объектно Ориентированное Программирование позволяет эффективно расходовать оперативную память, кэш процессора, и даже энергомощность блока питания за счёт того, что позволяет манипулировать остатками ячеек памяти уже пройденных компилятором, путём представления ячеек (или их совокупностей) через т. н. объекты. Классы описывают эти самые объекты. Всё очень просто.
Я так понимаю тут тролкаст, вкидывать какую-то парашу, вроде жава "процессорная" а си - нет, или что баг - это утечка памяти, кароче харьк тпху опу в ебасосину.
>>237613948 >Многие считают динамическую типизацию злом И совершенно ненапрасно, ибо статические проверки позволяют исключить множество ошибок еще до запуска программы и сделать код безопаснее давая вовремя обезьяне по яцам.
>>237615870 Мое уважение. Стоит ли к вам вкатываться? Что учить? Какая зп и востребовательность на рынке? Просто хочу МК позаниматься, но судя по вакансиям на хх.ру, в СНГ с МК все хуево.
>>237615899 >Почему именно жаба? Когда начинал учить С++ нашел статью о том что джава это востребовано и интересно и в меру сложно, рискнул, после плюсов очень понравился, особенно его фреймворк спринг, он очень объемный, но довольно приятный в плане, ты можешь на нем практически что угодно сделать > Есть какие-то идеи на этот счет\проекты? Есть идея попробовать сделать электронную школу в свете недавних событий, но это для меня сейчас неподъемный проект.
>>237616007 >все хуево именно так. У меня сейчас примерно 2500 в переводе на деньги и это уже потолок. Куда-то перетекать - посох знает, уезжать надо за границу видимо, но немного поздновато уже (ждать пока личинка школу окончит видимо)
Если хочешь денег, то лучше всякие мобильные приложения, да даже сраный PHP и то лучше брат у меня около 3500 получает получается. С ними, даже если не найдешь хорошей работы тут, то получив опыт сможешь во фриланс. Embedded же не поддаётся фрилансу и удалёнке в силу большого количества специфического оборудования.
>>237614690 >в современном обществе школьников этим словом называют любую нежданную хуйню, вплоть до неправильных текстур в играх Ссу тебе на ебало, очередной не знающий матчасти "розработчик))0".
>>237616466 >Если хочешь денег, то лучше всякие мобильные приложения, да даже сраный PHP и то лучше... Это и обидно, но рынок диктует свои правила, что ж поделать. Сам вот вычислениями и симуляциями занимаюсь, сейчас вот на ВУЗ работаю. Хочу немного переучиться и пойти в МЦСТ работать, компиляторы писать.
>Embedded же не поддаётся фрилансу и удалёнке в силу большого количества специфического оборудования. Ну в этом то и проблема, что у нас своего производства техники подобного рода практически нет. Попробуй в смежную область перетечь.
>>237617004 >Попробуй Мне предлагали в том числе и брат хотел к себе подтянуть, но нравится именно байтоёбство на железках.
В идеале хотелось бы куда-нибудь в сферу производства электроники для автомобилей (управление ДВС, трансмиссиями, системы контроля безопасности, да даже просто мультимедиа на борту) или промышленного оборудования (станки ЧПУ - не наладчик, а именно производство и программирование управляющей электроники).