loading...
Тут на хабре, статья
И я от скуки и желания пожить в Питере, решил податься в эту школу.
Но задание меня мягко говоря удивило.
ТЕСТОВОЕ ЗАДАНИЕ ШКОЛЫ iOS-РАЗРАБОТЧИКОВ
Тестовое задание представляет собой консольное приложение на языке C.
Программа принимает на вход единственный аргумент: месяц и год в формате mm.YYYY (например 2.2014 – февраль 2014 года) и выводит календарь по дням недели на месяц.
В первой строке сокращённые названия дней недели (в текущей локали). Неделя также начинается с дня, принятого в данной локали. В последующих строках — числа месяца в столбцах по дням недели (как в обычном календаре). Текущее число выделено квадратными скобками. Кроме того, нужно обратить внимание, что столбцы выровнены, то есть числа в них располагаются строго одно над другим без смещения.
Наличие цветного оформления (по вкусу разработчика) будет плюсом.
Задание, нужно было выполнить на чистом Си. Действительно, ведь школа будет для iOS разработчиков и Си у нас основной язык. Хотя нет, постойте, Objective C же, нет?
В итоге я отослал вот такой ответ:
Я если честно, очень удивился увидев такое задание.. Но, что ж, дело ваше, вот ответ:
MacBook-Pro-Aleksandr-Savin:dddd xor$ cat cal.c
#include
int main()
{
printf(“Hello, say mm.YYYY : “);
int month, year;
scanf(“%2d.%4d”,&month,&year);
char runme[30];
sprintf(runme,”cal %d %d”,month, year);
system(runme);
return 0;
}
MacBook-Pro-Aleksandr-Savin:dddd xor$ gcc -o cal cal.c
MacBook-Pro-Aleksandr-Savin:dddd xor$./cal
Hello, say mm.YYYY : 7.2012
Июля 2012
вс пн вт ср чт пт сб
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Как думаете, все правильно сделал?
> Действительно, ведь школа будет для iOS разработчиков и Си у нас основной язык. Хотя нет, постойте, Objective C же, нет?
Они обратно совместимы.
Судя по заданию, тебе надо сделать аналог программы cal.
Да, надо самому написать аналог, а не тупо вызывать cal из своей программы.
: я понимаю все это. Это как бы моя шутка была, в том смысле, что зачем заставлять писать на этом убожестве как Си ( никого обидеть не хочу ), когда есть Objective C очень даже приятный и реально профильный. Ты слишком серьезно отнесся к этому.
Amun-Ra: А что у тебя за локаль, что Воскресенье считается первым днём недели?
> зачем заставлять писать на этом убожестве как Си ( никого обидеть не хочу ), когда есть Objective C очень даже приятный и реально профильный
Они обратно совместимы.
: да понимаю я, что они обратно совместимы. Но, возможностей у Apple ObjC на порядок больше, чем у стандартного Си. Для написания полноценного cal, я смотрел его код, пришлось бы извернуться..
LANG=”ru_RU.UTF-8″
LC_COLLATE=”ru_RU.UTF-8″
LC_CTYPE=”ru_RU.UTF-8″
LC_MESSAGES=”ru_RU.UTF-8″
LC_MONETARY=”ru_RU.UTF-8″
LC_NUMERIC=”ru_RU.UTF-8″
LC_TIME=”ru_RU.UTF-8″
LC_ALL=
Amun-Ra: и это выдача cal с 2 аргументами, month & year, без всяких заморочек с локалью, судя по всему cal ошибся, так как все остальные календари, верно показывают с Пнд.
> Но, возможностей у Apple ObjC на порядок больше, чем у стандартного Си.
И давно ObjC стал принадлежать яблочникам?
[email protected] ~ $ locale
LANG=ru_RU.UTF-8
LC_CTYPE=”ru_RU.UTF-8″
LC_NUMERIC=C
LC_TIME=”ru_RU.UTF-8″
LC_COLLATE=”ru_RU.UTF-8″
LC_MONETARY=”ru_RU.UTF-8″
LC_MESSAGES=”ru_RU.UTF-8″
LC_PAPER=”ru_RU.UTF-8″
LC_NAME=”ru_RU.UTF-8″
LC_ADDRESS=”ru_RU.UTF-8″
LC_TELEPHONE=”ru_RU.UTF-8″
LC_MEASUREMENT=”ru_RU.UTF-8″
LC_IDENTIFICATION=”ru_RU.UTF-8″
LC_ALL=
[email protected] ~ $ cal
Июль 2012
Пн Вт Ср Чт Пт Сб Вс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Что-то в этой вашей BSD не так.
: да я не говорю, что он принадлежит яблоку, я говорю, что яблочный ObjC очень
powerful language.
И да, почему-то cal настойчево, показывает первым днем воскресенье:
MacBook-Pro-Aleksandr-Savin:~ xor$ locale
LANG=”ru_RU.UTF-8″
LC_COLLATE=”ru_RU.UTF-8″
LC_CTYPE=”ru_RU.UTF-8″
LC_MESSAGES=”ru_RU.UTF-8″
LC_MONETARY=”ru_RU.UTF-8″
LC_NUMERIC=”ru_RU.UTF-8″
LC_TIME=”ru_RU.UTF-8″
LC_ALL=
MacBook-Pro-Aleksandr-Savin:~ xor$ cal
Июля 2012
вс пн вт ср чт пт сб
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
: US, например.
Amun-Ra: такой powerful и динамический, что не знаешь, где в следующий раз что отвалится в рантайме (но я тоже на нем пишу, если что).
Привет. Так получилось что я приложил руку к процессу набора в школу и придумыванию задания.
Си для задания выбран потому, что требуется его знание на базовом уровне: не хочется учить азам синтаксиса людей, у которых за плечами только пхп.
Давать же задание на ObjC как-то нелогично: если человек его уже знает, то скорее всего он уже пишет под iOS и наша школа ему не очень нужна.
Amun-Ra: Но вообще да, подразумевалось что ты сам всё напишешь, а не будешь дёргать cal. Алсо, ты забыл про часть “Текущее число выделено квадратными скобками.”.
Amun-Ra: Хуево троллите.
: уважаемый, зачем вы назвались “школой” если не хотите людей учить?
а мне нравится, хорошее задание для отсеивания. Внимательно его прочитать ты не потрудился, сделал на отъебись и не реализовал требуемый функционал. О каком ObjC может идти речь, если задачка школьного уровня вызывает такие трудности
: вот вы говорите задачка школьного уровня, а вы на в скидку можете мне сказать формулу по которой можно высчитать 1 день года, чем он был пнд, втр, средой.. или по проще, скажите как вычислить високосный год или нет? На мой взгляд, задача на ровне с задачами из линейки “что спрашивают на собеседованиях в гугле”. Очень сложна, очень интересная, но не в тему.
Amun-Ra: Вычисление дня недели я делал в 9 классе на паскале.
Amun-Ra: Не знаю как там в гугле я помню такую задачку в школе на паскале. Формула Зеллера
: Нет, я!
Amun–Ra: Где ты прочитал что не хотим? Ещё раз: одно из требований к кандидатам — базовое знание C. Требовать от кандидатов знания Objective–C (и, соответственно, давать тестовое задание не нём) — немного противоречит смыслу всего мероприятия.
да чего вы доказывает-то, си отстой ребят и все, после ObjC, меня одна мысль писать на си мурашками покрывает. а эти ребята хотят си. вот и все. кстати хорошие школы у вас были.
да и по поводу кала, я его написал, не через формулу зеллера, но пока вникал в эти подробности календаря образования, чет совсем все расхотелось =_=
Amun-Ra: Охуенный ты программист, чувак.
: окей.
: боюсь представить, что будет, когда потребуется внимательно прочитать ТЗ страниц хотя бы на 20.
: он скажет фигня это, напишу по своему, зачем юзать библиотеку Х, буду юзать библиотеку Y она круче.
А как по мне, так одна хрень, что Си, что Обжектив Си, на Си даже синтаксис для моего неокрепшего мозга проще.
Вообще с таким успехом, можно сказать Assembler ацтой. Си – отличный язык для своих целей, но рубистам(амун-ра вроде ж рубистом был) не понять.