20133

О собеседованиях на 700к/месяц15

Серия О собеседованиях

Думаю, не секрет, что айтишники гребут деньги лопатой. Но вот что именно нужно сделать, чтобы получить такую работу - пишут редко. В марте этого года я решил сменить работу и весь апрель занимался прохождением собеседований, в итоге получил несколько предложений на зарплаты около 700к/месяц. Об этом и хотел бы рассказать.

Немного о себе: занимаюсь коммерческим программированием 13 лет, ещё несколько лет работал в других сферах. Основной язык С++, достаточно хорошо знаю Python и ML. Есть опыт работы как в мелких фирмах на 5 человек, так и в ИТ-гигантах.

Искал работу программистом, строго не руководителем. Это добавляло некоторых особенностей, т.к. существует мнение, что большие деньги можно получать только на руководящихся должностях. Это не всегда верно (но на руководящих должностях получать большие деньги проще, т.к. руководителей нужно больше, чем топовых специалистов).

Первым делом, когда я решил менять работу - я обновил профиль в linkedIn и на hh.ru, уже на следующий день мне начали писать рекрутеры. Меня стали звать на разные секции - как технические, так и "пообщаться". Про свои ответы либо не буду писать, либо очень коротко, т.к. ответы можно легко найти гуглением (а там, где не получится - спрашивайте в комментах), иначе пост совсем разрастётся.

Huawei

Одна интересная секция была на собесе в Хуавей. Я там шёл на должность ML-разработчика, который будет не модельки обучать, а писать сами библиотеки для обучения моделей. На собесе было человек 5 и они по очереди спрашивали меня каждый по своей теме (всё это длилось в сумме часа два):

- Сначала знание С++. Зачем нужны умные указатели, зачем нужен виртуальный деструктор, как устроен vtable, ещё какая-то муть. Я отвечал на всё легко и уверенно, интервьюер быстро "кивнул" и мы перешли к следующему.

- Аппаратура и программирование на С. Какие есть архитектуры помимо x86? Рассказал про ARM. Дальше спрашивали про вычисления на GPU - рассказал про примерную архитектуру и принципиальные отличия от CPU. "Что ещё можно использовать для вычислений?" Назвал FPGA, немного рассказал про особенности. Дальше этот же чел расспрашивал про особенности С. Разные вопросы про отличие между int *a =malloc(20); и int a[5];, про устройство менеджера памяти, про страницы памяти и виртуальную память (почему номера новых страниц всегда больше, чем номера старых? чтобы происходит с номерами удалённых страниц?), про механизм работы extern, union, volatile.

- Дальше были вопросы по математике. Как посчитать синус и косинус без соответствующей функции? Рассказал про ряды Тейлора. Что-то спросили про градиенты, попросили посчитать производную для |x| (модуль икса), а потом вторую производную. Дальше какие-то вопросы про градиенты. Перешли к аффинным преобразованиям и способам их описания. Рассказал про кольцо матриц, собственные вектора и их связь с геометрическим смыслом преобразования. Дальше спросили про Якобианы и Гессианы. Меня этот вопрос позабавил, но я рассказал и заодно упомянул, что эти штуки полезны для определения сходимости некоторых численных методов.

- Многопоточка. Тут всё было как-то быстро, видимо после первых трёх частей народ уже заскучал. Базово про примитивы синхрониазции (мьютексы, семафоры), про атомарность, заодно про атомарность на уровне процессора. Это ответил, рассказал про контаминацию кэша и методы разрешения конфликтов в кэше процессора - достаточно.

- Собственно, ML. Какие бывают слои у сеток, какие сейчас есть популярные архитектруры, почему 20 лет назад это не взлетало, хотя многие знания уже тогда были. Как инференсится дропаут, зачем нужна батч-нормализация, почему L1-регуляризация позволяет увидеть значимость фичей. Как построить эмбеддинги для слов, почему это вообще работает?

Собеседование оказалось очень разносторонним. Но это ещё не всё, после этого был ещё созвон на час, на котором мы обсуждали (уже с другими людьми) мой прошлый опыт. В каких крупных проектах участвовал, какие продуктовые фичи сам делал, какие решения сам принимал, как это отражалось на бизнесе. Несмотря на то, что я шёл разработчиком - ожидалось, что я буду очень автономным и иногда даже смогу как-то помогать в управлении/организации процессов. Технические вопросы почти не задавали.

В итоге мне предложили оклад 480к (после вычета налогов) и премии, которые зависят от разных факторов (мои показатели, общие финансовые показатели фирмы и т.п.), которые в среднем должны были добить мой доход до 685к/месяц.

Сбер

В Сбере было несколько секций с написанием кода и одна на "поболтать". Секции про общение везде проходят примерно одинаково, так что повторять тут не буду. Про написание кода:

- Чистый С++. Тут была секция на проверку моих знаний по самому языку. Мне показали код, в котором есть несколько классов, где-то виртуальные методы, какой-то класс наследуется от другого, где-то в конструкторах и деструкторах что-то нетривиальное написано. И вопрос был "что выведет программа?" Суть была в том, что там в родителе была функция print (которая что-то базовое пишет) и в наследнике она была переопределена. Небольшой gotсha момент был в том, что функция не была объявлена виртуальной. Дальше там эти принты возникали в конструкторе и десрукторе. В общем и целом - вопрос был о том, что в каком порядке вызывается. Я почти справился, но проглядел один вызов из-за невнимательно. Но это был простой момент (а на сложные я ответил), так что интервьюер кажется поверил, что это просто невнимательность, а не незнание. После этого спросили "а что задумывал автор кода?" и попросили исправить. Такие вопросы будут очень сложны для джунов, потому что "а откуда я знаю чего он хотел?" и относительно легки для опытных разрабов, потому что понимаешь, какие есть расхожие подходы и что "вот так обычно пишут, а вот так - не пишут". В общем, вопрос крутой для определения опытности человека. Потом дали ещё кусок кода с многопоточкой и надо было сказать, есть ли в нём баги. Был потерян lock_guard (типичная ошибка работы с мьютексом), попросили исправить и объяснить, как именно раскручивается стек в многопоточке при обработке исключений.

Отличительной особенностью этой секции было то, что весь код писался в онлайн-трансляторе и каждый раз, когда я отвечал на вопрос "что выдаст код" мы просто запускали и смотрели. Особенно круто это было когда я ответил "упадёт с std::terminate" и оно действительно падало с std::terminate.

- Алгоритмы. Задачи, которые можно писать на любом языке (но я писал на С++).

  1. Есть датчики. Один датчик сначала выдаёт нули, а потом, с определённого момента, начинает выдавать единицы. Есть синхронные показания N датчиков (в виде набора массивов, каждый содержит M значений). Нужно найти номер датчика, который сработал первым. Сделать надо эффективно, я реализовал за O(N + log(M)).

  2. Воссоздаём лотерею: есть набор людей, про каждого известно, сколько билетов купил человек. Нужно написать функцию, которая выберет случайного человека с вероятностью, пропорциональной количеству купленных билетов (и вывести на экран его имя).

  3. Была ещё какая-то задача, но уже не помню, что-то мелкое и скучное.

    Про эту секцию могу сказать, что на высоком уровне тут уже обращают внимание не только на то, решил ты или нет, но ещё и как быстро, и какой код ты пишешь. У меня на каждую задачу уходило не больше 15 минут в сумме с выслушиванием условия и обсуждением моего решения, т.е. чистое написание кода занимало минут 5-10.

- Секция про ML. Тут были разные вопросы о том, как подходить к экспериментированию с моделями (зачем нужны отдельно валидационные и отдельно тестовые выборки?), что такое аб-тесты и т.п. Достаточно много вопросов про ранжирующие системы (какие бывают, какие есть особенности) - рассказывал про коллаборативную фильтрацию и эмбеддинги. Много каких-то технических подробностей спрашивали, например, почему разложение матрицы делают через SVD. Но в целом ничего особого. Типичная ML-секция с обязательными вопросами типа "как понять, что модель переобучилась, что делать? Как понять, что данных мало, что делать?"

- Общая секция. Я шёл в СберДевайсы, поэтому было важно ещё понимание каких-то "железных" вопросов. Рассказал про архитектуру процессора, кэши, ядра, конвейер, о том что внутри процессора есть отдельный компьютер и за один такт выполняется несколько микро-кодов, про TLB и прочее. Дальше про видюхи, их особенности относительно процов, про взаимодействие с памятью. Был вопрос типа "вам надо ускорить перемножение матриц, как бы вы это сделали с помощью видеокарты?" или, например, "можно ли ускорить поиск кратчайшего пути на графе с помощью видеокарты?".

Сбер предложил оклад 455к и премии разные, в сумме выходило 675к в месяц.

Яндекс

Я уже раньше работал в Яндексе и даже успел провести больше сотни собеседований, так что достаточно хорошо понимал, что меня ждёт. А ждали меня несколько секций с написанием кода "в блокноте", т.е. без возможности запуска. И ещё одна секция по ML.

- Алгоритмы.

  1. Удалить нули из массива. Тут всё просто, проверка на совсем новичка.

  2. Написать свою реализацию shared_ptr. Уныло, но хорошо проверяет понимание внутренней структуры языка.

  3. Написать условный рейт-лимитер. Есть функция, которая на вход принимает timestamp события и максимально допустимое число таких событий за последние 600 секунд. Нам надо на каждый вызов этой фукнции ответить, хороший ли это запрос или уже "лишний", т.е. за последние 600 секунд было больше запросов, чем пороговое значение. Гарантируется, что timestamp не убывают.

  4. Есть названия программ (по сути, просто набор строк), и для каждой есть набор зависимостей (т.е. массив строк на каждую программу). Зависимости только из того же списка, т.е. если у нас есть программы a, b, c, то программа b может зависеть от a, но не может зависеть от f (потому что нет в списке программы f). Надо вывести эти названия программ в "корректном" порядке для установки, т.е. чтобы если пакет шёл в списке - все его зависимости были раньше него в данном списке.

Были и другие задачи, но я точно уже условия не помню. Здесь опять же важна скорость написания и наличие багов. Если посадить хотя бы один баг (и не отловить самому) - это достаточно критично.

- ML. Эту секцию мне не очень хочется подробно описывать, т.к. она была почти "по учебнику". Если есть желание подготовиться - HR присылает ссылку на youtube с видосами от Яндекса. Видосы очень крутые (можно искать по ключевым словам "Лекции по машинному обучению, Воронцов ШАД").

- Общая секция. Вот тут была основная "соль". Просто хорошо решать алгоритмические задачки - дело полезное, но не на 700к. Тут было общение с будущим руководителем и обсуждение потенциальных задач. Мне назвали примеры задач (увы, разглашать не могу, т.к. они сейчас в работы) и я с ходу предложил какие-то идеи по решению этих проблем. Дабы не быть голословным, приведу примеры того, что могли бы спросить. Это гео-сервисы, поэтому вопросы вполне тематичные:

  1. Как строить маршрут так, чтобы водитель доезжал быстрее? это вопрос-бомба, вопрос-убийца. Потому что большинство программистов начинают рассказывать про прекрасные алгоритмы, а потом спотыкаются на вопросе "а как вы измерите тот факт, что водитель стал доезжать быстрее? Как вы докажете, что вы что-то заметно улучшили для клиента?" Суть вопроса в том, что надо думать не только про техническую составляющую, но и про конечного пользователя. Недостаточно написать алгоритм, который работает быстрее или точнее предсказывает маршрут. Надо ещё чтобы это было полезно для клиента, а программисты про это часто забывают.

  2. Мы запускаем бизнес (например, Такси) в новом городе. У нас есть примерная карта дорог, но нет статистики проездов по этим дорогам. Как предсказывать время проезда чтобы честно оценивать стоимость поездки? Опять же, вопрос про бизнес, а не про технологии. Да, тут надо обязательно проявить знание технологий, но этого мало. Типичный программист "в теме" скажет, что надо найти поставщиков данных, можно поездить самим по этим дорогам чтобы насобирать статистику и т.п. Но все эти этапы занимают как минимум недели, а в реальности - месяцы. А для бизнеса запуститься с плохими данными на полгода раньше - это зачастую выгоднее, чем запуститься спустя полгода, но с хорошими и точными данными. Поэтому хороший кандидат должен сам сказать о том, что вот, мол "можно купить данные - но это плохо и долго. А мы с вами сделаем вот так и вот так, тогда будет качество хуже, но зато быстро. Насколько именно качество будет хуже - считать будем вот так. А на бизнесовых метриках (которые человек сам должен предложить) это отразится вот эдак. А потом мы спросим стейкходлеров сервиса, готовы ли они запускать сервис с вот таки вот (относительно плохим) качеством, но на полгода раньше".

    Это тоже не всё, но суть, думаю, ясна.

Яндекс предложил мне оклад 490к и ещё разные премии, в сумме с которыми вышло 720к в месяц.

Другие фирмы

Помимо этого я проходил собеседования ещё в Тинькофф, Вк, 1С и некоторые мелкие фирмы. Но общение с ними выкладывать уже день, да и в целом получилось достаточно чтобы сформировать понимание того, какого плана вопросы мне задавали. Если будут вопросы или нужны какие-то уточнения - пишите в комментах.

Выбрал я в итоге Яндекс, но текущий размер зарплаты лучше не буду озвучивать во избежание казусов. Он больше, чем мне изначально предлагали.

Больше постов по тегу «Собеседование». А интересные предложения о работе в проверенные компании ищите на сайте Пикабу Работа.

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Вы смотрите срез комментариев. Показать все
14
DELETED
Автор поста оценил этот комментарий
Привет, я аж зарегался чтобы охладить всеобщие поздравления тебе :) CV DL с 3-х летним опытом в треде:

Расскажи пожалуйста, почему сеньор с 13 летним стажем путает понятия ML с DL? Вот ты рассказываешь как проходил в Huawei секцию с ML. Почему тебя начали спрашивать за глубокие сети? В какую область ты в принципе метишь просто из того что я услышал в Сбер что ты вероятно в RecSys крутишься… Тогда какого черта тебя вообще гоняют по DL? Мало того, в секции Яндекс пишешь что спрашивают тебя по учебнику, а выходит в Сбере и Хуавей вопросы не из учебника?))) Вопрос про L1 в контексте DL вообще смешон, в стандартных оптимизаторах не используется он, только L2. Вопросы по математике… Чтож, окей, а где вопросы по стате? Я вот опять вижу что тебя гоняли по вопросам DL, в частности вопрос про градиенты. А где стата то? Ты вроде написал про ML, тебя бы первым делом спросили про стандартное распределение, дисперсию, матожидание и прочее. Классический костяк вопросов в том числе и какую нибудь задачу типа бросков кубика. Вопрос: а где ты синусы косинусы видел в DL? Я как уже писал не в ML но чет не припоминаю чтобы они хоть где-то фигурировали там равно как и аффинные преобразования разве что где-то в классическом CV. Где вопросы про метрики Precision, Recall, F1/Fbeta score? Про эмббединги слов вообще орнул. Ты ещё и в NLP и в RecSys? Смело. При этом ты наверное удивишься, но то что ты все назвал я могу назвать тривиальными вопросами которые джунов спрашивают, но никак не профи своего дела. Хочешь узнать что бы спросили профи? Расскажи обучается ли батч-нормализация в процессе трейна, если да, то сколько у него настраиваемых параметров? Можно ли зафиксировать аутпут инференса чтобы он всегда выдавал одни и те же значения? Расскажи как ты готовишь к проду модели? Что такое квантизация? Как её делать и что использовать? Что лучше на дисбалансе focal loss или dice loss + celoss * alpha? Почему? Как подсчитать receptive field сети? Что это вообще такое?

Короче я могу продолжать этот список бесконечно и ты можешь спокойно сказать: да прост у меня все не уместилось, я так вот накидал и про это бы сказал, да буквы кончились, но не создается впечатление что ты хоть что-то понимаешь в этой сфере, хотя бы потому что ты не видишь разницу ML с DL что стыдно. Бог тебе судья короче.
раскрыть ветку (41)
89
Автор поста оценил этот комментарий
Расскажи пожалуйста, почему сеньор с 13 летним стажем путает понятия ML с DL?
Deep Learning это обучение нейросетей, т.е. раздел Machine Learning. Никакой путаницы.


Почему тебя начали спрашивать за глубокие сети?

Потому что, как я там абзацем выше писал, меня нанимали чтобы писать библиотеку для работы с нейронками.


В какую область ты в принципе метишь просто из того что я услышал в Сбер что ты вероятно в RecSys крутишься… Тогда какого черта тебя вообще гоняют по DL?

Существует мнение, за 13 лет опыта можно освоить чуть больше, чем одну область.


а выходит в Сбере и Хуавей вопросы не из учебника?

Именно так.



Вопрос про L1 в контексте DL вообще смешон, в стандартных оптимизаторах не используется он, только L2.

Если вы никогда этого не использовали - не значит, что никто этого не использовал. И, кстати, если не использовали - то зря.


Ты вроде написал про ML, тебя бы первым делом спросили про стандартное распределение, дисперсию, матожидание и прочее.

Ок, но в данном случае собес проводили не вы.


Вопрос: а где ты синусы косинусы видел в DL?

Нигде, при чём тут это? Там позиция была связана в том числе с низкоуровневым программированием и для этого надо знать базовые ЧМы.


но чет не припоминаю чтобы они хоть где-то фигурировали там равно как и аффинные преобразования

Значит такой вы специалист. Вы каким методом понижение размерности выборки делаете? На чём он основан?


Где вопросы про метрики Precision, Recall, F1/Fbeta score?

Вы ещё спросите, почему меня на секции по математике не спрашивали про умножение, деление и взятие квадратного корня. Может потому что там было сразу видно, что базу я знаю?


Расскажи обучается ли батч-нормализация в процессе трейна, если да, то сколько у него настраиваемых параметров?

Выучиваем распределение, которе надо сместить, а значит нужно обучать матожидание и дисперсию.


Можно ли зафиксировать аутпут инференса чтобы он всегда выдавал одни и те же значения?

Не понял вопрос. Инференс - детерменированная функция. Чтобы его зафиксировать - достаточно вызывать с одними и теми же параметрами.


Расскажи как ты готовишь к проду модели?

В паре предложений не уместится.


Что такое квантизация? Как её делать и что использовать?

Понижение размера поля (или кольца), в котором мы производим вычисления.


Что лучше на дисбалансе focal loss или dice loss + celoss * alpha? Почему? Как подсчитать receptive field сети? Что это вообще такое?

Без понятия.


-----

хотя бы потому что ты не видишь разницу ML с DL что стыдно.

Существует прекрасная конференция ICML: International Conference on Machine Learning. Топовая конфа по мл в мире. И там куча секций про нейросети. И я там тоже выступал с докладом про нейросети. Но все мы не знали, что ML и DL - это разные вещи. Стыдно, да.


Чел, ты, конечно, молодец, что в своей сфере разобрался, но мир шире, чем тебе кажется.

раскрыть ветку (17)
2
Автор поста оценил этот комментарий
Туше)
ещё комментарии
16
Автор поста оценил этот комментарий

Как мне кажется, нет ошибки в употреблении термина ML вместо DL, так как ML более широкое понятие и включает в себя DL. Уж в рамках подобного поста на пикабу так точно можно пренебречь этим.

Вопросы по стате, типа стандартного распределения, центральных моментов и задач на монетки и кубики спрашивают нубасов типа меня. Плюс это банально - зачем про это тут писать. Туда же Precision, Recall, F1. Не понимаю, чего у вас так пригорело )) Верю, что с хардами у вас все хорошо (да и не мне судить уж точно), но ваши претензии к ТСу выглядят нелепо.

ещё комментарии
12
Автор поста оценил этот комментарий
О, намечается крутой замес🔥 я ничего не понимаю, но это интересно
2
Автор поста оценил этот комментарий
Синусы/косинусы для positional encoding в трансформерах используются
3
Автор поста оценил этот комментарий

Меня больше удивило C++ и ML в одном посте.
Ладно бы Python/R.

раскрыть ветку (6)
15
Автор поста оценил этот комментарий

А на чём весь ML по-вашему написан? Я не про обёртки на питоне, а сам код, который всё вычисляет.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Так и сам интерпретатор Python написан на C/С++ обычно.
Но каким местом это связано?

Чем то напоминает:
-Нам надо сделать автомобиль!
-Отлично ищем специалиста по добыче руды... И химика...

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Таким, что меня нанимали писать аналог tensorflow и pytorch (в посте я говорил об этом). И писать это надо на С++.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

В этом случае нанимают команду из 3-4 (или даже больше) разных спецов.
И бюджет на нее будет побольше чем 700к в месяц.

Согласовывают интерфейсы, разбивают на задачи и пилят каждую на своем стеке.
А мифические фуллстеки остались только в "нанять студента чтобы он написал ВК/Фейсбук"

1
DELETED
Автор поста оценил этот комментарий
не знаю крутишься ли ты в этой сфере, но на самом деле прям удивительного ничего нет. Бывает нужны С++ и питонист в одном, правда я хз что там спрашивают ибо я не знаю плюсы. Но это как раз меньше всего тут должно удивлять, да и автор уточнил что питон знает
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Бывает нужны С++ и питонист в одном

А что подразумевается под питонистом? Сам язык-то простой. Какие-то библиотеки?

2
Автор поста оценил этот комментарий
Иллюстрация к комментарию
2
Автор поста оценил этот комментарий
сеньор с 13 летним стажем
9 лет преподавания же, видимо это параллельно с сеньорством
Иллюстрация к комментарию
раскрыть ветку (8)
12
Автор поста оценил этот комментарий

Всегда заставляет грустить когда люди не верят, что кто-то способен на бОльшее. Да, я совмещал основную работу с преподаванием. А что в этом удивительного? В Яндексе куча людей так делает, да и не только в нём.

раскрыть ветку (7)
0
Автор поста оценил этот комментарий

Это ничего что питон - это тоже технология из 90-ых так то?

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Так, ну формально первая спецификация языка появилась действительно в 90х, но основное его развитие было позже и на момент написания коммента питон уже сильно отличался от того, каким он был в 90е. И преподавал я, как вы можете предположить, не Python 1.0, а Python 3. Надеюсь, вы согласитесь, что Python 3 - это уже не технология 90х? И я не столько про дату публикации официальной спецификации, а про сам язык, его дух и экосистему.

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

А тот факт, что пока школьники/студенты учат Питон, может стрельнуть какой нить Руст или ТайпСкрипт вас не смущает? И вы окажетесь таким же ретроградом как в свое время ваши коллеги с паскалем, потому что 5 лет назад учили не тому что будет востребовано через 5 лет?


И вообще какой смысл заставлять систему образования гнаться за ИТ технологиями? Заведомо зная - что цикл подготовки школьного учителя от 10 лет занимает.

Для обучения базовым навыкам программирования - достаточно РУЯ, Кумира и бейсика с паскалем.


Питон/С и прочие промышленные языки - даже для олимпиад и допобразования по большому счету избыточны.

И лучше если школьники/студенты научатся решать более сложные задачи на паскале, чем более простые - но на С или Питоне.


Умея в сложные алгоритмы и имея хороший математический фундамент и понимание работы железок  - выучить синтаксис конкретного языка и его специфику - понимая что ты от него хочешь - это вопрос нескольких недель.


ИМХО - полезней было бы и для отрасли, и для страны - унифицировать базу программирования выбрав волюнтаристски один язык для подготовки - на всю страну.

мы бы получили более широкую базу для подготовки специалистов.

А так получается - что вы учите Питону, а у моего ребенка в школе - банально вообще нет учителя информатики.


З.Ы. Вы питон кстати где преподавали - в школе, в допобразовании или в ВУЗе?

И насколько я понял - базовое образование у вас же не педагогическое?

раскрыть ветку (4)
0
Автор поста оценил этот комментарий
А тот факт, что пока школьники/студенты учат Питон, может стрельнуть какой нить Руст или ТайпСкрипт вас не смущает?

Не смущает, т.к. я учу программированию в принципе, а не программированию на конкретном языке. И учить людей программировать с помощью питона - намного проще, чем с помощью паскаля. Там всё как-то проще и прозрачнее.


И лучше если школьники/студенты научатся решать более сложные задачи на паскале, чем более простые - но на С или Питоне.

Но ведь на питоне-то как раз это делать легче. Я понимаю, если б на паскале решалось всё просто, так ведь наоборот. Есть куча задач, которые невозможно решить на паскале, а на питоне - норм. И более того - решение выглядит проще и понятнее.


З.Ы. Вы питон кстати где преподавали - в школе, в допобразовании или в ВУЗе?

Конкретно питон - доп. образование


И насколько я понял - базовое образование у вас же не педагогическое?

Всё верно

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Конкретно питон - доп. образование

Что делают с учеником в допобразовании - если он не справляется с решением задач на простом питоне?

Правильный ответ - отчисляют. Не так ли? Потому что Допобразование - это добровольное образование для мотивированных (хотя бы родителями) и способных (потому что большинство неспособных просто не приходит, а тех кто приходит - быстро отсеивают).


Но ведь на питоне-то как раз это делать легче. Я понимаю, если б на паскале решалось всё просто, так ведь наоборот. Есть куча задач, которые невозможно решить на паскале, а на питоне - норм. И более того - решение выглядит проще и понятнее.

Это типичная ошибка выжившего - то что вам легче - это субъективная оценка.

И даже если вы лично, как вам кажется, убедились, что это так. Вы же со всеми своими скиллами по статистике понимаете, что ваше окружение и ваши ученики - это недостаточно релевантная выборка, что бы экстраполировать ее на всю среднюю школу и весь спектр ВУЗов,  а не только технические и информационные.


Возможно есть куча промышленных прикладных задач, которые нельзя решить на паскале, что в прочем в равной степени относится и к питону. Вы же не будет писать, например компилятор или операционную систему на питоне?


При этом учебные и олимпиадные задачи для школы всегда предполагают возможность решения на 4-5 языках - С/питон/паскаль/бейсик и РУЯ\Кумир.

То есть в рамках учебного курса - это переменные, их типизация, условия, циклы, процедуры, функции, списки, массивы и рекурсия - все это базовые вещи которые одинаковы для всех ЯП.


И вот тут я вас подвожу к следующей мысли.

Как со стороны смотрится ваш тезис


Не смущает, т.к. я учу программированию в принципе, а не программированию на конкретном языке. И учить людей программировать с помощью питона - намного проще, чем с помощью паскаля. Там всё как-то проще и прозрачнее.

на фоне предыдущего

Весь коллектив был старше меня и их не смущало преподавать детям технологии времен 80-ых,90-ых

То есть для вас не важно, на каком языке - потому что вы учите программированию, но коллег за это же вы осуждаете, потому что они я вашей точки зрению делают "неправильно". Хотя они тоже учат программированию, а не языку программирования.


Не замечаете двойных стандартов?


что касается простоты питона.


Просто объяснить сложное - сложно. Сложно объяснить сложное -просто
(с) Альберт Энштейн.

Так вот это тот самый случай - вы объясняете сложное сложно - и вам просто.


Но бейсик и паскаль для школьников и студентов в 70-ые, 80-ые годы - разработали совсем неглупые люди - именно потому что обучать на фортране и коболе было неудобно. Слишком низкая конверсия получалась, а специалистов нужно было больше.


И явная типизация переменных и операторные скобки и куча других не нужных и избыточных для промышленного языка вещей, нужны в языках для школьников и студентов - именно для того, что бы "просто объяснить сложное".


И поэтому Информатика и Методика преподавания информатики - все таки два разных предмета.


Я не к тому, что бы вы все бросили и начали учить на паскале. Для вас это действительно может и сложно. Да и не нужно по большому счету.

А к тому, что ваш упрек в сторону коллег-ретроградов - был абсолютно не справедлив, резанул мне глаз и спровоцировал эту дискуссию.



И да с одной стороны х+=1 проще чем х:=х+1


Но с другой стороны более менее уверенно в среднем 8\9 классе первую конструкцию понимает за разумное время - условно  1 ученик из 100, а вторую  - 10 из 100.


З.Ы. И да в среднестатистической школе даже компьютеры дома  есть иногда только у половины учеников.


Не давно я в 8 классе столкнулся с детьми - которые в 14 лет - не знают что такое интернет (да они в целом умеют залипать в соцсетях в телефоне - но что это интернет не знают, и что в нем бывает еще что то кроме роликов на ютубе и тиктоке).

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Что делают с учеником в допобразовании - если он не справляется с решением задач на простом питоне?
Правильный ответ - отчисляют. Не так ли? Потому что Допобразование - это добровольное образование для мотивированных (хотя бы родителями) и способных (потому что большинство неспособных просто не приходит, а тех кто приходит - быстро отсеивают).
Не знаю, при чём тут это, но это не так. Доп. образование - это ещё и репетиторство, и добровольно-принудительные кружки/факультативы. С которых не отчисляют, потому что за эти занятия заведение получает деньги.


Это типичная ошибка выжившего - то что вам легче - это субъективная оценка.
И даже если вы лично, как вам кажется, убедились, что это так. Вы же со всеми своими скиллами по статистике понимаете, что ваше окружение и ваши ученики - это недостаточно релевантная выборка, что бы экстраполировать ее на всю среднюю школу и весь спектр ВУЗов, а не только технические и информационные.
При чём вообще ошибка выжившего? О статистике не было и речи, а вы её зачем-то приплетаете. Ещё и говорите, что я там чего-то про статистику своего окружения говорил (хотя такой чуши не было).


Возможно есть куча промышленных прикладных задач, которые нельзя решить на паскале, что в прочем в равной степени относится и к питону. Вы же не будет писать, например компилятор или операционную систему на питоне?

Да при чём тут промышленные задачи? Разве о них где-то была речь? Вы опять что-то выдумываете. Сами же выше писали про школьную программу и олимпиады, а тут вдруг откуда-то промышленное программирование появилось.


При этом учебные и олимпиадные задачи для школы всегда предполагают возможность решения на 4-5 языках - С/питон/паскаль/бейсик и РУЯ\Кумир.

Не предполагают. Вы, видимо, просто никогда не участвовали в олимпиадах регионального уровня, если так считаете, т.к. это регулярная практика, что на разборе задач говорят, что на паскале и бейские решить невозможно из-за технических ограничений.


То есть для вас не важно, на каком языке - потому что вы учите программированию, но коллег за это же вы осуждаете, потому что они я вашей точки зрению делают "неправильно". Хотя они тоже учат программированию, а не языку программирования.

Не замечаете двойных стандартов?
Я осуждаю за то, что используются старые инструменты преподавания и именно в этом вся "неправильность". Как если бы для записи математических формул мы использовали нотацию 15го века, когда ещё не было понятия неизвестных (всех этих иксов и игреков). Так тоже можно делать и тогда тоже преподавали математику. Но зачем так делать сейчас, если есть уже более удобные инструменты? Которые, к тому же, имеют применение в реальной жизни.


Так вот это тот самый случай - вы объясняете сложное сложно - и вам просто.
Голословное заявление, основанное на ваших домыслах. А как я указал выше - домыслов у вас много. Вы ни разу не были на моих уроках и не можете судить о том, как и что я объясняю.


Но бейсик и паскаль для школьников и студентов в 70-ые, 80-ые годы - разработали совсем неглупые люди - именно потому что обучать на фортране и коболе было неудобно. Слишком низкая конверсия получалась, а специалистов нужно было больше.

Так я ж и не спорю, что тогда это был отличный выбор. И даже в 2000х это был всё ещё отличный выбор. А вот сейчас - уже не отличный. Потому что время идёт и появляются новые отличные инструменты, тоже созданные неглупыми людьми и с вполне конкретными целями.


А к тому, что ваш упрек в сторону коллег-ретроградов - был абсолютно не справедлив, резанул мне глаз и спровоцировал эту дискуссию.

Люди используют бесполезное старьё (потому что в их молодости не было альтернатив) и учат молодое поколение этому бесполезному старью, хотя сейчас уже альтернативы есть. А потом школьники с паскаля приходят в универ и такие "ого, классы? что это вообще такое?" или "структуры данных? словари, множества?" И им надо с нуля всё рассказывать. Лучше б ассемблер учили вместо паскаля, от него хоть какой-то толк есть.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Не знаю, при чём тут это, но это не так. Доп. образование - это ещё и репетиторство, и добровольно-принудительные кружки/факультативы. С которых не отчисляют, потому что за эти занятия заведение получает деньги.

Это при том, что "учить всех" и "учить избранных", как говорят в Одессе -  две большие разницы.

Например, в "код будущего" - берут только с входным тестированием и отправляют на мороз, всех кто не справляется с промежуточными аттестациями - каждые полгода.


С платных франшиз - конечно не отчисляют, но и не учат, тех кто способностей не имеет. Причем зачастую при полном согласии родителей, которые готовы платить за то, что их дитятко - просто под присмотром под присмотром. То же касается и репетиторов - если у ребенка способностей нет - то они также об этом сообщают и не мучают ни себя ни детей. Просто информатика не обязательный предмет - соответственно к репетиторам по информатики в 99 случаях из 100 приводят только тех у кого есть способности и интерес, но нет возможностей в школе.


В обычных бесплатных кружках, те у кого не получается - просто перестают ходить - и никто за ними не гоняется что бы дообъяснить то, что они не поняли.


При чём вообще ошибка выжившего? О статистике не было и речи, а вы её зачем-то приплетаете. Ещё и говорите, что я там чего-то про статистику своего окружения говорил (хотя такой чуши не было).

При том, что между тезисами "питон легче для всех" и "питон легче для вас" - огромное расстояние - и то, что для вас Питон проще и легче - это ваша личная точка зрения, не подкрепленная ничем кроме "ятаксчитаю" и вашего личного опыта.

А статистика при том, что вы по должности должны понимать, что такое репрезентативные и релевантные выборки и не делать далеко идущих и безапеляционых выводов только на основании своего опыта и наблюдений за вашим кругом общения.


Да при чём тут промышленные задачи? Разве о них где-то была речь? Вы опять что-то выдумываете. Сами же выше писали про школьную программу и олимпиады, а тут вдруг откуда-то промышленное программирование появилось.

Ну вы так уверенно заявили что на паскале нельзя решить все олимпиадные задачи. Что я даже сначала в себе засомневался.

Но открыл требования к олимпиадам - и внезапно - решить задачи можно на любом из основных языков. Единственно, что тесты пишутся на базовом языке - то есть на С++ и производительность тоже проверяется на С++ - поэтому разработчики не гарантируют максимальный балл по всем задачам на основных языках.

Что совсем не равносильно вашему утверждению о том, что на школьных олимпиадах нельзя решить какие то задачи на паскале. В отношении олимпиад Всероса - это не так.

Более того организаторы утверждают что у ФриПаскаля и ПаскаляАВС - подобных кейсов не зафиксировано, в отличии от Питона, который действительно существенно медленнее С++ и иногда теряет баллы из-за того что алгоритм не укладывается в отведенные тестом временные рамки.


Голословное заявление, основанное на ваших домыслах. А как я указал выше - домыслов у вас много. Вы ни разу не были на моих уроках и не можете судить о том, как и что я объясняю.

Я не был на ваших уроках, но этого и не нужно. Вы же сами заявили - что Питон проще. И если бы вы преподавали в обычной школе это могло бы свидетельствовать о том, что вы талантливый педагог от рождения и можете сложное объяснять просто, но вы сказали что работали в допобразовании - а это, извините, совсем другая история.


Да есть такое явление в элитных школах, лицеях, гимназиях и доп.образовании - когда туда приходят (или их отбирают) мотивированные и способные дети и быстро все понимают с первого раза, решают сложные задачи, используют сложные инструменты, формулы, языки программирования. И через некоторое время у учителей в таких заведениях всегда начинается эйфория и звездная болезнь. Они начинают воспринимать способности детей - как свою личную заслугу и их ЧСВ очень сильно растет.

Это распространенная ошибка. И вы, извините конечно, но ведете себя сейчас - точно так же.


Так я ж и не спорю, что тогда это был отличный выбор. И даже в 2000х это был всё ещё отличный выбор. А вот сейчас - уже не отличный. Потому что время идёт и появляются новые отличные инструменты, тоже созданные неглупыми людьми и с вполне конкретными целями.

Разве питон был разработан для обучения школьников/студентов? Нет был разработан давно, немногим позже паскаля. При этом долгое время никому не был нужен, пока случайно не попал в волну хайпа с бигдатой, когда выяснилось, что его удобно использовать для решения класса задач связанных с бигдатой и машинным обучением.

Более того, высока вероятность того что хайп спадет, выяснится что производительности его станет недостаточно, и мы опять вернемся к старому доброму С/С++. А питон постигнет судьба Кобола, Фортрана, ПхП, Дельфи и прочих языков.


Люди используют бесполезное старьё (потому что в их молодости не было альтернатив) и учат молодое поколение этому бесполезному старью, хотя сейчас уже альтернативы есть. А потом школьники с паскаля приходят в универ и такие "ого, классы? что это вообще такое?" или "структуры данных? словари, множества?" И им надо с нуля всё рассказывать. Лучше б ассемблер учили вместо паскаля, от него хоть какой-то толк есть.

Да ладно. Разве в школе сейчас на 6-м или 7-м турбопаскале учат из 80-ых? Вроде бы на Фри и АВС, которые от 7-ки так же далеки как 3-й питон от 1-го.

И почему вы решили что ФРИ и АВС старье? И с чего взяли что бесполезное? для решения задач ФГОС и формирования базовых навыков программирования - переменные, циклы, условия, процедуры, функции - они в целом лучше чем питон.

И здесь ваше личное мнение и ваш личный опыт - против моего мнения и моего опыта.


И потом - с чего вы взяли что классы, наследование и прочее высшее программирование  - это задача школы? Представляете студенты приходят в ВУЗы и им целый курс высшей математики читают.

Наверное по вашей логике нужно дифуравнения в 10-м классе учить решать? 

Вы остера то урежьте. Вот если их циклам и условным переходам приходится учить - это да - это проблема. Но это проблема в принципе всей средней школы как системы , когда приходится в ВУЗе заново дифференцирование, интегрирование и СЛУ проходить. Уж точно не паскаль или бейсик в этом виноваты.


И кстати - вы так и не сказали в чем Питон то проще, чем паскаль или бейсик - и в чем они собственно устарели в части работы с базовыми понятиями - цикл, условие, процедура, функция? 


С таким же успехом я вам могу постулировать - что на РАЯ, Кумире или даже  1С научить базовым понятиям - еще проще чем на питоне или паскале.

1
DELETED
Автор поста оценил этот комментарий

Он не на ML Engineer устраивался, и уж тем более не на DL. Его задача разбираться в плюсах, в остальном иметь представление как работает.

0
DELETED
Автор поста оценил этот комментарий

Отдельным постом стоило. Свидетелей войти-в-айти задушнил в нолину.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества