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

300+ курсів за популярними IT-напрямками

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

Підписка
Підписка

300+ курсів за популярними IT-напрямками

Результати пошуку за запитом: mvc 5
500+ питань на співбесіді щодо Ruby

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

Дорогие друзья! Предлагаем вашему вниманию перевод статьи, опубликованной на DOU.ua 14 июня 2021 года. Оригинальная версия на украинском языке доступна по ссылке. Junior Ruby Developer Middle Ruby Developer Senior Ruby Developer Что нужно знать, когда проходишь техническое собеседование по Ruby? Конечно, ко всем вопросам готовым не будешь, но мы попросили интервьюеров-практиков прислать свои списки вопросов, а затем обобщили их в одном материале. Junior Общие вопросы 1. Какие принципы программирования вы знаете и какие из них вы пытаетесь соблюдать чаще всего? 2. Что такое парадигма ООП? Какие основные составляющие парадигмы? 3. Зачем нужна инкапсуляция? Что может произойти и не произойти, если все методы будут иметь модификатор доступа public? 4. Что такое наследование? Назовите пример(ы) плохого наследования (такое наследование, которое не стоило бы реализовывать). 5. Что такое полиморфизм? Приведите пример использования полиморфизма. 6. Что такое паттерн/шаблон проектирования? Какие шаблоны знаете? 7. Что такое клиент и сервер? Какая механика их взаимодействия? 8. Опишите путь, который проходит запрос после того, как в браузер ввести URL любого ресурса. 9. Что такое протокол HTTP? Какая разница между HTTP и HTTPS? 10. Что такое API? Может ли веб-приложение использовать более одного API? 11. Что такое REST API? Какие действия чаще всего выполняются над ресурсами? 12. Что такое сессия? Что такое cookies? Какая разница между ними? 13. Какие веб-уязвимости знаете? Как от них защититься? Какие есть инструменты, чтобы автоматически контролировать защиту от веб-уязвимостей? 14. Какими критериям пользуетесь для выбора библиотеки? 15. Что такое рефакторинг? Какие должны быть условия для выполнения рефакторинга? 16. Знаете ли вы семейство UNIX-подобных операционных систем (Linux, MacOS)? Назовите команды, которые чаще всего используете в терминале. 17. Что такое аутентификация? 18. Что такое авторизация? 19. Из каких частей состоит HTTP Request и HTTP Response? 20. Какие HTTP-статусы (HTTP-коды) знаете? На какие группы вы могли бы их разделить? 21. Какие HTTP-методы знаете? Зачем используется каждый из них? Git 22. Знакомы ли вы с системой Git? 23. Для чего нужны ветки в Git? Как сделать ветку? 24. Как скопировать с Git-хостинга (GitHub / GitLab / Bitbucket / другие) проект? 25. Что такое флаг -f? Для чего он и какие минусы использования? 26. Что такое Pull Request? Зачем ветви соединяют через Pull Request? 27. Какие еще команды чаще всего применяете, когда пользуетесь Git? Ruby 28. Как вы контролируете версии Ruby на своей локальной машине? 29. Что такое метапрограммирование? Какие плюсы и минусы при использовании метапрограммирования? 30. Какой менеджер библиотек для Ruby знаете? Как добавлять библиотеки? Как контролировать версии библиотек? Style guide 31. Что такое style guide и зачем его используют? 32. Какой популярный линтер контролирует выполнение большей части пунктов с Ruby Style Guide? Основы Ruby 33. Какие типы переменных есть в Ruby? 34. Что вернётся в результате сложения 10.5 и 10? 35. Чем отличаются переменные, начинающиеся с @, @@ и $? 36. Что такое attr_reader, attr_writer, attr_accessor и зачем они? 37. Что такое метод? 38. Что значит "?" в конце названия методов? Что означает "!" в конце названия методов? 39. Чем отличается энумератор map от each? 40. Что такое модуль? Какие есть варианты подключения модулей в класс? 41. Что такое класс и зачем он нужен? 42. Что такое модуль и зачем его используют? Чем модуль отличается от класса? 43. Что такое константа? 44. Что такое блок? Что такое yield? Можно ли передавать блоки в методы? Каким образом? 45. Что такое proc? 46. Что такое lambda? 47. В чем разница между proc и lambda? 48. Что такое eigenclass? 49. Какие виды условных операторов есть в Ruby? (if, unless, ternary, case) 50. Есть ли разница между операторами && и and? 51. Какие виды циклов есть в Ruby? (loop, while, until, for, each(), times(), upto()) Типы данных 52. Какие типы данных есть в Ruby? 53. Что такое интерполяция? 54. Что такое конкатенация? 55. Что такое массив в Ruby? 56. Что такое Hash в Ruby? Чем Hash отличается от массива? 57. Что такое символ и зачем он нужен? 58. Что такое Range и зачем его используют? 59. Что такое Time и Date? 60. Что такое Struct? 61. Что такое File? Структура классов и объектов 62. Что такое BasicObject? 63. Что такое Numeric? 64. Что такое Enumerable? 65. Что такое Struct? 66. Что такое OpenStruct? 67. Что такое Set? 68. Что такое Queue? 69. Что такое Object? 70. Что такое Kernel? ООП на Ruby 71. Есть ли интерфейсы в Ruby? 72. Что такое getter и setter в Ruby? Как их создавать? 73. Что такое инстансная переменная? 74. Что такое константа класса? 75. Какая разница между методом класса и методом объекта? 76. Какие есть области видимости? 77. Какие есть модификаторы доступа? Как private отличается от protected? 78. Поддерживает ли Ruby множественное наследование? 79. Как наследуются методы? Можно ли переопределить метод? 80. Зачем метод super? 81. Что такое Singleton-метод? 82. Что такое миксины? Зачем они и чем отличаются от декоратора? 83. Что такое include и extend и в чем разница между ними? 84. Какой путь поиска метода в иерархии классов? 85. Какая разница между последовательными и именуемыми аргументами метода? 86. Что такое exception? Когда они применяются? Как вызвать exception? Как отловить exception? Метапрограммирование 87. Что означает open class? 88. Что такое monkey patching? 89. Возможно ли создать класс динамически? Если да, то как именно? 90. Какие есть способы динамического управления методами, переменными и классами (define_method(), class_eval(), module_eval())? 91. Как происходит поиск метода в иерархии? Как можно обработать отсутствие метода (method_missing())? 92. Что такое алиас метода? Для чего нужны алиасы? 93. Как получить значение инстансной переменной? Как задать значение? Как проверить существование инстансной переменной (instance_variable_get(), instance_variable_set(), instance_variable_defined())? 94. Какие методы интроспекции есть в Ruby (class(), ancestors(), methods(), private_methods(), instance_variables(), singleton_methods(), local_variables())? 95. Что такое хуки и зачем их используют (inherited(), included(), method_added(), singleton_method_added(), method_missing())? RubyGems 96. Что такое gem? Что такое RubyGems? 97. С какой целью используют RVM? Что такое gemset? 98. Что такое Bundler и зачем он? 99. Что такое Gemfile и для чего его используют? 100. За что отвечает каждый из gem`ов? Если знаете нюансы в работе какого-либо из них — обязательно озвучьте. active_admin active_model_serializers bundle audit bcrypt devise jwt cancancan / pundit draper kaminari sidekiq rspec shoulda-matchers faker factory_bot simplecov rubocop (with extensions) pry Ruby on Rails 101. Что такое MVC? Является ли Rails MVC-фреймворком? 102. Что такое миграция? Для чего она нужна? Какие правила создания миграций? 103. Что такое роуты? Что такое resource и resources в роутах? 104. Чем отличается has_many through от has_and_belongs_to_many? 105. Зачем используют concerns? 106. Как работать с sensitive-данными в Rails-приложениях (токены, ключи и т. д.)? Как работает механизм credentials в Rails? 107. С какой целью используют локалы (locals)? Style guide 108. Знакомы ли вы с RoR style guide? Структура файлов в Rails 109. Из чего состоит Rails-приложение? Какая архитектура директорий? Зачем нужна каждая из них? 110. Чем отличается lib от vendor? 111. Как создать background job в Rails? 112. Какие способы загрузки ассоциаций в Rails? Модели и ActiveRecord 113. Зачем нужны модели? Что представляет собою модель? 114. Что такое ORM? Что такое ActiveRecord? 115. Какие есть правила наименования моделей и таблиц в базе данных? 116. Что такое миграции и зачем нужен этот механизм? Как создавать миграции? 117. Какие виды валидаций есть в AR? 118. Как можно вызвать валидацию? Когда валидация вызывается автоматически? Как можно отключить валидацию при сохранении? 119. Что такое callback в Rails? 120. Какие есть виды колбеков в AR? 121. Какие виды ассоциаций есть в AR? 122. Что такое has_one и belongs_to? 123. Что такое has_many? 124. Что такое has_many: through? 125. Что такое has_one: through? 126. Что такое has_and_belongs_to_many? 127. Что такое полиморфная ассоциация? 128. Что такое STI? 129. Каким образом можно получить данные из базы данных? Как получить один объект и коллекцию? Как задать условия выборки? 130. Что такое скоупы? Какова их функция? 131. Як выполнить произвольный SQL-запрос? 132. Как посмотреть информацию о том, как выполнялся запрос, какие использовались ключи и т. п.? Контроллеры 133. Что такое контроллер? Какую задачу выполняет? 134. Что такое action? Что такое CRUD action? 135. Что такое permit params? 136. Что такое ActiveRecord? Как он реализован в Rails-фреймворке? 137. Что такое параметры? Как они попадают в контроллер? Что такое дефолтные параметры (в роутах)? Что такое стронг-параметры? 138. Что такое cookies и зачем они? Где хранятся cookies? Как получить доступ к cookies? 139. Что такое сессии и в чем их задача? Где хранятся сессии? Как получить доступ к сессии? 140. Какие виды фильтров есть в Rails? (Before / after / around actions) 141. Зачем нужен объект Request? Какую информацию он содержит? 142. Для чего нужен объект Response? Какую информацию он содержит? 143. Что такое стриминг? Каким образом можно отдать файл на загрузку (Send_data, send_file)? 144. Что такое Rescue в контроллерах и для чего применяется? 145. Как принудительно включить использование HTTPS-протокола? Маршрутизация 146. Что такое роуты и в чем их функция? 147. Что означает аббревиатура CRUD? 148. Если нужно сделать новый CRUD для определенного ресурса, какие классы вы создадите и какие файлы измените? 149. Что такое ресурсы? 150. Что такое Singular ресурсы и что отличает их от обычных ресурсов? 151. Что делают неймспейсы в роутах? 152. Что такое вложенные ресурсы? 153. Что такое shallow nesting? 154. Что означает RESTful роуты? 155. Что такое нересурсные роуты? 156. Что такое actions в роутах? View 157. Что такое view и для чего он нужен? 158. Что такое layout? Чем отличается от view? 159. Что такое шаблонизатор и с какими шаблонизаторами приходилось работать? 160. Зачем нужен метод render? Что рендерить с его помощью? 161. Как передаются переменные во view? 162. Что такое partial? Когда стоит его применять? 163. Что такое хелпер и зачем его используют? 164. Какие есть хелперы для генерации роутов? 165. Какие есть хелперы для генерации форм? 166. Как создавать собственные хелперы? Интернационализация Rails 167. Что такое i18n? Зачем нужна i18n? Как она устроена в RoR? В каком виде можно хранить переводы? ActionMailer 168. Что такое ActionMailer и какие задачи он решает? AssetsPipeline 169. Что такое AssetsPipeline и какие задачи он выполняет? Инструменты консоли и rake-таски 170. Какие есть консольные команды для работы с RoR? Что такое rake-таски? Безопасность 171. Знаете ли вы какие-то уязвимые места, защиту от которых Rails предоставляет out of the box? 172. Какие атаки могут быть при неправильном использовании сессий? Почему нельзя хранить важные данные в сессиях? 173. Что такое CSRF? Как правильно защититься от CSRF? 174. В чем уязвимость Open Redirect? Как защититься от возможных атак, связанных с Open Redirect? 175. Какие уязвимости связаны с загрузкой файлов? Почему важно фильтровать имена и расширения файлов? Как защититься от опасности? 176. Почему нельзя загружать файлы в каталог, доступный снаружи? Что будет, если злоумышленник загрузит файл с кодом? 177. Какие уязвимости связаны с управлением пользователями (ссылка активации, пароли в чистом виде)? Как защититься? 178. Что такое инъекции и как происходит такая атака? Как их избежать? 179. Как организовать безопасную генерацию приглашений? Что такое deep_munge? Конфигурация 180. Где располагается основная конфигурация программы? 181. Что такое initializers? Зачем они? 182. Что такое окружение? Каково его назначение? 183. Как и где настраивается взаимодействие с базой данных? 184. Как и где настраивается Assets, генераторы, мидлвары, i18n? 185. Можно ли указывать произвольные настройки? Если да, то где и каким образом? Кэширование 186. Что такое кэш и зачем нужен этот механизм? 187. Какие виды кэширования есть в Rails? 188. Где может храниться кэш? 189. Зачем использовать кэширование страниц? 190. Зачем использовать кэширование экшенов? 191. Зачем использовать кэширование фрагментов? 192. Что такое Memcached? 193. Зачем и как реализуется низкоуровневое кэширование? 194. Как и когда кэшируется SQL? 195. Как тестировать кэширования в режиме разработки? Реляционные базы данных Теория реляционных баз данных 196. Что такое СУБД? 197. Что такое реляционная база данных? 198. Что такое нормализация базы данных? 199. Что такое нормальная форма? 200. Сколько есть нормальных форм баз данных? 201. Опишите первые три нормальные формы баз данных. 202. Что такое денормализация баз данных? 203. В чем разница между Primary Key, Foreign Key? Зачем они? 204. Какая разница между LEFT JOIN, INNER JOIN, RIGHT JOIN? 205. Как добавить запись в таблицу без ORM? 206. Как обновить запись в таблице без ORM? 207. Как удалить запись из таблицы без ORM? 208. Как прочитать записи в таблице без ORM? 209. Какие правила группировки данных в таблице вы знаете? SQL 210. Что такое DML (Data Manipulation Language)? 211. Что такое DDL (Data Definition Language)? 212. Что такое DCL (Data Control Language)? 213. Что такое TCL (Transaction Control Language)? 214. Как выбрать данные из нескольких таблиц? Какие виды JOIN вы знаете? 215. Какие агрегированные показатели можно использовать во время выборки из таблицы? 216. Что такое таблица в базе данных? 217. Как создать таблицу? 218. Как выбрать записи из таблицы? 219. Как вставить запись в таблицу? 220. Как изменить запись в таблице? 221. Как удалить запись из таблицы? 222. Как объединить выборку из разных таблиц? 223. Что такое группировка или агрегирование? 224. Каким образом можно задавать условия агрегирования? Индексы баз данных 225. Что такое индексы в базе данных? 226. Для чего нужны индексы? 227. Какие виды индексов существуют? 228. Что такое первичный ключ? 229. Что такое внешний ключ? 230. Что такое составной ключ? Полнотекстовый индекс в базах данных 231. Что такое полнотекстовый поиск и в чем его задача? 232. Что такое полнотекстовый индекс? 233. Что такое ts_vector? 234. Что такое ts_query? PostgreSQL 235. Что такое select distinct и какова его функция? 236. Каким образом можно сортировать результаты выборки? 237. Как ограничить количество результатов выборки? 238. Как проводить поиск по подстрокам? 239. Какие виды объединений (JOIN) есть в PostgreSQL? 240. Что такое подзапросы и в чем их задача? 241. Какие типы данных есть в PostgreSQL? 242. Какие есть виды символьных типов данных? 243. Какие есть виды типов данных для работы с датой и временем? 244. Что такое тип enum? Когда он используется? 245. Как можно создавать таблицы в базе данных? 246. Как изменять структуру таблицы? 247. Как удалять таблицы? 248. Как очистить таблицу? 249. Возможно ли задавать значения по умолчанию для полей? Если да, то как именно? 250. Возможно ли контролировать уникальность значений при вставке? Если да, то каким образом? 251. Что такое функции в PostgreSQL? 252. Какие операторы есть в PostgreSQL? Базы данных NoSQL Redis 253. Что такое Redis и зачем используют этот инструмент? Elasticsearch 254. Что такое Elasticsearch и зачем его используют? Статический анализ кода 255. Что такое Overcommit и зачем нужен? 256. Что такое Danger и для чего используется? 257. Что такое статические анализаторы кода? Зачем их используют? 258. Какие анализаторы для Ruby / Ruby on Rails знаете? 259. Какие статические анализаторы кода для JavaScript знаете? Тестирование 260. Какие виды тестирования знаете? Какие из них вы практиковали при использовании Rails? 261. Какой фреймворк для тестирования используете? 262. Какие показатели качества для своих тестов можете назвать? 263. С помощью какой библиотеки вы контролируете процент покрытия тестами? 264. Расскажите об основах тестирования в Ruby. Что такое RSpec? Какая разница между describe, context и it? 265. Какая разница между юнит-тестами и интеграционными? 266. Что проверяют приёмным тестированием? 267. Что проверяют интеграционным тестированием? 268. Что тестируют в моделях? 269. Что тестируют в контроллерах? 270. Что тестируют в сериалайзерах? 271. Как тестировать API? 272. Как тестировать различные Service Objects? 273. Что такое RSpec? Какие задачи выполняет этот инструмент? 274. В чем разница между let и let! в RSpec? 275. Какие хуки в RSpec знаете? 276. Что выполняется раньше: let! или хук before (:all) ? 277. Что такое Capybara? Какие задачи решает Capybara? 278. Что такое стабы? 279. Что такое моки? 280. Что такое матчер? 281. Какую задачу выполняет гем Shoulda Matchers? 282. Какую задачу выполняет Faker? 283. Зачем нужны Webmock и VCR? Чем они отличаются? 284. Что такое WebKit и PhantomJS? В чем разница между ними? Какие еще есть драйверы? 285. Как работать с базой данных в тестах? Как работает gem database_cleaner? Дополнительные RubyGems и Rails плагины 286. Какую задачу выполняет Devise? 287. Какую задачу выполняет Rake? 288. Какую задачу выполняет Cancancan и Pundit? 289. Какую задачу выполняет Kaminari и Will_paginate? 290. Какую задачу выполняет Carrierwave? 291. Какую задачу выполняет MiniMagick? 292. Какую задачу выполняет Aasm? 293. Какую задачу выполняет ActiveAdmin? 294. Какую задачу выполняет Nokogiri? 295. Какую задачу выполняет Formtastic и SimpleForm? 296. Какую задачу выполняет Omniauth? 297. Какую задачу выполняет Draper? 298. Какую задачу выполняет Faye? 299. Какую задачу выполняет Pusher? 300. Какую задачу выполняет Sidekiq, Resque? 301. Какую задачу выполняет Mongoid? Управление, сервисы и DevOps 302. Что такое SSH? Как и для чего используется? 303. Каким образом можно настроить аутентификацию на хосте без пароля? 304. Какие задачи выполняет Heroku? В чем его особенность? 305. Какие задачи выполняет Digitalocean? 306. Какие задачи выполняет Docker? Мониторинг 307. Какие задачи выполняют Airbrake, DataDog, NewRelic? 308. С какой целью используют Monit? Ruby Web Tools 309. Какие есть веб-серверы, написанные на Ruby? 310. Что такое Sinatra? 311. Что такое API? Для чего используется? Что такое сериалайзеры и зачем они нужны? 312. Что такое клиент-серверная модель? 313. Какая разница между GET- и POST-запросами? 314. Что такое HTTParty и какие задачи он выполняет? 315. Что такое Faraday и какие задачи он выполняет? 316. Что такое Rack? Что такое Rack-application? Что такое Rack middleware? 317. Что такое push-технология? Интеграции 318. Есть ли опыт интеграции с Facebook? Если да, то на каком проекте? 319. Есть ли опыт интеграции с Twitter? Если да, то на каком проекте? 320. Есть ли опыт интеграции с LinkedIn? Если да, то на каком проекте? 321. Есть ли опыт интеграции с Google? Если да, то на каком проекте? Практические задания 322. Описать в ООП-стиле: один из предметов интерьера в контексте конкретного бизнеса. Например, кресло, на котором сидит кандидат, теперь надо продавать в магазине. 323. Написать консольную версию игры «крестики-нолики», где входные данные передаются через gets, а выводят через puts. Два пользователя на одной машине должны иметь возможность сыграть партию. 324. Отсортировать массив. 325. Написать функцию, которая вернет уникальные элементы массива, не используя функцию uniq или set, to_set со стандартной библиотеки. Middle Общее 1. Что такое SOLID? Приведите примеры на каждую из букв. 2. Что такое микросервисная архитектура? Какие плюсы и минусы вы видите во время её использования? 3. Знаете ли вы шаблоны проектирования Singleton / Factory / Facade / Decorator / Template Method / Strategy? 4. Можно ли измерить скорость выполнения алгоритма? Какие факторы влияют на скорость? Какие виды зависимостей вы знаете? 5. Что такое методология Scrum? На каких активностях / встречах может присутствовать / быть полезным Software Developer? 6. Какие инструменты для логирования используете в работе? 7. Какие инструменты для мониторинга веб-приложений используете? 8. С помощью какого/каких инструментов вы деплоили приложения на staging / production? Опишите процесс. 9. Если один из ендпоинтов в приложении отрабатывает очень долго, что делать, чтобы улучшить скорость? 10. Чем отличается библиотека от фреймворка? 11. Что такое трехзвенная архитектура? Зачем и когда ее используют? Приведите примеры. 12. Что такое кэширование? Зачем и когда его используют? Приведите примеры. 13. Что такое функциональное разделение? Зачем и когда его используют? Приведите примеры. 14. Что такое Comet-сервер? Зачем и когда его используют? Приведите примеры. 15. Что такое денормализация? Зачем и когда ее используют? Приведите примеры. 16. Что такое деградация функциональности? Зачем она и в каких случаях используется? Приведите примеры. 17. Что такое сервис-ориентированная архитектура? Зачем и когда ее используют? Приведите примеры. 18. Что такое монолитное приложение? Зачем и когда его используют? Приведите примеры. 19. Что такое асинхронная обработка? Зачем и когда ее применяют? Приведите примеры. 20. Что такое ленивые вычисления? Зачем и когда их используют? Приведите примеры. Предметно-ориентированное проектирование 21. Что такое DDD? В чем преимущества перед классическим MVC? 22. Что такое домен? 23. Что такое модель? 24. Что такое контекст? 25. Что такое сущность? 26. Что такое value object? 27. Что такое агрегирование? Git и code review 28. Что делают команды cherry-pick, log, stash, reset, squash? 29. Что такое Gitflow? Какие правила использования Git на вашем прошлом проекте? 30. Каких правил именования комитов / ветвей / Pull Request`ов вы придерживаетесь? 31. На что обращаете внимание при code review? 32. Что бы вы могли назвать плохо проведенным code review? Базы данных 33. Для чего нужны индексы? 34. Какие есть виды индексов? 35. Ускоряют ли индексы все операции с базами? 36. Что такое DB view? 37. Чем отличаются materialized db view от non-materialized db view? 38. Как можно сохранить данные в различные таблицы и гарантировать, что все они или запишутся, или нет? 39. Можно ли строить индексы по нескольким полям? Важен ли порядок этих полей в индексе? 40. Какие вы знаете constraints при создании столбцов? 41. В чем разница между SQL и NoSQL базами данных? 42. Как бы вы импортировали большие массивы данных в БД (1-2 миллиона строк в CSV-файл)? 43. Что такое N+1 и как избегать? Реляционные базы данных 44. Какие различия между джоинами FULL OUTER JOIN, CROSS JOIN, NATURAL JOIN, INTERSECT и EXPECT? 45. Какие специфические типы данных есть в PostgreSQL? 46. Что такое view? С какой целью используется? 47. Что такое materialized view? 48. Что такое recursive view? 49. Что такое хранимая процедура и зачем она нужна? 50. Что такое партиционирование и какую проблему оно решает? 51. Умеете ли вы работать с чистыми SQL-запросами? 52. Каким образом можно работать с геолокацией в PostgreSQL? 53. Какие способы резервного копирования данных? Что такое pg_dump? В каком виде можно создавать резервные копии? NoSQL базы данных Redis 54. Что такое Redis? Какие задачи он выполняет? 55. Какие типы данных есть в Redis и для чего нужен каждый из них? 56. Что такое pub / sub? 57. Что такое транзакции? 58. Что такое mass insertion? 59. Что такое партиционирование? 60. Умеете ли работать с Redis в консоли? 61. Умеете ли настраивать Redis? Elasticsearch 62. Что такое Elasticsearch и какие задачи он выполняет? 63. Что такое кластер? 64. Что такое нода? 65. Что такое индекс? 66. Что такое тип? 67. Что такое документ? 68. Что такое шарды и реплики? 69. Что такое Query DSL? 70. Что такое мапинг? Статический анализ кода 71. Что такое overcommit и зачем нужна эта утилита? 72. Что такое danger и для чего используют эту утилиту? 73. Какую задачу выполняет каждый из нижеперечисленных гемов? Rubocop; Reek; Rails Best Practices; Brakeman; RubyCritic; SimpleCov; Bundle Audit; Bundle Leak; Traceroute. 74. Какие задачи выполняет каждый из нижеперечисленных модулей? Eslint; Stylelint; Prettier. Ruby 75. Какие проблемы в Ruby (как в языке программирования) вы видите? Какие, по вашему мнению, нужно решать как можно быстрее? 76. Какими библиотеками, кроме фреймворка Rails, пользовались для создания структуры проекта? 77. Как можно в Ruby запросить сторонний API? Какой встроенный класс позволяет это сделать? 78. Что такое Thread? Чем он отличается от Process? 79. Есть ли в Ruby возможность создать абстрактный класс? Есть ли способ искусственно создать абстрактный класс? 80. Есть ли в Ruby возможность множественного наследования? Есть ли способ искусственно заменить множественное наследование? 81. Назвать максимально точный путь поиска методов в Ruby 82. Какие минусы использования method_missing знаете? 83. Можно ли узнать идентификатор объекта в памяти, если да, то каким образом? 84. Какие виды enumerator для массива вы знаете? 85. Что такое мемоизация методов? Зачем ее используют? 86. С помощью какого хука можно посчитать количество потомков определенного класса? 87. В чем разница запуска rspec и bundle exec rspec? 88. Создавали ли вы гем в Ruby? Какая механика / последовательность действий для создания гема? 89. Что такое Rack middleware? 90. Есть такой код:             users = User.where (id: [1,3,4])             users.where (name: "Alex")             users.inspect После какой строчки кода ActiveRecord выполняет запрос в базу? Ruby on Rails 91. Что такое ActiveSupport? Зачем нужен? Какие задачи выполняет? Приведите пример методов, которые добавляет ActiveSupport. 92. Что такое Action Cable? Зачем используют этот фреймворк? 93. Как создать функциональность для отправки имейла в Rails-приложении? 94. Какие библиотеки для background jobs использовали? Какая механика работы таких библиотек? 95. Какие и виды кэша в Rails знаете? Где можно хранить кэш? 96. Какие библиотеки / подходы для создания API документации знаете / используете? 97. Что такое Swagger? Какие преимущества создания API документации в Swagger-формате? 98. Что такое Query Objects? Когда и как их можно использовать? 99. Что такое Decorators? Когда и как их можно использовать? 100. Что такое Form Objects / Contract? Когда и как их можно использовать? 101. Где и как вы рекомендуете держать бизнес-логику в Rails-приложении? 102. Что такое JSON API формат? Использовали ли вы библиотеки для сериализации объектов в JSON API формате? Тестирование 103. Работали ли вы с feature-тестами? Что такое capybara? 104. Что такое TDD? Какие преимущества / недостатки использования TDD-подхода видите? 105. Что такое BDD? В чем отличие между TDD и BDD? 106. Что может быть причиной того, что тесты на проекте выполняются очень долго? 107. Что такое принцип тестирования FIRST? 108. Как порекомендуете писать тесты на код, в котором посылается запрос на сторонний сервис (API)? 109. Какие инструменты помогают контролировать качество тестов? 110. Какие составляющие response`a вы тестируете, когда пишете тест на определенный эндпоинт? 111. Является ли 100% code coverage на проекте залогом низкой вероятности что-то «сломать» во время багфиксинга / имплементации новой функциональности? Объясните свой ответ. Управления, сервисы и DevOps 112. Опишите CI / CD-подход на своем последнем проекте? Как бы вы его изменили? 113. Какие в целом Continuous strategies знаете? Чем отличается Continuous Deployment от Continuous Delivery? 114. Что такое Docker? Чем отличается Docker от виртуальной машины? 115. Для чего используют docker-compose? 116. Умеете ли вы работать с Docker? 117. Что такое image в Docker? Как работать с ним в Docker? 118. Что такое container в Docker? Как работать с контейнерами? Как запускать и останавливать контейнеры? Как узнать список рабочих контейнеров? 119. Что такое Docker Daemon? 120. Что такое Docker Client? 121. Что такое Docker Hub? 122. Что такое Docker Compose? Практические задания 123. Написать клиент для открытого API ресурса с использованием только низкоуровневых библиотек: Net::HTTP, HTTP.rb, Faraday, etc. 124. Как бы вы посчитали количество пассажиров, которые заходят или выходят на определенной станции метро? 125. Посчитать количество автомобилей в пробке. 126. Организовать автомобильную стоянку. 127. Написать функцию, которая вернет уникальные элементы массива, не используя uniq или set, to_set со стандартной библиотеки. Ожидается вариант с применением хеш-таблицы, где ключами будут уникальные элементы из массива, а значениями true. Senior Общие вопросы 1. Опишите основные способы аутентификации в API. 2. Назовите основные принципы построения REST API. 3. Вам нужно спроектировать API, какие основные вопросы будете задавать клиенту? 4. Какие основные преимущества и недостатки монолитной архитектуры? 5. Какие основные преимущества и недостатки микросервисной архитектуры? 6. Что такое SOLID? Какие из принципов, по вашему мнению, чаще всего нарушаются, какие являются наиболее критичными? 7. Опишите Singleton-паттерн. Где и когда вы его использовали? 8. Опишите принцип работы DNS? 9. Что такое code smells? Каковы основные признаки плохого кода? 10. Что такое reverse proxy, для чего он нужен? 11. Что такое load balancer, основные разновидности? 12. Что такое MVC и как не попасть с ним в беду? 13. Опишите процесс обработки HTTP-запроса на примере любого веб-фреймворка в Ruby (Rails, Hanami, Sinatra, Roda, etc). 14. Чем отличается refactoring от оптимизации? Как и когда нужно выполнять каждый из вышеназванных процессов? 15. Знаете ли вы GraphQL? Какие плюсы и минусы вы видите по сравнению с REST? 16. Что такое multi-tenant architecture? Когда рекомендуете ее использовать? 17. Чем отличается понятие Dependency Inversion от Dependency Injection и от Inversion of Control? 18. Что такое GDPR? Назовите правила, которые использовали, чтобы быть GDPR compliant? Метапрограммирование и DSL 19. Параллельное выполнения кода через Thread, Fiber, Ractor. Объясните на примерах. 20. Дизайн-паттерны: Service, Form, Value, Policy, Guard, etc. Объясните на примерах. 21. Расскажите об архитектурных паттернах: Monolith, Microservices, Distributed app, etc. 22. Как организовать бизнес-логику, когда в проект уже 1000+ бизнес-операций? 23. Что такое Sidekiq? Как правильно организовывать очереди? 24. Расскажите об оптимизации быстродействия через benchmark, lineprof и flamegraph. 25. Работали ли вы с Garbage collector? Расскажите. 26. Расскажите о собственных примерах решений, которыми гордитесь и почему. Ruby / Rails 27. Что такое Thread? Какие особенности использования тредов в разработке? 28. Что такое Process? Какие особенности использования процессов в разработке? 29. Что такое Mutex? Приведите примеры использования мьютексов в разработке? 30. Если нужно определить, сколько выполняется тот или иной код, как порекомендуете это сделать? 31. Какие недостатки видите в Ruby? Когда и как они могут себя проявить во время разработки? 32. Можно ли передать контекст выполнения одного метода в другой метод? Если да, то как это сделать? 33. Какие callback-s знаете в Ruby? 34. Как реализовать Singlethon-класс Ruby? Опишите базовые концепты. 35. Как работает Garbage collection в Ruby? Опишите базовые концепты. 36. Что такое Ractor? Какая разница между классической моделью работы с тред и работой с помощью Ractor? 37. Как работают Lazy Enumerators? Чем они отличаются от классических Enumerators? Как и когда они могут помочь? 38. Назвать примеры использования Fiber`ов 39. Как include добавляет метод модуля в класс? Что происходит на уровне MRI? В чем разница по сравнению с extend и prepend? 40. У вас есть задача импортировать пользователей в базу Rails-приложения. Пользователи записаны в CSV-файле, где каждая строка - это данные. Опишите ваш подход к решению проблемы. Как изменится решение, если файл станет очень большим (> 300000 строк)? 41. Если в модели User у вас есть callback, то какие могут возникнуть проблемы при решении предыдущей задачи? 42. Как мы можем отслеживать прогресс Background Job? 43. Опишите жизненный цикл Request - Response в Rails. Через какие основные компоненты фреймворка проходит запрос и для чего они нужны? 44. Какие основные типы тестов используете и с какой целью? 45. Как вы относитесь к интеграционным тестам? 46. Что такое полиморфные ассоциации в ActiveRecord? 47. Как бы вы порекомендовали построить semantic versioning для Rails API, работающего с мобильными приложениями (iOS, Android, Web)? Поверхностно опишите стратегию. 48. Если необходимо, чтобы каждый запрос, пришедший к Rails app независимо от роута, возвращал 403 статус как можно быстрее, как бы вы порекомендовали реализовать код для этой задачи? 49. Какие, по вашему мнению, пять основных минусов Rails? Что бы вы порекомендовали изменить, чтобы нейтрализовать эти минусы? 50. Можно ли в Rails работать с несколькими базами, если да, то как это сделать? Базы данных 51. Что такое транзакция? Какие основные свойства транзакций? 52. Что такое database lock и чем он отличается от транзакций? 53. Что такое Pessimistic и Optimistic locking? 54. У нас есть таблица Users. Мы добавили к ней индекс в трех полях: first_name, last_name, email. Именно в таком порядке. Теперь делаем запрос SELECT * FROM users WHERE first_name = "Alex" AND email = "<a href="mailto:test@mail.com"> test@mail.com </a>". Поможет ли нам индекс ускорить такой запрос, и почему? 55. Что такое Database View? Какие виды есть? 56. Что такое Database trigger? 57. Что такое партицирование? Опишите кейсы, когда партицирование было бы полезным? 58. Поверхностно опишите шаги для реализации партицирования на примере любой СУБД. 59. Что такое триггеры? Как и когда их можно использовать? Какие плюсы и минусы вы видите в сравнении с тем, чтобы использовать триггеры / колбеки на уровне бэкенд? 60. Что такое WAL? Какую роль он играет? 61. Была ли у вас возможность / необходимость использовать шардинг? Чем отличается шардинг от партицирования? 62. Опишите принципы, преимущества и недостатки работы с primary / secondary (master / slave) репликацией? 63. Знакомы ли вы с CAP-теоремой? Если да, объясните основную идею. 64. Знаете ли вы ACID? Как вы понимаете букву "I" в этой аббревиатуре? 65. Представьте ситуацию, когда ваш сервер, на котором размещен redis, по неизвестным причинам перезапустился. Что рекомендуете сделать заранее, чтобы такие ситуации не нанесли большой вред? Тестирование 66. Знаете ли вы, что такое Load Testing? Чем может помочь разработчик при Load Testing? 67. Какие инструменты используют для того, чтобы собрать как можно больше метрик при Load Testing? 68. Какие подходы вы бы порекомендовали использовать, чтобы ускорить тесты на CI? 69. Как внедрить процесс написания тестов, если проект (Rails API) их совсем не имеет? Практические задания 70. Написать реализацию структуры данных Set. Объяснить алгоритмическую сложность добавления элементов к сету. 71. Спроектировать реферальную систему (то есть, пользователь может пригласить других пользователей, которые становятся его рефералами, они приглашают своих рефералов, и так формируется древовидная структура). Есть модель: class Users <ActiveRecord :: Base             end Как бы вы связали ее с рефералами? 72. Добавьте метод: class Users <ActiveRecord :: Base             end который возвращает рефералы пользователя поуровнево. Например, user имеет рефералы user1, user2. user1 имеет реферала user3, user2 имеет рефералов user4 и user5. Должны получить результат: {0 => [user]             1 => [user1, user2],             2 => [user3, user4, user5} Спасибо за вопросы Денису Земляному, Николаю Воронину, Сергею Гнилицкому, Владимиру Свередюку, Михаилу Одинюку, Виктору Нову, Александру Шестопалу, Андрею Зеленцу, Кириллу Шевченко, Виктору Новицкому.
Вивчайте Spring безкоштовно

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

С 19 по 25 июня 2020 года на ITVDN проходит акция - вы можете пройти обучение по курсу Spring бесплатно! Что такое Spring? Spring — это фреймворк, который помогает разрабатывать простые, быстрые, гибкие и переносимые приложения на Java. Особенности ядра Spring применимы в любом Java-приложении, и существует множество расширений и усовершенствований для построения веб-приложений на Java Enterprise платформе. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк. О курсе Автор - Роман Дзюба, Java Developer. Курс состоит из 10 видео уроков общей продолжительностью 6 часов 9 минут. В курсе рассмотрены различные способы использования модулей Spring, написание REST приложений, использование MVC моделей и другие темы. Программа курса: Введение в Spring Внедрение зависимостей и IoC контейнер Spring MVC Spring Data Spring Testing AOP RESTful web services Security Cache Boot Для кого этот курс Этот курс предназначен для Java разработчиков,он предполагает базовые знания программирования на Java и входит в комплексную программу обучения по специальности Java Developer. Чему вы научитесь на этом курсе: Понимать механизмы работы основных модулей Spring Framework. Использовать принципы Инверсии управления (Inversion of Control) и Внедрения зависимостей (Dependency Injection) для создания более качественной архитектуры приложения. Понимать принципы паттерна MVC и уметь создавать контроллеры для обработки запросов пользователя. Настраивать соединение приложения с реляционной БД и создавать методы для выполнения запросов к БД. Создавать модульные и интеграционные тесты для вашего приложения. Понимать принципы Аспектно-ориентированного программирования и использовать их для уменьшения дублирования кода, сокращения времени разработки, упрощения кода и его сопровождения. Создавать веб-сервисы, используя стиль архитектуры REST (Representational state transfer). Настраивать безопасность приложения на уровне методов и на уровне конечных точек (endpoints). Создавать роли пользователей и настраивать права доступа. Ускорять процесс разработки приложений и сокращать время на их развертывание. Как получить Сертификат по курсу Spring После каждого урока Вы сможете проходить онлайн тестирование, чтобы проверить, как усвоен материал, а после завершения курса пройти финальный тест, и, если Ваш результат будет выше 70%, Вы получите электронный сертификат, подтверждающий Ваши знания. Сроки акции Акция проходит 19 по 25 июня 2020 года. Доступ к курсу открывается на 10 дней. Изучайте программирование на ITVDN!
Хто такий Full-stack розробник

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

Суперечки навколо Full-stack Різновиди Full-stack розробників. Стек мов та технологій для кожного Плюси професії Full-stack Developer Мінуси професії Full-stack Developer Як стати Full-stack розробником? Зарплати Full-stack розробників Підсумки Оновлено 9 червня 2023 року Привіт, друзі! Full-stack розробник (вимовляється "фул стек") – це якийсь майстер на всі руки у світі веб-розробки. Йому під силу реалізувати як клієнтську, так і серверну сторону додатку, якими, зазвичай, займаються FrontEnd і BackEnd розробники окремо один від одного. Таким чином, Full-stack спеціаліст здатний одноосібно вести проєкт від початку до кінця. Ще в далеких нульових і раніше не існувало такого розподілу обов'язків між розробниками. Відносна простота ПЗ, що розроблялося, так само як і технології того часу дозволяли тримати процеси, які зараз виконують різні люди, в одних руках. Наприклад, у ті часи IT-фахівець, який називається веб-майстром, і зовнішній вигляд сайту створював, і серверну частину реалізовував, і розміщував сайт на хостингу. Тобто, Full-stack розробники існували і раніше, просто ніхто їх так не називав. Однак IT-сектор не стояв на місці. Вимоги до програмних продуктів зростали, з'являлися нові мови та технології, змінювалися підходи до розробки. Дерево IT почало ставати все більш гіллястим, породжуючи нові спеціальності. Разом із цим професія універсального бійця розбилася на два окремі напрямки, а потім знову відродилася з гордою назвою "Full-stack Developer". Суперечки навколо Full-stack Не все так гладко, як здається на перший погляд. Багато досвідчених програмістів та IT-фахівців вищої ланки не визнають цю посаду за визначенням. "Чому?" — спитаєте ви. Адже раніше були ті самі веб-спеціалісти, які успішно поєднували обов'язки сучасних напрямків — фронту та беку. Чому сьогодні поняття Full-stack викликає суперечки? Поширеною є думка, що Full-stack розробників не існує, а ті, хто такими називаються, насправді не відповідають вимогам цієї спеціальності. Наприклад, Сергій Немчинський — програміст з 20-річним стажем, керівник та власник навчально-виробничої компанії FoxmindEd — в опублікованому відео на YouTube відгукується про Web Full-stack розробників наступним чином (посилання): “В принципі, в ідеалі, Full-stack розробник – це класно та чудово. Проблема в тому, що... Таких немає. Фактично все, що ми маємо на ринку з тих людей, які називають себе Full-stack девелоперами – це приблизно 50% BackEnd девелоперів, які трошки вивчили FrontEnd і вже можуть Angular або React скомпілювати і, відповідно, зібрати-підключити, плюс трошки розуміють у верстанні – навіть не на рівні Junior верстальника. Вони у більшості випадків зробити добре, красиво не можуть ніяк. Максимум, що можуть – зробити так, щоб кнопка натискалася. Або ж Full-stack девелопери – це решта 50% FrontEnd розробників, які трошки вивчили BackEnd; в більшості випадків – якийсь Node.js. Можливо, PHP. Такий розробник мінімально вміє щось підрихтувати, але, знову-таки, говорити про те, що він сяде і напише вам нормальний Full-stack додаток – ні, ні і ще раз ні. (…) Чесно скажу, мені ідея з об'єднанням у Full-stack девелоперів здається, з одного боку, не дуже вдалою, тому що фактично ми отримуємо "ні риба, ні м'ясо". З іншого боку, ринок вимагає – отже, треба. Тому затребуваність у Full-stack девелоперів, за великим рахунком, трохи більша, ніж у чистих BackEnd або FrontEnd розробників. Однак ринок вже усвідомив, що вони (Full-stack розробники) у своїй більшості "ні риба, ні м'ясо", і тому термін "Full-stack" починає пропадати. Тепер просто вважається, що це BackEnd розробник з невеликим знанням фронту і, навпаки, FrontEnd розробник з невеликим знанням однієї з BackEnd мов. Мені здається, що так набагато правильніше”. Інші розробники схиляються більше до того, що Full-stack розробка – це ні що інше, як хитрощі бізнесу. Роботодавець не бажає переплачувати за двох різних фахівців, віддаючи перевагу більш дешевому аналогу, котрий вміє все те саме. По суті, вся суперечка щодо Full-stack розробника зав'язана на скептицизмі. Прихильники міфологічності цієї професії не вірять у існування розробника, здатного добре реалізувати як FrontEnd, так і BackEnd частини, оскільки за обома ховається безліч технологій і мов, а вивчити все і працювати не гірше за фронтендерів і бекендників — практично неможливо. Ті ж, хто займаються Full-stack девелопментом, парирують, вказуючи на велику кількість часу, проведеного за розробкою, в ході чого так чи інакше доводиться заглядати по інший бік барикад і розбиратися в усіх процесах, що супроводжують розробку всього проєкту від і до. Ну а далі справа техніки — вивчаєш необхідні інструменти, практикуєшся і можеш самостійно працювати над цілим проєктом. Звичайно, пізнання у всіх використовуваних мовах і технологіях у Full-stack спеціаліста будуть не такі глибокі, як у вузькоспеціалізованих побратимів по цеху, але зробити повноцінний робочий проєкт з нуля, реалізувавши як BackEnd, так і FrontEnd, йому буде під силу. Різновиди Full-stack розробників Варіацій Full-stack розробників насправді безліч: PHP Full-stack Developer, Node.js Full-stack Developer, Java Full-stack Developer і так далі. Назва, яка стоїть на початку спеціальності, говорить про те, яка мова/платформа береться за основу під час реалізації BackEnd частини. Стек технологій FrontEnd практично завжди однаковий і відрізняється лише використовуваними JavaScript-фреймворками / бібліотеками: Angular, React або Vue.js. А ось бекенд надає набагато більше можливостей для реалізації своїх амбіцій. Ще раз проговоримо, що Full-stack Developer – це розробник, який бере безпосередню участь у всіх етапах розробки веб-додатків: від створення клієнтської частини (візуальна частина + логіка користувача) до реалізації серверної (бази даних, серверна архітектура, програмна логіка). Який стек технологій та мов знаходиться у розпорядженні цього фахівця? Якщо говорити про FrontEnd складову (клієнтська сторона), то вона у всіх приблизно однакова: мова верстання HTML та мова стилів CSS; мови програмування JavaScript та TypeScript; препроцесори SASS та LESS; фреймворк Angular/Vue.js або бібліотека React; технології DOM, AJAX, REST API, знання про інтернет та веб-технології в цілому тощо; навички адаптивного та кросбраузерного верстання. А що потрібно знати full stack розробнику із серверного набору? Тепер розберемося з відгалуженнями в бекенді, які вказують на популярні мови та технології, що використовуються під час реалізації серверної сторони веб-додатків, котрі розробляються. Node.js Full-stack Developer BackEnd складова (серверна сторона) може мати різну начинку, на відміну від FrontEnd. Якщо говорити про Node.js Full-stack розробника, то в якості основної мови виступає JavaScript, а сам стек наступний: платформа Node.js; фреймворки Express.js, Nest.js; пакетний менеджер npm; Web Sockets; розуміння REST API; інші спеціалізовані технології. Java Full-stack Developer Головний акцент робиться на мову програмування Java та пов'язані з нею технології. BackEnd-стек у такого розробника має бути наступним: мова Java + Java Core; веб-сервер Apache; інструменти для комфортної взаємодії з БД – JDBC, Hibernate; веб-сервіси; фреймворк Spring та його популярні модулі (Spring MVC, Spring Boot, Spring REST, Spring Web тощо); ASP.NET Full-stack Developer .NET розробники мають широкий інструментарій для самореалізації у вебі. Як основну мову програмування вони використовують C#. Скарбничка знань BackEnd частини у ASP.NET Full-stack Developer-а повинна містити: мову C#; знання інфраструктури .NET. платформу ASP.NET MVC/ASP.NET Core (Web API); Entity Framework (Core); хмарний сервіс Azure; мову T-SQL; розуміння RESTful API. PHP Full-stack Developer PHP – класична мова веб-розробки. Типовий BackEnd-стек даного розробника відрізняється від інших своєю компактністю. РНР у вебі вже досить давно, а тому йому багато не потрібно; достатньо лише: власне, сама мова PHP; фреймворк Yii2/Symfony/Laravel. Python Full-stack Developer Універсальність Python не знає меж! Не стала винятком сфера веб-розробки. BackEnd-стек Python Full-stack спеціаліста наступний: мова Python; фреймворк Django/Flask; REST API; Web Sockets; навички роботи з ОС Linux та веб-сервером Nginx/Apache (можливо); досвід роботи із хмарними сервісами. Також окрім спеціалізованих технологій, усім Full-stack розробникам необхідно: знати систему керування версіями Git + сервіс для хостингу IT-проєктів GitHub; знати реляційні (SQL) та нереляційні (NoSQL) бази даних, вміти їх проєктувати; розумітися на протоколах HTTP, HTTPS та роботі FrontEnd + BackEnd загалом; вміти оперувати мовою запитів SQL та однією із СУБД – MySQL / PostgreSQL / SQLlite, або однією з NoSQL СУБД (MongoDB, Redis, Cassandra, наприклад); вміти проводити тестування додатків; здійснювати Code Review; використовувати Docker; володіти англійською мовою на рівні Intermediate та вище; знати популярні патерни програмування та вміти їх реалізовувати; мати гарне знання алгоритмів та структур даних. Також від Full-stack спеціаліста можуть вимагати навички мобільної розробки, якщо роботодавець має намір портувати веб-додаток на відповідні платформи. Як бачите, список необхідних мов і технологій для створення гарної серверної складової веб-додатків є досить значним. У наступному розділі ми розберемося, які переваги та недоліки чатують на тих, хто таки має намір пов'язати свою професійну діяльність з Full-stack розробкою. Плюси професії Full-stack Developer Можливість самостійно вести цілий проєкт Очевидна перевага розробника даної спрямованості полягає в об'єднанні двох течій – FrontEnd та BackEnd – в одному фахівці. Крім того, що такий професіонал здатний реалізувати обидві частини веб-додатку, він може безпроблемно налаштувати їхній взаємозв'язок, що є частим каменем спотикання між фронтендниками та бекендниками. Тим самим усуваються непорозуміння і протиріччя, які неминуче виникли б між декількома розробниками, які працюють над одним і тим самим продуктом. В'ячеслав Лобода, Senior Full-stack PHP Developer, про свою професію відгукується наступним чином: “Часто при вирішенні завдань веб-розробки виникає необхідність вносити редагування одночасно і до FrontEnd, і до BackEnd. Для цього можна найняти двох різних спеціалістів чи одного Full-stack розробника. Останній варіант дозволяє заощадити час на комунікацію” Даний відгук і всі наступні взяті зі статті на dou.ua "Кар'єра в IT: посада Full-stack розробник". Висока швидкість розробки, можливість приймати власні рішення, мінімальні витрати часу на зайву комунікацію Full-stack розробник – це вже фахівець досить високого рівня, який здатний приймати певні самостійні рішення, не витрачаючи час на зайві обговорення та узгодження з іншими розробниками, адже проєкт цілком перебуває під його крилом. “Подобається, що можу створювати веб-додатки одноосібно, менше затримок під час роботи. Наприклад, коли працюєш як FrontEnd і потрібно, щоб BackEnd віддавав нові дані, ти просиш колегу внести зміни, чекаєш. Full-stack розробнику чекати ні на кого не потрібно. Взяв і зробив як слід” – Геннадій Догаєв, Web Full-stack Developer Легкість пошуку роботи на фрілансі На біржах фрілансу замовники найчастіше шукають такого веб-спеціаліста, який зробить всю роботу самостійно без залучення додаткових розробників. Хто, як не Full-stack девелопер найкраще підійде на цю роль, маючи таку перевагу перед вузькоспеціалізованими побратимами? Отже, обравши цей шлях, ви не залишитеся без роботи і зможете користуватися всіма благами, які дарує фрілансерство. Великі кар'єрні можливості Широкоформатність професії Full-stack розробника дозволяє реалізувати себе в будь-якій сфері веб-девелопменту. Ви можете в будь-який момент перейти на більш вузький профіль – чисту FrontEnd або чисту BackEnd розробку (горизонтальний розвиток, поглиблення в конкретну сферу діяльності), а можете стати сильним тімлідом або архітектором, який чудово розуміється на всіх процесах створення веб-додатків і має багатий досвід за плечима (вертикальний розвиток, просування кар'єрними сходами). Також Full-stack розробник може знайти успішне застосування своїм здібностям у стартапах. Стартап-команди, як правило, мають дуже малий бюджет і їм набагато вигідніше мати тих, хто може взяти на себе обов'язки декількох людей. Таким чином ви і новий досвід отримаєте, і зможете попрацювати над чимось свіжим, цікавим, раніше не баченим. Ну а щодо потреб ринку в Full-stack розробниках навіть згадувати не варто – безліч компаній хоче отримати спеціаліста широкого профілю в свій штат. Кількість вакансій для них менша, ніж для фронтендників та бекендників, однак і конкуренції теж не так багато. Мало рутини та вигорянь Багата на різноманітність діяльність Full-stack розробників знижує ризики загрузнути в одноманітній роботі. Ви володієте великим арсеналом знань, що дозволяє вам періодично перемикатися між проєктами і менше втомлюватися від застосування одних і тих самих технологій. Легкість у розвитку свого продукту Ви маєте достатньо знань та вмінь, щоб самостійно створити власний проєкт. У майбутньому ви зможете організувати свою команду для вдосконалення та подальшого розвитку програмного продукту, проте вже на старті ви маєте все необхідне для того, аби реалізувати ваші ідеї. Мінуси професії Full-stack Developer Програш вузькоспеціалізованому розробнику на його полі бою Full-stack девелопер володіє багатьма інструментами, але не може знати кожен настільки ж добре, наскільки окремо взятий фахівець. Ця професія передбачає подібне розпилення і унеможливлює поглиблення в будь-яку мову або технологію. Виходить, ви вмієте все, але гірше за розробника конкретного напряму. Багато часу на навчання Технологій, які має опанувати Full-stack спеціаліст, багато. Під час вивчення, наприклад, бекенду легко забути те, що ти вчив по фронтенду. Щоб усі знання та вміння утримувати на гарному рівні, необхідно витрачати багато зусиль. Впоратися з цим можна наступним чином: вивчаєте одну спеціальність, влаштовуєтеся на роботу, а потім вивчаєте другий напрямок. Виходить, ви не тільки поточні знання зберігаєте, але й примножуєте їх, рухаючись до фул-стек розробки. “Нарощуйте компетенцію поступово, з невеликих завдань. Пройдіть курс із напрямку, якого вам бракує, щоб вникнути в базові принципи. А далі опановуйте знання на практиці за правилом Learning by doing” – Олексій Голубєв, Team Lead Full-stack Developer в GlobalLogic. Важко стежити за новими тенденціями Світ IT дуже гнучкий і мінливий. Наче імперії – виникають і руйнуються нові мови, технології, підходи в розробці ПЗ, техніки написання та ревізії коду. Вам, як фахівцю широкого профілю, необхідно знати всі новинки, адже, зрештою, цього і вимагатимуть від вас роботодавці — використання сучасних інструментів та підходів. Занадто багато обов'язків Роботодавці іноді починають висувати велику кількість вимог до фул-стек фахівця. Раніше згадуваний Full-stack розробник Геннадій Догаєв має таку думку щодо цього: “Замовники хочуть звалити на одну людину надто багато. Наприклад, вже зустрічаються оголошення Node.js+React.js+React Native, тобто до веб-стеку додається ще й мобільна розробка. Це впливає на якість знань та кінцевого продукту: чим більше технологій потрібно охопити, тим більш поверхнево знаєш кожну з них. Крім того, людині не можуть подобатися всі напрямки одночасно. Мені з цього набору не дуже цікава мобільна розробка”. Вами хочуть залатати дуже багато дірок Фул-стек розробнику можуть часто делегувати різноманітні завдання на робочому місці. Дописати за кимось код, щось переглянути, пофіксити, доробити. Працювати замість FrontEnd/BackEnd розробника, який пішов у відпустку, – мила справа. А якщо вас найняли як альтернативу 5-ти розробникам, то й взагалі будуть тримати як раба. Складні завдання Ви знаєте більше інших, а значить, вам під силу розібратися з тою чи іншою важкою задачею. Принаймні так думає той, хто вам їх роздаватиме. Велика завантаженість Як ви вже помітили за попередніми пунктами, Full-stack розробнику не дадуть відпочити. Справ по вуха – це точний опис його стану на кожний робочий день. Складнощі у заміні Цей пункт одночасно є і перевагою, і недоліком. З одного боку, вам важко знайти заміну і, відповідно, вас цінуватимуть. З іншого боку, вам буде проблемно піти у відпустку, адже де взяти заміну? Тут і почнуться дзвінки у будь-який час доби, неможливість перекладання деяких завдань на інших розробників та інше. Як стати розробником Full-stack? Відповідь проста – оберіть найбільш близький до вас варіант професії та вивчіть необхідні технології за допомогою різних ресурсів, або підіть на курси full stack розробників. Радимо зробити свій вибір на користь освітньої IT-платформи ITVDN – тут ви зможете знайти 90% усіх потрібних вам відео курсів за будь-яким із обраних напрямків. Наприкінці статті ми залишимо корисні посилання на всі спеціальності, які допоможуть вам у вивченні ремесла Full-stack. Наприклад, вам сподобався BackEnd-стек Python розробника – тоді вам підійдуть 2 курси за наступними спеціальностями: FrontEnd Developer. Python Developer. З кожною програмою навчання ви зможете ознайомитися докладніше, перейшовши за залишеними посиланнями. Зарплати Full-stack розробників Відповідно до липневої зарплатної аналітики від DOU.ua (опитано 6605 українських розробників), медіанна зарплата FullStack розробників наступна: Junior – 980 USD; Middle – 2475 USD; Senior – 4750 USD. При цьому ЗП у колег по цеху – FrontEnd та Mobile розробників – приблизно такі ж. Єдині, хто помітно виділяються – BackEnd девелопери рівня Middle та Senior. Їхня медіанна оплата праці становить 2800 USD і 5000 USD відповідно, що на кілька сотень доларів перевищує зарплату фулстеккерів. Якщо звернутися до міжнародного веб-сайту з пошуку роботи Jooble (має українське коріння), то станом на липень середня пропозиція щодо зарплати для FullStack Developer у Києві становить 114 183 грн (приблизно 3100 USD). Відповідно до міжнародного опитування Stack Overflow Developer Survey 2023 (понад 90 000 респондентів з усього світу), річна медіанна ЗП FullStack фахівця складає 71 140 USD (приблизно 5930 USD на місяць). Підсумки Full-stack Developer — універсальний веб-розробник, який поєднує у собі силу FrontEnd та BackEnd напрямків. Так, спеціалізовані девелопери зроблять всю роботу краще, ніж фул-стек фахівець, проте головний коник героя цієї статті – можливість розробляти повноцінні веб-додатки самостійно, доводячи їх до повністю готового стану. Як і будь-яке інше, Full-stack ремесло має свої переваги та недоліки. Шлях, яким повинен пройти full stack розробник з нуля досить тернистий і насичений. Проте недаремно казали класики — терпіння та праця все перетруть. Так що все у ваших руках! Можливо, нас читають розробники Full-stack? Із задоволенням прочитаємо вашу точку зору на позиції, викладені в цій статті. Також будемо раді будь-яким питанням та зауваженням від усіх читачів! Ну а тим, хто вирішив обрати професію Full-stack Developer, ми бажаємо бути впертими, оптимістичними і з незагасаючим вогником спраги знань в очах. Успіхів та кодерського натхнення на вашому шляху!   Корисні посилання Весь каталог спеціальностей: ІТ-спеціальності на ITVDN. FrontEnd складова: відео курс за спеціальністю FrontEnd Developer. BackEnd складова: Python Developer PHP Developer ASP.NET MVC Developer ASP.NET Core Developer Java Developer Онлайн навчання в групі з тренером за спеціальністю FullStack Node.js Developer.
ТОП-10 найкращих відео з Java від ITVDN

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

Вітаємо, друзі!   Сьогодні на вас чекає підбірка класних, наповнених корисним контентом відео від ITVDN за напрямком Java. Топ насичений як теоретичними відеоматеріалами, які допомагають побудувати ефективне навчання, так і практичними вебінарами, орієнтованими на прокачування навичок програмування за допомогою джави та супутніх технологій (фреймворк Spring, Elasticsearch). Отже, які відео увійшли до цього рейтингу?     Карта спеціальності Java розробник   Автор – Андрій Бондаренко, Android Developer & Trainer, Samsung R&D Institute, Ukraine   Java – це популярна об'єктно-орієнтована мова програмування, якою написані програми для більш ніж 3-х мільярдів пристроїв по всій планеті. Сфера її застосування практично безмежна, а ті, хто добре володіють Java, мають великі можливості та завжди будуть забезпечені цікавими завданнями та високооплачуваною роботою.   На вебінарі ви отримаєте відповіді на всі питання, пов'язані з навчанням, набуттям досвіду, розстановкою пріоритетів у виборі технологій та навчальних матеріалів, а також кар'єрою програміста Java-напрямку.   Програма зустрічі:   Хто такий Java розробник? Актуальність спеціальності та затребуваність на IT-ринку. Як стати Java розробником: попередні вимоги; картка спеціальності; огляд обов'язкових та факультативних технологій.         Де та як вивчити мову програмування Java. Як отримати перший практичний досвід Стажування та перша робота - можливості і перспективи. Питання та відповіді.     Створення базового Spring Boot веб-сервісу на Java   Автор – В'ячеслав Аксьонов, Java/Kotlin Software Engineer   Spring Boot – це найпопулярніший фреймворк для розроблення веб-додатків на Java. У вебінарі буде розглянуто, як влаштовані додатки, котрі створені з використанням Spring Boot, на прикладі найпростішого stateless веб-сервісу. Також автор розгляне http взаємодії з використанням REST, побудову масштабованої архітектури бізнес-логіки, взаємодію з базами даних через найбільш популярні та прості прийоми.   План вебінару:   Що таке Spring/Spring Boot та Dependency Injection. Контекст та як його створювати. @Service/@Component/@Repository/@Controller – що все це таке і навіщо потрібно. Створюємо шаблон проєкту Spring Boot. Пишемо веб-сервіс із нуля. Розглядаємо найбільш простий та зручний спосіб роботи з базою даних. Перевіряємо працездатність та відповідаємо на запитання.     3. Як стати Java розробником у 2021?   Автор – Максим Федосов, Java Developer   З цього вебінару ви дізнаєтеся, як почати свій шлях у якості Java розробника – від новачка без досвіду в програмуванні до рівня фахівця, затребуваного на ринку.   У вебінарі будуть розглянуті дві сторони:   Що вчити: автор поділиться своїм баченням того, що потрібно вивчати насамперед як базу, що потрібно опановувати на етапі пошуку першої роботи, і що потрібно підтягнути, коли спеціаліст вже працює (на прикладі Java стеку). Як шукати роботу: з боку побудови кар'єри йтиметься про те, які шляхи можна обрати для побудови кар'єри, про ринок з точки зору роботодавця, курсів, шукачів. Який проєкт краще обрати, як часто змінювати роботу, як розвивати свою кар'єру.   Весь вебінар буде розділено на 2 частини – до першої роботи та під час роботи. В результаті у фахівців-початківців з'явиться конкретний план дій для того, щоб розпочати кар'єру, а у працюючих фахівців — розуміння того, як рости далі.   План вебінару:   Знайомство, трохи про себе та свій шлях у IT-сфері. Що потрібно вчити розробнику-початківцю Java. Напрацювання практики програмування. Портфоліо. Підготовка до пошуку роботи та подальша кар'єра.     4. Elasticsearch - пишемо свій пошуковик на Java   Автор – Федір Яременко, Senior Java Developer   На вебінарі буде розглянуто, як на Java реалізувати повнотекстовий пошук на об'ємному масиві документів з мінімальними затримками за допомогою Elasticsearch.   План вебінару:   Про повнотекстовий пошук та індексацію Огляд Elasticsearch Налаштування проєкту Додавання індексів Пошук за індексом Пошук за кількома полями Пошук у знайденому Агрегація результатів пошуку Пошук запитів з помилками Інші корисні опції пошуку Ранжування результатів Налаштування форматування результатів Пагінація Налаштування індексів для російської та української мов Асинхронні виклики Масштабування за допомогою кластера Візуалізація даних за допомогою Kibana Висновок       5. Створення 2D гри Танчики з Денді на Java з нуля   Автор – Андрій Бондаренко, Android Developer & Trainer, Samsung R&D Institute, Ukraine   Дане відео є захоплюючим онлайн тренінгом із написання графічної гри "Танки", який допоможе легко і швидко познайомитися з практичною стороною розроблення на Java. Нуль теорії – лише практика.   Кому це буде корисно:   Новачкам. Відсутність досвіду у програмуванні не повинна вас зупиняти. Ми даємо вам шанс зробити свою першу програму на Java та отримати досвід практичного застосування цієї мови програмування у створенні справжньої комп'ютерної гри. Розробникам-початківцям Java без досвіду. Ви зможете поглибити і застосувати на практиці знання мови Java під керівництвом тренера.   Чого ви навчитеся:   Писати прості програми та підпрограми з використанням мови Java Працювати з масивами даних Використовувати типи даних та класи Java Застосовувати всі базові навички (змінні, умовні конструкції, цикли, методи) на практиці   Програма тренінгу:   Створення карти поля бою. Робота над пересуванням танка Реалізація стрільби. Навчання танка рухатися у вказаний квадрант. Додавання танка-ворога. Підсумок: танк проходить все поле бою та чистить його. Відповіді на питання. Куди розвиватись далі?     6. Spring для початківців. Огляд можливостей та переваг. Початок роботи зі Spring   Автор – Дзюба Роман, Java Developer   Spring – це один з найбільш популярних та універсальних фреймворків для створення веб-додатків для бізнесу. Він дає Java-розробникам більшу свободу в проєктуванні програм, надаючи засоби вирішення проблем корпоративного масштабу. Spring має велику документацію і досить простий у використанні.   Дане відео є першим відеоуроком з відео курсу “Spring”, який знайомить з однойменним фреймворком.   На самому курсі розглядаються різні способи використання модулів Spring, написання REST додатків, використання MVC моделей та інші теми.   Проходження курсу за даним фреймворком буде корисним як тим, хто тільки познайомився з мовою Java і шукає, що вчити далі, так і тим, хто вже має певні знання і хоче освіжити в пам'яті навички використання SpringCore, SpringWeb, SpringSecurity.   Головні теми цього відео:   Ознайомлення із базовими принципами фреймворку. Переваги Spring, знайомство з основними принципами ООП та поняттям POJO. Області видимості Java Bean.     7. Створення гри Морський Бій на Java з нуля. (Частина 1, Частина 2)   Автор – Антон Кашніков, Java Developer, тренер-консультант CyberBionic Systematics   Відео у форматі онлайн тренінгу з написання консольної гри "Морський бій". З його допомогою ви швидко познайомитеся з Java, відразу ж розпочавши розроблення. Як результат – ви випробуєте джаву у справі, відчуєте її потужність, а також отримаєте на виході власноруч зроблену гру, яка після доопрацювання може стати чудовим проєктом у вашому майбутньому резюме Java розробника.   Програма тренінгу:   Частина 1   Знайомство із засобом розроблення IntelliJ IDEA та мовою програмування Java. Розбивання проєкту на підзавдання. Робота з масивами під час створення поля бою. Створення перших об'єктів. Використання об'єктів з масивами.   Частина 2   Тонкості роботи з консоллю при відображенні ігрових об'єктів. Продумування логіки гри. Створення геймплею. Оброблення винятків. Розбір помилок. Підбиття підсумків.     Що потрібно знати Java розробнику? ➤ Як вивчити Java?   Автор – Дмитро Саєвський, Java Developer   На цьому вебінарі ви дізнаєтеся, чим займається джавіст, які типи розроблення Java найбільш затребувані. Також автор розгляне весь шлях Java розробника з моменту вибору цієї спеціальності до рівня Senior.   План вебінару:   Типи розроблення Java. Якими вміннями повинен володіти Java розробник. Особливості Java. Історія версій Java. З чого розпочати навчання та скільки потрібно вчитися? Складання плану навчання. Кар'єрний шлях розробника. Рекомендовані посилання. Рекомендована література.     9. Підготовка до співбесіди з позицією Junior Java Developer   Авторка – Вікторія Силенко, Java розробниця desktop та web додатків.   Незважаючи на дату випуску даного вебінару, він досі залишається актуальним для тих, хто вирішив пов'язати свою кар'єру з розробленням Java і при цьому прагне з успіхом пройти співбесіду на позицію Junior Java Developer.   На цьому вебінарі ви дізнаєтесь, як правильно складати резюме, які популярні питання на співбесіді (+ відповіді), теми під час перевірки рівня англійської мови, як добре зарекомендувати себе у перші місяці роботи.     10. Створення багатопотокового клієнт-серверного додатку на Java   Автор – Євген Волосатов, професійний програміст, викладач мови Java у коледжі, автор відео курсів з мов C#, Java, PHP; має більше 20 років досвіду у якості провідного програміста в різних фірмах, має значний викладацький досвід; 6 років досвіду у проведенні вебінарів та створенні відео курсів   Євген Волосатов – справжній метр в області алгоритмів і структур даних на C#, Java, PHP — в даному вебінарі демонструє, як необхідно створювати багатопоточний клієнт-серверний додаток мовою Java.   На цьому вебінарі на вас чекає практика, котра зачіпає сокети та потоки. За допомогою Java буде написано невелику клієнт-серверну програму на сокетах. Для цього автор створить дві різні програми, які запускаються на різних комп'ютерах, але при цьому працюють спільно, надсилаючи одна одній дані.   Для зв'язку програм одна з одною буде створено універсальний клас Phone – він використовуватиметься як на сервері, так і на клієнті в JAR файлі. Наприкінці вебінару автор додасть багатопоточність до серверної частини, щоб сервер міг обробляти кілька клієнтів одночасно.   План вебінару:   Найпростіший сервер – Автовідповідач. Найпростіший клієнт – Вміти читати. Клієнт-серверний діалог. Універсальний сокет – Телефон. Серверна багатопоточність.   Для успішного засвоєння матеріалу необхідні базові навички роботи з Java у середовищі IntelliJ IDEA.   Вивчайте Java розроблення на ITVDN!
Акція "Виграй передплату ITVDN на 3 місяці"

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

Дорогие друзья, мы знаем, что многие из вас хотят учиться на ITVDN, но не у всех есть такая возможность. Для тех, кто знает и любит наш образовательный ресурс, мы проводим розыгрыш пяти подарочных сертификатов на три месяца. В акции будет 5 победителей! Чтобы стать участником акции, нужно ответить на несколько вопросов, связанных с развитием нашего ресурса – какая специальность вас интересует, какие из наших сервисов вам нравятся, какие курсы нужно добавить, кого вы считаете лучшим автором курсов.  Все, кто заполнит анкету, станут участниками розыгрыша 5 подарочных сертификатов. Очень важно полностью и без ошибок указывать Ваше имя, фамилию и емейл. К розыгрышу не будут допущены участники, не указавшие эту информацию. В подарочном пакете подписки будут доступны: 130 видео курсов ITVDN (и новые, которые появятся в течение 3 месяцев) учебные материалы всех курсов (презентации, практические задания, опорный конспект, рекомендованная литература, домашние задания) онлайн-тестирование и сертификация по изучаемым курсам индивидуальная консультация с тренером (30 минут) Сроки акции: с 29 марта по 5 апреля 2018 (до 18:00). Победители будут определены с помощью сервиса random.org. в прямом эфире на нашем YouTube канале 6 апреля 2018 года в 15:00. Результаты будут опубликованы 6 апреля 2018 года на нашем сайте. Заполнить анкету
ITVDN анонсує новий відеокурс Angular JS

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

ITVDN выпустил новый видеокурс AngularJS для веб разработчиков, создающих приложения используя JavaScript, по одному из самых популярных JavaScript фреймворков, который используется для написания Single Page Application. Большинство разработчиков используют AngularJS как основную библиотеку при разработке SPA приложений. Этот видеокурс будет полезен тем, кто хочет овладеть современными знаниями и выйти на новый профессиональный уровень. Он будет интересен как начинающим разработчикам, так и тем у кого уже есть опыт в программировании языке JavaScript. Данный видеокурс позволит структурировать свои знания и даст возможность получить необходимый набор знаний для того чтобы научиться разбираться в чужом коде и создавать также свои собственные приложения. Об AngularJS можно сказать, что он стал стандартом в разработке SPA приложений. Для того чтобы изучить данный видеокурс Вам необходима будет владеть языком HTML и СSS и , в том числе, JavaScript Essential и JavaScript Advanced. В данном курсе вы узнаете что такое AngularJS и шаблоны MVC. Когда именно нужно использовать AngularJS и какова его структура. Будут приведены простые и сложные примеры. Можно будет изучить как использовать Bootstrap. Вы научитесь создавать AngularJS приложения использовать модули, контроллеры и основные директивы для построения пользовательского интерфейса. Также вы научитесь использовать однонаправленный и двунаправленные привязки данных. Использовать директивы для создания повторяющихся элементов интерфейса и загрузки частичных представлений. В курсе будет рассмотрен AJAX – как неотъемлемая часть Single Page приложения. Будут рассматриваются примеры работы с сервисом $http для взаимодействия с серверной стороной. Одно из преимуществ приложений, написанных с использованием шаблона MVC – тестируемость. В одном из уроков курса будет показано, как создавать и запускать unit тесты для AngularJS приложений. В этом курсе подробно рассматриваются принципы создания сервисов в AngularJS, а также рассматриваются основные системные сервисы. Подробнее информацию о курсе Вы можете посмотреть на странице видеокурса по AngularJS.
Вивчай Spring безкоштовно

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

С 17 по 23 января 2020 года на ITVDN проходит акция - вы можете пройти обучение по курсу Spring бесплатно! Что такое Spring? Spring — это фреймворк, который помогает разрабатывать простые, быстрые, гибкие и переносимые приложения на Java. Особенности ядра Spring применимы в любом Java-приложении, и существует множество расширений и усовершенствований для построения веб-приложений на Java Enterprise платформе. По этим причинам Spring приобрёл большую популярность и признаётся разработчиками как стратегически важный фреймворк. О курсе Автор - Роман Дзюба, Java Developer. Курс состоит из 10 видео уроков общей продолжительностью 6 часов 9 минут. В курсе рассмотрены различные способы использования модулей Spring, написание REST приложений, использование MVC моделей и другие темы. Программа курса: Введение в Spring Внедрение зависимостей и IoC контейнер Spring MVC Spring Data Spring Testing AOP RESTful web services Security Cache Boot Для кого этот курс Этот курс предназначен для Java разработчиков и предполагает базовые знания программирования на Java. Курс входит в комплексную программу обучения по специальности Java Developer. Как получить Сертификат по курсу Spring После каждого урока Вы сможете проходить онлайн тестирование, чтобы проверить, как усвоен материал, а после завершения курса пройти финальный тест, и, если Ваш результат будет выше 70%, Вы получите электронный сертификат, подтверждающий Ваши знания. Сроки акции Акция проходит с 17 по 23 января 2020 года. Доступ к курсу открывается на 10 дней. Изучайте программирование на ITVDN!
JavaScript fwdays'21

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

5 июня Fwdays приглашают на девятую концентрированную конференцию для JS разработчиков – JavaScript fwdays'21! Вас ожидают: одна суббота докладов и будние вечера с углубленными форматами; топовые спикеры, которые поделятся инсайтами и кейсами из профессиональной сферы; жаркие дискуссии экспертов, многочасовые практикумы; новые технологии, инструкции и факты об обычных буднях JavaScript специалистов; Q&A сессии, где вы сможете задать все свои вопросы экспертам; новые знакомства и много общения; нетворкинг, розыгрыши от компаний-партнерив и еще множество всего интересного, что Fwdays готовят для вас, пока вы дочитываете эту информацию. Детали: 5 июня, 10:00 - 17:00 (GMT + 3) + 3 будние вечера накануне, 18:00 - 20:00 Если предложение интересно для вас, тогда регистрируйтесь FREE или используйте промокод 8607B75DF7 при покупке FULL пакета, осталось несколько дней до повышения цены!  https://bit.ly/3gDiuFp
Підсумки акції "Виграй передплату ITVDN на 3 місяці"

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

С 28 марта по 5 апреля 2018 года на ITVDN проходила акция "Выиграй подписку ITVDN на 3 месяца". При помощи сервиса random.org в прямом эфире на YouTube канале ITVDN были определены 5 победителей акции, которые получат в подарок подписку на 3 месяца. Видео запись розыгрыша. Победителями акции стали: Ирина Ляпота Михаил Глазырин Алексей Жуковский Игорь Бородин Денис Теремецкий Подарочные сертификаты будут отправлены победителям 6 апреля 2018 года на емейл, указанный при регистрации. Всего в акции приняли участие 701 человек. Все участники акции получат специальный промо-код, дающий скидку 30% на любой тип подписки ITVDN *.  *Скидка не распространяется на пакет подписки "QA Start". Поздравляем победителей акции и благодарим всех за участие, за интересные ответы и приятные отзывы об ITVDN!
DevTalk. Conference for .NET Developers

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

Приглашаем 5 июля (вс.) принять участие в DevTalk — новой конференции для разработчиков. Целью нашей конференции является собрать профессионалов в сфере .NET разработки для обмена опытом и обсуждения актуальных вопросов. Дата проведения: 5 июля (вск) Место проведения: Харьков Палас Участие в конференции платное. Регистрация на сайте обязательна. Действует 25% скидка по промокоду: cyberbionic Сайт: www.devtalk.dev-pro.net В программе конференции: Спикер № 1: Маргарита Остапчук, Microsoft Ukraine (Technical Evangelist, Киев) Тема доклада: Платформа Microsoft: от прошлого к будущему Спикер № 2: Андрей Чех, Director of Research & Technology (AltexSoft, Харьков) Тема доклада: Осада Орлеана: построение распределенных приложений с использованием фреймворка Orleans на платформе Azure Спикер № 3: Александр Краковецкий, CEO (DevRain Solutions, Киев) Тема доклада: Ключевые тренды ASP.NET 5 Спикер № 4: Михаил Щербаков, Product Manager (Cezurity, Санкт-Петербург)  Тема доклада: Механизм Sandbox’а в .NET CLR Спикер № 5: Денис Резник, Director of R&D (Intapp, Киев) Тема доклада: Вы готовы? Задержите дыхание! Это глубокое погружение в SQL Server Спикер № 6: Андрей Гордиенков, IT-эксперт, тренер (Luxoft, Москва) Тема доклада: Шаблоны многозадачности. Как перевести проблемы многозадачности на новый уровень абстракции и решить их Спикер № 7: Йоханнес Хофмайстер, Research Software Engineer (Германия) Тема доклада: Психология программирования Регистрируйтесь на сайте конференции: www.devtalk.dev-pro.net
Notification success