Сьогодні, в суботу, 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