yandex редактор кода для собеседования

Собеседование в Яндекс: театр абсурда :/

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

yandex редактор кода для собеседования

Мне назначили дату интервью, и также прислали методичку, чтобы я понимал, что меня ждёт и как готовиться. Чтобы ничего не заспойлерить, я замазал квадратиками важную информацию.

yandex редактор кода для собеседования

Вы тоже заметили «вопросы на C++» в методичке для питониста? Не то чтобы я знал C++, но в институте проходили, авось что-нибудь да вспомню на интервью.

yandex редактор кода для собеседования yandex редактор кода для собеседования

Интервью 1

Итак, о чём вас спросит Яндекс на интервью? Выберите один правильный вариант:

3) как вы будете решать вот эту бизнес-задачу

4) как решить вот эту алгоритмическую задачу без стандартной библиотеки

Задача 1

Даны два массива: [1, 2, 3, 2, 0] и [5, 1, 2, 7, 3, 2]
Надо вернуть [1, 2, 2, 3] (порядок неважен)

Фактически нам нужно вернуть пересечение множеств, но с повторением элементов. Не включая мозг, я начал сразу кидать что-то вроде

Внимательные читатели намекнули, что на строчках 11 и 12 нужно использовать el , а не a , но на интервью и так прокатило 🙂

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

Кстати, как вы наверно догадываетесь, есть большая разница между решением, написанным в обычной рабочей атмосфере, и решением, написанным на собеседовании в яндекс.блокнотике с интервьюером на связи и ограничением по времени. Здесь и далее я привожу те решения, которые сообразил на интервью, какими бы ужасными они не были. Можно ли написать лучше? Да, в каждой из задач можно лучше.

Задача 2

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

Дана строка (возможно, пустая), состоящая из букв A-Z: AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB
Нужно написать функцию RLE, которая на выходе даст строку вида: A4B3C2XYZD4E3F3A6B28
И сгенерирует ошибку, если на вход пришла невалидная строка.
Пояснения: Если символ встречается 1 раз, он остается без изменений; Если символ повторяется более 1 раза, к нему добавляется количество повторений.

Ну ок, хотят проверить знание каких-то базовых вещей.

Так, давайте может что-то другое?

Задача 3

Дан список интов, повторяющихся элементов в списке нет. Нужно преобразовать это множество в строку, сворачивая соседние по числовому ряду числа в диапазоны. Примеры:
[1,4,5,2,3,9,8,11,0] => «0-5,8-9,11»
[1,4,3,2] => «1-4»
[1,4] => «1,4»

Так блин, серьёзно? Я наверно очень мутный тип, если две предыдущие задачи не показали мой скилл на этом классе задач.

Ну ок, хотят проверить знание каких-то базовых вещей.

На этом интервью закончилось, и я стал ждать вестей от рекрутера.

Интервью 2

В назначенный час я бахнул кофейку и встретился в зуме с новым рекрутером. Интервью #2 началось.

Задача 4

Я, признаюсь, был готов ко всему, но не к этому:

Дан массив из нулей и единиц. Нужно определить, какой максимальный по длине подинтервал единиц можно получить, удалив ровно один элемент массива.

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

Ну что, Яндекс, ты доволен? Ты доволен?! Кто король алгоритмов?! Я король алгоритмов! Давай, удиви меня.

yandex редактор кода для собеседования

Задача 5

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

Ну ок, хотят проверить знание каких-то базовых вещей.

Не без подсказки интервьюера, но я написал это, и теперь менеджер, наверно, может эффективно узнать важную инфу. Круто. Пора прыгать на следующее собеседование (да, они шли одно за другим).

Интервью 3

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

Задача 6

Sample Input [«eat», «tea», «tan», «ate», «nat», «bat»]
Sample Output [ [«ate», «eat», «tea»], [«nat», «tan»], [«bat»] ]

Т.е. сгруппировать слова по «общим буквам».

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

Эта задача простая, наверно хотят удостовериться, что пока я разруливал дела в отеле, я не забыл, как пользоваться словарём. Не лишено смысла! Давайте накидаем что-нибудь простое.

Задача 7

Вход: [1, 3] [100, 200] [2, 4]
Выход: [1, 4] [100, 200]

Честно говоря, где-то тут мне уже стало плевать на собеседование, Яндекс и все эти алгоритмы, и в реале я бы уже просто послал всех в /dev/null, но мне хотелось знать, что в конце всего этого, ведь конец должен быть? Будет задача, где я завалюсь, и это кончится. Что-то вроде эвтаназии, но в интервью.

Ну ок, хотят проверить знание каких-то базовых вещей.

Задача 8

Время собеседования подходит к концу, но всё-таки можно ещё поболтать про кодинг и поспрашивать практические вопросы, например по Django или SqlAlchemy:

Дан массив точек с целочисленными координатами (x, y). Определить, существует ли вертикальная прямая, делящая точки на 2 симметричных относительно этой прямой множества. Note: Для удобства точку можно представлять не как массив [x, y], а как объект

Ну ок, хотят проверить знание каких-то базовых вещей.

Тут я как всегда пошёл куда-то не туда и написал вот что:

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

Так, третье собеседование пройдено, и эти садисты сказали, что я прошёл дальше. Ну вот за что?

yandex редактор кода для собеседования

Интервью 4

Честно говоря, вот тут я потерялся, потому что я всё жду, когда начнётся собеседование, ну, человеческое собеседование имеется в виду, а пока вместо этого я превращаюсь в алгоритмэна.

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

Кстати, где-то в этот момент я узнал, что я юзаю что-то вроде тора, но для собеседований: я общаюсь с рекрутером, мой рекрутер общается с рекрутером Яндекса, а рекрутер Яндекса общается с собеседователями, а может цепочка ещё больше. Меня это поразило прям: вы меня тут дерёте за O(n^2) в решениях, так может я у вас посчитаю длину цепочки от кандидата до собственно интервьюера и спрошу «а можно оптимальнее?!«

Итак, вот задачка от мини-босса:

Задание 9

Написать функцию, которая вернёт True, если из первой строки можно получить вторую, совершив не более 1 изменения (== удаление / замена символа).

Погодите, да это же. Ну ок, хотят проверить знание каких-то базовых вещей. Сссссуууу. пер.

Если вы хотите решить задачу не так, как хотел интервьюер, то смотрите:

Задание 10

Осталось совсем немного времени, и вот в довершение пара реально сложных заданий на понимание многопоточности и gil в python:

Дан список интов и число-цель. Нужно найти такой range, чтобы сумма его элементов давала число-цель.

result = range(2, 4) # because elements[2] + elements[3] == target

А теперь все вместе хором: НУ ОК, ХОТЯТ ПРОВЕРИТЬ ЗНАНИЕ КАКИХ-ТО БАЗОВЫХ ВЕЩЕЙ. Вы восхитительны. Спасибо.

Здесь я уже не успевал по времени и озвучил идею: мы бежим по списку и сохраняем в память значения сумм для всех range до этого элемета. Иными словами, для каждого элемента мы пробуем делать ranges, которые кончаются на этом элементе, и смотрим на их сумму элементов.

Источник

Как Яндекс научил меня собеседовать программистов

После того, как я изложил свою историю «трудоустройства» в Яндекс в комменте к нашумевшей заметке «Как я проработала 3 месяца в Я.Маркете и уволилась», было бы несправедливо утаить и ту пользу, которую я вынес из своего опыта Яндекс.Собеседования.

В мои рабочие обязанности входит техническое интервьюирование кандидатов на позицию Fullstack JavaScript/TypeScript Developer, активно этим делом (стоит ли говорить, что слегка поднадоевшим?) я занимаюсь больше года, за плечами более 30 технических интервью.

Раньше на техническом интервью я задавал кандидату довольно бестолковые вопросы аля «что такое замыкание», «как в JavaScript реализуется наследование», «вот есть такая-то таблица в БД с такими-то индексами, расскажите, пожалуйста, как можно ускорить такой-то запрос», которые хоть и помогали выявить инженерные способности кандидата, но совершенно не позволяли сделать вывод о том, насколько хорошо человек сможет решать задачи и насколько быстро он сможет разобраться в уже существующем коде. Что не могло не привести к печальным последствиям…

Но всё поменялось после того, как я прошёл четыре круга технических собеседований в Яндексе.

Обычно в огород интервьюеров Яндекса летят камни за:

1. Задачи, которые не имеют практической ценности;
2. Необходимость решать эти задачи на листках бумаги карандашом или на доске.

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

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

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

Из минусов: обращение к массиву по несуществующему индексу и некрасивая манипуляция со строкой: join-split-join. А ещё это решение неправильное, потому что на примере getRanges([1, 2, 3, 5, 6, 8]) возвращается «1-3,5-6,8,», и чтобы «убить» запятую в конце, нужно ещё нарастить условия, усложнив логику и снизив читаемость.

Вот решение в духе Яндекса:

Поможет ли гугление писать такие элегантные решения? Чтобы выдать такой код, нужны две составляющие: опыт работы с множеством алгоритмов и отличное знание языка. И именно об этом предупреждают рекрутёры Яндекса: вас будут спрашивать об алгоритмах и языке. Яндекс предпочитает нанимать разрабов, способных писать крутой код. Такие прогеры эффективны, но, самое главное, взаимозаменяемы: они будут писать примерно одинаковые решения. Менее подкованные в теоретическом плане разработчики на одну задачу способны выдать десятки разнообразных, порой просто удивительных решений: один из кандидатов на нашу вакансию завернул такой костыль, что у меня глаза на лоб полезли.

UPD: как заметил пользователь MaxVetrov, моё решение неверное:

Таким образом, я сам не смог нормально решить эту задачу до сих пор.

UPD2: В целом, комментарии убедили меня, что этот код получился хреновым, даже если бы и работал правильно.

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

Я считаю, что для JavaScript-разработчика это очень показательный тест. И дело здесь не в замыкании и не в понимании отличий между преинкрементом и постинкрементом, а в том, что по какой-то необъяснимой причине четверть интервьюируемых полагает, что console.log выполнится раньше, чем завершится цикл. Я не преувеличиваю. У этих людей в резюме и опыт работы минимум два года, да и другие задачи, не завязанные на коллбеки, они успешно решали. То ли это новое поколение JavaScript-разработчиков, выросшее на async/await, которое ещё что-то слышало про Promise, но коллбеки для них — как дисковый телефон для современного подростка — номер наберёт, пусть не с первого раза, но так и не поймёт, как оно работает и зачем.

Эта задача имеет продолжение: нужно дописать код так, чтобы console.log так же выполнялся внутри setTimeout, но в консоль вывелись значения 1, 2, 3, 4. Тут уместна поговорка «век живи — век учись», так как однажды один из интервьюируемых предложил такое решение:

И тут я узнал, что setTimeout и setInterval третий и последующие аргументы передают в коллбэк. Стыдно, да. Знание, кстати, оказалось полезным: я не раз использовал эту особенность.

А вот эту задачу я позаимствовал у Яндекса как есть:

Тут проверяются навыки работы с Promise. Обычно я прошу решить эту задачу на чистых промисах, а затем с использованием async/await. С async/await решение интуитивно простое:

К этому решению тоже можно применить поговорку «век живи — век учись», но уже относительно моего интервьюера из Яндекса: он не уточнил, что можно/нельзя использовать async/await, и когда я написал такое решение, он удивился: «я не работал с async/await, не думал что это можно решить так просто». Наверное, он ожидал увидеть что-то такое:

Этот пример способен показать насколько хорошо человек понимает промисы, это особенно важно на бэке. Однажды я видел код JavaScript разработчика, не разобравшегося до конца с промисами, подготовившего промис для транзакции sequelize следующим образом:

И удивлявшийся, почему в его транзакции фигурирует только один пользователь. Можно было бы использовать Promise.all, ну а можно было знать, что Promise.prototype.then не добавляет ещё один коллбэк, а создаёт новый промис и правильно будет так:

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

И попросил избавиться от ключевых слов async/await. С тех пор это задание стало первым и, в половине случаев, последним на собеседовании — его реально часто заваливают.

Сам я ни разу не решал эту задачу до написания этой заметки и делаю это в первый в третий раз (первый слишком долгий, а во втором я не заметил один оставшийся await):

yandex редактор кода для собеседования

Какой вывод из этого всего можно сделать? Собеседования — это интересно и полезно… Разумеется, если вы в срочном порядке не ищeте работу.

Напоследок приведу ещё одну задачу из истории с Яндексом, я её ещё никому * почти не показывал, берёг, что называется, для особого случая. Есть набор баннеров, у каждого баннера есть «вес», который указывает на то, с какой частотой будет отображаться баннер относительно других баннеров:

Например, если есть три баннера с весами 1, 1, 2, их совокупный вес равен 4, а вес третьего равен 2/4 от общего веса, значит и отображаться он должен в 50% случаев. Необходимо реализовать функцию getBanner, которая рандомно, но с учётом весов, возвращает один баннер для показа. Решение можно проверить в этом сниппете, там же выводится ожидаемое и фактическое распределение.

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

Источник

ML собеседование не в Яндекс: делаем нормально

yandex редактор кода для собеседования

Наверное как и большая часть Хабра я вчера проглядел эту статью — «Собеседование в Яндекс: театр абсурда :/». Она занятная и чего уж таить греха, я чувствовал такие же «нотки», когда ходил в Яндекс на собеседование на роль… менеджера несколько лет назад. Еще мне предложили купить их акций на свои деньги вместо опционов… хм. В принципе довольно очевидно, какие «качества» они проверяют таким образом.

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

Некоторое время назад я написал такую статью в личном блоге, но постеснялся выкладывать ее дальше личного блога. И наверное зря, т.к. многие мои знакомые довольно высоко ее оценили. Если коротко — я лично пропустил через себя около 150 кандидатов и в итоге мы остались довольны результатом и люди, которых мы нашли, до сих пор успешно справляются со своими задачами, все тепло и лампово.

Прочитав вчерашнюю статью, я понял, что мне есть чего добавить по сути. Последние несколько лет я выкладывал на Хабр как правило сугубо технические статьи (релизы датасетов, моделей, тесты железа) и зачастую грустил, потому что они не находили должного отклика пропорционального количеству вложенных усилий. Так что позвольте мне минутку слабости и я постараюсь «починить» сломанный подход Яндекса для отдельно взятого кейса.

TLDR: Сломаны ли собеседования как класс? Короткий ответ — нет, но надо приложить очень много усилий со своей стороны в первую очередь. И подход всегда будет уникальным для каждой сферы деятельности.

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

ЧтоКак не надоКак надо
СкринингЕго делает HR или предлагаются автоматические тестыЕго должен делать мотивированный / ключевой участник команды, принимающий последнее решение
Проверка адекватностиМного этапов с задачами «на логику», не имеющими отношения к работеДостаточно просмотра пет-проектов и беседы на 10-15 минут
Продвинутое Тестирование3 круга ада в неудобных стрессовых условияхПредложить решить toy задачу на базе реальной нетривиальной задачи, удаленно
Формат тестированияВ неудобных стрессовых условиях, в неудобном редактореЧеловек делает сам как хочет, когда хочет и где хочет
Трата личного времени1-2 часа на каждый этап и многочисленные очные встречиПервый созвон / чат 10-15 минут, дальше удаленно и асинхронно, последняя встреча со всей командой сразу
Формат общения1 на N, много встреч подряд, формальная обстановка1 на 1 в чате, потом общая встреча в неформальной обстановке под пиво / чай / кальян
СкоростьИногда занимает месяцы1 неделя на асинхронное общение, дальше по сути одна встреча
Подходят ли ценности«Раз терпит значит любит»Наблюдение за человеком в естественной обстановке, оценка действий а не слов
Итоговая оценка навыкаИли рандом, или зубрежка, или было ли такое недавно в вузеРешение toy задачи (скор менее важен), оригинальность vs. простота vs. красота vs. поддерживаемость решения
Итоговое решениеРандом по итогу 10 встречРешение как в фильме «12 Angry Men» — вся команда должна прийти к одному знаменателю и никак иначе
ПортфолиоКандидату такой процесс тяжело включить в портфолиоОстается страничка соревнования и можно сделать свой блог пост на эту тему с решением
Ключевые ценностиГотовность работать от забора до обеда без вопросовЭтика, поиск простого и красивого решения, инициативность, мышление за рамками, совпадение персональных ценностей

Наш процесс выглядел так (вакансия уже давно не актуальна):

Также мы придумали довольно простой и лулзовый лайфхак для отсеивания токсичных людей (у нас в компании 50% девушек):

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

Источник

12 инструментов и сервисов для совместного онлайн-кодинга

yandex редактор кода для собеседования

1. Teletype для Atom

Atom – разработанный GitHub бесплатный редактор с открытым исходным кодом для Linux, macOS, Windows. Поддерживает все популярные языки программирования. Teletype – плагин, добавляющий возможность совместного редактирования кода в режиме реального времени. Отсутствует централизованный сервер: совместная работа по peer-to-peer. Для шифрования всех взаимодействий между сотрудниками применяется WebRTC. Принцип работы продемонстрирован на видео ниже:

2. Cloud9 IDE

AWS Cloud9 – облачная IDE от Amazon, поддерживающая более 40 языков, включая C, C++, CoffeeScript, Go, Java, PHP, Python (2 и 3) и Ruby. Она по умолчанию включает все SDK, библиотеки и подключаемые модули, необходимые для создания бессерверных приложений. Cloud9 имеет собственный терминал, предоставляющий доступ с привилегиями sudo к управляемому инстансу Amazon EC2, на котором размещена среда разработки, а также интерфейс командной строки AWS с предварительно настроенной аутентификацией. Это упрощает быстрый запуск различных команд и обеспечивает прямой доступ к сервисам AWS. Есть поддержка нескольких параллельных сред разработки для изолирования ресурсов проекта.

В бесплатной версии доступно: 1 Gb RAM + 1 vCPU, Amazon Linux либо Ubuntu Server 18.04 LTS, чат, подключение через SSH.

Внешний вид AWS Cloud9

Цена: Бесплатно первые 12 месяцев. Если среда задействует ресурсы за пределами уровня бесплатного пользования, они оплачиваются по стандартным тарифам AWS.

3. Visual Studio Live Share

Visual studio code – редактор кода, разработанный Microsoft для Windows, Linux и macOS. С помощью плагина Visual Studio Live Share организуется общий доступ и совместная работа над проектами. Кодом можно делиться в режиме «только чтение» или «запись», а также обмениваться терминалами и серверами.

4. CodeSandbox

CodeSandbox работает с JavaScript и TypeScript: Node.js, Angular, Adonis, Gatsby, Marko, Nuxt, Next, Sapper, Apollo, Ember, Nest, Styleguidist, MDX Deck, Gridsome, Quasar и Vuepress.

Редактировать можно без регистрации, но для включения общего доступа нужно авторизоваться через GitHub. Приглашенные пользователи могут одновременно редактировать, создавать, переименовывать и обновлять файлы и код. Также можно увидеть, какой файл они просматривают и над чем сейчас работают. Есть чат и уведомления. Функция Classroom Mode позволяет назначать определенных людей редакторами, остальных – в режим «только для чтения».

yandex редактор кода для собеседованияВнешний вид CodeSandbox IDE

Цена: бесплатно или 9$/мес. за безлимитные приватные песочницы и репозитории для проектов на GitHub.

5. Codeshare

Внешний вид Codeshare

Цена: бесплатно в режиме для чтения.

6. CodePen

CodePen – онлайн-платформа для редактирования и хранения кода на HTML, CSS и JavaScript. Поддерживает возможность совместного доступа Collab Mode:

7. Collabedit

Collabedit – веб-редактор кода, позволяющий совместно работать в режиме реального времени.

8. Codebunk

Codebunk – еще один веб-редактор. Без регистрации можно добавлять пользователей с правами «только для чтения», просто отправив ссылку на страницу с кодом. Поддерживает 21 язык программирования. Есть видео- и текстовый чат.

Внешний вид Codebunk

Цена: первый месяц бесплатно, далее от 9$/мес.

9. Repl.it

Repl.it – онлайновая среда разработки, поддерживающая более 50 языков программирования, включая Python, Lua, JavaScript, Julia, C++, C, C#, HTML, CSS. Установка библиотек в один клик. Подсветка синтаксиса, импорт в GitHub, темная и светлая темы на выбор. Для совместного бесплатного редактирования необходимо зарегистрироваться.

yandex редактор кода для собеседованияРис. 6. Repl.it

Цена: в бесплатной версии работать одновременно могут только 2 пользователя. Доступно 100Мб для хранения кода, 500 Мб оперативной памяти, 0.2 – 0.5 vCPUs.

10. kodeWeave

kodeWeave – онлайн редактор HTML, Javascript и CSS с аудио- и текстовым чатом. Совместная работа доступна без регистрации.

yandex редактор кода для собеседованияВнешний вид kodeWeave

Цена: бесплатно. В начале появляется неназойливая реклама.

11. SyncFiddle

SyncFiddle – поддерживает JavaScript, HTML, CSS. Совместное редактирование по ссылке без регистрации. Срок хранения кода – 7 дней. Есть история изменений.

yandex редактор кода для собеседованияВнешний вид SyncFiddle

Google Colab

Google Colab – бесплатная облачная среда для Jupyter Notebook, позволяющая совместно работать над проектам, написанными на Python. Хорошо подходит для машинного обучения, анализа данных и образования. Предоставляет свободный доступ к вычислительным ресурсам, включая графические процессоры. Блокноты запускаются путем подключения к виртуальным машинам с максимальным сроком работы – 12 часов. Код можно сохранять на Google Drive.

Внешний вид Google Colab

Если в вашей компании тяга ко всему облачному, присмотритесь к Cloud9 от Amazon или к более специфическим: kodeWeave, CodeSandbox или CodeBunk. В ином случае имеет смысл просто установить плагин к VS Code или Atom. Для совместной работы с данными мы рекомендуем использовать Google Colab. А каким сервисом пользуетесь вы? Поделитесь в комментариях.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *