1. Работодатели часто в требованиях указывают "Знание C++", "Знание C#" и т.д. А с какого момента вообще можно сказать что человек знает тот или иной язык? Когда он выучил все его команды? Это вообще возможно? Когда он знает весь синтаксис, те или иные основы языка (как функции создавать и вызывать, типы данных, методы и прочее)? чему можно научиться буквально за неделю-две
2. Чем фреймворк отличается от библиотеки и что такое api? Только пожалуйста по человечески, а не пасту с википедии
3. Реально ли выучить ЯП, и фреймворк к нему без знания английского? Книги и статьи в основном все на английском
4. Как называется технология, когда берут фактически браузер (или движок от него) и на нём пилят GUI?
5. Писать что-то лучше так как описано в п4, или классическими gtk, qt delphi?
6. П 4 и 5 подразумевают знание каких фреймворков? И можно ли будет потом использовать эти знания в реальном производстве какого-то сайта?
>>182499492 (OP) 1) С того момента, как твой пиздеж понравился HRщице/менеджеру, проводящему собеседование 2) Мне лень 3) Реально. Но ты сам себе усложнишь жизнь и установишь потолок в виде руснявых кампаний. 456) Спасибо аллаху, я не фронтэндер.
ОП-хуй, привет, я гуманитарий-кун, сам учу языки python и C++ и дрочу на алгоритмы. Паралельно два раза в неделю занимаюсь математикой, вспоминаю все, что успел забыть.
Выписываю интересные темы, вот например, я вообще смутно понимаю различия компилятора и интерпритатора, но очень хочу узнать. Вообще, я смотрел видос, где какой-то чувак рассказывал о том, что внутри компилятора происходит и это очень любопытно и интересрно.
Я все это к чему говорю? Да просто хвастаюсь-выебываюсь, лол.
Ты для себя учишь или хочешь начатьзарабатывтаь кодингом?
>>182499492 (OP) 1 синтаксис даже макака может выучить 2 пиздец тупой 3 нет 4 dwa 5 ебать старпер 6 ебать дибил, никто на голом языке ничего не пишет, кроме хелло ворда
Знание языка - это, условно, знание синтаксиса, методологии, основных паттернов. Знание языка не равно знанию программирования. Предполагается, что когда ты умеешь программировать, ты можешь это делать на любом языке - для этого тебе нужно лишь знать его.
Блин, если не кушать какашки, то основных языков, востребованных в разработке сейчас не больше десятка Кресты, Джава, СиШарп, ДжаваСкрипт, Питон, ПХП ну и Руби, допустим, остальное - либо учебные языки, либо узконаправленные всякие R и прочие, либо устаревшие Делфи, Паскаль.
>>182499492 (OP) 1 с какого момента можно говорить, что ты выучил английский? Ну примерно когда ты можешь сформулировать средний текст и вести беседу без запинок 2 фреймворк можно рассматривать как множество библиотек, в совокупности накладывающихся на твою программы ограничения и требования. Qt это фреймворк Апи это внешняя сторона какого-либо программного модуля. Например, чтобы браузер получил самок тредов у двача, он должен направить такой-то запрос и получить ответ в заранее установленном виде. Набор таких правил образует собой апи двача. 3 практически нет, будешь вечер отстаивать во всём 456 хз о чем ты
>>182500132 > 1 синтаксис даже макака может выучить Ты на вопрос ответь. Надо всё о языке знать, включая то как он с ассемблером взаимодействует и прочее?
Мне кажется, на уровне Джуна - нет. Да и знать это очень сложно. То есть, как ты, блять, узнаешь как Питон компилируется в Ассамблер или куда там, блять? Это ебать глубоко, и, наверное, нахуй не нужно, если ты сайты на Джанго хуяришь.
>>182499492 (OP) 1. Как и знание обычного языка: синтаксис, конструкции, обработка исключений etc Удачи выучить это за неделю-две (хотя, если ты знаешь какой-то один язык хорошо, то обычно не составляет труда понимать другой родственный язык (например, рубист искаробки поймет, что написано на пайтоне, а через месяц-два вкатывания сможет и писать на нем)
2. Фреймворк - набор костылей. Библиотека - один костыль. Фреймворк - основа, каркас. Библиотека - набор плюшек. Фреймворк обычно работает на многих уровнях - диспатчер, рендеринг, шаблонизаторы, дохуя всего. Библиотека - обычно на одном. API - программный интерфейс. Собственно, способ взаимодействия одной программы с другой.
>>182499492 (OP) 1. Если хочешь подтвердить свои знания официально, то пройди официальную аккредитацию (например, https://www.microsoft.com/ru-ru/learning/exam-70-483.aspx). Есть градация специалистов по уровню знаний. Не знаю про команды языка C#, или что ты в этом понятие вкладываешь, возможно языковые конструкции? Да, надо знать все ключевые слова, операторы, структуры, и прочую возню. Еще хорошо бы понимать как это все работает и почему именно так, в чем разница версий и как работает компилятор. И тогда ты джун, поздравляю. Добавь к этому еще знание и умение использовать известные/популярные библиотеки и фреймворки. 2. Кратко: библиотека - то откуда ты можешь взять структуры/методы, фреймворк - окружение в котором ты пишешь кода, api - транспортный и структурный протокол для сообщения изолированных друг от друга программ. 3. Да, но очень сложно. Часто переводы книг не верно отражают суть оригинала, потому что переводили их студенты-гуманитарии. Официальные издательства специально пытаются отредактировать книгу так, что бы использовался единообразный язык (терминология). Первые книги со словарем, потом будет гораздо легче. 4. Хуита, но зато быстро и работает; рамка; вебанутый интерфейс. 5. Зависит от массы факторов: ресурсы, специалисты, цели, заказчик, ТЗ и т.п. 6. Разные, лучше гугли актуальные, раньше был Cardova. Все знания пригодятся, это называется технический кругозор. Если лень много учить/писать/читать, то лучше сразу на корню заруби это, иначе останешься посредственным говнокодером.
>>182500099 >я вообще смутно понимаю различия компилятора и интерпритатора, но очень хочу узнать Ебать, чё сложного-то.
Процессор занимается тем, что выполняет команды, но команды не как в командной строке или то, что ты программируешь. А команды типа "перекинь данные из регистра такого-то вот в такой" или "запусти такое-то прерывание". Из этих команд формируются всё то, что можно написать на языках программирования.
Компилятор занимается тем, что анализирует весь твой код, проверяет, чтобы там не было невозможных операций и тогда уже компилирует в машинный код (набор этих самых команд), который будет понимать процессор. Получается программа, которая заставляет процессор делать ряд действий.
Интерпретатор занимается тем, что построчно читает твой код и переводит в машинный код (сразу на исполнение) либо в байт-код (виртуальный машинный код для виртуального процессора).
>>182500099 Алсо да, машинный код для процессора выглядит как поток двоичных чисел (команд). Под каждым числом закодировано конкретное действие (сложение, вычитание, прерывание, перемещение, сдвиг). Ассемблер достаточно близок к машинному коду, но местами всё ещё более высокоуровневый.
То есть, компилятор как бы переписывает программу, делает ее, условно, машинную копию, и только после того как она будет закончена, все команды отправляются в процессор? Получается, что, если у меня есть ошибка, то компилятор просто нескомпилирует файл, а покажет место, где возникла ошибка?
А интерпретатор тогда - программа, которая переводит как переводчик в живую, прямо в ухо, условно, сразу же передает команды, что означает, что команды могут выполняться до момента, когда там допущена ошибка.
И, наверное, компилятор медленнее и объемнее,а интерпретатор быстрее, но в случае непредвидиной ошибки он покарает тебя сбоем программы?
Я примерно представляю, как выглядит машинный код, в лекциях на ютубе этого касались. И, в том числе, того, что обычно он кодируется 16 систему счиления, и типа молодцы, которые на низком уровне ебут систему в рот, работают именно с ней.
>>182499492 (OP) 1. Нахуй таких, они не шарят, скорее всего ищут эникея 2. Фреймворк - набор библиотек, связанных между собой и API для используещего. Библиотека - набор вспомогательных классов/объектов/функций. API - функции/классы/объекты для управления чем-то, например библиотекой или фреймворком. 3. Вряд ли, сам английский не изучал, но потратил много времени в гугл транслейте. Русского будет достаточно для изучения основ. Дальше перевод шакалится и ничего непонятно. 4. Электрон. Говно ебаное, выжирает минимум пару гигабайт ОЗУ для хуйни. Не твой бро. 5. Пиши на классике. Мой выбор qt - работает на винде, линуксе, маке, микроконтроллерах, небе, аллахе. VLC плеер например на нем сделан. 6. п.4 и п.5 и есть фреймворки. Можно применить, но для узкого класса задач. Сайты обычно пишут полностью java(бекэнд и фронтэнд, для фронта используют например GWT/Vaadin/JSF)
>>182502310 >компилятор медленнее и объемнее Компилирует - да. Полученный в итоге код чаще всего работает быстрее. >непредвидиной ошибки он покарает тебя сбоем программы Компилированная программа тебя тоже может покарать. Компилятор проверяет, что то, что ты ему скормил он может скомпилировать.
Ну, мне кажется, это уже тонкости, которые можно понять, разобравшись глубже. Наверняка есть дохуя статей про это, или даже книг каких-нибудь. Пока разберусь на уровне "я примерно представляю, что это за хуйня". Если будет нужно в процессе (решу написать свой ЯП для детей/людей с пороками развития/еще каких-нибудь людей, которым нужно загружать мозг что бы он восстанавливался, например) и буду уже глубоко вникать в тему.
>>182503021 >LISPе? А на дельфе? Ну эти языки в принципе не пригодны для веба, они создавались для других задач. А рубин изначально спроектирован чтобы на нем делать сайты. Но получилось что получилось
>>182502983 Я дам тебе tl;dr Компилятор трансформирует твой код из А в Б Интерпретатор исполняет какой-то код.(превращает Б в машинный код). То происходит сразу после запуска проги. Например в php/js есть только интерпретатор. Он сразу исполняет код А в java исходник нужно превратить в байт-код(Б) и потом запускать. В нативных языках(C/C++/Rust) компиляция сразу выдаёт машинный код.
Есть блядь сайты где есть курсы конкретно где учат выполнять нормальные тз, или хотя бы показывают какие библиотеки и фреймворки для этого нужны и в целом как ими пользоваться? А то все самоучители это просто рассказ о синтаксисе if else обычно.
>>182503488 1. Для ТЗ существуют стандарты ISO/ГОСТ 2. Придумываешь себе задачу, начинаешь ее решать, гуглишь '%pl_name% frameworks/libraries', читаешь описание и выбираешь подходящие для твой задачи фреймворки/либы. Ищешь документацию к либе.
>>182503662 В принципе я так и думал и делал когда-то пока не дропнул. Тогда другой вопрос - где можно откопать примеры кода с подробными комментариями?
>>182502310 Ну почти. У тебя есть текстовый файл main.cpp который содержит список команд. Компилятор анализирует его, проверяет на ошибки, делает подготовку к компиляции (препроцессинг), т.е. убирает всё лишнее, где может, оптимизирует всё по максимуму. Далее непосредственно компилирует — превращает твой код в машинный код. На выходе ты получаешь исполняемый файл. Тут конечно я упустил момент про то, что для разных операционок исполняемые файлы чутка разные, а если кодишь операционную систему, то файлы будут бинарные. Но это уже конкретные тонкости. >Получается, что, если у меня есть ошибка, то компилятор просто нескомпилирует файл, а покажет место, где возникла ошибка? Да, но не всегда. Смотря какого рода была допущена ошибка. Например ты написал калькулятор, и забыл добавить проверку, чтобы введёный символ имел только цифры и точки/запятые. Если захуярить туда букв, программа вылетит с ошибкой, либо зависнет. Такие ошибки офк компилятор не может выявить.
>А интерпретатор тогда - программа, которая переводит как переводчик в живую, прямо в ухо, условно, сразу же передает команды, что означает, что команды могут выполняться до момента, когда там допущена ошибка. Грубо говоря да, но зависит от конкретного языка и среды разработки, которую ты используешь. Если брать скриптовые языки, то довольно часто, есть подсветка синтаксиса языка и грубые ошибки подсвечиваются в процессе написания. Если брать Java, то этот язык хоть и не компилируемый в машинный код. Но по факту, твой код проверяется и компилируется в байт-код (у Java есть виртуальный процессор — JVM, для него байт-код это аналог машинного кода). А потом уже байт код исполняется на JVM.
>И, наверное, компилятор медленнее и объемнее,а интерпретатор быстрее, но в случае непредвидиной ошибки он покарает тебя сбоем программы? Скомпилированные программы конечно же работают быстрее. Потому что твой код работает напрямую с процессором. Интерпретатор делает нечто похожее в реальном времени, это не может быть быстрее, тем более, скриптовые языки, часто используют не самые производительные конструкции. Писать на них удобно, а вот производительность страдает. Языки с виртуальными машинами типа Java С# очевидно работают медленнее, потому что работа процессора эмулируется и код выполняется в эмуляторе есть ряд оптимизаций, типа частоиспользуемые куски кода компилируются в машинный код и работают чуть шустрее, но это не даёт такого существенного выигрыша.
Компилируемые языки как правило сложнее использовать в разработке, т.к. всё завязано на железе. Поэтому щас на всяких C++ пишут в основном софт или модули, которые должны быть ну очень быстрыми.
>>182503958 > Если брать Java, то этот язык хоть и не компилируемый в машинный код У тебя старые данные. Инженегры оракла нахуярились паленкой и теперь пилят конпелятор java в нативный код.Project Graal, Java-on-Java Уже работает, прирост производительности в триллион раз.новый JIT конпелятор, написанный на java, фреймворк для создания своих ЯП
1. Работодатели часто в требованиях указывают "Знание C++", "Знание C#" и т.д.
А с какого момента вообще можно сказать что человек знает тот или иной язык?
Когда он выучил все его команды? Это вообще возможно?
Когда он знает весь синтаксис, те или иные основы языка (как функции создавать и вызывать, типы данных, методы и прочее)? чему можно научиться буквально за неделю-две
2. Чем фреймворк отличается от библиотеки и что такое api? Только пожалуйста по человечески, а не пасту с википедии
3. Реально ли выучить ЯП, и фреймворк к нему без знания английского? Книги и статьи в основном все на английском
4. Как называется технология, когда берут фактически браузер (или движок от него) и на нём пилят GUI?
5. Писать что-то лучше так как описано в п4, или классическими gtk, qt delphi?
6. П 4 и 5 подразумевают знание каких фреймворков? И можно ли будет потом использовать эти знания в реальном производстве какого-то сайта?