Враження від програманії

Сьогодні, в суботу, 4-го жовтня 2008-го, відбувся конкурс IT-фахівців «Программанія». Дізнався я про нього з dou.ua, де тепер часто можна прочитати якість актуальні IT Новини. Вирішив написати про цей конкурс, бо імхо конкурс дуже класний :)
На відміну від стандартних конкурсів на алгоритми, які вже трохи надоїли набридли, в цьому конкурсі пропонується заповнити анкету з питаннями (тести) по різних мовах програмування і технологіях. З кожної теми є ~12 питань, а тем цього разу було аж 28. На все-про-все дається 2 години, тому на все що знаєш навіть немає часу відповісти - потрібно відповідати на те, що знаєш найкраще.
А питання були зовсім не прості, і щоб відповісти на всі питання по якійсь темі, потрібно бути професіоналом в даній сфері. Деякі питання мені дуже сподобались, ось наприклад: деякі цікаві питання
Питання по .NET Application Development
Що з нижченаведеного можна створити, використовуючи C#?
- Бібліотеки класів
- Розширення для проектів інсталяції
- Програми командної стрічки
- Веб-аплікації ASP.NET
- Веб-сервіси ASP.NET
- Програми Windows Forms
- Класи для використання в MS SQL Server
Веселе питання. Все :)
Питання по Java SE
1. Що буде, якщо виконати код:
public class Static { static { int x = 5; } static int x, y; public static void main(String[] args) { x--; myMethod(); System.out.println(x + y + ++x); } private static void myMethod() { y = x++ + ++x; } }
- Помилка на етапі компіляції
- Вивід на консоль: 1
- Вивід на консоль: 2
- Вивід на консоль: 7
- Вивід на консоль: 8
- Інша відповідь: ___
І хто б міг подумати... На консоль виводиться 3. Виявляється це нічого страшного, що змінна x оголошена і в статичному ініціалізаторі, і як статичне поле - на початку ф-ції main, значення x буде 0. Далі просто.
2. Який результат виконання:
public class Main { public static void main(String[] args) { System.out.println(0.0 == -0.0); } }
- true
- false
- Помилка компіляції
- Інший варіант ___
true. Взагалі-то це очевидно, але можна на мить засумніватись чи добре працює оператор рівності із типом double.
3. Що буде, якщо відкомпілювати таке:
class InnerClass { int a1; final int b1 = 10; public void method(int a, final int b) { class Test { public void method() { a1 = 5; b = 6; a = 5; } } } }
Відповідь:
Помилка в рядку де b = 6 ібо the final local variable b cannot be assigned, since it is defined in an enclosing type, і в рядку де a = 5 ібо cannot refer to a non-final variable a inside an inner class defined in a different method.
Питання по Misc. SQL and DBMS Knowledge
Маємо таблички:
Team1
EmployeeID Role ----------- ---------- 1 Programmer 2 Tester NULL Contractor
і
Team2
EmployeeID Role ----------- ---------- 2 Tester 3 Programmer NULL Contractor
Що буде, якщо виконати
select Team1.Role, Team2.Role from Team1 left join Team2 on Team1.EmployeeID = Team2.EmployeeID
? (варіантів відповідей не пишу, бо вони великі :) )
Відповідь:
Role Role ----------- ---------- Programmer NULL Tester Tester Contractor NULL
Виявляється нули не джойняться...
Питання по Dynamic HTML
1. Яке значення буде мати str після виконання:
var str = '123,456,123,456'; str = str.replace('123', '456');
- '123,456,123,456'
- '456,456,123,456'
- '123,456,456,456'
- '456,456,456,456'
- Нема правильних відповідей
'456,456,123,456'. Функція replace замінює тільки перше входження, а не всі. Я відповів правильно, бо колись на такі граблі вже ставав. Але, думаю, багатьох можна на такому злапати :)
2. Що покаже alert?
alert(false || true + true + false || true + false);
- NaN
- false
- true
- 0
- 2
- Помилка через несумісність типів
- Нема правильної відповіді.
2. Ось така-от магія приведення типів і оператора || :)
Треба ще сказати, що організовано все було по вищому класу. Всіх учасників пригощали чаєм/кавою, численними солодощами, можна було взяти халявні журнальчики... До речі спам не роздавали, а акуратно поставили в папку, яку подарували, за це організаторам величезний респект :) Серед усіх учасників була проведена лотерея, і майже кожен (було людей десь так ~60) отримав якийсь приз. Призи були в діапазоні 10-150грн, наскільки я можу оцінити. Навіть я отримав зелену бандану від Zyxel, тепер вчусь в'язати бандани :) А найбільше вразило те, що на сцену вийшла організаторка з Харкова, і заговорила до нас чистою українською мовою :) Це було класно, Харків знову виріс в моїх очах :) Видно, що орги хотіли догодити галичанам у всьому.
Отже, як на перший раз, що конкурс проводиться у Львові, вийшло дуже незле. За це подяка GlobalLogic, харків'янам, та іншим грошовитим орг-ам. Думаю таких конкурсів у нас замало, і потрібно частіше робити подібні конкурси серед студентів (на знання технологій).
P.S. Прикольно, я перший у Львові по DHTML. Дрібничка, а приємно :)
P.P.S. Кількість учасників по містах: Харків - 832, Київ - 164, Львів - 58
пс. На DevDays теж бачились :)