Как стать автором
Обновить
22
0
Дмитрий @drch

20 место в паралимпиаде по программированию

Отправить сообщение

Спасибо за материал! Хотелось бы увидеть больше материалов на тему сабграфов и работы с ними!

const str = s => [...s].sort().join('');
const anagram = (s1, s2) => s1 && str(s1) === str(s2) || false;


Так изящнее.
Первая толковая статья по React за долгое время. Спасибо!
Удаленный комментарий
А в unit тесте — как проверит?)
Отнесся бы положительно и спросил бы о вашем опыте, когда результат был неочевиден, поделился бы своим.
У того же Лодаша — есть целыз 3 ф-и для проверки на объект, и только одна из них обрабатывает ваш кейс.
isObject — нет
isObjectLike — нет
isPlainObject — да
Спасибо за комментарий, отвечу вам.

Порой (очень часто) на собеседования приходят молодые люди, претендующие на позицию (и зарплату) сеньера, не имеющие за своими плечами многолетнего багажа опыта — пара курсов, пара стартапов, пофрилансил, потом еще стартап и все, сеньер! Нет, не сеньер!

Я повторюсь — понятие джун/миллди/сеньер — субъективное. В этом комментарии — я говорю о своем восприятии.

Чуть отвлекусь на тему typeof null — нету в js нормального способа проверить является ли значение переменной объектом. Или юзать готовые решения, либо писать функцию самому. Вот оптимальная реализация:

function isObject (value) {
    return value && typeof value === 'object' && value.constructor === Object;
}


И вот здесь и кроется ответ на вопрос: зачем я спрашиваю про typeof null на собеседовании — typeof null === 'object'!

Вот не будет завтра lodash, отрубит нам РКН интернет или еще какой катаклизм случится. Как этот молодой и талантливый специалист будет проверять что ему бекенд вернул? Как проверит, что другой молодой и талантливый не передал в его функцию невалидное значение? Никак, если не будет знать об этой маленькой особенности стандарта. Для меня — это основа основ, которую обязан знать каждый. Не знаешь — иди читай книги, проходи курсы, что угодно, но будь любезен — умей проверять переменные на валидность!

Что касается сеньеров — еще более субъективно, мне кажется, что сеньеру было бы интересно знать, почему это работает именно так, а не как-то иначе, вот и все.

Сможет ли он пройти собеседование и не пасть позорно до джуниора споткнувшись на собственных же вопросах двухлетней давности?


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

Искренне надеюсь, что смог донести до вас свою мысль.

Простите, я вас, вероятно, неправильно понял. Вы на собеседованиях отказываетесь отвечать на теоретические вопросы и решать небольшие задачки?


Многие не знают, кто они: "Джун, мидл или кто-то еще", это нормально, границы очень условны и размыты, однако в вакансии в 90% случаев указано Junior/Middle/Senior, а значит кандидат, если приходит собеседование сопоставляет свой уровень с указанным.

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

Абсолютно с вами согласен. Спасибо за ссылку.

Я немного ввел в заблуждение, простите. Речь идет не о букве "Ё", а о сочетании 2х символов Юникода u{0415}(Е) и u{0308}("̈), которые идя друг за другом образуют последовательность юникода и мы видим букву "Ё" на экране.


\u{0415}\u{0308}' === 'Ё' // false
Неуверенность в содержимом массива и влиянии разбросанности кода на производительность и удобство сопровождения, а также неудобство написания дополнительных проверок заставили меня долго искать решение получше.


На мой взгляд «Неуверенность в содержимом массива» — основной признак говнокода…
Все, понял. Спасибо.
Но ведь в замечательном числе все цифры являются частями последовательностей, разве я не прав?
Немного не понял решение 6-ой задачи. Ведь если речь идет о последовательностях, то достаточно начать складывать все цифры числа — если на каком-то шаге у нас будет сумма больше 10 — то это не замечательное число, а если же на последнем шаге итерации у нас сумма 10 — то число замечательное.

foo = function(n) {
	n = n.toString();
	n = n.slice('');

	for(var i = 0, sum = 0; i<n.length; i++) {
		sum += parseFloat(n[i], 10);

		if(sum==10 && i == (n.length-1)) {
			return true;
		}

		if(sum>10) {
			return false;
		}

		else {
			if(sum==10) {
				sum = 0;
			}
		}
	}
	return false;
}

Информация

В рейтинге
Не участвует
Откуда
Government controlled area, Кипр
Дата рождения
Зарегистрирован
Активность