Результати пошуку
ITVDN: курси програмування
Відеокурси з
програмування

Замовити дзвінок

Вибери свою IT спеціальність

Підписка

Замовити дзвінок

+38 099 757 27 82
Результати пошуку за запитом: Обучение c
Вступ до NUnit

Автор: Редакция ITVDN

Введение Статья рассказывает об NUnit – открытой среде юнит-тестирования приложений для .NET. В данной статье мы рассмотрим, что такое NUnit, как его загрузить и установить, создание классов тестов , а также запуск теста. NUnit - открытая среда юнит-тестирования приложений для .NET, которая позволяет создавать автоматические тесты. Даный вид тестов обладает рядом преимуществ: Высокое качество программы; Снижение стоимости; Безопасность регрессии сети Чем выше качество программы, тем меньше средств затрачивается на устранение недостатков проекта. То есть, если найти недостатки в проекте на раннем этапе, решить их будет дешевле. Загрузка и установка NUnit Вы можете скачать NUnit с сайта http://www.nunit.org/ После завершения загрузки, разархивируйте файл и запустите программу. Создание проекта библиотечного класса Теперь создадим простой класс теста, используя C#, который добавляет два показателя, и протестируем его. Чтобы создать тест класса в Visual Studio, используя С#, выполните следующие шаги: Шаг 1: Создание проекта библиотечного класса Откройте Visual Studio. Для создания проекта библиотечного класса сначала нажмите File -> New -> Project, выберите Visual C # в установленном шаблоне, выберите Class Library. Введите подходящее название (мы используем IntroNUnitTest), нажмите "OK". После того, как Вы кликнули кнопку "OK", Вы увидите Ваш проект в Solution Explorer (в правом верхнем углу Visual Studio). Шаг 2: Добавьте ссылки к Вашему проекту. Чтобы добавить ссылку NUnit к Вашему проекту, кликните правой кнопкой мыши на ссылку, выберите Add reference-> Browse, затем nunit.framework.dll и «OK». Шаг 3: Создание тестового класса. Кликните правой кнопкой мыши на Вашем проекте, выберите Add -> Class, введите имя (используем MyNUnitTestClass) и далее "Add". После того, как Вы кликнули на кнопку Add, Вы увидите класс. После того, как Вы создали класс, добавьте using NUnit.Framework. Следует соблюдать некоторые условия и понятия: Каждый класс должен содержать атрибут [TestFixure] и должен быть общедоступен. В каждом методе должен присутствовать атрибут [Test]. Оператор подтверждения об отсутствии ошибок: Булевские значения, описывающие, что должно быть ключевым словом, когда выполняется действие. Ожидаемое исключение: один из типов исключения, который мы ожидаем во время выполнения тест-метода. Установка: программа, которая запускается перед выполнением каждого тест-метода (например, регистрация в системе конкретного пользователя или инициализация одноэлементных классов). Демонтаж: программа запускается после окончания каждого тест-метода (например, удаление строк из таблицы, которые были вставлены во время теста). На примере мы постараемся сравнить две переменные х и у. Каждой переменной присвоили значение 20. В общей сложности написали 4 теста (PositiveTest, NegativeTest, ExpectedExceptionTest и NotImplementedException). Запуск тестов После написания всех тестов в тестовом классе необходимо запустить тесты, чтобы проверить, проходят ли они успешно. Для запуска тестов перейдите в папку NUnit, выберите NUnit Application (.exe) и дважды кликнике по ней, выберите команду File-> Open Project, выберите проект (в нашем случае это IntroNUnitTest.dll), затем кликаем Run. Далее Вы увидите количество тестов, которые не сработали, и количество невыполненных тестов. Если Вы хотите запустить какой-то определенный тест, кликните правой кнопкой мыши в тесте, который Вы хотите запустить, и выберите Run test(s). Другие настройки Вы также можете использовать другие настройки для запуска тестов: Testdriven.net ReSharper Jetbrains  Источник: http://www.c-sharpcorner.com/UploadFile/18fc30/introduction-to-nunit-test-driven-development-using-nunit-a/
Вивчай JavaScript з нуля українською мовою

Автор: Редакция ITVDN

Добрий день, друзі! Сьогодні хочемо вас порадувати новим відео курсом, який обов'язково стане в нагоді кожному FrontEnd розробнику, а також BackEnd програмістам та Automation QA, які використовують мову JavaScript в якості основного інструменту написання коду. На ITVDN опубліковано всі уроки нового курсу “JavaScript Стартовий”. Курс українською мовою! JavaScript – це одна з найпопулярніших мов програмування. Вона користується великим попитом як серед новачків, так і серед досвідчених девелоперів, оскільки: простіша у вивченні в порівнянні з іншими загальновідомими мовами програмування (С#, Java, C++/C тощо); успішно використовується для створення клієнтської сторони веб-застосунків (FrontEnd), але також поширена і на серверній стороні в тандемі з Node.js (BackEnd); може використовуватися в геймдеві, розробці мобільних та настільних застосунків, тестуванні ПЗ тощо; має великий попит на ІТ-ринку. Вивчення JavaScript – це інвестиції в майбутнє, що окуплять себе з лихвою, оскільки досвідчені JavaScript розробники щедро оплачуються, мають широкий спектр проєктів та кар’єрних можливостей, а також можуть вести професійну діяльність дистанційно. Курс “JavaScript Стартовий” є першою сходинкою у вивченні програмування мовою JavaScript. Він спрямований на вивчення головних синтаксичних конструкцій JavaScript. Ви дізнаєтеся, як працювати зі змінними, використовувати умовні та циклічні конструкції, масиви та об'єкти. Отримаєте необхідні знання для написання алгоритмів та підготуєте базу, після якої можна розвивати свої навички у веб-розробленні або почати використовувати JS для інших цілей. Автор курсу – Дмитро Охріменко, CEO CyberBionic Systematics, сертифікований тренер Microsoft та автор курсів з .NET та FrontEnd розробки. У записаних відео уроках Дмитро ділиться ефективними техніками роботи з мовою JavaScript, які актуальні та потрібні на сьогоднішній день. Тривалість курсу – 8 годин 40 хвилин. Структура курсу: Вступ. Структура коду. Змінні та типи даних. Рядки та перетворення типів. Оператори. Умовний оператор if. Switch та тернарний оператор. Цикли. Масиви. Методи масивів. Функції. Частина 1. Функції. Частина 2. Об'єкти. Частина 1. Об'єкти. Частина 2. Чого ви навчитеся на даному курсі: Створювати мовою JavaScript базовий динамічний контент для web-сторінок. Працювати зі змінними та типами даних. Працювати з умовними та циклічними конструкціями. Розуміти особливості використання масивів та працювати з методами оброблення даних у масивах. Використовувати функції (розуміти та використовувати області видимості, контекст, рекурсію). Працювати з об'єктами. Попередні вимоги Для успішного проходження даного курсу необхідно володіти мовами верстання HTML & CSS на базовому рівні. Якщо ви вже займаєтеся розробкою іншою мовою програмування та хочете вивчити JavaScript – ці відео матеріали вам ідеально підійдуть: просто швидко перегляньте перші уроки і сконцентруйте увагу на особливостях роботи JavaScript. Якщо ви займаєтеся тестуванням ПЗ, “JavaScript Starter” допоможе вам розібратися з синтаксисом мови та стане першим кроком у освоєнні автоматизації тестування. Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання, опорний конспект та онлайн тести для більш глибокого засвоєння матеріалу. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз. Курс входить до комплексних програм підготовки за спеціальностями: Frontend Developer Верстальник сайтів JavaScript Developer React Developer Python Developer ASP.NET Core Developer ASP.NET MVC Developer PHP Developer Ruby Developer                
400+ питань на співбесіді щодо С++

Автор: Влад Сверчков

Дорогие друзья! Предлагаем вашему вниманию перевод статьи, опубликованной на DOU.ua 5 апреля 2021 года. Оригинальная версия на украинском языке доступна по ссылке. Junior 1.1 Общие вопросы 1.2 Метапрограммирование 1.3 Препроцессор и компиляция 1.4 Язык C 1.5 Язык С++ и ООП 1.6 STL / Algorithms 1.7 Многопоточность 1.8 Networking 1.9 OS/Linux 1.10 SCM / CI / CD 1.11 Практические задания Middle 2.1 Общее 2.2 Препроцессор и компиляция 2.3 Язык С 2.4 Язык С++ 2.5 Паттерны проектирования 2.6 Метапрограммирование 2.7 OOP/OOD 2.8 STL / Algorithms 2.9 Многопоточность 2.10 Networking 2.11 SCM / CI / CD 2.12 Практические задания Senior 3.1 Общее 3.2 Препроцессор и компиляция 3.3 C/C++ 3.4 OOP/OOD 3.5 STL / Algorithms 3.6 Многопоточность 3.7 SCM / CI / CD 3.8 Практические задания Предлагаем список технических вопросов, которые, вероятно, вам поставят на собеседованиях по C++. Вопросы предоставили специалисты, принимающие участие в проведении технических интервью по этому языку. Учтите, что есть широкий спектр специализаций, поэтому выбирайте свое направление и готовьтесь.   Junior   Общие вопросы   1. В чем заключаются основные принципы ООП? 2. Что такое сложность алгоритма? 3. Код работает неправильно. Что делать? 4. Объясните такие структуры данных, как стек и очередь. 5. Какие книги, связанные с программированием, читали? Чему с них научились? 6. Что интересного нашли в новых стандартах С++17, С++20? 7. Что такое таблица ASCII? 8. Что такое Unicode? 9. Что такое паттерны проектирования и для чего их используют? 10. Патерны Singleton, Strategy, Template-Method, Decorator? 11. Для чего нужны модульные тесты? 12. Какая разница между модульными и интеграционными тестами? 13. Что такое TDD?   Метапрограммирование   14. Что такое шаблонный класс и шаблонная функция? 15. Что такое конструкторы? Какие типы знаете? 16. Может ли конструктор быть шаблонной функцией? 17. Может ли виртуальная функция быть шаблонной? 18. Что такое инстанциация шаблона? 19. Что такое специализация шаблона? Частичная специализация шаблона? 20. Расскажите об имплементации шаблонных классов в срр-файле?   Препроцессор и компиляция   21. Как проходит процесс компиляции срр-файлов в бинарный файл? 22. Что такое препроцессор? 23. Как работает препроцессор? 24. Какие знаете команды препроцессора? 25. Как работает директива include? 26. Как работает директива define? 27. Что именно линкует линкер? 28. Что такое оптимизация компилятора? 29. Что такое флажки компиляции? 30. Как защитить хедер от повторного включения? 31. Что делает директива include? 32. Как работают макросы?   Язык C   33. Как static влияет на глобальные/локальные переменные? 34. Как сonst влияет на переменную? 35. Какие варианты использования extern знаете? 36. Какие варианты использования volatile знаете? 37. Какие есть битовые операции? 38. Что такое булевая алгебра? 39. Расскажите об этапах разработки библиотеки или программы. 40. Что такое алгоритмы сортировки и какие вы знаете? 41. Какие алгоритмы работы со строками знаете? 42. Какие алгоритмы на графах знаете? 43. Где может храниться переменная? 44. Какая разница между calloc и malloc? 45. Для чего используют realloc? 46. Что такое указатель? 47. Каков размер указателя и от чего он зависит? 48. Какие есть операции с указателями? 49. Что такое struct? 50. Как определить размер структур? 51. Что такое выравнивание в структурах? 52. Что такое union? 53. Какой размер union?   C++/OOP   54. Что такое класс? 55. Какие есть основные типы данных в C++? 56. Что такое инкапсуляция? Как она реализуется в C++? 57. Какие есть встроенные типы в С++? 58. Что такое enum? 59. Как соотносится класс и объект? 60. Какая разница между структурой и классом? 61. Разница между private/protected/public и где они используются? 62. Какие методы класса являются стандартными для класса? 63. Что такое абстрактный класс и зачем он? 64. Сколько памяти занимает объект пустого класса class A {}; ? 65. Что случится с функцией, если к ней добавить ключевое слово static? В контексте члена класса? В контексте метода класса? 66. Какие особенности статических полей класса? 67. Какая особенность константных методов-членов класса? 68. Как изменить поле класса в константном методе класса? 69. Какие методы можно вызвать из константных объектов? 70. Что такое куча и стек? Различия, принцип работы. 71. В чем разница между указателем и ссылкой? 72. Для чего нужен указатель на функцию? Как его объявить? 73. Что будет, если забыть вызвать delete? Когда освободится эта память? 74. Что такое умный указатель? Какие умные указатели есть в стандартной библиотеке? 75. Как работает std::unique_ptr? 76. Как работает std::shared_ptr? 77. Расскажите о константности переменной, ссылки, указателя. Что такое константный указатель и указатель на константу? Размер указателя в памяти? 78. Расскажите о передаче аргументов по значению, по ссылке и по указателю. 79. Расскажите о порядке вычисления аргументов функции? 80. Что произойдет, если вернуть ссылку на временный объект? 81. Что такое перегрузки функции? Виды перегрузки. 82. Что такое явное и неявное приведение типов в С++? Расскажите о функциях явного приведения типов в C++. 83. Что такое инициализация переменной в if? 84. Что такое ленивые вычисления в С++? 85. Расскажите о циклах for и range-for. 86. Что делает ключевое слово auto? auto-определение return-типа, аргументов функции? 87. Чем отличаются delete и delete [ ] ? Что случится, если вызвать delete у объекта, созданного через new [ ] ? 88. Обработка ошибок в С++. Какие конструкции используют при обработке exception? 89. Можно ли выбрасывать exception из конструктора? Какие поля будут сконструированы, какие поля будут разрушены? 90. Что такое memory leak? 91. Можно ли выбрасывать exception из деструктора? 92. Как отловить деление на 0 в С++? 93. Как работают константные методы? 94. Что такое лямбда-функция в С++? Как получить доступ к переменным во внешней области видимости? 95. Для чего использовать namespace, anonymous namespace? 96. Как вызвать объект из nested namespace? 97. Как работают inline-функции? Может ли такая функция быть рекурсивной? 98. Что такое полиморфизм? 99. Для чего используется наследование? 100. Какие бывают типы наследования? 101. Для чего используют виртуальное наследование? 102. Как можно решить проблему ромбовидного наследования без использования виртуального наследования? 103. Что случится, если класс-наследник передать по значению в функцию, которая принимает базовый класс? 104. Что случится, если пронаследоваться от базового класса, который не имеет виртуального конструктора? 105. Что случится, если вызвать переопределенную virtual function из конструктора? Может ли конструктор быть виртуальным? 106. Может ли pure virtual function иметь имплементацию? Что случится, если вызвать pure virtual function из конструктора? 107. Какие методы генерируются для класса по умолчанию? В каком случае такие методы не будут генерироваться? Как заставить компилятор добавить/удалить эти методы? 108. Как запретить наследовать класс? 109. Какой порядок конструирования и разрушения классов в иерархии? Порядок инициализации полей класса? 110. Какие есть способы инициализации полей класса? 111. Может ли деструктор быть виртуальным? 112. Что делает ключевое слово virtual? 113. Для чего используют виртуальный деструктор? 114. Что такое глубокое копирование? 115. Что такое виртуальные функции и зачем они нужны? 116. Как защитить объект от копирования? 117. Что такое семантика перемещения?   STL / Algorithms   118. Из чего состоит STL? 119. Какие алгоритмы применяли с STL? В чем преимущество использования алгоритмов перед собственноручно написанными функциями? 120. Расскажите о контейнерах стандартной библиотеки vector, list, map, unordered_map. 121. Какие знаете типы итераторов? Чем они отличаются? В каких контейнерах используются? 122. Какая разница между std::set, std::map, std::unordered_multimap? 123. Что такое идиома remove-erase? 124. Как получить наименьшее значение типа? 125. Какая разница между std::map и std::hashmap? 126. Как подсчитать количество элементов в std::list? 127. Что такое сложность алгоритма и от чего она зависит? 128. В чем разница между vector и list и в каких случаях их лучше использовать?   Многопоточность   129. Что вам известно о многопоточности? 130. Что общего и различного в процессах и потоках? 131. Как синхронизировать передачи информации между потоками? 132. Какая разница между мьютексом и семафором? 133. Что такое deadlock? 134. Является ли С++ thread-safe? 135. Что такое race-condition? 136. Как избежать состояния гонки? 137. Что такое атомарная операция? 138. Как работать с std::mutex?   Networking   139. Что такое сокет? 140. Какие операции можно делать с сокетом? 141. Какая информация нужна, чтобы создать сокет? 142. Какие бывают модели сетей? 143. Расскажите об уровнях модели OSI. 144. Расскажите об уровнях модели TCP/IP. 145. Что такое IP-адрес? 146. Для чего используется маска подсети? 147. Какая разница между IPv4 и IPv6? 148. Сколько памяти необходимо для хранения IPv4? 149. Для чего нужен порт? 150. Сколько максимально может быть портов? 151. Какая разница между TCP и UDP? 152. Для чего такой ненадежный UDP-протокол?   OS/Linux   153. Что такое менеджер пакетов? 154. Какие бывают менеджеры пакетов? 155. Какие бывают дистрибутивы Linux? 156. Что такое PID? 157. Для чего используют файловые дескрипторы? 158. Расскажите о стандартных файловых дескрипторах процесса. 159. Что такое Pipe? 160. Что такое Named Pipe? 161. Что такое UID? 162. Расскажите о командах bash.   SCM / CI / CD   163. Какие есть виды SCM? 164. Для чего используют системы контроля версий? 165. Какие есть команды git? 166. Какие этапы во время комита изменений? 167. Разница между git fetch и git pull? 168. Какие есть этапы решения merge conflict?   Практические задания   169. Посчитайте количество единиц в произвольном числе. 170. Есть структура по типу «односвязный список». Напишите функцию, которая разворачивает список. То есть, первый элемент становится последним, а последний - первым. 171. Напишите реализацию функции int atoi (const char *str); преобразования строки в число. 172. Для структуры типа односвязный список напишите функцию вставки элемента. 173. Реализуйте класс vector. 174. Реализуйте бинарный поиск в массиве. 175. Реализуйте любую сортировку. 176. Реализуйте макрос для сравнения двух строк. 177. Реализуйте реверс строк. 178. Реализуйте перевода числа из строки в int. 179. Реализуйте подсчет слов в предложении. 180. Реализуйте подсчет чисел Фибоначчи. 181. Найдите такие элементы двух массивов, которые попадаются только в каждом из них. Желательно использовать STL. 182. Удалите из unordered_map элементы, которые делятся на 2 и выведите ключи этих элементов. 183. Напишите класс для логирования, который мог бы логировать к консоли или файлу. 184. Напишите функцию для определения, является ли определенный год високосным. 185. Напишите функцию для определения, является ли определенное слово палиндромом. 186. Напишите реализацию паттерна Singleton. 187. Напишите реализацию std::vector с операциями: push_back, push_front, pop_back, pop_front, size, clear. 188. Напишите рекурсивный поиск значения в дереве бинарного поиска. 189. Напишите функцию, которая проверяет, является ли дерево сбалансированным. 190. Напишить функцию для поиска уникального элемента в массиве.   Middle   Общее   1. Какие курсы прошли или книги прочитали за этот год? Чему научились? 2. Что нравится и не нравится в С++? Чего не хватает? 3. Что интересного нашли в новых стандартах С++17, С++20 (конкретные фичи)? 4. Расскажите о фичах, которые появились в разных версиях языка. 5. Расскажите о модели памяти, которая появилась в С++11 стандарте. 6. Что такое сериализация? Какие библиотеки знаете? 7. Какие знаете паттерны проектирования? 8. Что такое операционная система? Какие существуют типы по назначению? 9. Назвать основные составляющие и принципы работы ОС Linux в качестве примера системы общего назначения. 10. Что такое SFINAE и PIMPL? 11. Назовите порождающие, структурные и поведенческие паттерны программирования и приведите примеры их использования.   Препроцессор и компиляция   12. Расскажите о системах автоматизации билд-процесса. 13. Какая разница между статической и динамической библиотеками? 14. Какая разница между исполнительным файлом и динамической библиотекой? 15. Что такое DLL hell? 16. Что такое флажки компиляции (fPIC)? 17. В чем разница между дебаженной и релизной сборкой? 18. Что нужно для использования сторонней библиотеки? 19. Что такое internal linkage?   C   20. Что будет, если дважды вызвать free? 21. Как происходит вызов функции? 22. Как происходит передача параметров в функцию? 23. Как прорабатывается константа переменных? 24. Что означает ключевое слово inline? 25. Для чего используют выравнивания, можно ли его контролировать? 26. Расскажите о битовых полях. 27. Для чего нужен extern "C"? 28. Что будет, если в двух файлах сделать функцию с одинаковым именем и параметрами? На каком этапе возникнет ошибка? 29. Как экспортировать/импортировать функции из динамической библиотеки? 30. Какая разница между С-style приведением типов и C++ приведением?   C++   31. Что такое явное и неявное приведение типов в С++? Зачем делать explicit-конструктор? 32. Что такое Uniform initialization? Aggregate initialization? 33. Что такое Reference to temporary object? Как продлить время жизни временного объекта? 34. Что такое делегирующий конструктор? 35. Что такое список инициализации? 36. Какой порядок инициализации полей класса? Что случится, если конструктор инициализирует поля в другом порядке? 37. Что случится, если инициализировать поле другим полем? 38. Что такое copy elision? Сколько раз будет вызван конструктор/деструктор у объекта, которого возвращают по значению? 39. Что такое move-семантика? 40. В каких случаях не будет сгенерирован конструктор копирования? 41. Чем отличается конструктор копирования от оператора присваивания? 42. При каких условиях в конструкторе можно выбросить exception? 43. Что такое конструктор по умолчанию? Для чего нужны default и delete? 44. Чем отличается интерфейс от абстрактного класса? 45. Какие виды полиморфизма в С++? 46. Как реализовано наследование в большинстве компиляторов? 47. Множественное наследование: за и против? 48. Виртуальное наследование и порядок конструирования? 49. Зачем использовать override? 50. Какие есть правила вывода типа при использовании auto? В каких случаях auto может привести к нежелательному копированию объекта? 51. Расскажите обо всех возможных способах использования ключевого слова static в С++. Что такое static initialization order fiasco? 52. Что делает вызов throw; в блоке catch? 53. Чем отличается constexpr от const? 54. Что такое const correctness? 55. В каком случае можно использовать const_cast? 56. Что такое ключевое слово mutable и когда его нужно использовать? 57. Что такое ключевое слово friend и когда его нужно использовать? 58. Расскажите о лямбда-выражениях в С++ и доступ к переменным во внешней области видимости, захват this в лямбду и время жизни лямбды и захваченных переменных? 59. Что такое функтор? Напишите пример. 60. Что такое специализация шаблона? 61. Что такое dynamic_cast и run-time type identification? 62. Что такое exception? Как бросить и поймать? 63. Что будет, если бросить exception из конструктора? А из деструктора? 64. Что будет, если не поймать exception? 65. Что произойдет, если exception выйдет за пределы блока noexcept функции? 66. Для чего можно использовать приватное наследование? 67. Что такое контракт функции? 68. Что такое vptr и vtable? 69. Где содержится vptr? 70. Где содержится vtable? 71. Какая разница между overload and override? 72. Как компилятор различает члены класса и обычные переменные в функциях? 73. Зачем используют exceptions? 74. Что такое блоки try-throw-catch? 75. Расскажите о логике catch-блоков. 76. Что такое move constructor? 77. В чем разница между константным методом и неконстантным? 78. Что такое В-нотация и как определить сложность любого алгоритма? 79. Что такое таблица виртуальных методов? 80. Какие функции класса автоматически генерирует компилятор, если их не определить? 81. Что такое выравнивание данных? 82. Что такое exception? 83. Какие есть стандартные контейнеры и на основе каких структур они построены? 84. Что такое Undefined behavior? Приведите примеры. 85. Как определить, что в программе есть memory leak? 86. Для чего нужен std::make_shared? Чем он лучше создания std::shared_ptr через конструктор? 87. Что будет, если выделить один объем памяти, а записать больше? 88. Что такое переполнение stack?   Паттерны проектирования   89. Зачем нужны паттерны? Какие типы паттернов различают? 90. Недостатки паттерна Singleton? Когда он уместен? 91. Преимущества и недостатки PIMPL? 92. В чем разница между паттерн-фабрикой и фабричным методом? Когда использовать какой из них? 93. Что такое паттерн Observer? 94. Як контролировать состояние программы? Машину состояний? Паттерн состояние? 95. Что такое паттерн Visitor?   Метапрограммирование   96. Какие есть правила вывода типа в шаблоне? 97. Чем отличается using от typedef? 98. Сколько памяти занимает произвольная структура? Что такое выравнивание объекта? 99. Почему пустая структура занимает 1 байт? Какая минимальная единица адресации в С++?   OOP/OOD   100. Что такое SOLID? Что означает каждый из этих принципов? 101. Расскажите о паттернах проектирования. 102. Что такое Dependency Injection? Приведите пример. 103. Какие преимущества и недостатки функционального подхода? 104. Что такое принцип RAII? 105. Что такое принцип DRY? 106. Что такое принцип KISS? 107. Какие преимущества композиции перед наследованием?   STL / Algorithms   108. Какие алгоритмы с STL использовали? Каких не хватает? 109. Какими особенностями должен обладать класс, чтобы он был итератором? 110. Какие бывают итераторы? 111. Расскажите об инвалидации итераторов. 112. Как оптимизировать удаление элемента со средины вектора? 113. Как реализован vector? 114. Как реализован list? 115. Как расширить STL-контейнеры? 116. Какие есть алгоритмы в STL? 117. В чем разница между vector, deque, list, set e STL? 118. Когда надо использовать map? Когда - unordered_map? Какая сложность поиска и вставки в этих контейнерах? 119. Как проверить, есть ли в контейнере элементы? Почему вызов container.size() является плохой практикой? 120. Что такое exception safety guarantee? Какую exception safety guarantee имеют STL-контейнеры? 121. Расскажите о типах умных указателей и о подсчете ссылок в них.   Многопоточность   122. Является ли С++ thread-safe? 123. В чем разница между многопоточностью и асинхронностью? 124. Что такое многопоточность? Какую функциональность предоставляет С++ для разработки многопоточных приложений? Какие основные проблемы многопоточных приложений? 125. Как передать информацию между несколькими процессами? 126. Как синхронизировать между собой несколько процессов? 127. Какие есть особенности работы с shared memory? 128. Как работает spinlock? 129. Какие вы знаете особенности использования recursive mutex? 130. Расскажите о read-write mutex. 131. Что такое race-condition? Взаимная блокировка? Что такое критическая секция? 132. Как избежать состояния гонки? 133. Чем отличается мьютекс от семафора? 134. Какие примитивы синхронизации реализованы в C++? Преимущества lock_guard? 135. Что случится, если exception выйдет за пределы потока? Какие инструменты есть для безопасной асинхронности в С++? 136. Чем отличается std::launch::async от std::launch::deferred? 137. Что такое атомарная операция? std::atomic? 138. Как работать с std::conditional_variable? 139. Как создать поток с помощью std::thread? 140. На сколько потоков лучше разбить задачу? От чего это зависит? 141. Как работать с std::async? 142. Thread-safe гарантии контейнеров в С++? В чем недостаток интерфейса front() + pop_front()?   Networking   143. Что такое TCP handshake? 144. Какая разница между TCP и UDP? 145. Расскажите о протоколах верхнего уровня. 146. Какая разница между HTTP и HTTPS? 147. Расскажите об SSL/TLS handshake.   SCM / CI / CD   148. Расскажите о процессах CI. 149. Как отредактировать комит? 150. Расскажите об интерактивном rebase. 151. Какие могут быть способы дебаггинга кода? 152. Для чего нужны Unit test? Чем отличается от Functional Test? 153. Как тестировать код? Какой используете фреймворк? 154. Какие библиотеки знаете для написания тестов? 155. Что такое mock? 156. Сколько тестов нужно написать на одну функцию? 157. Что такое побочный эффект, идемпотентность и чистые функции? 158. Что такое контейнеризация и в чем преимущества и недостатки? Что такое Docker или иной инструмент контейнеризации? 159. Что такое CI/CD и какие преимущества приносит для разработчика? 160. Какие принципы итеративных методологий? 161. Какие преимущества и недостатки code-convention?   Практические задания   162. Напишите максимально корректную реализацию класса string с конструктором копирования и оператором присваивания. 163. Напишите реализацию очереди. 164. Реализуйте функцию, которая за один проход найдет уникальный элемент в контейнере. 165. Напишите thread-safe пул потоков. 166. Напишите игру жизни в ООП стиле. 167. Напишите класс, который достает из базы список товаров по фильтру и показывает на консоли. Напишите тесты для него. 168. Любая задача на написание кода, чтобы проверить умение проектировать интерфейсы и придерживаться принципов SOLID, DRY, KISS. 169. Напишите свою реализацию std::atomic. 170. Напишите программу для анализа графов: нахождение циклов, deadlock-состояний, циклов, недоступных состояний. 171. Напишите программу, которая бы проверяла, что в системе запущен только один ее экземпляр. Решение должно быть cross-platform. 172. Проанализируйте C++ код с точки зрения качества: выявить потенциальные memory leak, нерациональное использование STL-контейнеров, алгоритмов, неоптимальные конструкции и тому подобное. 173. Напишите код для решения судоку. 174. Напишите код, который найдет зацикливание в односвязном списке.   Senior   Общее   1. Как вы понимаете SOLID? 2. Как разработать систему плагинов на С++? 3. Что такое RPC? Какие библиотеки знаете? 4. На что обращать внимание при проведении code review? 5. Какие есть проблемы при написании кроссплатформенного кода? На что обращать внимание? 6. Что делать, если код работает медленно? 7. Какие есть способы и методологии измерения быстродействия кода? Как можно устранить/уменьшить влияние замеров на быстродействие? 8. Что такое SFINAE? Для чего используется? 9. Что такое метапрограммирование? С помощью чего реализуется на С++? 10. Как использовать variadic templates? 11. Как тестировать закрытые методы? 12. Как считать покрытие тестами? Нужно ли это делать? 13. Что такое cache miss и как это выявить? 14. Что такое SIMD-инструкции? Какие необходимые условия и способы их использования? 15. Что такое покрытие кода и как обеспечивается? 16. Опишите принципы lock-free структур данных и свой опыт работы с ними.   Препроцессор и компиляция   17. Расскажите о построении билд-системы. 18. Как работать с билд-системами: Make, CMake. 19. Как интегрировать third-party в проект? 20. Что такое барьеры памяти? 21. Расскажите о работе с сырыми указателями и о ручном управлении памятью. 22. Что такое статический анализатор кода? Какие знаете? 23. Что такое динамический анализатор кода? Какие знаете? 24. Проект медленно собирается. Как можно ускорить?   C/C++   25. Расскажите об использовании realloc в контейнерах. 26. Как работают шаблоны? 27. Расскажите о специализации шаблонов. 28. Как работает RTTI? 29. Можно ли использовать exception в конструкторе/деструкторе? 30. Что такое rvalue и lvalue? 31. В чем особенности контейнеров std::set, std::map, std::unordered_map, std::hash? 32. Что такое placement new? Для чего используют? Как сделать placement delete? 33. Как размещается в памяти класс со множественным наследованием и виртуальными функциями? 34. Как работают точки остановки? 35. Что такое уязвимости? Каков механизм их работы? 36. Как написать собственный std::shared_ptr? 37. Что такое curiously recurring template pattern? 38. Опишите назначение и принцип работы std::shared_ptr, std::unique_ptr и std::weak_ptr. 39. Какое назначение и отличия использования std::variant и std::any? 40. Какие улучшения получил std::search в С++17 ? 41. Что такое copy elision и когда он становится возможным? Какие особенности для разных стандартов? 42. Что такое Return Value Optimization?   OOP/OOD   43. Объясните принципы SOLID. 44. Объясните принципы KISS. 45. Объясните принципы YAGNI. 46. Какие есть подходы к оптимизации кода? 47. На что стоит обращать внимание при code review? 48. Какие есть паттерны проектирования? Почему не советуют использовать Singleton? 49. Что такое статический полиморфизм?   STL / Algorithms   50. Когда std::vector может использовать std::move? 51. Расскажите о своем любимом алгоритме поиска. 52. Что такое lock-free и wait-free алгоритмы? В чем их отличия и способы реализации? 53. Опишите назначение execution policy для параллельных алгоритмов.   Многопоточность   54. Расскажите о построении API, рассчитанных на многопоточное использование. 55. В чем разница между kernel-level и user-level потоками? 56. Что такое coroutine? 57. Что делает спецификатор thread_local? 58. Как реализовать синхронизацию в задаче producer-consumer? 59. Як синхронизироваться между различными процессами?   SCM / CI / CD   60. Расскажите о настройке процесса менеджмента ветвей репозитория. 61. Расскажите о стратегии разветвления (branching).   Практические задания   62. Напишите базовую реализацию std::shared_ptr. 63. Реализуйте алгоритм сортировки. 64. Реализуйте алгоритм хеширования. 65. Реализуйте shared_ptr с расширением для weak_ptr. 66. Реализуйте простейший producer-consumer, используя условные переменные. 67. Опишите как можно подробнее, что происходит в системе, когда приложение делает сетевой запрос. 68. Детально описать дизайн программного компонента, например, системы голосования; учесть при этом высокую нагрузку и сделать ее расширяемой и отказоустойчивой.   Выражаем благодарность за участие в статье Александру Жакуну, Ярославу Пушко, Назару Семенишину, Сергею Подоброму, Владимиру Кочуну, Владимиру Новикову, Сергею Кривоносу, Марку Цирульнику, Кириллу Пшеничному, Виктору Шуму, Сергею Братусю.    
Как подготовиться к собеседованию в IT на английском

Автор: Влад Сверчков

Английский в IT. Для каких задач нужен? English в школе. Опыт автора. Какой английский необходим для разработчиков и тестировщиков? Что не работает. Что реально работает в изучении English. Как это организовать. Глоссарий. Рекомендации по изучению английского + бонус! Заключение.     Друзья, предлагаем вашему вниманию занимательную статью, написанную на основании интервью одного IT-специалиста из Кремниевой долины. В своё время ему потребовался английский для работы над крутыми международными проектами, однако камнем преткновения стал разговорный English. Это краткая и поучительная история о том, как наш герой перепробовал множество вариантов, но таки смог найти тот самый, который помог ему «заговорить» и добиться желаемого в IT. Приятного чтения!     Приветствую! Сегодня мы поговорим о том, как быстро прокачать английский для собеседований в IT-компанию. Я буду рассказывать на примере своего опыта, когда решения на базе искусственного интеллекта ещё не были распространены. Немного о себе. Меня зовут Александр, сейчас я работаю аналитиком в EPAM в Калифорнии, проект у нас в компании Google. В прошлом у меня уже был опыт управления проектами. Сам я из цеха программистов, но сейчас занимаюсь бизнес-анализом. Эта статья будет полезна в первую очередь для тех, кто хочет подтянуть свой английский для работы в информационных технологиях. Данный способ подходит не только для IT, но и для любой другой сферы. Когда говорим про обучение, нужно понимать, что есть множество способов и вариантов. Я помогу выбрать лучший способ именно в контексте работы в IT. После прочтения статьи вы поймете, как сэкономить время на изучение английского языка. Время – это самый драгоценный ресурс, поэтому думаю, что вам будет полезно. Английский в IT. Для каких задач нужен? Пару слов об IT и какой английский нужен. Приведу свой пример: когда я был разработчиком, English сводился к тому, что я читал мануалы на английском языке, первоисточники, использовал Stack Overflow, читал на форумах. В основном это была текстовая информация, то есть беглое чтение больших объемов информации. Если говорим про какую-то документацию, протоколы и т. д., я выделяю это как первичный уровень знания языка. Также упомяну про английский для резюме. Сталкивался с тем, что у людей прекрасный инглиш, и у них в резюме указано, что уровень B2 или TOEFL. Но касаемо работы это не приносило бенефитов. Нужно четко разделить английский в плане работы, особенно в IT, на два уровня. Английский для различных ролей в IT Английский, который нужен тестировщикам и разработчикам, является первым входным порогом. Следующий порог – это там, где требуется коммуникация, например, для ролей бизнес-аналитика или проектного менеджера, которые общаются с англоговорящими заказчиками или стейкхолдерами. Если говорить о разработчиках, тестировщиках, архитекторах, то один из важных аспектов – это техническое интервью. Оно может быть для собеседования в компанию или внутренним. В моем случае, чтобы подтвердить свою компетентность, я проходил assessment – экзамен, на котором присутствовало пять человек из разных стран с разным уровнем знания языка и акцентами. Нужно было отвечать на профессиональные вопросы и приводить примеры из прошлого опыта. Говоря о техническом интервью, важно отметить, что английский язык необходим не только для понимания вопросов, но и для передачи своего опыта и знаний. Кроме того, есть понятие поведенческого интервью, где тоже важно владеть языком. Английский в школе. Опыт автора Расскажу про свой опыт изучения английского в школе. У нас English был со второго класса, это были базовые буквы и слова. В пятом классе начался обычный школьный английский: много грамматики, сложные слова, которые нужно было заучивать наизусть. Произношению уделялось меньше внимания, особенно если говорить не о гимназиях и школах с углубленным изучением языка. Мы делились на группы по уровню знаний. В одной группе были ученики с более сильным английским, куда попал и я. В другой группе учительствовал профессиональный переводчик без преподавательского образования: ученики слушали песни, общались только на английском – обучение было больше в игровой форме без особого упора на грамматику. Баллы во второй группе, соответственно, были ниже. В итоге, несмотря на хорошие оценки в школе и институте, в реальной жизни, при поездках в Европу, я убедился, что мой английский был недостаточно хорош для повседневного общения – я не понимал людей, равно как и они меня. Чему не учат в школе: Простоте и понятности. В школе не дают базовые потребительские фразы, которые можно заучить и использовать в повседневной жизни. Беглости и плавности. Школьная программа не учит беглому чтению и пониманию общего смысла текста или речи без детального перевода каждого слова. Также не учат говорить плавно и непринужденно, как и пониманию живой речи собеседника. Практическим навыкам. Научиться говорить естественно и понимать собеседника в реальном времени – это то, что приходит с практикой и чего в школе не преподают. Английский, необходимый для разработчиков и тестировщиков Первый и важнейший ресурс – это время. Все хотят быстро выучить язык, но в реальности это требует времени и усилий. Для того чтобы подтянуть английский, нужно им регулярно заниматься, а также использовать на практике. Второй ресурс – деньги. В идеале, чтобы всё было бесплатно. Однако даже если у вас есть средства, нужно понимать, сколько вы отдадите и какое качество получите взамен. Порог входа Для тестировщиков и разработчиков начальным порогом является базовое владение английским, чтобы понимать и использовать техническую документацию, писать простые отчеты о багах, взаимодействовать с другими членами команды. Однако, если вы претендуете на роль бизнес-аналитика или проектного менеджера, где требуется постоянное взаимодействие с англоязычными заказчиками и стейкхолдерами, уровень английского должен быть значительно выше. Технические и внутренние интервью Как я уже упоминал выше, английский пригодится для собеседований на работу в иностранную команду / работу с иностранным заказчиком, а также могут быть внутренние технические интервью (для подтверждения квалификации, например). Важно уметь отвечать на профессиональные вопросы и приводить примеры из своего опыта. Что не работает Учитель-академик. Академический подход с упором на грамматику и теорию мало помогает в развитии навыков свободного общения. Письма, чаты и статьи. Письменная практика не дает значительных результатов в развитии разговорных навыков. Голосовые сообщения. Запись голосовых сообщений создает иллюзию обучения, но не развивает навык быстрой реакции, схватывания на лету и понимания в реальном времени. Зазубривание теории и слов. Заучивание теоретических вопросов и слов не помогает в реальном разговоре, так как любое отклонение от заученного сценария вызывает замешательство. Просмотр фильмов и сериалов. Хотя это полезно для общего понимания языка, данный метод не способствует развитию активных навыков спикинга и понимания на высоком уровне. Что действительно работает при изучении английского Очень эффективным является ежедневное общение на английском языке по 45 минут либо по часу в день. Это может быть разговор с носителем языка или человеком с уровнем выше вашего. Важно, чтобы это была активная разговорная практика, а не пассивное восприятие информации. Практика в экстремальных условиях, когда нужно быстро реагировать и формулировать мысли, значительно улучшает спикинг-навыки. Как это организовать Найдите собеседников внутри компании. Отправьте письмо коллегам с предложением готовиться вместе к профессиональному интервью / экзамену либо чему-то в этом роде. Укажите список вопросов и предложите созваниваться раз в неделю. Таким образом, у вас будет постоянная практика. Используйте сервисы для общения. Как пример – сервисы вроде Conversation Exchange или Italki. Они помогут найти людей для практики, с которыми можно регулярно созваниваться и общаться на английском – как профессиональных преподавателей, так и простых энтузиастов, готовых заниматься за небольшую плату. Именно так я заполнял свой ежедневный часовой спринт. Платные преподаватели. В случае если коллег недостаточно или вы хотите повысить интенсивность занятий, можно обратиться к платным преподавателям на том же Italki. Глоссарий В моей практике словарный запас оказался особенно важен, поскольку необходимо было уверенно использовать профессиональные термины, специфичные для разработки, тестирования, архитектуры и бизнес-анализа. И чтобы свободно общаться я создал свой глоссарий. Как я создал свой глоссарий: Взял книги, которые считаются "библиями" в области управления проектами и бизнес-анализа: PMBOK (Project Management Body of Knowledge) для менеджеров проектов. BABOK (Business Analysis Body of Knowledge) для бизнес-аналитиков. Скачал эти книги в формате PDF, затем скопировал их содержимое в текстовый файл. Заменил все пробелы на переносы строки, чтобы сформировать одну колонку текста. Для анализа текста и выделения наиболее часто используемых слов – Excel. В Excel я создал сводную таблицу (pivot table), чтобы определить частоту встречаемости слов. Из тысячи слов я выбрал 40 самых употребляемых и заучил их. Это позволило мне быстро расширить свой профессиональный словарный запас и начать активно использовать эти термины в своей речи. При построении глоссария важно использовать проверенные и авторитетные источники. Книги, такие как PMBOK и BABOK, предоставляют стандартизированные термины, которые часто употребляются в профессиональных кругах. Это гарантирует, что глоссарий будет достоверным и актуальным. Можете выбрать другие авторитетные книги. Главное — следовать методике: создайте колонку с текстом, проанализируйте частотность слов и выберите наиболее часто встречающиеся термины для заучивания. Рекомендации по изучению английского Ежедневная практика. Первая и самая важная рекомендация — ежедневно уделять не менее одного часа на общение на английском языке. Хотите хорошо говорить и проходить собеседования на английском? Просто говорите и слушайте. Уже через месяц-два регулярной практики вы увидите результаты. Определение канала восприятия. Важно определить, как вы лучше всего воспринимаете информацию: через аудио, текст или визуальные материалы. Экспериментирование. Пробуйте разные методы изучение языка и найдите то, что работает именно для вас. Не бойтесь делать ошибок! Поддержание языковой среды. Окружите себя источниками английского языка для улучшения восприятия и запоминания: текстовый формат: книги, статьи и новости на английском языке; аудио: подкасты, аудиокниги; используйте стикеры с новыми словами и расклейте их на видных местах, чтобы легче запоминать; переведите интерфейсы телефонов и компьютеров на английский язык. Бонус: бесплатный сервис для практики английского языка А теперь я хочу поделиться с вами действительно полезным бонусом — это бесплатный сервис под названием Pramp. Он позволяет вам находить собеседников со всего мира, имеющих разный уровень подготовки. Вы можете выбрать тему для интервью, будь то техническое или поведенческое собеседование. Алгоритм использования Pramp прост: Найдите человека для общения: на выбор множество стран, собеседники с разным уровнем английского. Выберите тему для интервью: FrontEnd, системный дизайн, поведенческое интервью и т. д. Организация созвона, который длится около 30 минут. У вас есть заранее подготовленный набор вопросов. Задаете вопросы своему собеседнику, делаете заметки о том, что понравилось и что можно улучшить. Меняетесь ролями: ваш собеседник задает вам вопросы. В сервисе есть множество готовых наборов вопросов для каждой тематики. Вы можете следовать им или использовать свой собственный список. Так же может поступить и собеседник. Повторюсь: сервис бесплатный. Вы сможете общаться с людьми из разных стран и с различным профессиональным опытом; вопросы и темы максимально приближены к реальным собеседованиям. Вы не только улучшите свои языковые навыки, но и получите ценные советы по прохождению интервью. Я использовал этот сервис для подготовки и могу сказать, что это великолепная возможность. Общался с менеджерами проектов, инженерами из Америки, Азии и Индии. Pramp идеально сочетает в себе все необходимые элементы для успешной подготовки к прохождению собеседований. Заключение Самое главное в изучении английского – это регулярность и интенсивность практики. Ежедневные занятия по часу в стрессовых условиях с различными собеседниками помогут быстро повысить уровень английского языка, улучшить беглость и плавность речи, а также развить навыки понимания собеседника. В своё время мне очень помогли Conversation Exchange, Italki, Pramp. В моём случае я перепробовал много различных вариантов: тексты, статьи, аудиокниги, сериалы, подкасты, преподаватели английского. Наблюдал увеличение словарного запаса, совершенствование грамматики, но «заговорить» так и не мог. В итоге, именно регулярный живой разговорный формат и помог мне достичь успеха на англоязычном собеседовании и осуществить свои карьерные амбиции. Уверен, что мой опыт окажется ценным для многих из вас. Успехов в изучении английского!  
Ruby on Rails – новий курс

Автор: Редакция ITVDN

Дорогі друзі, на ITVDN опубліковано новий відео курс, присвячений вивченню Ruby on Rails – популярного веб-фреймворку для BackEnd-розроблення мовою Ruby! Ruby on Rails (він же "RoR") – це MVC-фреймворк, який успішно застосовується для розроблення різних веб-додатків: від високонавантажених, стійких до відмов сайтів до веб-сервісів з продуманою бізнес-логікою і динамічним веб-інтерфейсом. Курс “Ruby on Rails” складається з 15-ти логічно взаємопов'язаних уроків, під час проходження яких учні застосують на практиці теоретичні знання з імплементації якісного веб-сервісу за допомогою RoR. На курсі будуть розглянуті основні модулі фреймворку Ruby on Rails, тонкощі, пов'язані з побудовою архітектури додатків, заснованих на даному фреймворку, а також з робочою практикою масштабування, налагодження, тестування та доставлення написаного коду на віддалені сервери. Автор курсу – Євген Кушвід, Software Engineer and Data Scientist. У записаних відео уроках він ділиться техніками ефективного використання Ruby on Rails, спираючись на власний досвід та найкращі практики.   Структура курсу: Знайомство з Ruby on Rails. C з MVC. Знайомство з Controllers. Routing. V з MVC. Знайомство з Views. Templates. Assets pipeline. Webpack. M з MVC. Знайомство з ActiveRecord, міграціями та асоціаціями. Інтерфейс запитів ActiveRecord. Валідації та колбеки ActiveRecord. Rails command line. Налагодження Rails додатку (binding.pry). Тестування додатку. Rails Forms. Знайомство з ServiceObject. Знайомство з concerns. Знайомство з FormObject. Пишемо background jobs. Кешування, інтернаціоналізація, serializers. Deploy your Rails app (Heroku / Capistrano). Зміни у Ruby on Rails 6   Чого ви навчитеся на даному курсі: Розуміти структуру веб-додатків. Створювати веб-додатки на Ruby on Rails. Правильно масштабувати створені веб-додатки. Ефективно тестувати та налагоджувати код. Доставляти код на віддалений сервер і запускати його, підтримуючи сервер у постійному Uptime-і.   Попередні вимоги Для розуміння матеріалу даного курсу потрібні знання мови Ruby, командної оболонки Bash, системи управління версіями Git, мови запитів SQL. Дивіться перший урок у вільному доступі. Якщо у вас є активна передплата, курс доступний для вас у повному обсязі.
Kyiv IT Outsourcing Forum 2018

Автор: Редакция ITVDN

Приглашаем на третий Kyiv IT Outsourcing Forum, которая пройдет 20-21 октября 2018 года. Наряду с Lviv IT Outsourcing Forum, который проводится с 2010 года это уже традиционная конференция для владельцев и C-Level менеджмента украинских IT аутсорсинговых компаний. Планируется, что в этом году в конференции примут участие около 500 CEO, CTO, COO, CFO директоров из Украины, Германии, Израиля и других стран Европы. Поговорим о: Как снять нагрузку и затыкание дыр с владельца IT-аутсорсинговой компании На каком этапе какие процессы нужны успешно работающей IT сервисной компании? Что происходит на мировом рынке IT-сервисов? Возможна ли жесткая специализация компании по технологии, домейн, рынка и продукта? Примеры сервисно продуктовых компаний которые "взлетели" в 2018 году. Как построить sales процесс в технологической нише в средней компании? Организационные изменения, драйвят рост и выход в новые формы существования. Уже 9 лет подряд Outsourcing Forum собирает активную часть индустрии аутсорсинга в Украине и служит площадкой для обмена опытом и обсуждения "болезненных" проблем. В результате участия в предыдущих конференциях, участники отмечают увеличение количества работников в своих компаниях, сделки по M & A, увеличение потока клиентов совершенствования собственной организационной структуры и создания или совершенствования стратегии развития компании. Ключевые докладчики конференции: эксперты-практики, владельцы и директора IT-аутсорсинговых компаний, представители компаний-заказчиков аутсорсинговых услуг, консалтинговые и продуктовые компании. Фишка наших последних конференций - частные встречи с ведущими спикерами конференции, в течение которых можно получить полноценной консалтинг по наболевшим вопросам. Собственно в первый день будет полноценная конференционная программа, а уже второй день будет состоять из экскурсий офисами компаний и воркшопов. Организатор: Lemberg Tech Business School: организация с 10-летней историей проведения успешных конференций: Lviv Mobile Development Day, GameDev Conference, Lviv PM Day, Lviv Freelance Forum и BDMSummit. Также в рамках LemBS действуют следующие школы: jCEO School, PMSchool, IMarketing School, SMM School, Startup School Регистрация и подробности на сайте конференции. Скидка в размере 10% по промо-коду: KIOF10CBS
Результати акції Technical Skills Марафон

Автор: Редакция ITVDN

В период с 10 по 20 ноября 2017 года на ITVDN проходила акция Technical Skills Марафон. В акции приняли участие 600 человек, из них 98 успешно выполнили задания практикумов. 21 ноября в 17:00 на YouTube канале в прямом эфире были определены победители марафона. Смотрите видео запись розыгрыша. Как и было заявлено в условиях акции, мы провели розыгрыш 5 подписок на три месяца и 25 подписок на 1 месяц. Вот имена победителей: HTML&CSS Малышев Сергей – подписка на 3 месяца Krasnou Vitali – подписка на 1 месяц Цымбаленко Денис - подписка на 1 месяц Brovenko Vadim- подписка на 1 месяц Хмара Владимир- подписка на 1 месяц Bezvesilny Konstantin- подписка на 1 месяц JavaScript Takes Leios– подписка на 3 месяца Милеев Антон– подписка на 1 месяц Loktionov– подписка на 1 месяц Корольчук Александр– подписка на 1 месяц Korobka Sergey– подписка на 1 месяц Хмара Владимир– подписка на 1 месяц SQL Цуканов Илья - подписка на 3 месяца Иванова Ольга - подписка на 1 месяц Safronyuk Maxim - подписка на 1 месяц Сидоренко Борис - подписка на 1 месяц Brovenko Vadim  - подписка на 1 месяц Prokhorov Konstantin - подписка на 1 месяц C# Starter Цуканов Илья - подписка на 3 месяца Кириличев Владислав - подписка на 1 месяц Белошицкий Николай - подписка на 1 месяц Гурбич Михаил - подписка на 1 месяц Karpenko Volodymyr - подписка на 1 месяц Хмара Владимир - подписка на 1 месяц С# Essential Brovenko Vadim - подписка на 3 месяца Хмара Владимир - подписка на 1 месяц Arsen Grigoryan - подписка на 1 месяц Xazaryan Artur - подписка на 1 месяц Bulyha Nazar - подписка на 1 месяц Nakytniak Dmitry - подписка на 1 месяц 4 участника акции успешно выполнили задания всех 5 практикумов. Вот их имена: Brovenko Vadim Хмара Владимир Korobka Sergey Pokydko Anton Наш супер-герой, выполнивший все задания с максимальными результатами - Brovenko Vadim. Мы поздравляем Вадима и будем рады вручить ему фирменную дженгу и футболку ITVDN! Письма с подорочными сертификатами будут отправлены победителям 22 ноября 2017 года. Благодарим всех участников марафона!
Підсумки першого туру С# Марафону

Автор: Редакция ITVDN

С 10 февраля 2017 года на ITVDN проходит грандиозное соревнование по С# между начинающими .NET разработчиками - С# Марафон. 15 февраля в 18:00 закончился первый тур марафона и мы подводим итоги. В первом туре C# Марафона приняли участие 443 человека. Из них 114 успешно на 100% выполнили все задания. Зарегистрировали свои результаты 88 человек. Имена победителей первого тура и результаты: Andrii Zhyla – 675 баллов/40 попыток, сертификат TP45091150 Вячеслав Добронравов – 675 баллов/40 попыток, сертификат TP11833853 Геннадий Шпинев – 675 баллов/40 попыток, сертификат TP30374953 Дмитрий Пискун – 675 баллов/40 попыток, сертификат TP78742249 Иван Айвазов – 675 баллов/40 попыток, сертификат TP51438451 Игорь Мотькин – 675 баллов/40 попыток, сертификат TP16200253 Роман Качмар – 675 баллов/40 попыток, сертификат TP76011831 Скочко Богдан – 675 баллов/40 попыток, сертификат TP69587008 Теодор Романус – 675 баллов/40 попыток, сертификат TP59677634 Юрий Свешников – 675 баллов/40 попыток, сертификат TP16653744 Подарочные сертификаты на 1 месяц подписки будут отправлены победителям первого тура 17 февраля 2017 года на емейлы, указанные в регистрационной форме. Всех, кто успешно прошел все задания первого тура, мы приглашаем во второй тур, который начнется 17 февраля 2017 года. Задачи второго тура  -  нужно выполнить все задания тренажера и пройти онлайн-тестирование по С# Essential с максимально высокими результатами. Итоги второго тура будут объявлены 27 февраля 2017 года. Победителей ждут ценные призы! 1 место – подписка ITVDN на 3 месяца  и фирменная футболка ITVDN 2 место – подписка ITVDN на 3 месяца и брендированная настольная игра типа Jenga 3 место - подписка ITVDN на 3 месяца и фирменная чашка Также все участники второго тура, которые на 100% выполнят задания и пройдут тестирование с результатами не ниже 70%, получат индивидуальные промо-коды со скидкой 25% на подписку ITVDN. Поздравляем победителей первого тура марафона!
Software Engineering Conference 2016 розширює масштаби.

Автор: Редакция ITVDN

Software Engineering Conference 2016 2-4 сентября 2016 года пройдет самая масштабная в Украине трехдневная конференция Software Engineering Conference 2016. Дата: 2-4 сентября 2016 года Место: Art Hall D12 (Киев, ул. Десятинная, 12) Software Engineering 2016 — ежегодная конференция по разработке программного обеспечения и ИТ-предпринимательству, которая с каждым годом становится все более масштабной. В прошлом году конференцию посетило больше 4000 человек, присутствовало около сотни стартапов и представителей IT- компаний. В этом году конференция будет фокусироваться как на прикладных инструментах, так и на глобальном взгляде на развитие украинского IT. Своей целью конференция ставит поддержку ИТ инициатив технократов Украины, а также поддержку развития стартапов, молодого IT бизнеса и молодых предпринимателей. Мероприятие объединит в себе девять потоков докладов, пригласит международных спикеров и модераторов из лучших geek-сообществ. Отдельно будет проходить поток для стартапов, на котором они смогут узнать об инструментах управления, маркетинге, работе с аудиторией и юридических вопросах. Но лекциями конференция не ограничится. Будет работать маркет технологических новинок,  IT библиотека с обучающей и мотивирующей литературой, зона для геймеров с приставками и широким выбором игр, на career wall можно будет подыскать интересные предложения от работодателей, а также ежедневно будут проходить after work вечеринки. Организаторы не забудут уделить внимание и спорту: в перерывах пройдут лекции и практические занятия с рекомендациями от лучших тренеров  Украины.   Каждый день будет проходить три потока докладов: 2 сентября: Career and Trends, IOT and BigData, UI/UX; 3 сентября: Java and C++, Python (ruby), Exotic (Scala, Erlang, Elixir etc); 4 сентября: JS, Android, IOS, Поток на все три дня (2-4 сентября) — Start-up stage. Маркетинг, PR, менеджмент, общение с фондами и инвесторами. Конференция будет интересна разработчикам, дизайнерам, стартапперам, менеджерам и маркетологам.  Для каждого участника конференция станет возможностью познакомится с новейшими технологиями, инструментами разработки и маркетинга, полезными лайфхаками, возможность научиться новому и пообщаться с топовыми специалистами девелопмента, промоушена и дизайна.   Организаторы конференции - компания Inhacking, своей глобальной и долгоиграющей целью ставит поддержку ИТ, развитие стартап сообщества и менторскую поддержку украинских ИТ предпринимателей.
Хакатон EPAM HackDay

Автор: Редакция ITVDN

16-17 апреля в Санкт-Петербурге пройдет хакатон EPAM HackDay, на котором более 300 разработчиков на Java, JavaScript или DevOps, QA, Big Data, .NET, Test Automation, C++, дизайнеров, архитекторов программного обеспечения объединятся в команды, чтобы разработать и представить собственные ИТ-проекты. Участники получат ровно 24 часа на реализацию своих задумок от идеи до работающего решения.   Номинации: Tech - за технически сложный прототип проекта, полностью разработанный на EPAM HackDay; Data Driven Solution - за разработку решения в области использования и обработки данных; Social Impact - за применение IT-решений для проектов, которые могут повлиять на жизнь общества; Special Prize from EPAM - за нестандартное и инновационное решение. Победители разделят призовой фонд размером 250 000 рублей. Помимо этого, участников ждут море сувениров и возможность работать над интересными проектами в отличной компании. EPAM HackDay стартует в субботу (16 апреля) в 9:00 в пространстве “Скороход” по адресу: Санкт-Петербург, Московский проспект, дом 107, корпус 5. Представление разработанных проектов начнется в воскресенье (17 апреля) в 17:30. Подробная программа здесь. Участники могут объединиться в команды заранее, либо сформировать команды после регистрации непосредственно на мероприятии. Участие бесплатное. Регистрация обязательна. Организатор хакатона компания EPAM, один из мировых лидеров в сфере ИТ и консалтинга. Сегодня EPAM объединяет более 16 000 высококвалифицированных ИТ-профессионалов. В трех офисах EPAM в Санкт-Петербурге работает больше 1000 сотрудников. Давно хотели в команду такого уровня? Входной билет перед вами, осталось его взять.
Notification success