Pull to refresh
85
0
Александр @nobodyhave

Android разработчик

Send message
Рекомендовать эту статью к прочтению не могу, так как читать противненько. Да, в ней есть некоторое количество правды, но она зарыта под таким толстым слоем помета, которым автор поливает всех вокруг, что выкапывать ее оттуда не хочется. Остальное субъективщина, выборочность и преувеличения.
В принципе, я вроде тоже не утверждаю, что здесь рай на земле. Но лично у меня впечатления скорее приятные.
Какие-то местные сайты для поиска работы. Сейчас не вспомню уже, так как ни с одного из них отклика не получил. Началось все с вакансии на hh.ru

Сюда не так много желающих переехать. А своих программистов мало. Я здесь участвовал в подборе разработчиков. Это весьма сложный и долгий процесс. Поэтому наверное нормальные резюме и выстреливают сразу. Ну и лет мне 30+, из них программирую 10+

Для слуха и разговорного неплохо идут фильмы и ТВ шоу на английском. Смотрел в свое время TED talks. И интересно, и язык можно прокачать.
В плане лексики лучше идут книги, так как нормальные авторы используют гораздо больше слов, чем используется в разговорной речи. Прочитав первые книги понял, что мой запас прилагательных более чем скуден. Вроде как понимаю, о чем речь идет, но что именно происходит в деталях иногда неявно.
Ну и по сути самое главное — если встречается непонятное правило или слово, нужно заставить себя его выучить ) Иначе все и останется на уровне «да и так в общем понятно».
Знаете, со своими детьми я уж как-нибудь сам разберусь :)
А спихнуть их на «левых» людей рано или поздно все равно придется. Они же, ведь какой ужас, пойдут потом в школу (на том же Кипре с 6 лет, а в Нидерландах с 4 лет). Особого отличия школы от садика я не наблюдаю (мои дети успели походить и туда, и туда).
В Африке может и хуже, я там не был. А вот кипрские дети вполне довольны жизнью. Как-то я не замечаю, чтобы они страдали от такого положения дел по сравнению с российскими детьми.
А на Кипре например декрет 4 месяца. И ничего, выходят потом на работу. Детей или бабушкам, или в ясли. Если много денег, можно и няню.
Ха-ха, так ведь о том и речь! Решать олимпиадные задачки — это совсем не то, чем приходится заниматься на работе 99% времени, так почему тогда им отдано столько времени на собеседованиях?

Все зависит от компании. Где-то алгоритмы нужны больше, где-то меньше. И цена ошибки разная.
Я уже приводил где-то выше пример. Продублирую тут.
«И пример из личной практики. Человек, явно не понимающий ничего в сортировках, умудрился делать вставку в сортированную коллекцию за O((N^2)*lgN), вместо O(lgN). Что при размере коллекции 1000 элементов дает примерно 7 000 000 (7 миллионов, Карл) операций, вместо 7.»
В моем случае это приводило всего лишь к умершему Андроид приложению. Поиск и фикс кстати заняли почти день, так как спагетти код был еще тот. А теперь представьте такой баг на серверах гугла. Будет гораздо больнее.

Ну и в приницпе решение задачек и прокачка знаний лишними не бывают. Они достаточно неплохо развивают структурный подход к решению задач.
То, чем он занимался, это даже не Computer Science

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

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

Очень субъективный взгляд из серии «Я не люблю кошек. Ты просто не умеешь их готовить.»
Решать задачки достаточно интересно. Особенно если делать это не просто так, а участвуя в сорвенованиях. Кому-то интересно контрибутить в опенсорс, кому-то бегать в марафон, кому-то решать задачки. Как минимум это в большинстве случаев сильно отличается от того, чем занимаются на работе, поэтому и интересно.
Дак и нет такой границы. В данном случае вполне логично спросить на счет библиотечной функции. Если говорят, что этого мало, то тогда уже пилить велосипед. И на самом деле я не встречал на собеседовании ни разу просьбы написать стандартный алгоритм (textbook algorithm). Но встречал задачки, которые им решались. И не только одним. На одном собеседовании я например использовал Дейкстру, хотя от меня ожидали поиск в ширину, так как он оптимальнее. Но интервьюер дискуссией все равно остался вполне доволен.
Из примеров про сортировку. Сортировка слиянием (merge sort) естественно давно написана. Но ее можно использовать не только для сортировки. Например, при ее помощи можно посчитать количество инверсий в строке/массиве. И это будет быстрее, чем считать в лоб. Но для этого надо знать, как устроена сортировка.
Быстрая сортировка тоже давно написана. Но ее часть может быть например использована для быстрого поиска К-го элемента в массиве (quick select). Опять же надо знать, как сортировка устроена.
Оба приведенных мною примера конечно можно нагуглить. Но когда-то люди их придумали именно на основе изучения других алгоритмов, в частности сортировок.
И пример из личной практики. Человек, явно не понимающий ничего в сортировках, умудрился делать вставку в сортированную коллекцию за O((N^2)*lgN), вместо O(lgN). Что при размере коллекции 1000 элементов дает примерно 7 000 000 (7 миллионов, Карл) операций, вместо 7.
Ни один человек на собеседовании не заикнулся про кодировки и utf-16. Поэтому они по сути пытались развернуть ASCII строку. И многие не смогли…
Поверьте, ни один из кандидатов не подошел даже близко к нюансам. А про юникод ни один не заикнулся. Их познаний в строках в Java не хватало даже на то, чтобы знать, что они иммутабельны. По сути, что я хотел бы услышать от кандидата 2 вещи. Попытку использовать StringBuilder.reverse() и затем свое решение. Первое показывает, что кандидат не будет писать свой велосипед и знает стандартную библиотеку. Вместо стрингбилдера можно и другую библиотеку, но попытки затащить guava в проект ради одного метода меня тоже не сильно радуют, пусть proguard и порежет все лишнее.
Свое решение можно написать банальное — дернуть toCharArray(), развернуть массив на месте, создать новую строку из массива. И я в упор не вижу, что тут сложного, и почему все порываются это нагуглить.
А вот уже потом идут все вышеописанные нюансы. 99% задач решится вышеописанным. Если человек про них знает, то совсем хорошо. Если нет, то разберется на месте.
Что я не вижу в предыдущем сообщении. Гипотетический вывод — вы врете. Где-то в чем-то, осознано или нет, но врете.

Ммм? Вспоминать не просил. Про то, что никто не вспомнил — крик души.
«И ни один не вспомнил про то, что в Java есть StringBuilder, который может это сделать из коробки, хотя никаких ограничений не ставилось
Незачем помнить то, что гуглится.

Да в том-то и дело, что хочется не того, кто по пустяковому поводу лезет в гугл, а того, кто может немного подумав, решить простую задачу сам. Не все ответы есть в гугле. Где-то выше я уже приводил вариант реверса, который вы не нагуглите и все равно придется писать самому. Опять же, меня интересует не столько сам процесс разворота, сколько ходы мысли человека и какие попутные грабли он соберет.
Например Algorist.
А занимаются этим например тут.
Если бы люди мне все это рассказали на собеседовании, я бы всеми руками был за то, чтобы их взяли.
Даже если бы они и не развернули в этом случае строку :)
В задании кстати всегда давались в качестве примера только строки, в которых символ влезает в char.
Специально никак. Но можно сделать
byte[] utf8Bytes = original.getBytes(«UTF-8»);
Где original это экземпляр класса String
Как видно из сообщения, речь идет про Java. char там является одним из примитивных типов и занимает 16 бит. А байт 8. Поэтому попытка разворачивать не символы в строке, а байты приведет к некорректному результату.
Накосячить может каждый. Не увидеть косяк, когда тебе на него показывают, может только тот, кто не знает, о чем идет речь.
Как раз приведенный пример годится. Он проверяет базовое знание языка и навыки решения базовых задач.
Более специфичные вопросы были дальше, и приводить их тут смысла нет.
В том то и проблема, что «банальные» вещи опытный разработчик держит в подсознании, на уровне инстинктов.

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

В этом случае я за них буду только рад. Но мне нужно было найти человека в команду, который умеет делать хотя бы то, что умею делать я. Я Андроид разработчик. Мне не нужны специалисты в настройке компов, веб разработчики и люди играющие на пианино (было такое в резюме). Поэтому определенные задачи и определенные вопросы. Андроид разработчики, которые не знают 4 основных компонента из которых состоит приложение к сожалению мне ничем помочь в работе не смогут…

Information

Rating
Does not participate
Location
Amsterdam, Noord-Holland, Нидерланды
Date of birth
Registered
Activity