Конкурс ко Дню программиста – разыгрываем бесплатное онлайн-участие в Infostart Event 2019!
Инфостарт поздравляет участников сообщества с профессиональным праздником – Днем программиста. Желаем чистого кода, быстрых компиляций, интересных проектов и адекватных заказчиков!
В честь праздника мы придумали конкурс: приз за победу – бесплатное онлайн-участие в INFOSTART EVENT 2019 Inception!
Условия конкурса
Google известен своим подходом к собеседованиям. «Нам нужны не просто инженеры, которые будут решать знакомые им задачи; мы ищем тех, кто сможет найти ответы на вопросы, которые не встречались им ранее», – гласит принцип корпорации.
Среди фирменных вопросов от Google – секрет круглой крышки от люка и количества теннисных шариков в школьном автобусе. А есть ли подобные вопросы для разработчиков 1С?
Расскажите в комментариях к этой новости о самой необычной задачке для 1С-разработчика, с которой вы сталкивались на собеседовании!
Победителя определят участники сообщества – по количеству лайков к комментарию. Обладателя главного приза и автора лучшей истории объявим в понедельник, 16 сентября.
А все остальные случаи приходи и работай, денег дадим больше чем попросишь. Чтобы узнать, что не в деньгах счастье - нужно сначала их много заработать.
Руководитель отдела, спрашивает умеешь работать с Paradox, FoxPro и куча всего. Я говорю: - не умею, а он мне приходи через год и посмотрим, чему научился.
Через год настойчиво договорился о встрече.
Прихожу, спрашивает: -Выучил, а я -ДА.
Руководитель снова: - Письмо по электронке отправить сможешь и Wорде текст набрать?
Я ему: -ДА.
Так я начал трудовую деятельность в мире программирования, реальность оказалось сложней, но справился и выучил больше чем положено было.
Может вопрос был на логику?
Чтобы поменять значения двух переменных не нужна третья в принципе.
Представим. Что есть две переменные:
А = 1;
Б = 2;
Чтобы "поменять значения двух переменных", достаточно присвоить им другие значения, например:
А = 3;
Б = 4;
А вот если Вас просили "поменять значения двух переменных местами, без использования третьей" это уже вопрос другой...
Добавлено позже: 1)А = Б - А; 2)Б = Б - А; 3) А = А + Б;
Допустим А и Б это целые числа, но мы их не знаем;
Например А = 7; Б = 15
Тогда А = 15-7 = 8; Б = 15 - 8 = 7; А = 8 + 7 = 15;
Вот в некоторых других языках программирования (напрмер в новой 1С-подобной Перфоленте) можно менять вот так:
b,a = a,b
Ну или бывает другие виды синтаксиса (в C# это делается через синтаксис кортежей (b,a) = (a,b) )
А в 1С нет такой операции.
Хотя.... конечно есть один вариант - это сконвертировать значения в строки через функцию ЗначениеВСтрокуВнутр() и дальше уже менять строки местами (писать код обмена строк лень), а потом восстановить исходные значения - но не уверн, что это вохможно для всех типов данных (особенно COM)
Хм... кстати вот подумал и решил предложить ещё один весьма простой вариант обмена вообще любых значений без заморочек и 3-тьей переменной - в 1С это, кстати, тривиально:
//Дано
а = значение1;
b = значение2;
//Обмен
а = Новый Структура("a, b", a, b);
b = a.a;
a = a.b;
ПоказатьМожет такой способ обмена имелся в виду?
Пока Орки.Количество() > 0 Цикл
Если Ельф.Стрелы.Количество() >0 Тогда
Цель = Ельф.НайтиБлижайшуюДоступнуюЦель(Орки);
Если Цель <> неопределено Тогда
Ельф.Стрелять(Цель); //Считаем что эльф не промахивается и всегда убивает - для простоты
Если Орки.Количество()=0 Тогда
прервать;
КонецЕсли;
Враг = Ельф.НайтиБлижайшуюДоступнуюЦель(Орки);
Если Ельф.ВычислитьРасстояниеДоЦели(Враг) > Ельф.ВычислитьРасстояниеДоЦели(Цель) + мМинДопуск
И Ельф.ВычислитьРасстояниеДоЦели(Цель) <= мМинДопуск
Тогда
Ельф.Бежать(СтратегияБега.Напрямую, Цель);
Иначе
Ельф.Бежать(СтратегияБега.РадиальныйБегОт, Враг);
КонецЕсли;
Ельф.Память.Добавить(Цель); //Запмнили место последне жертвы - там стрела
Иначе
Враг = Ельф.НайтиБлижайшуюЛюбуюЦель(Орки); //Из тех целей, что видит Эльф - считаем что видит он дальше, чем стреляет
Если Враг <> неопределено Тогда
Ельф.Бежать(СтратегияБега.Напрямую, Враг);
Иначе
Елфь.Стоять(); //Ждём когда орки нас сами найдут, ну или бежать к выходу - но он в условии задачи не задан
КонецЕсли;
КонецЕсли;
Иначе //Стрел нет
Враг = Ельф.НайтиБлижайшуюДоступнуюЦель(Орки);
Стрела = Ельф.Память.НайтиЛюбойПоТипу(Тип("Стрела"));
Если Стрела=неопределенно Тогда
ВызватьИсключение "Недопустимое состояние: Эльф забыл где он выпустил стрелу";
КонецЕсли;
раст = Ельф.ВычислитьРасстояниеДоЦели(Стрела);
Если Враг = неопределено
или (Ельф.ВычислитьРасстояниеДоЦели(Враг) > Ельф.ВычислитьРасстояниеДоЦели(Стрела) + мМинДопуск
И раст <= мМинДопуск)
Тогда
Если раст < Ельф,РастояниеПодбора Тогда //В пределах досягаемости для подбора стрелы
Ельф.Подобрать(Стрела);
Ельф.Память.Удалить(Стрела);
Иначе
Ельф.Бежать(СтратегияБега.Напрямую, Стрела);
КонецЕсли;
Иначе
Ельф.Бежать(СтратегияБега.РадиальныйБегОт, Враг);
КонецЕсли;
КонецЕсли;
КонецЦикла;
//Ельф победил
Стрела = Ельф.Память.НайтиЛюбойПоТипу(Тип("Стрела"));
Если Стрела <> неопределено Тогда //Ситуацияс неопределено возможна только если орки могут сами умирать или орки кончились
Ельф.Память.Удалить(Стрела); //хотя на месте эльфа я бы за стрелой всё равно сходил, но задача этого не требует, поэтому чистим память
КонецЕсли;
ПоказатьКод выше написал условный - и краткий - а так тут можно много чего ещё добавить и уточнить в этом шуточном алгоритме, тем не менее, демонстрирующим владение алгоритмической логикой автором ;-) и способность к решению нестандартных алгоритмических задач
Тут конечно нужно ещё расписывать очень важную функцию Бег - и разные математические алгоритмы реализации движения для разных стратегий - но это уже оставлю "домашним заданием" страждущим!
Единственное что, наверное мМинДопуск - нужно сделать всё-таки не внешней величиной - а внутренним свойством Эльфа - всё-таки это величина определяется опытностью самого Эльфа, а не внешними факторами - а если их надо учитывать - то всё-равно - их состояние должно проходить тогда через какую-то внутреннюю функцию эльфа - вычисляющую этот минимальный допуск расстояния - я в комментарии написал же - тут можно ещё очень и очень накручивать решение!
Тут просто надо не спасовать, получив такую задачу, а дать хоть какое-то, условно годное решение, и показать как уровень своей сообразительности, так и уровень готовности глубоко прорабатывать различные алгоритмические подходы, и умение правильно выстраивать программный код, чтобы он был максимально рабочим
Я: - Немного знаю, знаю счета и проводки. А у вас точно 1С.
Р: - Конечно! Вот и славно! У нас пока есть главный бухгалтер, а в случае чего вы его проконсультируете?
Я: - Попробую)))
1. Как вы проверите калькулятор? (Дает в руки калькулятор и просит его проверить)
2. Коллега просит вас закончить за него свою срочную задачу, потому что ему необходимо завтра уезжать в соседний город на свадьбу брата. Что будете делать?
3. Вам надо проверить, правильно ли записан, и записан ли вообще, ваш телефон у вашего приятеля Ивана. Но вы не можете его спросить об этом прямо. Вам надо написать вопрос на бумажке и отдать Юле, которая отнесет ее Ивану, а потом принесет обратно ответ от него. Что вы должна написать на бумажке (прямой вопрос нельзя) так, чтобы Иван смог понять сообщение, а Юля не смогла бы узнать ваш номер телефона?
Собеседовали мы людей вместе.
Тупость вопроса про калькулятор некоторых выводила из себя.
Однажды мне на собеседовании задали задачу - как обойти все ветки дерева любой вложенности без использования рекурсии, гото и даже, кажется, циклов. Не помню как, но как-то я за полчаса-час всё решил, ессно, с помощью магии и такой-то матери.
Когда показал рекрутеру (руководитель отдела разработки, парнишка лет 23), он торжественно заявил, что это неправильно (при том, что задача-то по сути выполнена была, хоть и через пень колоду), что, оказывается, есть какой-то недокументированный способ обхода дерева через какое-то занудное волшебство с массивами, которое он лично открыл! И теперь это был такой способ у него самоутвердиться - устраивать собеседование и радоваться, что никто не знает о его недокументированной находке))
Случай 2
Была девочка кадровичка, которая начиталась книжек о стресс-собеседованиях и собеседование вела с позиции - ты чё сюда припёрся, вы все г**но, вы у меня будете за похлёбку работать! Было очень смешно, но, зная, какие попадаются неуравновешенные программисты, было с другой стороны немножко боязно за здоровье девочки-кадровички. Пользуясь случаем хотелось бы обратиться к писакам этих книжек - вы же людям жизнь и здоровье ломаете))
Случай 3
Рекрутер (руководитель проектного отдела) задал задачу сделать полноценный редактор реквизитов любых метаданных. Тогда такие ещё нельзя было скачать на каждом шагу, а ему нужен был именно идеальный - со всеми рюшиками, кнопочками. Т.е. готовый продукт, а не просто выполнение задания, о чём я узнал, когда сдал склёпанный на коленке без красивого интерфейса, но передающий весь смысл. Было странно наблюдать, как в огромной корпорации нет денег на разработку и они таким нехитрым образом пытаются получить бесплатные работы))
Нет, там не стек, там реально была какая-то дыра в сюжете, если дерево куда-то упаковать, а потом что-то там чуть ли не значение в строку, короче, там целая свистопляска, которая действительно основывалась на каких-то дырах. Дело было в пору то ли 8.0, то ли 8.1, всё было ещё сырое и трещало, когда работало.
Мораль сей басни не в том, как дерево обойти, а в том, что он спецом поставил условия так, чтобы его никак нельзя было обойти, кроме как его "гениальным" открытием, чтобы он мог себя явить миру.
Как то на собеседовании диалог:
Кадровик - Какую книгу читаете?
Я - Расширение конфигурации
К - Эм.... про что?
Я - Про расширение конфигурации
К - Это про программирование?
Я - Хм, да.
К - .... Назовите писателей книги которого вам интересны в последнее время
Я - Хрусталева, Чистов, Харитонов
К - ...... это писатели про программирование?
Я - Да.
К - ..... а из художественной литературы?
Я - Вам программист нужен или литератор итп.?
К - Ладно, направлю Вас к начальнику ИТ.
Что касается самой интересной задаче, так это была: "В заполненном двумерном массиве найти наикротчайший путь, без обода всего массива. Поиск производить из указанной точки"
Якобы в данной задаче не только программирование но и логика мышления и знание экономических механизмов оптимизации маршрутов.
Задавали интересный вопрос: "Какие у меня основные постулаты к написанию программного кода?";
Ответ: "Все пишу с большой буквы и стараюсь без пробелов..."
- поменять местами две переменные, не используя третью (классика, сразу видно кто изучал теорию программирования и кто решает при тебе)
- написать рекурсивную функцию вычисления факториала (опять же классика, для некоторых знание слова рекурсия существенный плюс)
- чем левое соединение отличается от полного (кто может своими словами объяснить тот точно писал запросы)
- какое мнение о применении БСП в самописных конфигурация (знает ли про БСП, писал ли конфиги с "нуля", имеет ли вообще свое мнение и опыт)
- какая сейчас последняя версия платформы, ее особенности (есть ли у человека вообще интерес к своей работе программистом 1С)
Был пример такой диалог:
- Вы куда?
- На собеседование
- На какую должность?
- программист 1С
- Ооо это Вам к Сергею Викторовичу надо. Даа. Ну все готовьтесь
- к чему?
- все пора, проходите...
- а Сергей Викторович это кто? Я не с ним договаривался о встрече
- все идите до свидания
Допрос у Сергея Викторовича:
- Назовите цвета Российского флага
- далее авторский психологический тест... (пример, Какие ассоциации возникают у Вас со словом "Лошадь"?; Что Вы видите на этом изображении...)
- с каждым ответом человек менялся в лице
В итоге на работу не взяли. Но через 2 месяца, позвонили и предложили трудоустраиваться
Видимо у них там очень токсичное производство
Требовалось написать запрос к ПланВидамХаректиристик с целью определить последний созданный элемент по полю датаСоздания.
Долго я был в недоумении пытаясь решить эту задачу пока не понял что ПланВидамХаректиристик это справочник с таким названием. :D
Действующие лица:
HR, милая девушка 20+
Я, милый мальчик 20+
Диалог:
-А вы точно знаете 1с?
-Да, конечно
- Ну тогда мы вас берем, только вы меня не подведите, у меня отпуск с завтрашнего дня
P/s
Не подвел.
С запросом вышло легко - я незадолго до этого делал нечто подобное, вспомнил быстро и решил за минуту. С задачей - ещё проще, написал на листочке, на вопрос "а можно не циклом, а рекурсией" - сказал, можно, но неоптимально. Приняли.
Потом были ещё кандидаты - решали те-же две задачи. Не все решили даже... Быстрее - никто не сделал.
Владивосток, год примерно 2011...
См. также
Infostart Toolkit 1.7: новые инструменты и контекстная подсказка в конструкторе запросов
В новой версии расширения для редактирования выражений и текста запроса в конструкторе запросов теперь также используется редактор на основе Monaco Editor. Кроме этого появились новые инструменты «Все функции» и «Редактор параметров сеанса».
05.03.2021 814 vikad 2
Участникам базового курса для начинающих 1С-программистов – 2 видеокурса в подарок
Новость Обучение, бизнес-тренинг, курсы Инфостарт
В три раза больше знаний получат участники «Базового курса для начинающих 1С-программистов». При покупке онлайн-обучения мы открываем доступ к материалам видеокурсов по расчетным и бухгалтерским задачам.
05.03.2021 1052 user997184 0
Фирма «1С» с 1 мая поднимет цены на 1С-Отчетность
В прошлом году фирма «1С» провела эксперимент по изменению тарифов 1С-Отчетности для нескольких российских регионов. Сейчас решение о повышении цен принято окончательно и затронет всех подписчиков сервиса.
05.03.2021 1313 ЕленаЧерепнева 0
Готово расписание митапа «Система управления знаниями»
Новость Инфостарт Infostart Meetup Мероприятия
12 марта проведем митап «Система управления знаниями». Как избежать ситуации, когда сотрудники решают схожие задачи, теряя драгоценное время? Как внедрить систему знаний в компании? На эти и другие вопросы ответим на митапе в следующую пятницу.
04.03.2021 2151 eselyanina 0
Открыт набор на онлайн-курс «Запросы и отчеты»
Новость Обучение, бизнес-тренинг, курсы Инфостарт
15 марта стартует онлайн-курс «Запросы и отчеты». Участники курса изучат язык запросов и возможности системы компоновки данных – эти навыки понадобятся при разработке отчетов в платформе «1С:Предприятие».
04.03.2021 2809 user997184 0
Второй тур голосования за доклады INFOSTART EVENT 2021
Новость Инфостарт infostartevent Мероприятия
Продолжаем составлять программу INFOSTART EVENT 2021. Ранее мы анонсировали уже принятые доклады технического и управленческого потока, а сегодня открываем второй тур голосования, по результатам которого соберем финальную программу конференции!
04.03.2021 2755 kbazzh 29
В «Конвертацию данных 3.1» встроили возможности «Конвертации данных 2.0»
Конфигурация для подготовки правил обмена «КД 3.1» теперь позволяет разрабатывать не только правила формата EnterpriseData, но и классические правила для универсального обмена в формате XML, а также правила регистрации объектов.
03.03.2021 2122 vikad 5
Фирма «1С» выпустила универсальное рабочее место кассира для типовых конфигураций
Новость 1С ИТ-новость Онлайн-кассы
Продукт «1С:Рабочее место кассира» предназначен для подключения дополнительных касс к основной учетной системе на платформе 1С.
03.03.2021 1950 ЕленаЧерепнева 4
Неделя до старта базового курса для начинающих 1С-программистов
Новость Обучение, бизнес-тренинг, курсы Инфостарт
С 10 марта участники курса под началом преподавателя – Николая Бондаренко – начнут изучать базовые принципы программирования в платформе «1С:Предприятие» с нуля.
02.03.2021 1765 user997184 0
Первые управленческие доклады INFOSTART EVENT 2021
Новость Инфостарт infostartevent Мероприятия
Вчера мы объявили первые технические доклады INFOSTART EVENT 2021, а сегодня готовы представить первые управленческие доклады конференции.
02.03.2021 2489 kbazzh 0
Подводим итоги митапа по современным подходам при сборе требований и составлении ТЗ
Новость Инфостарт Infostart Meetup Мероприятия
26 февраля состоялся митап Инфостарта, где участники вместе с экспертами обсудили роль правильно сформулированных требований и важность технического задания в конечном успехе проекта.
01.03.2021 2101 vikad 0
Первые технические доклады INFOSTART EVENT 2021
Новость Инфостарт infostartevent Мероприятия
Подходит к концу первый тур голосования за доклады юбилейной конференции INFOSTART EVENT. Сегодня мы хотим показать вам первую часть программы!
01.03.2021 3570 kbazzh 0
1C:EDT становится полностью бесплатной, начиная с релиза 2021.1
Фирма «1С» объявила о выходе нового релиза 1С:EDT и об изменениях лицензионной политики для данного продукта. Теперь 1С:EDT доступна без действующей подписки ИТС, после прохождения несложной регистрации.
01.03.2021 3291 ЕленаЧерепнева 7
Готово расписание митапа «DevOps в 1С: Инструменты автоматизации рутины в 1С-разработке»
Новость Автоматизация Инфостарт Infostart Meetup Мероприятия
5 марта пройдет митап «DevOps в 1С: Инструменты автоматизации рутины в 1С-разработке». Рассказываем вам, какие доклады вошли в состав митапа, и чем он может быть полезен для участников сообщества.
26.02.2021 5338 kbazzh 2
INFOSTART PARTY и специальный ужин для VIP-гостей и докладчиков
Новость Инфостарт infostartevent Мероприятия
Кто хорошо слушает доклады, тот хорошо танцует и развлекается на INFOSTART PARTY. Мы определили место проведения вечеринки, а также выбрали ресторан для традиционного VIP-ужина. Сегодня расскажем вам об этом.
26.02.2021 3633 kbazzh 28
Фирма «1С» продлила действие льготной подписки на «1С:Фреш»
Специальные условия позволяют перейти с базовых версий на облачные с очень существенной экономией в первый год пользования подпиской. Рассказываем о преимуществах и возможных рисках такого перехода.
25.02.2021 4839 ЕленаЧерепнева 0
Оцени свои знания по составлению ТЗ и получи методические материалы
Новость Инфостарт Infostart Meetup Мероприятия
Уже в эту пятницу, 26 февраля, пройдет митап «Сбор требований и составление ТЗ: современные подходы в управлении проектами».
24.02.2021 4377 eselyanina 1
INFOSTART EVENT 2021: осталось семь дней, чтобы подать заявку на доклад
Новость Инфостарт infostartevent Мероприятия
Мы вышли с февральских праздников и сегодня готовы объявить сроки приема заявок на доклады, а также сроки второго тура голосования. Расскажем вам о том, как будет формироваться программа конференции INFOSTART EVENT.
24.02.2021 4548 kbazzh 5
Подводим итоги митапа по применению практик CI/CD для решений на 1С
Новость Инфостарт Infostart Meetup Мероприятия
Вчера, 19 февраля, Инфостарт собрал разработчиков в онлайне, чтобы обсудить применимость процессов непрерывной интеграции и поставки (Continuous Integration и Continuous Delivery) для мира 1С.
20.02.2021 3225 vikad 0
Фирма «1С» опубликовала новую версию «1С:Исполнителя»
Новость Автоматизация ИТ-новость
В языке сценариев, предназначенном для автоматизации и администрирования информационных систем на базе 1С, появились возможности для работы с SSH. Новый релиз уже доступен зарегистрированным пользователям в сервисе «1С:Обновление программ».
19.02.2021 4339 ЕленаЧерепнева 0
В реестр отечественного ПО хотят включить зарубежный софт
Новость Импортозамещение ИТ-новость Минкомсвязь
Минцифры намерено включать в реестр отечественного ПО иностранный софт, который был доработан российскими программистами. При этом подтверждать масштабы изменений не придется.
19.02.2021 2837 user1015646 0
Открываем продажу видеокурсов по расчетным и бухгалтерским задачам
Новость Обучение, бизнес-тренинг, курсы Инфостарт
Открываем продажи видеокурсов для начинающих 1С-программистов. Раньше эти курсы можно было пройти только в очном формате. Видеоформат лекций позволит осваивать новые знания в индивидуальном темпе.
18.02.2021 3211 user997184 0
Готово расписание онлайн-митапа «Сбор требований и составление ТЗ: современные подходы в управлении проектами»
Новость Инфостарт Infostart Meetup Мероприятия
26 февраля продолжим традицию онлайн-встреч и проведем митап «Сбор требований и составление ТЗ: современные подходы в управлении проектами».
18.02.2021 4561 eselyanina 0
Для начинающих 1С-разработчиков – два курса по специальной цене
Новость v8::СКД Обучение, бизнес-тренинг, курсы Инфостарт
Комплексное предложение включает два курса: «Запросы и отчеты» и «Базовый курс по обмену данными в системе 1С:Предприятие». Обучение подойдет начинающим программистам, у которых уже есть опыт работы с платформой.
17.02.2021 4820 user997184 0
INFOSTART EVENT 2021: конференция состоится!
Новость Инфостарт infostartevent Мероприятия
17 февраля можно помечать красным днем в календаре, ведь сегодня мы получили официальное разрешение на проведение INFOSTART EVENT 2021!
17.02.2021 7321 kbazzh 16