Те, кто пошли - точно не жаловались ни разу :) Нам было весело писать программы, нам было наплевать на чём мы их пишем. Кайф был в том, чтобы заставить бездушную железяку подчиняться нашей воле.
Возможно ведёт, если знать что искать
Я написал "pascal windows скачать". Я уверен 99% родителей и детей напишут это.
или там вообще мак
Родители и дети, у который дома мак, будут испытывать боль на протяжении всего процесса обучения, т.к. вся школьная программа и учебники сегодня ориентированы на Windows или какой-нибудь Alt Linux.
На форточках Idle идёт в комплекте, VSCode и PyCharm Community Edition по вкусу.
Idle не называется Python. Родитель не найдёт. Он не знает таких слов как IDE. Родитель найдет командный интерпретатор.
VSCode/Pycharm
Родитель такое не нагуглит и уж точно не настроит.
VSCode - ну ради прикола дайте человеку VSCode в качестве первой IDE, где для запуска отладчика нужно писать текстовый launch.json. Я видел людей, которые после трёх месяцев плотных курсов по Python не осилили это дело, а вы предлагаете родителям/ученикам в такое окунаться. VSCode - это инструмент для тех, кто уже немножчеко в курсе дел.
PyCharm Community Edition. Сама по себе IDE - ок. Достаточно простая в установке освоении. Вот только нюанс: все те же проблемы с варезниками. Родитель легко может сказать варезник платной версии. Но концептуально - это годный вариант.
я их видел уйму на паскале в свои годы, с переменными вида a, b, c, i, j
В этом мире нет языка, который не даст человеку называть переменные a, b, c, i ,j. Не понимаю претензий к паскалю в данном случае.
Как я и сказал, первая ссылка в яндексе ведёт на расово верный паскаль. Дальше думать не надо. В конце концов, учитель может прислать в родительский чатик ссылку.
Про C - вы же хотели чтобы дети основы и типы тщательно пощупали байтики. Или нет?
Вообще нет. Я хотел, чтобы дети заинтересовались основами программирования (алгоритмы, структуры данных, все вот эти циклы и ветвления). Хочу чтобы дети веселились, от того, что смогли написать Ping Pong на кнопочках из WinForms. А вот эти байтики, двоичные системы, битовые операции и прочее - это пожалуйста оставьте универу.
И да, С вполне себе учили в лицее
Программа пишется не только под учеников лицеев, но и для МОУ СОШ №10 Зажопинского района, г. Мухосранск.
Опять же, я не говорю, что C невозможно выучить (это же очевидно не так). Я лишь говорю, что Pascal ничем не хуже, а в некоторых местах даже лучше для тех задач, которые решает школа.
Студию вы сильно переоцениваете (особенно в сравнении с браузерами), на небольших проектах она и не нужна
Я на C# не пишу, я понятия не имею как скомпилировать C# код без студии :) Я знаю, что способы ессно есть, просто они явно не так тривиальны как нажать одну кнопку)
Студию вы сильно переоцениваете
Холодный старт с NVMe SSD - около 10 секунд сейчас был. Есть подозрение, что на HDD она ваще не запустится :) Ну и весит она гигов 20. Офигеешь качать в какой-нибудь деревне с 3g интерентом. А вот pascal весит вместе с IDE 25 мегабайт.
dotnet new console и dotnet run которые не сможет ни один препод показать? Ничоси как сложно то..
Вы нарушаете свои же правила игры. Мы говорим о том, что родитель/ребёно пытается что-то настроить на своём компе самостоятельно. Если есть человек, который проконсультирует - вся беседа по поводу самостоятельной настройки не имеет никакого смысла.
P.S. Вы ничего не ответили про конкретные недостатки Python, а они довольно значимые на мой взгляд.
Итак. Ввиду того, что оч много написано, отвечать буду не по порядку.
вообще без разницы какой язык учить, поэтому страдайте
Я пока не понимаю, откуда берутся страдания? Мне учить Pascal было интересно. Не видел тех, кому было не интересно.
попробуйте тот же Pascal поставить сначала ребёнку
Первая ссылка в яндексе ведёт на сайт PascalABC.NET, на котором первая же кнопка скачивает и компилятор, и IDE к нему. А также десятки обучающих примеров кода в комплекте, доступных по двум кликам в GUI.
Причём в этой IDE можно клепать простенький WinForms формочки, что повышает интерес к программированию в разы по личному опыту. Одно дело, когда у тебя текст в консоли, а вот с формочками уже можно игры делать! Сколько там понадобится километров кода, чтобы сверстать внятное окошко на Python?
Опять же после установки у меня в Пуск уже есть приложение PascalABC.Net, мне как родителю-чайнику всё понятно. После установки Python у меня какая-то консоль и моргающий курсор. Как я, как родитель-чайник, пойму что всё сделал правильно?
Я немного постарше, и мне вот куда интереснее чтобы моим детям давали актуальную базу
Прелесть базы в том, что она актуальна на любом языке, любой ОС и вообще даже без них. Алгоритмы, Структуры данных, методы огранизации программ - внеязыковые концепции.
когда детям преподавали вот просто ворованный софт
В некоторой степени это было даже хорошо, т.к. внезапно, это давало навыки работы в актуальном ПО, а не в каких-то невнятных "аналоговнет".
Что конкретно такого ужасного в Python
Динамическая типизация, пускай и строгая. Это темная сторона силы и только мудрый джедай должен иметь к такому доступ. Молодые неокрепшие умы не должны к такому даже близко приближаться.
Отсутствие жесткой структуры, что приучает порождать говнокод. В то время как Pascal имеет понятную структуру, приучающую отделять код от данных, и немножечко думать, перед тем как начать что-то писать.
Скриптовость. Это и хорошо и плохо. Хорошо то, что быстро править. Плохо то, что некоторые концепции работы ПО (банально компиляция) и наличие архитектуры у ПК будет просто невозможно объяснить.
Отсутствие низкоуровневой части как таковой. На pascal код как раз получается "среднего уровня". Можно и байтики потрогать, и формочки наклепать.
любом другом из top5
С/С++
С/С++ - образцово дерьмовые языки из-за совершенно невменяемой работы со строками. С учётом того, что 99% учебных задач - это что-нибудь где-нибудь прочитать и что-нибудь куда-нибудь вывести - это автоматически исключает их из списка. С++ еще и синтаксически сложный до ужаса (говорю, как опытный С++ разрабочик)
Java
В принципе, можно. Но я не знаю ничего похожего на winforms в java. Вcе GUI фреймворки, что мне удалось потрогать - это страх, боль и ужас.
C#
Согласен, язык обладает всем тем, что есть для Pascal, но для приятной разработки требует перегруженной IDE, справиться с которой школьнику будет очень непросто. Да блин, мне с ней справиться непросто. Да и не у каждого есть ПК, способный тянуть студию без тормозов.
Можно бы использовать VSCode, как легковесную замену, но возвращаемся к вопросу установки нужного софта неопытным родителем, вспоминаем количество подпрыгиваний, которые придётся совершить, чтобы собрать и запустить "Hello world" в VSCode - и приходим к выводу, что это тоже не вариант.
С точки зрения задач обучения азам программирования, Pascal оказывается не так уж и плох.
Препод по информатике увидела, что мне интересно программировать, подарила мне книжку по паскалю, чтобы я сам читал и у неё спрашивал если что) Сколько книжка стоила не знаю, но считай забесплатно получил артефакт, определяющий судьбу.
Как по мне, лучше бы детей в школе учили писать скрипты для Excel, вместо "базы" :) Хоть на VBA, хоть на Python.
"Базу" всё равно не впихнёшь, а вот рутинная автоматизация пригодится буквально каждому. Кого заинтересует программирование, те и так в ВУЗе научаться, благо это не какая-то магия.
Я закончил школу в 2010-м году. Давненько уже, но не капец давно. Учил Pascal. Если честно, так и не понял, в чём с ним проблема? Ну да, на нём никто не пишет коммерческий, ну и что? Школьнику что, сразу после школы на работу программистом устраиваться?
Что конкретно такого ужасного в Pascal, что ему нельзя учить?
Этот хинт компилятору может к чертям на проде вам весь софт уронить. Не такой уж он безобидный. Да и используется довольно часто. Как минимум move конструкторы принято делать noexcept (и не спроста).
Адекватен ли такой работодатель?
Да, адекватен. Адекватен ли человек, заявляющий, что он С++ программист, но неспособный в функции из трёх строчек увидеть очевидную ошибку?
Скажем, мне в команде нафиг не нужен человек, не знающий язык) Спрашивать синтаксис дело-то может и последнее, но последнее оно потому, что я ожидаю, что человек языком пользуется и естественно может свободно читать код на нём)
Вот тут не надо выдумывать. Сеньйор на то и сеньйор что гарантированно самостоятельно выдаст рабочее решение
Каким образом и какого качество решение? Он загрузит в себя за пару месяцев что идет испытательный срок, все современные плюсы? Маловероятно. Скорее всего он очень долгое время будет выдавать код таким, каким его писали в 1995-м году, забив на все современные практики, рекомендованные в том же Core Guidelines.
Работать-то оно будет, вот только этот будет требовать немедленного рефакторинга + непонятно кто и как его будет поддерживать после него. Решив проблему он создаст две и будет продолжать это делать, пока не пройдёт через N итераций "опыта", обладать которым он уже обязан.
Иначе это не сеньйор, и пусть он хоть весь C++ назубок знает, это просто малополезная ходячая энциклопедия
Это правда, но это не отменяет того, что он должен и уметь грамотно код проектировать, и уметь хотя бы читать код на том языке, который мы используем. Я не просил ведь даже ни строчки написать на собесе, просто взглянуть на код и сказать где проблемы.
Согласен, что формулировка "координаты отрезка" некорректная, но вполне очевидно, что имелось ввиду координаты концов двух отрезков. Устраивать полемику в стиле "я не могу решить задачу из-за некорректной формулировки" - эт явно не будет плюсом в карму на собеседовании. А вот уточняющие вопросы по заданию всегда идут плюсиком в карму.
Хотя с учётом того, что код и тесты уже даны, все входы и выходы определены, можно бы и догадаться что имелось ввиду.
В свою очередь, он может развернуть стол на этом собесе и точно так же найти массу пробелов в ваших знаниях.
Конечно, всегда можно найти какой-то пробел, никто не может знать всё, но мы говорим о базовом синтаксисе языка, на котором этот разработчик собирается писать код. Это не какая-то малоизвестная "тонкость" или там закрученный ADL-трюк. Стал бы я брать на работу переводчика, если бы он не мог написать грамотно предложение используя simple tenses? Вряд ли.
Тут вопрос к коммятищему этот код. Он его вообще запускал?
Запускал. Он просто не попал в ту ветку кода, которая всё ломает. И вообще это вчерашний студент-джун, который только и делает, что косячит.
Да фиг с ним с джуном. Это собеседование :) Я даю рядовую задачу - провести код ревью. Тут нельзя отмазаться, мол задача нереалистичная и на работе не встречается. Или что это какое-то надрачивание на алгоритмы. Или задача требующая специфические бизнес знания. Это самая рядовая рутина, которой её придётся заниматься на регулярной основе. Я напрямую заинтересован, чтобы человек мог выполнять эту работу.
Гуглить ведь никто не запрещал) Могу понять, если геометрией вы никогда не увлекались (как я), то за всё то время, прошедшее со школьной скамьи, реально можно тупо забыть как находить уравнение прямой по координатам двух точек, и можно забыть какой из коэффициентов отвечает за угол наклона этой прямой.
В принципе, это достаточно очевидные вещи, до которых можно додуматься и самостоятельно без гугла, просто "поигравшись" с цифрами. Но в любом случае, даже если не получилось самому придумать решение (стресс, затуп, вообще не знал как это делать), ответ будет ведь по первой ссылке в гугле.
Кстати я видел код на C++ размером порядка пары миллионов строк, в котором я вообще не заметил исключений (скорее всего их там нет)
Ничего удивительного. Тот же Chromium собирается без них. В GCC/Clang даже флаг для этого есть, называется -fno-exceptions. И у нас есть драйвера на С++, которые собираются с этим флагом (а также еще десятком других).
Это вообще не является оправданием для того, чтобы не знать как исключения работают. Я даже более скажу, стандартом отключение исключений вообще не предусмотрено (т.к. в STL очень много на них завязано). Так что код с -fno-exceptions формально даже не является кодом на любом из стандартов С++.
Ну и человек, знающий за каким чёртом в С++ отключают исключения и какие проблемы это за собой несёт, определённо должен быть способен ответить что делает noexcept :)
Если человек работал лет десять с такой code base, он вполне может быть синьор, просто его экспертиза может быть в других местах.
В принципе, этого никто и не отрицал, но собеседование идет на вакансию С++ разработчика :) Очевидно экспертиза нужна в С++.
При этом я прекрасно знаю что люди типа вас (я сам такой) могут спросить про фичи C++
Ну, логично, что принимая на работу человека, который должен писать и читать код на С++17, я должен убедиться, что они понимает синтаксис языка. Особенно если он заявляет, что он senior. У программиста синтаксис его основного языка должен быть на уровне разговорного.
Можно не знать каких-то паттернов, можно не знать библиотечных функций, можно не понимать тонкостей работы компилятора, можно даже слегка подзабыть как работает линковщик.
Но синтаксис языка, на котором разработчик планирует писать и читать код, т.е. по сути алфавит, разработчик на конкретном языке обязан знать. Можно забыть как что-то на языке написать (синтаксис С++ довольно обширен и бывает сложно вспомнить как правильно писать шаблонный код), но уж прочитать (а задачка-то по сути на чтение) очевидно надо суметь.
P.S. Ну и да. Если человек был экспертом в С++ в 1995-м году, то сегодня он уже по сути не знает С++ и его знания где-то на уровне очень сообразительного джуна, потому как несмотря на весь опыт в разработке ПО (читай проектировании), выдать работающее решение без постоянного контроля со стороны он не способен (потому что не может написать хороший код).
Потому что в реальности это всё это особо не используется.
У нас вот используется и вполне активно. Ну и программист, не знающий noexcept, с вероятностью близкой к 100% понятия не имеет как писать код безопасный относительно исключений. А это тоже зачастую требуется.
Можно конечно спорить что надо.
Я конечно может чего-то не понимаю сейчас, но пропускать через ревью код, который гарантированно вызывает std::terminate - это вот 100% не то, что надо в вашей программе. И любой опытный С++ программист просто обязан это уметь замечать.
Если на условной "планёрке" не подумали о том, что пилу сотруднику надо точить и под это ему надо выделить время, то собссно какие претензии?
Пилу-то я всё равно буду точить, но хранить её будут дома, а на работе буду пилить старой :) Когда всем это надоест, возьму новую красивую заточенную пилу и пойду пилить в другом месте))
Я вот не так давно, где-то с год, дорос до того, что меня стали звать на собеседования. До сих пор удивляюсь тому, что люди могут годами работать и не знать каких-то даже базовых конструкций языка.
Причём я даже не прошу людей писать код. На собеседовании все задачки или просто на чтение/запуск программы с последующим разбором вывода, или на самый обычный code review, где мы вместе смотрим на код, в котором есть 4 слоя ошибок: проблемы с проектированием, проблемы для новичков, проблемы для матёрых, и неожиданные UB для самых хардкорных.
Так вот на код ревью люди часто вообще не видят какие-то ну совсем базовые проблемы. Например в noexcept-функции на 3 строчки (!) я бросаю исключение. Но оказывается каждый второй "сеньор на бумаге" не знает, что такое noexcept в C++.
Те, кто пошли - точно не жаловались ни разу :) Нам было весело писать программы, нам было наплевать на чём мы их пишем. Кайф был в том, чтобы заставить бездушную железяку подчиняться нашей воле.
Я написал "pascal windows скачать". Я уверен 99% родителей и детей напишут это.
Родители и дети, у который дома мак, будут испытывать боль на протяжении всего процесса обучения, т.к. вся школьная программа и учебники сегодня ориентированы на Windows или какой-нибудь Alt Linux.
Idle не называется Python. Родитель не найдёт. Он не знает таких слов как IDE. Родитель найдет командный интерпретатор.
Родитель такое не нагуглит и уж точно не настроит.
VSCode - ну ради прикола дайте человеку VSCode в качестве первой IDE, где для запуска отладчика нужно писать текстовый launch.json. Я видел людей, которые после трёх месяцев плотных курсов по Python не осилили это дело, а вы предлагаете родителям/ученикам в такое окунаться. VSCode - это инструмент для тех, кто уже немножчеко в курсе дел.
PyCharm Community Edition. Сама по себе IDE - ок. Достаточно простая в установке освоении. Вот только нюанс: все те же проблемы с варезниками. Родитель легко может сказать варезник платной версии. Но концептуально - это годный вариант.
В этом мире нет языка, который не даст человеку называть переменные a, b, c, i ,j. Не понимаю претензий к паскалю в данном случае.
Как я и сказал, первая ссылка в яндексе ведёт на расово верный паскаль. Дальше думать не надо. В конце концов, учитель может прислать в родительский чатик ссылку.
Вообще нет. Я хотел, чтобы дети заинтересовались основами программирования (алгоритмы, структуры данных, все вот эти циклы и ветвления). Хочу чтобы дети веселились, от того, что смогли написать Ping Pong на кнопочках из WinForms. А вот эти байтики, двоичные системы, битовые операции и прочее - это пожалуйста оставьте универу.
Программа пишется не только под учеников лицеев, но и для МОУ СОШ №10 Зажопинского района, г. Мухосранск.
Опять же, я не говорю, что C невозможно выучить (это же очевидно не так). Я лишь говорю, что Pascal ничем не хуже, а в некоторых местах даже лучше для тех задач, которые решает школа.
Я на C# не пишу, я понятия не имею как скомпилировать C# код без студии :) Я знаю, что способы ессно есть, просто они явно не так тривиальны как нажать одну кнопку)
Холодный старт с NVMe SSD - около 10 секунд сейчас был. Есть подозрение, что на HDD она ваще не запустится :) Ну и весит она гигов 20. Офигеешь качать в какой-нибудь деревне с 3g интерентом. А вот pascal весит вместе с IDE 25 мегабайт.
Вы нарушаете свои же правила игры. Мы говорим о том, что родитель/ребёно пытается что-то настроить на своём компе самостоятельно. Если есть человек, который проконсультирует - вся беседа по поводу самостоятельной настройки не имеет никакого смысла.
P.S.
Вы ничего не ответили про конкретные недостатки Python, а они довольно значимые на мой взгляд.
Итак. Ввиду того, что оч много написано, отвечать буду не по порядку.
Я пока не понимаю, откуда берутся страдания? Мне учить Pascal было интересно. Не видел тех, кому было не интересно.
Первая ссылка в яндексе ведёт на сайт PascalABC.NET, на котором первая же кнопка скачивает и компилятор, и IDE к нему. А также десятки обучающих примеров кода в комплекте, доступных по двум кликам в GUI.
Причём в этой IDE можно клепать простенький WinForms формочки, что повышает интерес к программированию в разы по личному опыту. Одно дело, когда у тебя текст в консоли, а вот с формочками уже можно игры делать! Сколько там понадобится километров кода, чтобы сверстать внятное окошко на Python?
Опять же после установки у меня в Пуск уже есть приложение PascalABC.Net, мне как родителю-чайнику всё понятно. После установки Python у меня какая-то консоль и моргающий курсор. Как я, как родитель-чайник, пойму что всё сделал правильно?
Прелесть базы в том, что она актуальна на любом языке, любой ОС и вообще даже без них. Алгоритмы, Структуры данных, методы огранизации программ - внеязыковые концепции.
В некоторой степени это было даже хорошо, т.к. внезапно, это давало навыки работы в актуальном ПО, а не в каких-то невнятных "аналоговнет".
Динамическая типизация, пускай и строгая. Это темная сторона силы и только мудрый джедай должен иметь к такому доступ. Молодые неокрепшие умы не должны к такому даже близко приближаться.
Отсутствие жесткой структуры, что приучает порождать говнокод. В то время как Pascal имеет понятную структуру, приучающую отделять код от данных, и немножечко думать, перед тем как начать что-то писать.
Скриптовость. Это и хорошо и плохо. Хорошо то, что быстро править. Плохо то, что некоторые концепции работы ПО (банально компиляция) и наличие архитектуры у ПК будет просто невозможно объяснить.
Отсутствие низкоуровневой части как таковой. На pascal код как раз получается "среднего уровня". Можно и байтики потрогать, и формочки наклепать.
С/С++ - образцово дерьмовые языки из-за совершенно невменяемой работы со строками. С учётом того, что 99% учебных задач - это что-нибудь где-нибудь прочитать и что-нибудь куда-нибудь вывести - это автоматически исключает их из списка. С++ еще и синтаксически сложный до ужаса (говорю, как опытный С++ разрабочик)
В принципе, можно. Но я не знаю ничего похожего на winforms в java. Вcе GUI фреймворки, что мне удалось потрогать - это страх, боль и ужас.
Согласен, язык обладает всем тем, что есть для Pascal, но для приятной разработки требует перегруженной IDE, справиться с которой школьнику будет очень непросто. Да блин, мне с ней справиться непросто. Да и не у каждого есть ПК, способный тянуть студию без тормозов.
Можно бы использовать VSCode, как легковесную замену, но возвращаемся к вопросу установки нужного софта неопытным родителем, вспоминаем количество подпрыгиваний, которые придётся совершить, чтобы собрать и запустить "Hello world" в VSCode - и приходим к выводу, что это тоже не вариант.
С точки зрения задач обучения азам программирования, Pascal оказывается не так уж и плох.
Препод по информатике увидела, что мне интересно программировать, подарила мне книжку по паскалю, чтобы я сам читал и у неё спрашивал если что) Сколько книжка стоила не знаю, но считай забесплатно получил артефакт, определяющий судьбу.
Как по мне, лучше бы детей в школе учили писать скрипты для Excel, вместо "базы" :) Хоть на VBA, хоть на Python.
"Базу" всё равно не впихнёшь, а вот рутинная автоматизация пригодится буквально каждому. Кого заинтересует программирование, те и так в ВУЗе научаться, благо это не какая-то магия.
Я закончил школу в 2010-м году. Давненько уже, но не капец давно. Учил Pascal. Если честно, так и не понял, в чём с ним проблема? Ну да, на нём никто не пишет коммерческий, ну и что? Школьнику что, сразу после школы на работу программистом устраиваться?
Что конкретно такого ужасного в Pascal, что ему нельзя учить?
Этот хинт компилятору может к чертям на проде вам весь софт уронить. Не такой уж он безобидный. Да и используется довольно часто. Как минимум move конструкторы принято делать noexcept (и не спроста).
Да, адекватен. Адекватен ли человек, заявляющий, что он С++ программист, но неспособный в функции из трёх строчек увидеть очевидную ошибку?
Скажем, мне в команде нафиг не нужен человек, не знающий язык) Спрашивать синтаксис дело-то может и последнее, но последнее оно потому, что я ожидаю, что человек языком пользуется и естественно может свободно читать код на нём)
Каким образом и какого качество решение? Он загрузит в себя за пару месяцев что идет испытательный срок, все современные плюсы? Маловероятно. Скорее всего он очень долгое время будет выдавать код таким, каким его писали в 1995-м году, забив на все современные практики, рекомендованные в том же Core Guidelines.
Работать-то оно будет, вот только этот будет требовать немедленного рефакторинга + непонятно кто и как его будет поддерживать после него. Решив проблему он создаст две и будет продолжать это делать, пока не пройдёт через N итераций "опыта", обладать которым он уже обязан.
Это правда, но это не отменяет того, что он должен и уметь грамотно код проектировать, и уметь хотя бы читать код на том языке, который мы используем. Я не просил ведь даже ни строчки написать на собесе, просто взглянуть на код и сказать где проблемы.
Вы б точно не прошли собес :D
Согласен, что формулировка "координаты отрезка" некорректная, но вполне очевидно, что имелось ввиду координаты концов двух отрезков. Устраивать полемику в стиле "я не могу решить задачу из-за некорректной формулировки" - эт явно не будет плюсом в карму на собеседовании. А вот уточняющие вопросы по заданию всегда идут плюсиком в карму.
Хотя с учётом того, что код и тесты уже даны, все входы и выходы определены, можно бы и догадаться что имелось ввиду.
Конечно, всегда можно найти какой-то пробел, никто не может знать всё, но мы говорим о базовом синтаксисе языка, на котором этот разработчик собирается писать код. Это не какая-то малоизвестная "тонкость" или там закрученный ADL-трюк. Стал бы я брать на работу переводчика, если бы он не мог написать грамотно предложение используя simple tenses? Вряд ли.
Запускал. Он просто не попал в ту ветку кода, которая всё ломает. И вообще это вчерашний студент-джун, который только и делает, что косячит.
Да фиг с ним с джуном. Это собеседование :) Я даю рядовую задачу - провести код ревью. Тут нельзя отмазаться, мол задача нереалистичная и на работе не встречается. Или что это какое-то надрачивание на алгоритмы. Или задача требующая специфические бизнес знания. Это самая рядовая рутина, которой её придётся заниматься на регулярной основе. Я напрямую заинтересован, чтобы человек мог выполнять эту работу.
Гуглить ведь никто не запрещал) Могу понять, если геометрией вы никогда не увлекались (как я), то за всё то время, прошедшее со школьной скамьи, реально можно тупо забыть как находить уравнение прямой по координатам двух точек, и можно забыть какой из коэффициентов отвечает за угол наклона этой прямой.
В принципе, это достаточно очевидные вещи, до которых можно додуматься и самостоятельно без гугла, просто "поигравшись" с цифрами. Но в любом случае, даже если не получилось самому придумать решение (стресс, затуп, вообще не знал как это делать), ответ будет ведь по первой ссылке в гугле.
Ничего удивительного. Тот же Chromium собирается без них. В GCC/Clang даже флаг для этого есть, называется
-fno-exceptions. И у нас есть драйвера на С++, которые собираются с этим флагом (а также еще десятком других).Это вообще не является оправданием для того, чтобы не знать как исключения работают. Я даже более скажу, стандартом отключение исключений вообще не предусмотрено (т.к. в STL очень много на них завязано). Так что код с
-fno-exceptionsформально даже не является кодом на любом из стандартов С++.Ну и человек, знающий за каким чёртом в С++ отключают исключения и какие проблемы это за собой несёт, определённо должен быть способен ответить что делает
noexcept:)В принципе, этого никто и не отрицал, но собеседование идет на вакансию С++ разработчика :) Очевидно экспертиза нужна в С++.
Ну, логично, что принимая на работу человека, который должен писать и читать код на С++17, я должен убедиться, что они понимает синтаксис языка. Особенно если он заявляет, что он senior. У программиста синтаксис его основного языка должен быть на уровне разговорного.
Можно не знать каких-то паттернов, можно не знать библиотечных функций, можно не понимать тонкостей работы компилятора, можно даже слегка подзабыть как работает линковщик.
Но синтаксис языка, на котором разработчик планирует писать и читать код, т.е. по сути алфавит, разработчик на конкретном языке обязан знать. Можно забыть как что-то на языке написать (синтаксис С++ довольно обширен и бывает сложно вспомнить как правильно писать шаблонный код), но уж прочитать (а задачка-то по сути на чтение) очевидно надо суметь.
P.S.
Ну и да. Если человек был экспертом в С++ в 1995-м году, то сегодня он уже по сути не знает С++ и его знания где-то на уровне очень сообразительного джуна, потому как несмотря на весь опыт в разработке ПО (читай проектировании), выдать работающее решение без постоянного контроля со стороны он не способен (потому что не может написать хороший код).
У нас вот используется и вполне активно. Ну и программист, не знающий noexcept, с вероятностью близкой к 100% понятия не имеет как писать код безопасный относительно исключений. А это тоже зачастую требуется.
Я конечно может чего-то не понимаю сейчас, но пропускать через ревью код, который гарантированно вызывает
std::terminate- это вот 100% не то, что надо в вашей программе. И любой опытный С++ программист просто обязан это уметь замечать.То, что не могут решить деньги, не может решить даже сам господь Бог :) В общем, проблема не в деньгах, а в природе самой проблемы.
Все решаемые проблемы можно решить с помощью денег)
Клёво, буду знать)) Уже просто лет 7 пишу низкоуровневый код и с базами данных не работаю.
Силами SQL никак, т.к. запрос метаинформации о таблице - это БД-специфичная вещь. Подсчет столбцов на SQL тоже не написать, насколько я знаю.
Но будь у нас в распоряжении хотя бы python, задачу можно было бы решить .
Если на условной "планёрке" не подумали о том, что пилу сотруднику надо точить и под это ему надо выделить время, то собссно какие претензии?
Пилу-то я всё равно буду точить, но хранить её будут дома, а на работе буду пилить старой :) Когда всем это надоест, возьму новую красивую заточенную пилу и пойду пилить в другом месте))
Я вот не так давно, где-то с год, дорос до того, что меня стали звать на собеседования. До сих пор удивляюсь тому, что люди могут годами работать и не знать каких-то даже базовых конструкций языка.
Причём я даже не прошу людей писать код. На собеседовании все задачки или просто на чтение/запуск программы с последующим разбором вывода, или на самый обычный code review, где мы вместе смотрим на код, в котором есть 4 слоя ошибок: проблемы с проектированием, проблемы для новичков, проблемы для матёрых, и неожиданные UB для самых хардкорных.
Так вот на код ревью люди часто вообще не видят какие-то ну совсем базовые проблемы. Например в noexcept-функции на 3 строчки (!) я бросаю исключение. Но оказывается каждый второй "сеньор на бумаге" не знает, что такое noexcept в C++.