Тред тупых вопросов по программированию1. Работодатели часто в требованиях указывают "Знание C++", "Знание C#" и т.д.А с какого момента вообще можно сказать что человек знает тот или иной язык?Когда он выучил все его команды? Это вообще возможно?Когда он знает весь синтаксис, те или иные основы языка (как функции создавать и вызывать, типы данных, методы и прочее)? чему можно научиться буквально за неделю-две2. Чем фреймворк отличается от библиотеки и что такое api? Только пожалуйста по человечески, а не пасту с википедии3. Реально ли выучить ЯП, и фреймворк к нему без знания английского? Книги и статьи в основном все на английском4. Как называется технология, когда берут фактически браузер (или движок от него) и на нём пилят GUI?5. Писать что-то лучше так как описано в п4, или классическими gtk, qt delphi?6. П 4 и 5 подразумевают знание каких фреймворков? И можно ли будет потом использовать эти знания в реальном производстве какого-то сайта?
Бамп
>>182499492 (OP)1) С того момента, как твой пиздеж понравился HRщице/менеджеру, проводящему собеседование2) Мне лень3) Реально. Но ты сам себе усложнишь жизнь и установишь потолок в виде руснявых кампаний.456) Спасибо аллаху, я не фронтэндер.
бамп адеквату
It is get
Bump
>>182500000>>182499999
>>182499492 (OP)ОП-хуй, привет, я гуманитарий-кун, сам учу языки python и C++ и дрочу на алгоритмы. Паралельно два раза в неделю занимаюсь математикой, вспоминаю все, что успел забыть. Выписываю интересные темы, вот например, я вообще смутно понимаю различия компилятора и интерпритатора, но очень хочу узнать. Вообще, я смотрел видос, где какой-то чувак рассказывал о том, что внутри компилятора происходит и это очень любопытно и интересрно.Я все это к чему говорю? Да просто хвастаюсь-выебываюсь, лол.Ты для себя учишь или хочешь начатьзарабатывтаь кодингом?
>>182499492 (OP)1 синтаксис даже макака может выучить2 пиздец тупой3 нет4 dwa5 ебать старпер6 ебать дибил, никто на голом языке ничего не пишет, кроме хелло ворда
>>182500099>Да просто хвастаюсь-выебываюсьЧем?
>>182500132> 6 ебать дибил, никто на голом языке ничего не пишет, кроме хелло вордаТогда нахуй их такое огромное многообразие?
>>182500171Ничем на самом деле, мне и нечем, я только-только за ООП взялся. Просто вокруг совсем не с кем об этом поговорить, а занятие очень интересное.
Знание языка - это, условно, знание синтаксиса, методологии, основных паттернов. Знание языка не равно знанию программирования. Предполагается, что когда ты умеешь программировать, ты можешь это делать на любом языке - для этого тебе нужно лишь знать его.
>>182500234Блин, если не кушать какашки, то основных языков, востребованных в разработке сейчас не больше десятка Кресты, Джава, СиШарп, ДжаваСкрипт, Питон, ПХП ну и Руби, допустим, остальное - либо учебные языки, либо узконаправленные всякие R и прочие, либо устаревшие Делфи, Паскаль.
>>182499492 (OP)1 с какого момента можно говорить, что ты выучил английский? Ну примерно когда ты можешь сформулировать средний текст и вести беседу без запинок2 фреймворк можно рассматривать как множество библиотек, в совокупности накладывающихся на твою программы ограничения и требования. Qt это фреймворкАпи это внешняя сторона какого-либо программного модуля. Например, чтобы браузер получил самок тредов у двача, он должен направить такой-то запрос и получить ответ в заранее установленном виде. Набор таких правил образует собой апи двача.3 практически нет, будешь вечер отстаивать во всём456 хз о чем ты
>>182500280А знание программирования - это знание алгоритмов, ООП, методов разработки, т.е. всякие теоретические штуки?
>>182500266Можешь поговорить со мной.Шучу, нахуй ты сдался кому.
>>182500466>нахуй ты сдался комуСебе. Себе я точно сдался. А остальные, в общем, не так уж важны, извини.Все равно спасибо. Пока
>>182500132> 1 синтаксис даже макака может выучитьТы на вопрос ответь. Надо всё о языке знать, включая то как он с ассемблером взаимодействует и прочее?
>>182499492 (OP)>командыДрыстанул
>>182500544Мне кажется, на уровне Джуна - нет. Да и знать это очень сложно. То есть, как ты, блять, узнаешь как Питон компилируется в Ассамблер или куда там, блять? Это ебать глубоко, и, наверное, нахуй не нужно, если ты сайты на Джанго хуяришь.
>>182500600Жидко?
>>182500370>ПХП ну и РубиСёрнул
>>182500517Далеко пойдешь.
>>182500693Че?
>>182499492 (OP)1. Как и знание обычного языка: синтаксис, конструкции, обработка исключений etcУдачи выучить это за неделю-две (хотя, если ты знаешь какой-то один язык хорошо, то обычно не составляет труда понимать другой родственный язык (например, рубист искаробки поймет, что написано на пайтоне, а через месяц-два вкатывания сможет и писать на нем)2. Фреймворк - набор костылей. Библиотека - один костыль. Фреймворк - основа, каркас. Библиотека - набор плюшек. Фреймворк обычно работает на многих уровнях - диспатчер, рендеринг, шаблонизаторы, дохуя всего. Библиотека - обычно на одном.API - программный интерфейс. Собственно, способ взаимодействия одной программы с другой.3. Реально, на русском материалов тоже дохуя.Остальное хз
>>182499492 (OP)1. Если хочешь подтвердить свои знания официально, то пройди официальную аккредитацию (например, https://www.microsoft.com/ru-ru/learning/exam-70-483.aspx). Есть градация специалистов по уровню знаний. Не знаю про команды языка C#, или что ты в этом понятие вкладываешь, возможно языковые конструкции? Да, надо знать все ключевые слова, операторы, структуры, и прочую возню. Еще хорошо бы понимать как это все работает и почему именно так, в чем разница версий и как работает компилятор. И тогда ты джун, поздравляю. Добавь к этому еще знание и умение использовать известные/популярные библиотеки и фреймворки.2. Кратко: библиотека - то откуда ты можешь взять структуры/методы, фреймворк - окружение в котором ты пишешь кода, api - транспортный и структурный протокол для сообщения изолированных друг от друга программ.3. Да, но очень сложно. Часто переводы книг не верно отражают суть оригинала, потому что переводили их студенты-гуманитарии. Официальные издательства специально пытаются отредактировать книгу так, что бы использовался единообразный язык (терминология). Первые книги со словарем, потом будет гораздо легче.4. Хуита, но зато быстро и работает; рамка; вебанутый интерфейс.5. Зависит от массы факторов: ресурсы, специалисты, цели, заказчик, ТЗ и т.п.6. Разные, лучше гугли актуальные, раньше был Cardova. Все знания пригодятся, это называется технический кругозор.Если лень много учить/писать/читать, то лучше сразу на корню заруби это, иначе останешься посредственным говнокодером.
>>182500099>я вообще смутно понимаю различия компилятора и интерпритатора, но очень хочу узнатКомпилятор компилирует, интерпретатор интерпретирует
>>182501039Спасибо, Евгений Ваганович, теперь мне все стало понятно!
>>182500923>иначе останешься посредственным говнокодером
>>182500099>я вообще смутно понимаю различия компилятора и интерпритатора, но очень хочу узнатьЕбать, чё сложного-то.Процессор занимается тем, что выполняет команды, но команды не как в командной строке или то, что ты программируешь. А команды типа "перекинь данные из регистра такого-то вот в такой" или "запусти такое-то прерывание". Из этих команд формируются всё то, что можно написать на языках программирования.Компилятор занимается тем, что анализирует весь твой код, проверяет, чтобы там не было невозможных операций и тогда уже компилирует в машинный код (набор этих самых команд), который будет понимать процессор. Получается программа, которая заставляет процессор делать ряд действий.Интерпретатор занимается тем, что построчно читает твой код и переводит в машинный код (сразу на исполнение) либо в байт-код (виртуальный машинный код для виртуального процессора).
>>182499492 (OP)>Когда он выучил все его команды?Обосрался
>>182500099Алсо да, машинный код для процессора выглядит как поток двоичных чисел (команд). Под каждым числом закодировано конкретное действие (сложение, вычитание, прерывание, перемещение, сдвиг).Ассемблер достаточно близок к машинному коду, но местами всё ещё более высокоуровневый.
>>182502077То есть, компилятор как бы переписывает программу, делает ее, условно, машинную копию, и только после того как она будет закончена, все команды отправляются в процессор?Получается, что, если у меня есть ошибка, то компилятор просто нескомпилирует файл, а покажет место, где возникла ошибка?А интерпретатор тогда - программа, которая переводит как переводчик в живую, прямо в ухо, условно, сразу же передает команды, что означает, что команды могут выполняться до момента, когда там допущена ошибка.И, наверное, компилятор медленнее и объемнее,а интерпретатор быстрее, но в случае непредвидиной ошибки он покарает тебя сбоем программы?
>>182502273Я примерно представляю, как выглядит машинный код, в лекциях на ютубе этого касались. И, в том числе, того, что обычно он кодируется 16 систему счиления, и типа молодцы, которые на низком уровне ебут систему в рот, работают именно с ней.
>>182499492 (OP)1. Нахуй таких, они не шарят, скорее всего ищут эникея2. Фреймворк - набор библиотек, связанных между собой и API для используещего. Библиотека - набор вспомогательных классов/объектов/функций. API - функции/классы/объекты для управления чем-то, например библиотекой или фреймворком.3. Вряд ли, сам английский не изучал, но потратил много времени в гугл транслейте. Русского будет достаточно для изучения основ. Дальше перевод шакалится и ничего непонятно.4. Электрон. Говно ебаное, выжирает минимум пару гигабайт ОЗУ для хуйни. Не твой бро.5. Пиши на классике. Мой выбор qt - работает на винде, линуксе, маке, микроконтроллерах, небе, аллахе. VLC плеер например на нем сделан.6. п.4 и п.5 и есть фреймворки. Можно применить, но для узкого класса задач. Сайты обычно пишут полностью java(бекэнд и фронтэнд, для фронта используют например GWT/Vaadin/JSF)
>>182502310>компилятор медленнее и объемнееКомпилирует - да. Полученный в итоге код чаще всего работает быстрее. >непредвидиной ошибки он покарает тебя сбоем программыКомпилированная программа тебя тоже может покарать. Компилятор проверяет, что то, что ты ему скормил он может скомпилировать.
>>182502524Спасибо, анон, теперь понятнее. Дальше, думаю, уже доразберусь.
>>182502755Он тебя наебал на 20%. В java например есть и компилятор, и интерпретатор.
>>182500829На Руби три с половиной сайта написаны. И единственный фреймворк
>>182502836Ну, мне кажется, это уже тонкости, которые можно понять, разобравшись глубже. Наверняка есть дохуя статей про это, или даже книг каких-нибудь. Пока разберусь на уровне "я примерно представляю, что это за хуйня". Если будет нужно в процессе (решу написать свой ЯП для детей/людей с пороками развития/еще каких-нибудь людей, которым нужно загружать мозг что бы он восстанавливался, например) и буду уже глубоко вникать в тему.
>>182502950Он потому и последний. Сколько сайтов написано на LISPе? А на дельфе?
>>182499536Опа, индус
>>182503021>LISPе? А на дельфе?Ну эти языки в принципе не пригодны для веба, они создавались для других задач. А рубин изначально спроектирован чтобы на нем делать сайты. Но получилось что получилось
>>182502983Я дам тебе tl;drКомпилятор трансформирует твой код из А в БИнтерпретатор исполняет какой-то код.(превращает Б в машинный код). То происходит сразу после запуска проги.Например в php/js есть только интерпретатор. Он сразу исполняет код А в java исходник нужно превратить в байт-код(Б) и потом запускать.В нативных языках(C/C++/Rust) компиляция сразу выдаёт машинный код.У обоих подходов есть плюсы и минусы.
>>182503248Гитлаб/гитхаб так-то успешный язык. И он не спроектирован для сайтов, то язык общего назначения.
Есть блядь сайты где есть курсы конкретно где учат выполнять нормальные тз, или хотя бы показывают какие библиотеки и фреймворки для этого нужны и в целом как ими пользоваться? А то все самоучители это просто рассказ о синтаксисе if else обычно.
>>1825034881. Для ТЗ существуют стандарты ISO/ГОСТ2. Придумываешь себе задачу, начинаешь ее решать, гуглишь '%pl_name% frameworks/libraries', читаешь описание и выбираешь подходящие для твой задачи фреймворки/либы. Ищешь документацию к либе.
>>182503662В принципе я так и думал и делал когда-то пока не дропнул. Тогда другой вопрос - где можно откопать примеры кода с подробными комментариями?
>>182502310Ну почти.У тебя есть текстовый файл main.cpp который содержит список команд. Компилятор анализирует его, проверяет на ошибки, делает подготовку к компиляции (препроцессинг), т.е. убирает всё лишнее, где может, оптимизирует всё по максимуму. Далее непосредственно компилирует — превращает твой код в машинный код. На выходе ты получаешь исполняемый файл.Тут конечно я упустил момент про то, что для разных операционок исполняемые файлы чутка разные, а если кодишь операционную систему, то файлы будут бинарные. Но это уже конкретные тонкости.>Получается, что, если у меня есть ошибка, то компилятор просто нескомпилирует файл, а покажет место, где возникла ошибка?Да, но не всегда. Смотря какого рода была допущена ошибка. Например ты написал калькулятор, и забыл добавить проверку, чтобы введёный символ имел только цифры и точки/запятые. Если захуярить туда букв, программа вылетит с ошибкой, либо зависнет. Такие ошибки офк компилятор не может выявить.>А интерпретатор тогда - программа, которая переводит как переводчик в живую, прямо в ухо, условно, сразу же передает команды, что означает, что команды могут выполняться до момента, когда там допущена ошибка.Грубо говоря да, но зависит от конкретного языка и среды разработки, которую ты используешь. Если брать скриптовые языки, то довольно часто, есть подсветка синтаксиса языка и грубые ошибки подсвечиваются в процессе написания.Если брать Java, то этот язык хоть и не компилируемый в машинный код. Но по факту, твой код проверяется и компилируется в байт-код (у Java есть виртуальный процессор — JVM, для него байт-код это аналог машинного кода). А потом уже байт код исполняется на JVM. >И, наверное, компилятор медленнее и объемнее,а интерпретатор быстрее, но в случае непредвидиной ошибки он покарает тебя сбоем программы?Скомпилированные программы конечно же работают быстрее. Потому что твой код работает напрямую с процессором. Интерпретатор делает нечто похожее в реальном времени, это не может быть быстрее, тем более, скриптовые языки, часто используют не самые производительные конструкции. Писать на них удобно, а вот производительность страдает.Языки с виртуальными машинами типа Java С# очевидно работают медленнее, потому что работа процессора эмулируется и код выполняется в эмуляторе есть ряд оптимизаций, типа частоиспользуемые куски кода компилируются в машинный код и работают чуть шустрее, но это не даёт такого существенного выигрыша.Компилируемые языки как правило сложнее использовать в разработке, т.к. всё завязано на железе. Поэтому щас на всяких C++ пишут в основном софт или модули, которые должны быть ну очень быстрыми.
>>182503958Спасибо тебе, большого чая тебе и вкусной вкусняшки, если ты такое кушаешь.
>>182503958> Если брать Java, то этот язык хоть и не компилируемый в машинный кодУ тебя старые данные. Инженегры оракла нахуярились паленкой и теперь пилят конпелятор java в нативный код.Project Graal, Java-on-JavaУже работает, прирост производительности в триллион раз.новый JIT конпелятор, написанный на java, фреймворк для создания своих ЯП
>>182500600Инструкции
>>182505001> Инженегры оракла> ОупенДЖК> JIT который и раньше был в жабеКто ебанулся, ты ебанулся.
bump
>>182506380Нативоребенок, испугался что ли? Java теперь конприлируется в машинный код. JVM написана на самой java.