Результати пошуку за запитом: html
Огляд популярних сервісів тестування
Автор: Редакція ITVDN
Так как 2017 год совсем недавно остался позади, наша команда решила сделать небольшой новогодний подарок в виде разбора лучших сред автоматического тестирования, обладающих, помимо прочего, открытым исходным кодом.
1. Robot Framework
Robot Framework – это фреймворк для приемного тестирования (Acceptance Testing) и, помимо прочего, так называемого ATDD (Acceptance Test-Driven Development). Среда написана на языке Python, но также может быть развернута в рамках Jython (Java) и IronPython (.NET). По сей причине считается кроссплатформенной, ибо поддерживает Windows, Linux и MacOS соответственно.
Достоинства:
Упрощает автоматическое тестирование благодаря использованию подхода keyword-driven тестирования, в значительной мере помогая тестерам в создании читабельных, легко производимых тестов.
Простота в использовании «тестового синтаксиса».
Имеет в наличии отменную среду, включающую в себя богатый набор различных инструментов и библиотек, выполненных в виде отдельных проектов.
Огромное количество различных API делает систему очень гибкой.
Хотя и не в виде встроенной функции, однако Robot Framework позволяет проводить параллельные тесты при использовании библиотеки pabot или Selenium Grid.
Недостатки:
Трудно настроить структуру html-отчетов.
Примечание: эта среда будет очень полезной, если Вы нацеливаетесь на Keyword-Driven тестирование – и обширная база библиотек и расширений вряд ли заставит Вас в этом усомниться. Однако, чтобы добавить новые ключевые слова (RF test library API) базовые познания Java/Python/C программирования обязательны.
2. JUnit
JUnit – это среда для проведения юнит-тестов для приложений, написанных на языке Java.
Достоинства:
Тесты пишутся при помощи чистейшего Java – одного из лидирующих языков программирования современности.
Поддерживает TTD.
Позволяет создать свой собственный пакет для юнит-тестирования.
Прекрасно интегрируется в различные инструменты разработчика (к примеру – Maven) или среды разработки (к примеру, IntelliJ).
Благодаря достаточно высокой популярности поиск документации не составляет труда.
Недостатки:
Если необходимо использовать возможности mock-объектов, пользователь вынужден прибегать к помощи сторонних библиотек (Mockito или другие).
Чтение тестов у людей без технического образования может вызвать затруднения, так как, к примеру, имена методов в JUnit ограничены условностями языка Java.
Примечание: для тех разработчиков, которые желают писать юнит-тесты для собственных Java-приложений JUnit, пожалуй, лучшее из того, что можно бы пожелать. Однако, в случае если речь идет о функциональном тестировании программ, написанных на других языках, вероятно, Вам стоит выбрать другую среду.
3. Spock
Spock – это среда тестирования и спецификации для приложений, написанных на языках Java или Groovy. За основу взята среда JUnit.
Достоинства:
Позволяет создавать читабельные тесты с поддержкой чисто английских предложений, без необходимости следовать ограничениям языков программирования.
Предоставляет информативный контекст возникнувшей проблемы. Плюс, дает легко понять, что необходимо сделать, дабы исправить обнаруженный недостаток.
Имеет встроенную поддержку mock и stab объектов.
Поддерживает DDT (Data-Driven Tests).
Недостатки:
Требует базовых знаний языка программирования Groovy.
Примечание: идеально подойдет, если Ваше приложение базируется на JVM, плюс, Вы нацеливаетесь на BDD автоматическое тестирование с DSL.
4. NUnit
NUnit – среда для юнит-тестирования языков .NET виртуальной машины. Имевшей однажды огромное влияние JUnit, среда NUnit была полностью написана на C#. Помимо прочего, в арсенале так же имеется целый спектр новых возможностей, позволяющих использовать все преимущества языков .NET.
Достоинства:
Быстрая инициализация и выполнение теста.
Использует методы типа Assert с поддержкой аннотаций.
Позволяет проводить параллельное тестирование.
Поддерживает TDD.
Недостатки:
Так как использует только языки .NET стандарта, не является кроссплатформенным.
Интеграция в среду Visual Studio не представляется возможной. Использование NUnit означает больше расходов на сопровождение проекта.
Примечание: прекрасный фреймворк юнит-тестирования для C# с открытым исходным кодом, долгой историей и проверенной репутацией. Однако, в случае, если вы уже активно работаете с .NET языками, обратите свое внимание на MSTest.
5. TestNG
TestNG – сервис автоматического тестирования для Java. По сути, это те же JUnit и NUnit, но с улучшениями и новым функционалом (ибо NG читается как «новое поколение» - Next Generation). Среда была разработка для покрытия всех видов тестирования, которые только могут понадобится. А именно: юнит-тестирование, функциональное тестирование, тестирование интеграции и прочее.
Достоинства:
Прост во внедрении в проект.
Позволяет разработчику писать гибкие и всеобъемлющие тесты.
Поддерживает DDT.
Простые в понимании аннотации.
Простота в группировании тестовых кейсов.
Позволяет создавать параллельные тесты.
Недостатки:
Так как поддерживает только Java, Вы должны иметь хотя бы базовые познания этого языка.
Установка и калибровка среды тестирования занимает время.
Примечание: если вы работаете с Java, ищите инструмент для мульти задачного тестирования и можете уделить некоторое время на установку программы – TestNG определенно для Вас.
6. Jasmine
Jasmine – среда для юнит-тестирования JavaScript. Так же известен как Behavior Driven Development (BDD) подход JavaScript тестирования. Идеально подходит для веб-сайтов, проектов Node.js и вообще для всего, где JavaScript может найти свое применение. В основном используется в связке с AngularJS.
Достоинства:
Кроме JavaScript, так же может быть применен по отношению к Python или Ruby. Чрезвычайно полезен, если Вам нужен один сервис тестирования как для клиентской разработки, так и для серверной.
Поддерживается множеством CI (Codeship, Travic и прочее).
Имеет встроенный Assert-синтаксис.
Недостатки:
В большинстве сценариях требует прогонщика тестов (такого как Karma).
В случае с асинхронным тестированием возникают трудности.
Примечание: Jasmine может оказаться прекрасным решением, если Вы нуждаетесь в унифицированном (клиент-серверном) сервисе юнит-тестирования.
7. Mocha
Mocha – это еще один сервис JavaScript юнит-тестирования с занятным для русскоязычного сектора названием и отнюдь не банальным функционалом. Используется на NodeJs, в основном часто применяется в связке с ReactJS.
Достоинства:
Обладает встроенным тестовым прогонщиком.
Поддерживает асинхронное тестирование.
Позволяет большую гибкость, так как Вы спокойно можете использовать любую Assert-библиотеку (Chai, expect.js, Must.js прочие), которая будет отвечать Вашим требованиям (как замена стандартной NodeJs функции «assert»).
Недостатки:
Относительно новый сервис (появился в 2012 году), что означает он в активном развитии и некоторые аспекты технологии могут быть не до конца задокументированными.
Предоставляет только базовую структуру тестов, плюс требует дополнительную ручную установку и конфигурацию (для кого-то может быть плюсом).
Примечание: если Вы ищите независимую среду юнит-тестирования для JavaScript, Mocha – Ваше все!
А какую среду автоматического тестирования используете Вы? Что хорошего и что не очень Вы могли бы о ней сказать? Пожалуйста, приобщайтесь к дискуссии в комментариях! 😊
Автор перевода: Евгений Лукашук
Оригинал статьи
Що таке Universal Windows Platform (UWP)?
Автор: Редакція ITVDN
Универсальная платформа Windows (UWP) – это специальная платформа для создания приложений на Windows 10. Вы можете разрабатывать приложения для UWP с помощью всего одного набора API, одного пакета приложений и одного магазина для доступа ко всем устройствам Windows 10 – ПК, планшета, телефона, Xbox, HoloLens, Surface Hub и других. Легче поддерживать несколько размеров экрана, а также различные модели взаимодействия, будь то сенсор, мышь и клавиатура, игровой контроллер или ручка. В основе приложений UWP лежит идея, что пользователи хотят, чтобы их работа, их задачи были мобильными через ВСЕ устройства, чтобы можно было использовать любое устройство, наиболее удобное или производительное для конкретной задачи.
UWP является гибким: вам не нужно использовать C# и XAML, если вы этого не хотите. Вам нравится развиваться в Unity или MonoGame? Предпочитаете JavaScript? Не проблема, используйте все, что хотите. У вас есть настольное приложение C++, которое вы хотите расширить с помощью функций UWP и продавать в магазине? И тут все будет работать.
В итоге вы можете потратить свое время на работу со знакомыми языками программирования, фреймворками и API-интерфейсами, все в одном проекте, и иметь тот же самый код, который работает на огромном диапазоне оборудования Windows из существующих сегодня. После того, как вы написали свое приложение UWP, вы можете опубликовать его в магазине на обозрение всего мира.
Итак, что такое UWP-приложение?
Что делает приложение UWP особенным? Вот некоторые из характеристик, которые отличают приложения UWP в Windows 10.
Существует общая среда API для всех устройств
Основа API-интерфейсов универсальной платформы Windows (UWP) одинакова для всех классов устройства Windows. Если ваше приложение использует только основные API-интерфейсы, оно будет запускаться на любом устройстве Windows 10, независимо от того, планируете ли вы использование настольного ПК, гарнитуры Xbox или наушников Mixed Reality.
Расширение SDK позволяет вашему приложению делать классные вещи на определенных типах устройств
Расширение SDK добавляет специализированные API для каждого класса устройства. Например, если ваше приложение UWP нацелено на HoloLens, вы можете добавить функции HoloLens в дополнение к обычным API-интерфейсам UWP. Если вы используете универсальные API-интерфейсы, ваш пакет приложений может работать на всех устройствах, работающих под управлением Windows 10. Но если вы хотите, чтобы ваше приложение UWP использовало API-интерфейсы устройства тогда, когда оно работает на определенном классе устройства, вы можете проверить, существует ли API до его вызова во время выполнения.
Приложения упакованы с использованием формата упаковки .AppX и распространяются из магазина
Все приложения UWP распространяются как пакет AppX. Это обеспечивает надежный механизм установки и гарантирует, что ваши приложения могут быть развернуты и обновлены без проблем.
Одно хранилище для всех устройств
После регистрации в качестве разработчика приложений вы можете отправить свое приложение в магазин и сделать его доступным для всех типов устройств или только тех, какие вы выберете. Вы загружаете и управляете всеми своими приложениями для устройств Windows в одном месте.
Приложения поддерживают адаптивные элементы управления и ввода
Элементы пользовательского интерфейса используют эффективные пиксели, поэтому они могут отображать макет в зависимости от количества пикселей экрана, доступных на устройстве. И они хорошо работают с несколькими типами ввода, такими как клавиатура, мышь, сенсорный экран, ручка и контроллеры Xbox One. Если вам нужно дополнительно адаптировать свой пользовательский интерфейс к определенному размеру экрана или устройству, новые панели макетов и инструменты помогут вам в этом.
Используйте язык, который вы уже знаете
Приложения UWP используют Windows Runtime, собственный API, встроенный в операционную систему. Этот API реализован на C++ и поддерживается на C#, Visual Basic, C++ и JavaScript. Некоторые варианты написания приложений в UWP включают:
XAML UI и C#, VB или C++ backend
DirectX UI и C++ backend
JavaScript и HTML
Microsoft Visual Studio 2017 предоставляет шаблон приложения UWP для каждого языка, который позволяет вам создать единый проект для всех устройств. Когда ваша работа будет завершена, вы можете создать пакет приложений и отправить его в Windows Store из Visual Studio, чтобы сделать ваше приложение доступным для клиентов на любом устройстве Windows 10.
Приложения UWP оживают в Windows
В Windows ваше приложение может предоставлять актуальную информацию в режиме реального времени вашим пользователям и заставлять их возвращаться снова. В современной экономике приложений ваше приложение должно участвовать в жизни ваших пользователей. Windows предоставляет вам множество ресурсов, чтобы помочь вашим пользователям вернуться в ваше приложение:
Живые фрагменты и экран блокировки отображают контекстно-зависимую и своевременную информацию.
Push-уведомления приносят сигналы в реальном времени, отправляя предупреждения вашему пользователю, когда это необходимо.
Центр действий – это место, где вы можете организовывать и отображать уведомления и контент, на которые пользователи должны обратить внимание.
Background - исполнение и триггеры оживляют ваше приложение, когда пользователю это нужно.
В вашем приложении могут использоваться голосовые и Bluetooth-устройства LE, чтобы помочь пользователям взаимодействовать с окружающим миром.
Поддержка богатых, цифровых чернил и инновационного набора.
Cortana добавляет индивидуальность вашему программному обеспечению.
XAML предоставляет вам инструменты для создания плавных анимированных пользовательских интерфейсов.
Наконец, вы можете использовать данные о роуминге и Windows Credential Locker, чтобы обеспечить постоянный роуминг на всех экранах Windows, где пользователи запускают ваше приложение. Данные о роуминге дают вам простой способ сохранить пользовательские настройки и настройки в облаке, не создавая собственную инфраструктуру синхронизации. И вы можете хранить учетные данные пользователя в хранилище учетных данных, где безопасность и надежность являются главным приоритетом.
Монетизируйте ваше приложение
В Windows вы можете выбрать, как вы будете монетизировать свои приложения на телефонах, планшетах, ПК и других устройствах. Вот несколько способов заработать деньги с помощью вашего приложения и услуг, которые оно предоставляет. Все, что вам нужно сделать, это выбрать то, что лучше подходит для вас:
Платная загрузка – это самый простой вариант. Просто назовите цену.
Система нескольких пробных попыток позволит пользователям оценить ваше приложение перед его покупкой. Это обеспечит более легкую конверсию, чем более традиционные варианты «freemium».
Используйте скидки для привлечения внимания к своим приложениям.
Также доступны покупки и реклама в приложении.
Как начать?
Более подробный обзор UWP читайте в официальном Руководстве по приложениям для универсальной платформы Windows. Затем ознакомьтесь с настройкой Get set up, чтобы загрузить инструменты, необходимые для начала создания приложений, и напишите свое первое приложение!
Источник.
Фундамент внутрішньої оптимізації. 5 залізних факторів
Автор: Андрій Афанасьєв
Введение
В начале данной статьи хочу поздравить Вас и себя со своей первой публикацией в 2016 году. Искренне желаю встречать на своем пути побольше ценной и интересной информации, а также людей, которые будут делиться бесценным опытом и помогут таким образом в Вашем профессиональном росте:)
А теперь можно приступить непосредственно и к теме данной публикации. Я не сомневаюсь, что многие уже успели перелопатить массу книг и статей о том, какой должна быть качественная внутренняя оптимизация, на что она влияет, какие тренды нас ждут в наступившем году, поскольку такой информации в Интернете целые массивы. Но меня это не остановило. Я уверен, что данный материал обязательно откроет что-то новое, позволит расставить акценты и сосредоточить внимание на самом главном. Тем более, кто дочитает эту статью до конца, получит небольшой, но приятный бонус:)
От слов к делу
Самый встречаемый вопрос, особенно среди новичков, звучит так: ”Внутренняя оптимизация - такой трудоемкий процесс, так много факторов и пунктов проверки. Подскажи, на что стоит обращать внимание в первую очередь?”. Отвечаю. Пожалуй, на всё. Наша жизнь состоит из мелочей и SEO-оптимизация тому не исключение. Практически невозможно сложить красивую картинку из пазла на 100 или даже 1000 элементов, если упустить часть деталей.
Поэтому остается только сосредоточиться, сесть за компьютер, поставить возле себя чашку ароматного кофе или чая, открывать чек-лист, кропотливо и внимательно анализировать проект по каждому из пунктов. В результате Вы получите полноценный труд в виде технического задания, которое, с большой вероятностью, Вам самим понравится и после внедрения обеспечит эффективное дальнейшее SEO-продвижение.
Но, несмотря на важность всех мелочей и нюансов, я подготовил материал, в котором выделю 5 моментов критической важности, то, без чего достигнуть крепких ТОПов и заполучить целевой трафик невозможно, с кратким комментарием по их решению. Плюс все будет лаконично и конструктивно, ведь вычитать «простынь» под силу не каждому :)
Наших 5 железных факторов
1. Семантика&Структура
Моментом №1 в SEO анализе и оптимизации является тот, насколько структура сайта позволяет его продвигать. Довольно часто возникает такая ситуация, что клиент хочет или требует оптимизацию сайта под семантику, к которой сайт совершенно не готов структурно. На сайте может не быть нужной вложенности, категорий и подкатегорий, страниц отзывов и прайсов, без которых эффективной оптимизации под интересную для клиента семантику не получится.
Поэтому, крайне важно параллельно выбирать и анализировать семантику, а также давать рекомендации и правки по структуре сайта. Семантика + структура - очень серьезная связка. Лучше согласовать и внедрить все моменты на берегу, чем когда Вы уже выйдете в открытое плаванье и придется грести веслами обратно. Но также важно помнить, что не любая семантика, которую предлагает или на которой настаивает клиент является правильной. В силу незнания он может быть убежден в одном, но в реальности дела могут обстоять иначе. Нивелируйте это своим погружением в бизнес и опытом.
2. Настройка карты сайта, ЧПУ и хлебных крошек.
Если на предыдущем этапе все ОК, двигаемся дальше. Думаю, каждому из нас хоть раз приходилось заблудиться на улице. В этом случае так хочется у первого встречного прохожого здесь и сейчас получить толковую консультацию, как попасть на улицу, которую мы ищем. А если мы еще и торопимся на жизненно важную встречу, то градус ситуации накален вдвойне. Шучу)
К чему все это? Правильная навигация важна и для поисковых роботов. Он не будет тратить время на то, чтобы сканировать страницы с непонятным назначением, уровнем вложенности и неизвестной глубины. Ему необходимо видеть эту структуру и навигацию. Поэтому на сайте обязательно должны быть настроены:
Человекопонятные url-адреса ЧПУ
Все url-адреса на сайте должны быть приведены к ЧПУ-виду и иметь вид http://url/. Кириллица должна трансформироваться в латиницу. В качестве разделителя слов в ЧПУ следует использовать дефис "-". Также будет неоспоримым плюсом, если в url-адресах будет соблюдаться полная вложенность, т.е. http://url/>/.
Пример не ЧПУ адреса может выглядеть так: site.domain/index.php?id=75. Примером ЧПУ адреса для этой же страницы может быть site.domain/itvdn.
После настройки ЧПУ следует также сделать 301 редирект с не-ЧПУ урлов на ЧПУ. В нашем случае это 301 редирект с site.domain/index.php?id=75 на site.domain/itvdn.
Настройка ЧПУшек и соответствующих редиректов, как правило, решается подключением стандартных плагинов. Если речь идет о самописной системе, скорее всего нужно будет «допиливать» соответствующий функционал.
Реализация «хлебных крошек» Breadcrumbs
Под «хлебными крошками» подразумевается навигационная цепочка, которая отражает вложенность структуры и чаще всего располагается над или под основным текстовым заголовком страницы.
Реализация Breadcrumbs полезна не только для того, чтобы показать поисковику глубину структуры сайта, но и с точки зрения юзабилити. Посетителю будет всегда удобно выйти на уровень или два уровня выше, допустим в каталог, если со страницей товара он полностью ознакомился, но хочет посмотреть что-то еще.
Карта сайта sitemap.xml
Как правило, данные карты генерируются стандартными плагинами в зависимости от того, на какой CMS сделан сайт. Либо есть универсальные решения, например, специальная CMS для генерации карт, которая интегрируется в корень сайта и парсит всю его структуру, в результате чего и генерируется карта сайта. Адрес, по которому должна быть доступна карта, желательно делать site.domain/sitemap.xml. Но и это еще не все. Необходимо после генерации карты скормить ее поисковому роботу в GWT в разделе «Файлы Sitemap».
Если с содержанием карты будет что-то не в порядке, Вы увидите соответствующие предупреждения об этом, которые потребуется исправить. Хочу еще подчеркнуть, что генерация карты сайта происходит в самом конце внедрения ТЗ оп оптимизации, когда устранены дубли, настроены правильные ЧПУ и т.д.
3. Диагностика и устранение дублей.
Дубли – это откровенное зло. Было бы Вам приятно, чтобы кто-то копировал Ваше поведение, одевался также, носил идентичную стрижку? Думаю, что вряд ли. И поисковые роботы в этом молодцы. Они такое рубят, занижают рейтинг целевых страниц и сайта в целом, если в его содержимом содержатся дубли. Каким образом их диагностировать? Для этого есть несколько методов. Самый простой - это воспользоваться данными по повторяющимся метатегам в разделе «Оптимизация HTML». Если дубли присутствуют, Вы увидите данные в таком виде:
Диагностировать дубли можно и с помощью программы NetpeakSpider. Такой вариант даже лучше в том плане, что он сканирует актуальную структуру сайта, а страницы в GWT сканируются периодически и информация может быть не первой свежести на момент, когда Вы ищите дубли.
Дальше сам собой напрашивается вопрос о том, как нам избавиться от них. Если дубль полный, т.е является 100% клоном страницы, которую дублирует, стоит проставить 301 редирект с дубля на основную страницу и отправить данный дубль на принудительную переиндексацию в разделе «Просмотреть как Googlebot».
Существуют и другие методы борьбы с полными дубликатами, например, закрытие их в robots.txt и принудительное удаление через GWT. Но 301 редиректы считаются наиболее эффективным и правильным методом.
В случае частичных дублей, например, когда дублируется только
и/или
и/или заголовки
необходимо переписывать метатеги на дублях вручную, если их много, либо формировать и внедрять шаблоны метатегов, которые в результате генерации будут уникальными для каждой страницы. Пример шаблона автогенерации метатегов может выглядеть, например, так:
После активной борьбы по искоренению дублей Вы в идеале сорвете джек-пот в таком виде:
Резюмируя данный пункт, предлагаю раз и навсегда сказать «Нет!» дублям, вовремя проверять их и давать отпор! Едем дальше…
4. Борьба с аффилиатами
Под аффилиатами подразумевается другой сайт клиента с такими же контактными данными, названием компании, структурой и тематикой. Поисковые системы “за естественную конкуренцию” и ведут борьбу с монополизацией рынка. Поэтому, склеивают аффилиаты, накладывая фильтры и занижая рейтинг сразу всех сайтов.
По статистике 2 из 3 клиентов приходят к нам с аффилиатами. В их качестве зачастую выступают не самостоятельные сайты на отдельных CMS и доменах, а площадки, сгенерированные на платформах типа Prom.ua или Allbiz.
Это плохая практика и что в таком случае требуется делать? Алгоритм простой:
Аргументируем клиенту всю ситуацию, запрашиваем доступы к аффилиатам, проверяем их.
Добавляем каждый аффилиат в Google Webmaster Tools.
Настраиваем 301 редиректы со всех страниц аффилиатов на главную страницу основного сайта.
Отправляем на принудительную переиндексацию аффилиаты.
Если нет возможности проставить 301 редирект, нужно воспользоваться опцией в GWT в разделе «Удалить URL-адреса».
Если внутри платформы нет возможности добавить сайт в панель вебмастеров (а такое случается часто), нужно просто согласовывать полное удаление сайта-аффилиата и ждать, когда он выпадет из индекса.
Такой простой алгоритм действий позволил нам вывести не один сайт из-под фильтра. Вот один из кейсов нашей компании, где мы непосредственно применяли данную методику и вытащили сайт с самого дна поиска на первые позиции.
Также бытует мнение, что достаточно изменить название компании, контактную информацию - и ситуация может измениться. Этот метод не работает. Не тратьте даже время на покупку новых телефонов и не ломайте голову, как бы себя по-новому еще назвать.
5. On-Page оптимизация
Подразумевает заточку и оптимизацию конкретных целевых страниц под семантическое ядро. Здесь важны следующие моменты:
Написание и размещение оптимизированных метатегов.
Подготовка и размещение полезного структурированного качественного текстового контента, при этом оптимизированного под нужные поисковые запросы.
Помимо контента текстового следует использовать качественные (желательно “не тяжелые” по объему памяти) изображения на всю ширину страницы. Это еще в тренде. Не помешают также тематические видеоролики, которые точно повлияют на поведенческие факторы ПФ (снизят показатели отказов и увеличат время нахождения пользователя на странице).
И многие другие интересные вещи, которые Вы узнаете дальше.
На десерт
Как я и обещал в начале данной статьи, Вас ожидает сюрприз. Под этой статьей находится pdf-файл «Полный чек-лист seo-оптимизатора от Abweb».
Запомните, что только титаническая работа позволит получить что-то стоящее не только в сфере SEO. Жду Ваших комментариев, до следующих публикаций!
Полный чек-лист seo-оптимизатора от Abweb
Розробка ASP.NET 5 веб-застосунків з Visual Studio Code
Автор: Редакція ITVDN
Введение
10 лет назад трудно было вообразить, что разработка ASP.NET веб-приложений вне интегрированной среды разработки Visual Studio .NET буде возможна. Но в прошлом году произошли изменения. В апреле 2014 года на конференции разработчиков (Build) Microsoft анонсировал запуск нового легкого кросс-платформенного кодового редактора для разработки современных веб-приложений под именем Visual Studio Code.
Visual Studio Code
Visual Studio Code свободна для скачивания с официального сайта. Работаете ли Вы на Linux, Mac или Windows – не имеет значения. Вы можете скачать и запустить VS код на своей платформе.
Установка Visual Studio Code довольно проста, но если Вы застрянете, то всегда можете просмотреть документацию по установке.
Visual Studio Code является просто редактором кода на файловой основе и не имеет всех преимуществ полной интегрированной среды разработки Visual Studio .NET. Он легче по дизайну. Тем не менее, у редактора есть множество особенностей, которые поддерживают такие технологии, как IntelliSense для дополнения кода, Peek Definition для быстрого взгляда на функциональный код без навигации, реорганизацию кода и прочие. Visual Studio Code также поддерживает множество языков, например CoffeeScript, F#, Go, Jade, Java, Handlebars, Powershell и Python, для примера. Вы можете проверить языковую поддержку здесь.
Также Visual Studio Code способен поддерживать такие среды выполнения, как ASP.NET 5 и Node.JS. Если Вы их используете для веб-разработки с Microsoft Stack, можете быть уверенны, что ASP.NET 5 (новая версия ASP.NET) сейчас поддерживает кросс-платформенную разработку. Это значит, что можно разрабатывать ASP.NET-приложение в среде Linux, Mac или Windows так же, как и запускать его в любой из них. И Вам даже не нужно иметь интегрированную среду разработки Visual Studio .NET, чтобы сделать это.
Visual Studio Code – это все, что вам нужно, чтобы начать работать с ASP.NET 5, и это здорово!
Установка ASP.NET 5 & DNX (среды выполнения .NET):
ASP.NET 5 был построен с нуля, чтобы убедиться, что он придерживается современной парадигмы веб-приложений, и что приложения, разработанные с его помощью являются «облачными». Ключевыми аспектами ASP.Net 5 являются гибкость и модульность – он предлагает минимальные накладные расходы и позволяет нам выбирать только то, что мы хотим в рамках нашего веб-приложения.
DNX расшифровывается как Dot Net eXecution Environment.
Что такое Yeoman?
Если Вы работали в интегрированной среде разработки Visual Studio .NET, Вам будет интересно: «Есть ли здесь File > New > ASP.NET шаблон проекта?» Visual Studio Code является редактором кода на файловой базе, так что Вы можете просто открыть файл и начать редактирование. Кроме того, нужны поддерживающие средства, чтобы работать с исполняемым шаблоном ASP.NET.
Yeoman является популярным консольным инструментом для автоматического построения структуры проекта, а также обеспечивает базовым ASP.NET шаблоном для старта. Yeoman может быть установлен с помощью NPM, но для начала надо установить Node.JS.
Если у Вас нет Node в системе, можете установить его. Кроме Yeoman, Вам также нужны другие поддерживающие средства, такие как генератор ASP.NET, исполнитель задач Grunt и Bower. Вы можете выполнить это за одну команду. В командной строке набрать следующую команду и нажать enter:
npm install –g yo grunt-cli generator-aspnet bower
Теперь Вы можете строить веб-приложения.
Создание веб-приложения
Разберем пошагово, как построить структуру проекта нового ASP.NET 5 веб-приложения.
1. Откройте командную строку и перейдите в папку, где Вы хотите создать свое новое веб-приложение.
2. Введите в командную строку следующую команду:
yo aspnet
3. Yeoman отобразит варианты приложений для генератора aspnet. Возможные варианты:
консольное приложение
веб-приложение
основное веб-приложение (без членов/аутентификации)
веб-приложение API
Nancy ASP.NET приложение
библиотека классов
тестовый проект Unit
Выберите сейчас основное приложение. Используйте клавиши со стрелками для выбора опции и нажмите enter.
4. Дальше нам нужно назвать веб-приложение. Используем HelloWorld как имя нашего образца ASP.NET 5 веб-приложения. Введите имя и нажмите enter. Yeoman построит структуру проекта.
5. Каталог, в котором будет создано наше веб-приложение будет иметь то же имя, что мы дали только что Yeoman. В данном случае - “HelloWolrd”.
cd HelloWorld
6. Через командную строку откройте Visual Studio Code
code
7. Visual Studio Code запустит проект HelloWorld. Файлы в проекте будут отображаться в окне Проводника.
8. В редакторе Visual Studio Code выберите View > Command Palette option
и в командной палитре введите следующую команду:
dnx: dnu restore - (HelloWorld)
Выше написанная команда restore устанавливает нужные NuGet пакеты, необходимые для запуска веб-приложения. Она запустит командную строку, куда будут загружаться все пакеты. После выполнения будет получено сообщение, что загрузка завершена.
Запуск веб-приложения
Теперь, когда мы успешно создали веб-приложение, пришло время запустить его и посмотреть на результат.
1. В Visual Studio Code откройте Command Palette, выбрав View > Command Palette. Введите следующую команду для запуска приложения:
dnx: kestrel -(HelloWorld,Microsoft.AspNet.Hosting--server Kestrel–config hosting.ini
Примечание: Когда Вы начинаете набирать команду, командная палитра подскажет Вам полную команду в списке. Вы можете выбрать команду из списка и команда будет выполнена.
2. Откройте браузер и перейдите по ссылке http://localhost5000
Мы только что создали ASP.NET веб-приложение вне интегрированной среды разработки Visual Studio. Фактически, в настоящее время ASP.NET больше не только в Windows. Мы переходим на кросс-платформу – как с точки зрения разработки, так и размещения.
Интеграция Telerik UI для набора ASP.NET MVC
Teleric предлагает пользовательский интерфейс, известный как UI для ASP.NET MVC. Он произошел от Kendo UI и предусматривает HTML-помощников, которых называют “Kendo UI wrappers.” Они упрощают работу с элементами управления Kendo UI и ускорят вашу разработку.
Представим пошагово добавление пользовательского интерфейса для ASP.NET MVC в наш проект:
1. Откройте файл project.json и в узле (“dependencies”) добавьте Kendo (в настоящее время доступна бинарная версия Kendo Mvc – 2015.2.805).
"dependencies":{
...
"Kendo.Mvc":"*"
}
2. Дальше откройте Startup.cs и найдите метод “ConfigureServices”. Добавьте следующий фрагмент в метод.
//Register UI for ASP.NET MVC Helpers
Services.AddKendo();
3. Затем откройте ~/Views/_ViewImports.cshtml и импортируйте пространство имен Kendo.Mvc.UI.
@using Kendo.Mvc.UI
4. Скопируйте Kendo UI ресурс с клиентской стороны. Для этого Вам нужно установить пакет Kendo UI Professional (Commercial Package). Его можно установить через Bower с помощью следующей команды:
bower install https://bower.telerik.com/bower-kendo-ui.git
Пакет Kendo UI Professional Bower размещается в частном git-хранилище и требует активировать аккаунт Telerik. Во время установки Вам предложат ввести пароль несколько раз.
Bower установит пакет Kendo UI Professional как “kendo-ui” в папку wwwroot/lib.
5. Дальше нам необходимо зарегистрировать скрипты Kendo UI и стили в ~/Views/Shared/_Layout.cshtml.
<head>
...
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.bootstrap.min.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.dataviz.bootstrap.min.css" />
head>
6. Теперь давайте используем виджет Kendo UI в одном из видов. Мы будем использовать виджет Kendo UI DatePicker. Откройте ~/Views/Home.Index.cshtml и добавьте следующий фрагмент:
<body>
...
<script src="~/lib/kendo-ui/js/kendo.all.min.js">script>
<script src="~/lib/kendo-ui/js/kendo.aspnetmvc.min.js">script>
@RenderSection("scripts", required: false)
body>
7. Запустите веб-приложение через dnx: kestrel команду, что мы использовали ранее. Результат представлен ниже.
Заключение
Готово. У нас есть законченное веб-приложение ASP.NET 5, интегрированное с Telerik UI для ASP.NET MVC виджетов, разработанное только использованием Visual Studio Code с поддержкой таких инструментов, как Yeoman и Bower.
Надеемся, Вам понравилось!
Источник - http://developer.telerik.com/featured/developing-asp-net-5-web-apps-with-visual-studio-code/
Яку IT-спеціальність обрати у 2021 році?
Автор: Влад Сверчков
Добрый день! Сегодня мы попробуем разобраться с тем, какие IT-специальности сейчас в тренде и какие прогнозы можно строить на 2021 год.
IT-отрасль привлекательна со всех сторон - и для тех, кто выбирает профессию, и для бизнесменов, это один из самых динамично развивающихся секторов экономики. Такая ситуация не удивительна, ведь IT — достаточно молодая и перспективная сфера, чьи плоды существенно упрощают нашу жизнь.
При всем этом, информационная сфера снижает порог вхождения и с каждым годом становится искушением для всё бо́льшего количества людей. Каждый, кто интересуется IT — будь то новичок, желающий освоить IT-специальность, либо опытный разработчик, следящий за тенденциями — хочет знать, какие направления и профессии будут востребованы в следующем году. Но даже внутри столь многогранной отрасли есть как те профессии, которые теряют актуальность, так и те, которые возникают на ровном месте. Поэтому мы изучили респектабельные аналитические ресурсы и готовы рассказать вам, какие направления и специальности с наибольшей вероятностью будут популярны в ближайшем будущем. Начинаем!
Особенности 2020 года и их влияние на IT отрасль
Наибольшим сотрясением 2020-го года для мировой экономики стала эпидемия коронавируса, из-за которой множество стран ввели жесткие карантинные ограничения, чем и был нанесен ощутимый удар по всем отраслям. Это явление не обошло стороной и IT-сферу.
Если говорить об Украине, то помимо массовых сокращений на рабочих местах мы получили заметное проседание по количеству вакансий. Как пример, информационный ресурс для украинских разработчиков DOU с апреля 2020-го года начал проводить кризисную аналитику и показал, как менялась кривая количества опубликованных вакансий на данном ресурсе в Украине.
На графике бросается в глаза существенное проседание по вакансиям в апреле. Два месяца спустя кривая не смогла достичь ни одного из минимальных показателей как минимум с марта 2019-го года. Только в июле удалось получить предкризисное количество вакансий. Потеря предложений была вызвана не только карантинными ограничениями внутри страны, но и тем, что украинский IT-рынок в подавляющем большинстве ориентирован на аутсорс (заказчики в основном с Запада), а не на производство собственного ПО. Следовательно, наши разработчики сильно зависят от иностранного бизнеса, который также вынужден был остановиться вследствии введенных ограничений. А нет заказчиков — нет и работы.
Однако, не все так плохо. Аутсорс означает зависимость от иностранных компаний. А поскольку большинство клиентов из развитых стран, где бизнес быстро восстанавливается, проседание украинского IT-сектора не такое и страшное.
Более того, карантинные ограничения постепенно смягчаются, люди начинают привыкать и адаптироваться под новые условия работы. Дистанционный режим работы хоть и не самый продуктивный, однако он максимально подходит большинству IT-работников, чего нельзя сказать о тех, кто занят в других секторах экономики.
Также, текущие осложнения экономической ситуации в мире отличаются от тех, которые были прежде — в 2001 и 2008 годах. Сейчас отсутствует разочарование инвесторов — все готовы вернуться не прежнюю колею, как только уйдут карантинные ограничения. Поэтому, последствия эпидемии не должны сыграть решающую роль в определении ориентиров IT-сферы в 2021 году.
О чем говорят аналитические обзоры
Давайте воспользуемся ежегодным опросом от Stack Overflow и взглянем на то, какие профессии были наиболее популярны в 2019 году и каких изменений они претерпели к августу 2020 года. Будем руководствоваться данными из Stack Overflow Developer Survey 2020 и Stack Overflow Developer Survey 2019.
Небольшая ремарка для тех, кто не знаком с данным сервисом. Stack Overflow (произносится как “стэк оверфлоу”) — специальный интернет-ресурс для IT-специалистов различных направлений, где каждый может задать свой вопрос и получить профессиональный ответ от других участников сервиса. Другими словами, это интернациональная система вопросов-ответов для айтишников.
Итак, взглянем на статистику, собранную Stack Overflow за 2019 год, в которой указано, с какой должностью себя ассоциируют участники данного сервиса. В опросе приняло участие около 90 000 разработчиков. В среднем, каждый респондент идентифицировал себя с тремя должностями сразу, что и отразилось на необычном процентном соотношении на картинке ниже:
Вот та же статистика, только уже за февраль 2020 года (65 000 опрошенных):
Как можно видеть, лидирующие специальности за последние годы принадлежат Full Stack и BackEnd направлениям. За ними прочно закрепились FrontEnd девелоперы, энтерпрайз разработчики (создают ПО для бизнес-заказчиков) и разработчики мобильных приложений. Также, на несколько позиций вверх пробился и DevOps специалист, который синхронизирует все этапы разработки программного продукта — от написания кода до тестирования и релиза.
В целом, резкие и непредсказуемые перемены в профессиональной деятельности разработчиков не наблюдаются. Из этого можно сделать вывод, что примерно та же тенденция в профессиях сохранится и на следующий год.
Также, посмотрим на популярность используемых языков и технологий. Из опроса 2019-го года и 2020-го, соответственно:
На первом месте обоих рейтингов от Stack Overflow язык программирования JavaScript, который находит широкое применение в веб-разработке (как BackEnd, так и FrontEnd). За ним следуют языки верстки — HTML & CSS, без которых немыслим уже упомянутый фронтенд. Далее идет уклон в сторону баз данных. Если мы говорим о реляционных БД, то без языка запросов SQL не обойтись. Их используют различные IT-специалисты — от разработчиков ПО до тестировщиков и системных администраторов.
Python, Java, C# — универсальные языки программирования, которые используются во множестве сфер разработки. Последние годы они не покидают ни один ТОП-10 языков, и у них достаточно серьезные аргументы, чтобы гарантировать себе пик славы на многие годы вперед.
Инструменты Bash/Shell/PowerShell применяются зачастую системными администраторами и DevOps инженерами, поскольку позволяют автоматизировать большинство рутинных процессов, благодаря чему они и оказались на высоких местах в опросе от Stack Overflow.
Также рассмотрим рейтинг языков согласно индексу TIOBE, который оценивает популярность языков программирования каждый месяц и является респектабельным показателем — на него ссылается множество аналитиков в ходе своих исследований:
Рейтинг индекса TIOBE отличается от аналогичных на Stack Overflow. Это связано с тем, что TIOBE-рейтинги основаны на количестве квалифицированных инженеров по всему миру, а также количестве курсов и сторонних поставщиков. Популярные поисковые движки, такие как Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube и Baidu, используются для расчета рейтингов. Важно отметить, что индекс TIOBE — не о лучшем языке или языке, на котором было написано наибольшее количество строчек. Он может быть использован, чтобы узнать, соответствуют ли ваши навыки современным запросам, либо, чтобы принять стратегическое решение касательно того, какой язык должен быть использован в разработке новой программной системы. Подробнее с методами определения индекса вы можете ознакомиться по ссылке.
Итак, в данном рейтинге появились языки программирования C/C++, которые известны даже большей универсальностью, чем Java, Python, C# и JavaScript вместе взяты, поскольку помимо прочего они могут работать с памятью, что очень важно в ресурсоемких задачах — играх, тяжеловесных ПО, микроконтроллерах и т. д. Также, C/C++ часто изучаются во многих технических ВУЗах.
PHP до сих пор остается классическим языком серверной разработки и не собирается покидать эту нишу, что и обеспечивает ему 9-е место в рейтинге.
Рассмотрим список популярных веб-технологий согласно Developer Survey за 2019-й и 2020-й годы соответственно:
Как видно из диаграмм, главные позиции принадлежат FrontEnd-библиотекам и фреймворкам — jQuery, React.js, Angular, а также технологиям .NET платформы — ASP.NET и ASP.NET Core. Наряду с ними библиотека Express, которая используется в бекенде на Node.js (JavaScript). Только после них идут фреймворки Spring (Java) и Django (Python).
Список других фреймворков, библиотек и инструментов разработки:
Максимальный процентный отрыв у платформы Node.js (веб-разработка), за ней идут .NET и .NET Core. Технологии компании Майкрософт удерживают хорошие позиции. Далее идут библиотеки Python: Panda (анализ данных) и TensorFlow (платформа для машинного и глубокого обучения). За ними — React Native (фреймворк для кроссплатформенной разработки под iOS и Android) и движок Unity 3D (разработка игр под различные устройства и платформы).
Полученные сведения уже дают достаточное представление о том, что сейчас происходит на рынке IT-услуг и позволяют делать определенные прогнозы касательно востребованности IT-профессий.
Какие IT-специальности будут востребованы?
FrontEnd Developer
Как мы выяснили в ходе анализа Stack Overflow Developer Survey и индекса TIOBE, фронтенд-триада HTML, CSS и JavaScript по сей день востребована и используется множеством разработчиков. Эти языки находят широкое применение в разработке клиентской стороны веб-приложений (визуальная часть + пользовательская логика).
Также, ресурсы по поиску работы имеют множество вакансий FrontEnd Developer. Как пример, на украинском ресурсе для IT-разработчиков DOU на момент написания статьи было опубликовано 564 вакансии по данному направлению, в то время, как на Java, Python и .NET специальностям припадало 266, 179 и 268 предложений соответственно.
Фронтенд разработчики востребованы, и у нас нет никаких сомнений, что данная тенденция сохранится в 2021-м году.
BackEnd Developer
Разработчик серверной стороны веб-приложений. В своем арсенале имеет один из популярных языков программирования — C# / PHP / Python / Java / JavaScript / Ruby / Perl либо иной. Также, бекенд-разработчик знает множество серверных технологий и техник разработки.
Данные специалисты ответственные за все, что происходит по ту сторону любого приложения в вебе. Если сравнить FrontEnd и BackEnd направления с айсбергом, то FrontEnd — его верхушка, которая выглядывает над поверхностью, а BackEnd — все то, что скрыто от наших глаз под водой.
Mobile Developer (Android / iOS)
Мобильная разработка как таковая появилась буквально два десятка лет назад. За это время она прошла серьезную трансформацию и сегодня занимает одну из доминирующих позиций в IT-сфере. При этом, наработками специалистов из этой отрасли пользуется чуть ли не каждый человек — это не только смартфоны и планшеты, но и фитнес-браслеты, наручные часы, электронные книги, компоненты “интернета вещей” и другие гаджеты. Наиболее популярные языки мобильной разработки: Java / Kotlin под Android разработку и Objective-C / Swift под iOS.
DevOps Engineer
DevOps — это методология, которая совмещает в себе разработку (Development) и системное администрирование (Operations) с целью увеличения частоты выпуска релизов. Данные специалисты также должны обладать навыками использования облачных технологий и автоматизации инфраструктуры.
DevOps инженеры в качестве основного языка программирования выбирают Python за его простоту, мощность, надежность, многозадачность, поддержку большого количества специальных пакетов, которые повышают эффективность данного языка программирования и за другие преимущества. Python используют, в основном, вместе с командной оболочкой Bash для упрощения процессов развертывания ПО и автоматизации различных задач системного администрирования (написание скриптов).
Можно сказать, что DevOps инженеры — это смесь программиста и системного администратора. Бизнес очень любит универсальных игроков, так что данная профессия очень актуальная и престижная.
CyberSecurity
IT индустрия растет, а значит, растет и спрос на тех, кто должен ее оберегать. Этим и занимается специалист по кибербезопасности. На самом деле, данное направление также имеет несколько ответвлений и вы можете как защищать программные системы от проникновения (направление “защиты”), так и быть пентестером — специалистом по выявлению уязвимостей в подобных системах (направление “атаки”).
Можете уйти в анализ и риски (должность Security Analyst и Risk Compliance Specialist, соответственно), заниматься поиском компьютерных вирусов и выстраиванием линии защиты от них (Malware Researcher), а также испытать себя во многих других CyberSecurity-специальностях — сфера кибербезопасности дает большие возможности для самореализации.
Database Administrator (DBA)
Нормальное функционирование современного мира невозможно без баз данных и тех, кто умеет их грамотно обслуживать. С каждым годом спрос на таких специалистов растет пропорционально разрастанию IT-инфраструктуры. Помимо обслуживания в обязанности DBA входит выработка требований к базам данных, их проектирование, реализация, эффективное использование и поддержание целостности БД, включая управление учетными записями пользователей БД и защиту от несанкционированного доступа.
Тут не обойтись без знаний языка запросов SQL, одной из СУБД (PostgreSQL, например), а также различных технологий и приемов системного администрирования.
PM (Project Manager)
В мире IT ощущается сильный дефицит хороших проектных менеджеров — управленцев, которые руководят IT-проектом в целом. В большинстве случаев это бывшие программисты или тестировщики. Однако, чтобы стать PM-ом необязательно иметь за плечами кодерское прошлое.
Ключевыми обязанностями этих специалистов являются: проектирование и расстановка приоритетов, планирование выполнения задач, контроль, коммуникации, а также оперативное решение проблем внутри проекта. Ну а самая главная задача — сделать так, чтоб идея заказчика была реализована в срок в условиях ограниченности ресурсов.
Конечно, это очень обобщенный список обязанностей PM-а. На самом деле данные специалисты часто работают сверх нормы и их рабочее состояние можно описать как “белка в колесе”. Однако послевкусию успешно выполненного проекта тяжело что-либо противопоставить.
Загвоздка этой профессии в том, что должность PM-а предусматривает большую конкуренцию. Согласно данным, в июле 2020-го года на сайте DOU на одну вакансию проджект менеджера откликнулось почти 30 кандидатов (всего 183 вакансии). Поэтому, чтобы заполучить желаемую позицию, необходимо обладать не только необходимым опытом и знаниями, но и хорошими организаторскими способностями, а также другими важными для этой профессии личностными качествами.
QA Engineer (Quality Assurance)
Специалист по обеспечению качества, он же — тестировщик. Призван выявлять неисправности в ПО, которые допустили разработчики. Востребованность данных специалистов тяжело оспорить, ведь каждый программный продукт перед выходом в свет может пройти не одну итерацию тестирования, где выявляется приличное количество багов. Выходит, без QA мы бы имели очень недоработанное ПО, а производитель — провал продукта на рынке и падение репутации.
Тестировщиков делят на два вида — Manual QA Engineer и Automation QA Engineer. Первый выполняет всю работу вручную, а второй использует инструменты автоматизации, в том числе и языки программирования (Java, Python) что влияет на заработную плату и ценность такого сотрудника. Конкуренция за место тестировщика довольно высока, а потому получить первую должность может быть не таким простым заданием.
Data Scientist
Ученый-эксперт, главные задачи которого — извлечение из большого массива данных полезной информации, которая потом может использоваться в различных сферах; в основном, это бизнес и наука.
Данный специалист должен иметь прекрасное аналитическое мышление, владеть математическим аппаратом (включая мат. статистику и мат. моделирование), знать программирование (Python, R) и базы данных (как SQL, так и NoSQL). С начала 2010-х годов профессия Data Scientist считается одной из самых привлекательных, высокооплачиваемых и перспективных в IT.
Data Analyst
В то время, как Data Scientist ориентируется на предиктивную аналитику, Data Analyst работает с информацией постфактум. У данного профессионала менее техническая роль — он работает с уже готовыми данными, а именно: проводит дескриптивный анализ, интерпретирует и визуализирует результаты, а также презентует отчет своим заказчикам.
Заключение
В данной статье мы постарались дать ответ на вопрос “Какую IT-специальность стоит выбрать в 2021 году?”. Такие ресурсы, как Stack Overflow, DOU и TIOBE помогли нам проанализировать текущую ситуацию в IT и проследить взаимосвязь с прошлым, 2019 годом. В целом, уклон на веб, энтерпрайз и мобильную разработку сохранился и каких-то кардинальных изменений не ожидается. Также, никуда не исчезла востребованность тестировщиков и специалистов, которые работают с данными.
Естественно, карантинные ограничения из-за распространения коронавирусной инфекции отразились и на IT-секторе (снижение ЗП, увольнения, переход на дистанционную форму работы), но мировое население привыкает и адаптируется под новые условия — все постепенно приходит в норму, а сами инвесторы готовы ринуться в бой, как только все ограничения будут сняты.
Зачем ждать подходящего момента? Берите момент и делайте его подходящим! ITVDN - это образовательная платформа для онлайн обучения программированию и информационным технологиям.
Наш портал насчитывает более 190 видео курсов и имеет собственные программы обучения по 12 самым популярным IT-профессиям, среди которых:
Верстальщик сайтов
FrontEnd Developer
Java Developer
Python Developer
C# / .NET Developer
Android Developer
iOS Developer
Unity / Game Developer
Database Developer
и другие
Формат обучения - записанные видео курсы, по которым можно обучаться в любое удобное время. Таким образом, вы сможете освоить IT-профессию не выходя из дома. Со всеми специальностями можно подробно ознакомиться, перейдя на страницу специальностей ITVDN.
Помимо записанных видео курсов, наша образовательная платформа предоставляет обучение в новом формате - Live Online. Он предусматривает регулярные онлайн занятия с ментором в небольших группах из 6-15 человек, на которых объясняется новый материал, обсуждаются нюансы выполнения практических заданий, есть проверка ДЗ и чат для общения с одногруппниками, а также доступ к видео курсам ITVDN. В процессе обучения учащиеся также разрабатывают собственный курсовой проект, который в конце защищают и добавляют в свое портфолио.
На данный момент Live Online обучение проводится по четырем самым популярным IT-специальностям:
C#/.NET Developer
Frontend Developer
Java Developer
Python Developer
Если вас заинтересовал формат Live Online, переходите по ссылкам и ознакомьтесь с подробностями предложений по каждой из четырех специальностей.
Надеемся, что наша статья была полезной для вас. С радостью примем любые пожелания и замечания. Выбирайте IT-профессию вашей мечты и пускай ничто не останавливает вас на пути к ней!
Изучайте программирование на ITVDN
FAQ програміста-початківця
Автор: Влад Сверчков
Приветствуем вас!
Все, кто решились выбрать для себя путь программирования очень часто сталкиваются со стандартными вопросами: “С чего начать?”, “Что учить?”, “Сколько времени мне надо потратить на обучение, чтобы получить должность разработчика и зарабатывать N-ную сумму денег?” и т. д.
Мы решили собрать наиболее часто задаваемые вопросы (от англ. “Frequently Asked Questions” - F.A.Q.), которые интересуют будущих программистов, и дать на них максимально информативные ответы. Надеемся, что наша статья окажется для вас ценной находкой.
Какой язык программирования выбрать?
Самыми легкими для изучения обычно называют такие языки программирования:
Python
JavaScript
Ruby
Java
C#
Если решитесь изучать один из них, будьте готовы к многочисленной конкуренции, ведь о простоте этих языков известно не только вам.
Однако, мы советуем ориентироваться не на язык программирования, а на сферу разработки, в которой желаете себя реализовать и которая будет вам при этом интересна.
Если вам хочется создавать красивые и эффектные веб-страницы вместе с пользовательской логикой - выбирайте направление FrontEnd разработки и изучайте JavaScript + языки верстки HTML и CSS, а также смежные технологии.
Хотите создавать то, что находится “под капотом” веб-приложений? Тогда вам больше подойдет BackEnd разработка, которая представлена следующими языками: PHP, Java, C#, Python, JavaScript, Ruby и другими.
Хотите посвятить себя созданию мобильных приложений? Обратите внимание на C#/Java/Kotlin (для ОС Android), Objective-C/Swift (iOS).
Любите компьютерные игры и горите желанием их разрабатывать? Для более легковесных игр подойдет C# со средой разработки Unity либо язык Java, в то время, как создание серьезных игр невозможно без высокопроизводительного С++.
Программирование роботов и прочих устройств, в которых используются микроконтроллеры требует владения низкоуровневым языком программирования Assembler, а также C/C++.
При выборе сразу отбросьте мысли, мол, “буду учить тот язык программирования, за который больше платят”.
Во-первых, потому что помимо самого языка необходимо знать еще целый стек вспомогательных технологий: сборщики проектов, пакетные менеджеры, системы управления базами данных и/или другие важные компоненты разработки ПО (для каждой специальности свой набор). Вы должны отдавать себе отчет касательно готовности освоения того или иного стека. Конкретный список технологий под каждую специальность можно найти в требованиях к вакансиям либо на различных ресурсах, которые специализируются на IT. Как пример, в каталоге специальностей ITVDN вы сможете узнать о специфике работы порядка 20 IT-профессий.
Во-вторых, такой денежно-ориентированный подход имеет один существенный минус, который перечеркнет все ваши старания - рано или поздно вы просто-напросто морально выгорите. Деньги - это хороший стимул, однако, если вы не будете получать от своей работы удовольствия, она превратится в каторгу, ваша трудоспособность упадет и в итоге вы будете вынуждены искать себе другой источник заработка.
Поэтому вначале выберите ту сферу разработки, которая вам по душе, а затем уже выбирайте язык программирования и вспомогательные технологии. Ведь то, что вам нравится, будет легче и интереснее изучать. А солидные деньги вы сможете зарабатывать в любой IT-области. Главное - вырасти как профессионал и любить свое дело.
Нужно ли высшее образование?
Чтобы стать программистом, не обязательно получать высшее образование. В конце-концов, на собеседовании диплом вам вряд ли чем-то поможет, если вы не справитесь с тестовым заданием, либо не сможете дать достойные ответы на теоретические вопросы и произвести положительное впечатление на рекрутера.
На деле в большинстве компаний диплом не требуют (он “для галочки”), а смотрят лишь на ваши профессиональные навыки и личные качества. Крупные компании, однако, очень часто поступают иначе - отказываются рассматривать кандидата без высшего образования (либо требуют, чтоб кандидат был в процессе получения соответствующего образования).
Не секрет, что большое количество отечественных ВУЗов имеет устаревшую программу обучения (лет на 10 в лучшем случае) и способно дать студентам только фундаментальное понимание программирования и его концепций.
Если говорить о развитых странах, то там все серьезнее. Учеба в “вышке” тяжелее, к выпускникам ВУЗов относятся лучше и диплом действительно играет более значимую, нежели у нас, роль. Довольно часто иностранные компании вне зависимости от ваших навыков и опыта требуют диплом бакалавра либо, как минимум, чтоб вы на момент подачи резюме учились в ВУЗе и были на финишной прямой. Более того, диплом упрощает процесс получения рабочей визы, без которой вы не сможете легально работать программистом, например, в Чехии или США.
А вот на какие должности вас 100% не примут без диплома как в родной стране, так и в зарубежье - это руководящие позиции в IT. Их занимать имеет право только человек с полным высшим образованием.
Несмотря на все противоречивые моменты, университет - это неплохая школа жизни. Самое важное, что можно для себя вынести из ВУЗа - это связи. Вы можете заиметь хорошие знакомства и получить очень полезные советы касаемо вашего дальнейшего развития в IT буквально из первых уст. Идеальным вариантом будет отучиться 2 года на очной форме обучения, затем перейти на заочную и параллельно работать по специальности. Как итог - по окончании бакалавриата вы имеете и университетскую базу, и диплом, и опыт работы.
Надо ли знать математику?
Если вы собираетесь реализовывать себя в научной области, либо в таких IT-сферах, как машинное и глубокое обучение, Data Science, Big Data, разработка искусственного интеллекта, то без высшей математики никак не обойтись. Это именно тот случай, когда необходимо по максимуму знать и применять математический аппарат для разработки сложных алгоритмов, а также систем, которые работают с огромными массивами данных.
Однако, зачастую IT не требует знания глубоких материй и необходимый мат. аппарат ограничивается первыми курсами университета (теория множеств, графов, автоматов, алгоритмов, базовая логика) ну и плюс стандартная школьная программа, естественно. Наименее зависимыми от математики являются такие специальности, как верстальщик и FrontEnd разработчик.
Вообще-то, математика в программировании - это прежде всего о математическом и аналитическом мышлении, которое помогает критически мыслить, абстрагироваться и развязывать задачи, умело используя логику. Именно правильный взгляд и рациональный подход к решению задач является главным оружием программиста. С развитием мат. мышления вам помогут различные книги, а также практика - кодинг, решение математических задачек и прочие упражнения, которые можно найти на просторах интернета.
Сколько учиться на программиста?
Зависит от выбранной специальности и способа обучения. Быстрее всего освоение программирования происходит на курсах, поскольку вы изучаете все необходимые технологии в компактном и структурированном виде. Также над вами есть ментор, который не дает расслабиться, поддерживая дисциплину и помогая в случае необходимости.
Выбрав самообучение, вы увеличите время освоения IT-профессии, поскольку будете сами выбирать программу обучения, составлять план занятий и подбирать информационные ресурсы. Более того, очень тяжело будет поддерживать мотивацию, что чревато прокрастинацией, и, как следствие, вы рискуете “забросить” учебу так и не достигнув желаемой цели.
Подробнее о том, как необходимо планировать самообучение вы можете прочесть в нашей статье “Онлайн обучение программированию: подводные камни и советы”.
Обычно на обучение с помощью курсов уходит от нескольких месяцев до 6-8, а при самообучении - от 6 месяцев до года либо полутора года при условии организации систематических занятий и практик.
Как попасть на работу, не имея опыта?
Если вы практикуете классический вариант поиска работы, то вначале необходимо составить достойное портфолио, в котором вы продемонстрируете все ваши знания и навыки. Разработайте несколько удачных проектов, которые максимально раскроют вас как разработчика в выбранной IT-сфере. Не менее важным является и грамотное оформление резюме, ведь это ваша визитная карточка, ваш крючок, за который должен зацепиться рекрутер. Оно должно быть составлено без ошибок и без лишних деталей. При этом в резюме желательно указывать все ваши заслуги в сфере вашей будущей работы либо в смежных областях: диплом технического ВУЗа, сертификаты пройденных IT-курсов, победы в состязаниях программистов и т. д. Указывайте все то, что повышает вашу ценность как сотрудника.
Однако, в программировании есть и другие варианты поиска первой работы:
Попасть на стажировку. Вы учите необходимые технологии и языки самостоятельно, а затем ищете вакансии, которые предусматривают данную форму занятости. Стажировка хороша тем, что она ориентирована на тех, кто хорошо владеет теорией, но не имеет практики. Во время ее прохождения вы учитесь применять ваши знания. Стажировка не всегда оплачивается, зато опыт, приобретенный во время ее прохождения - бесценен. Даже если вас не приняли на полноценную работу после стажировки, у вас уже будет минимальный набор профессиональных навыков и опыт, что даст фору перед другими новичками в дальнейших поисках работы.
Успешно пройти курсы от IT-компании по выбранной специальности и затем попасть к ним на стажировку. Многие компании набирают желающих и учат их “под себя”. Если вы демонстрируете хорошие показатели в ходе обучения и выполняете все домашние задания, проходите все тесты, успешно разрабатываете и защищаете свой курсовой проект, вам по завершении учебы предложат стажировку в этой компании. Это отличный вариант, поскольку вам дают актуальные знания, не учат лишнему и при этом вы обогащаетесь опытом. Единственный нюанс - чтобы попасть на такие курсы, необходимо пройти предварительное тестирование и последующее собеседование (техническое либо нетехническое). То есть, этот вариант предусматривает априорное владение изучаемыми на курсе технологиями на определенном уровне.
Знакомства, они же связи (^^). За подробностями обращайтесь к вашим друзьям и знакомым.
Какие личные качества должны присутствовать у будущего программиста?
Стрессоустойчивость.
Работа программистов связана с дедлайнами - конечными сроками, в которые необходимо выполнить ту или иную задачу. Иногда могут возникать ситуации, когда не все идет по плану - вы замечаете какие-то неполадки в вашем коде либо попросту не успеваете выполнить свою часть работы. В таких случаях стрессоустойчивость позволяет вам сохранять спокойствие и не бросаться в панику, подходя к решению проблем рационально и с холодным умом.
Коммуникабельность и умение работать в команде.
В сегодняшних реалиях никто не занимается разработкой коммерческого ПО в одиночку. Хороший программный продукт требует команды разработчиков с отлаженным механизмом взаимодействия внутри ее. Каждый член коллектива - это как шестеренка в механических часах, без нормального функционирования которой останавливается весь механизм. Необходимо уметь перенимать опыт коллег и обмениваться им с другими, делиться своим мнением, обсуждать различные производственные моменты и просто быть со всеми на короткой ноге. Здоровая атмосфера в коллективе порождает хороший конечный продукт. Более того, навыки коммуникабельности вам помогут не только на работе, но и во всех других сферах жизнедеятельности.
Умение всегда учиться
Мир имеет высокую динамику развития, и такие люди, как программисты, очень хорошо ощущают перемены в IT и зачастую сами их порождают. Возникновение новых технологий, концепций и подходов к разработке ПО, различные обновления спецификаций языков программирования - все это и даже больше заставляет программистов постоянно учиться и обновлять свои знания.
Математическое мышление и аналитический склад ума
Мы уже упоминали о мат. мышлении в разделе “Надо ли знать математику?”. Оно помогает быстрее и эффективнее решать программистские задачи. Аналитический склад ума позволяет смотреть на проблемы со всех ракурсов, выцепливая самые рациональные подходы. Без этих качеств программисту не обойтись. Да и по жизни такой способ восприятия и обработки информации явно будет не лишним.
Упорство
Работа программистов очень сильно привязана к моральной выносливости. Не все решения приходят в голову сразу и не все задачи имеют очевидные ответы. В такие моменты очень важно не опускать руки. Комбинируйте эту пассивную способность с другими - обращайтесь за помощью к коллегам, абстрагируйтесь от текущей задачи, попробуйте проанализировать все возможные пути подступа к решению. Главное - не отступать и не сдаваться.
Усидчивость и внимательность
В данном пункте обойдемся без комментариев.
Сколько денег можно получать, работая программистом?
Это зависит от опыта работы на позиции, а также от набора технологий, которые вы знаете и применяете на практике. Актуальную зарплату программистов можно узнать на сайте jobs.dou.ua (Украина), jobs.dev.by (Беларусь), itmozg.ru (Украина, Россия, Беларусь, Казахстан) или на Stack Overflow (все страны).
Насколько важно знать английский язык?
Английский язык очень важен для программиста. Большинство материалов, документаций и просто хороших советов находится на англоязычных ресурсах. Для работы в команде разработчиков обычно знаний языка на уровне чтения технической документации и комментирования кода вполне достаточно. Однако если вы планируете самостоятельно вести переговоры и переписку с иностранным заказчиком, либо находитесь в интернациональной команде, ваш уровень английского должен быть выше.
Итоги
Мы разобрали самые популярные вопросы, которыми задаются новички в программировании, и постарались сделать ответы максимально развернутыми, чтобы вы понимали, в каком направлении вам следует двигаться дальше. Надеемся, статья была полезной для вас. Пишите в комментариях свое мнение и задавайте интересующие вас вопросы!
Будьте здоровы и не останавливайтесь на пути к вашим целям!
Выбирайте ITVDN!
Популярні мови програмування на 2019 рік
Автор: Армен Маїлян
Планируя новые вехи для своего образования, полезно оценить их полезность относительно запросов общества в целом и вашей сферы деятельности – в частности.
Для разработчиков программного обеспечения, как начинающих - выбирающих для себя первый язык программирования, так и опытных – выбирающих второй, третий (и тд.) язык для изучения, важно понимать востребованность этого языка на рынке. Владеть современным языком, поддерживающим большинство актуальных парадигм и технологий очень важно. Но важно и чтобы такой язык предоставлял достаточный выбор вакансий при поиске работы. Рассмотрим несколько авторитетных рейтингов, составленных для языков программирования по результатам 2018 года.
1) Популярные языки программирования на 2019 по рейтингу TIOBE
Индекс TIOBE (TIOBE programming community index) - это один из известных индексов, показывающий степень востребованности языка программирования, анализируя данные запросов в поисковых системах. Обновляется данный индекс каждый в месяц. Рейтинг учитывает как количество квалифицированных инженеров во всем мире, так и количество образовательных курсов по различным языкам. Для расчета индекса TIOBE используются данные результатов поиска в популярных поисковых системах, полученных в Google, YouTube, Wikipedia, Bing, Yahoo !, Baidu, и Amazon. Важно отметить, что индекс TIOBE не называет победителя рейтинга - лучшим языком программирования или языком, на котором написано большинство строк кода. Детальнее с методикой получения этого индекса можно ознакомиться тут.
На первом месте продолжает оставаться Java. Однако, несмотря на то, что в сравнении с декабрем 2017 его позиции поднялся на 2.66, из графика, представленного ниже, видно – показатели этого языка падают после пика популярности в октябре 2018.
Второе место занимает язык C, имея 14.282% в рейтинге. Третье место получил Python с 8.376%, сместив в этом рейтинге популярности С++. Позиция Python выросла по сравнению с декабрем 2017 и продолжает расти. Язык С++, в свою очередь, уступив третье место, занимает сейчас четвертое. Его популярность, как видно из графика, колеблется относительно 8%, имея на декабрь 2018 - 7.56%.
Интересной особенностью этого индекса оказывается то, что Visual Basic .NET в настоящее время находится на пятой позиции с рекордно высоким для данного языка уровнем. Это очень неожиданно, ведь профессиональные разработчики программного обеспечения крайне мало используют Visual Basic.
Стоит отметить, что язык SQL снова добавлен в индекс TIOBE с февраля 2018 года. Вследствие этого, для языка SQL нет недавней истории, и может показаться, что значимость SQL растет очень быстро.
2) Статистика GitHub по языкам программирования за 2018 год
Статистика использования языков программирования на площадке GitHub показывает, что лидером по применению продолжает быть язык JavaScript. Он остается бессменным лидером и в частных репозиториях, и в публичных, а также лидирует в репозиториях организаций всех размеров вне зависимости от региона расположения во всем мире.
На втором месте, также без изменений значимости, находится Java. Третье место занимает Python, чья популярность, благодаря применению его в системах машинного обучения, выросла в 1.5 раза. Четвертое и пятое место соответственно занимают, PHP и C++.
По сравнению с предыдущим годом можно отметить стремительный рост применения языка TypeScript – благодаря частоте его применения, в рейтинге он поднялся с 10 места на 7.
Заметным оказалось падение популярности языка С. В этом году он «провалился» сразу на два пункта, занимая сейчас 9 место.
Популярность Ruby падает. Начиная с 2015 года этот язык на GitHub последовательно «сползает» с 5 места на 10 в 2018 году.
Стоит также отметить существенный рост частоты применения языка Kotlin. Несмотря на то, что он пока не входит в десятку - за 2018 год частота его использования в проектах выросла в 2.6 раза.
3) Рейтинг языков программирования на Stackoverflow по результатам 2018 года
Согласно данным опроса Stack Overflow’s 2018 Developer Survey, проводимого уже восьмой год среди более чем 100 000 разработчиков, есть несколько тенденций, которые отмечают редакторы самого StackOverflow:
DevOps и машинное обучение являются сегодня важными тенденциями индустрии программного обеспечения. Языки и структуры, связанные с этими видами работ, находятся на подъеме, и разработчики, работающие в этих областях, получают самые высокие зарплаты.
Python поднялся в рейтинге языков программирования, превзойдя C# по популярности в этом году, так же как он превзошел PHP в прошлом году.
JavaScript, согласно данным StackOverflow, остается лидирующим языком среди использованых разработчиками. Следующим после JavaScript является SQL, занимающий второе место. Затем идут Java, Bash, Python, занимающие соответственно третье, четверное и пятое места.
Кроме этих, озвученных результатов опроса, мы можем увидеть и другие тенденции среди языков из первой десятки.
Из графика количества вопросов на StackOverflow по различным языкам программирования видно, что уровень интереса к Python не перестает расти, как это уже было сказано выше. Это происходит на фоне некоторого снижения количества вопросов по таким языкам как PHP, C++, Java, C#.
Имеет смысл рассмотреть также позиции языков Objective-C и Swift в контексте разработки под iOs. Заметно, что популярность Objective-C стабильно падает. Swift уже сейчас занимает 12 место среди языков, получив 8.1% в рейтинге. В то же время Objective-C находится на 15 месте, имея 7.0%.
Полезной для понимания рынка разработки будет и статистика зарплат специалистов, применяющих в разработке те или иные языки программирования:
Как мы видим, среди языков первой десятки снова выделяется Python - предоставляющий возможность получать высокую зарплату относительно молодым специалистам. Так разработчики Java, со сходным опытом, получают в среднем на 15% меньше, чем разработчики на Python, а разработчики на PHP – почти на 30% меньше.
Среди же наиболее оплачиваемых знаний языков мы можем наблюдать навыки вланения Clojure, F#, Go, Skala и ряда других языков программирования не входящий в первую десятку.
4) Рейтинг языков программирования IEEE Spectrum за 2018
Следующий рейтинг представлен IEEE Spectrum — ежемесячным периодическим изданием, представляющим Институт инженеров электротехники и электроники. Данный институт является международной некоммерческой организацией, объединяющей сотни тысяч технических специалистов со всего мира. Результаты этого анализа остаются актуальными, хотя они и были представлены в июле 2018.
Согласно этому рейтингу Python занимает первое место уже второй год подряд. Такую высокую популярность языка составители объясняют несколькими причинами:
Во-первых, Python стал все чаще применяться как язык embedded разработки. Все больше современных микроконтроллеров получают достаточно мощности и памяти для размещения интерпретатора Python.
Следующей причиной роста популярности Python составители рейтинга видят падение популярности языка R, применяемого в основном для обработки статистических данных. Данный язык последовательно терял очки популярности и опускался с 5 места в 2016 году до 6 места в 2017 году, и 7 места в 2018 году. Соответственно Python все чаще используется для обработки больших наборов данных в статистических исследованиях и задачах машинного обучения.
Заметен в рейтинге IEEE Spectrum рост востребованности PHP - он поднимается с 8-го на 6-е место. Также, согласно данным этого рейтинга, несколько снизилась доля применения JavaScript
5) Статистика W3Techs для языков WEB-разработки на 2019 году
Для понимания изменения трендов WEB-разработки полезным будет рассмотреть статистику, предоставляемую w3techs.com. Данная статистика показывает количество сайтов, применяющих для своей работы те или иные языки и платформы.
В WEB проектах, среди языков фронтенда, первое место по значимости стабильно удерживается JavaScript.
Рассмотрим языки бэкенда:
Тренды применения языков программирования в серверной части на 08.01.2019.
Для бэкенда все еще востребованным остается PHP. Несмотря на незначительные потери позиций, на фоне роста популярности других языков программирования - много кода уже написано на PHP. Около 80% всех сайтов Интернета написаны с применением PHP в серверной части. При выборе языка для изучения стоит учитывать, что на сегодняшний день PHP применяется такими популярными сайтами:
Facebook.com
Wikipedia.org
Vk.com
Sina.com.cn
360.cn
Aliexpress.com
Wordpress.com
Pinterest.com
Cobalten.com
Detik.com
Также мы видим, что несколько упала популярность платформы ASP.NET, хотя она и не утратила второе место по частоте использования.
Растет частота применения Java, Ruby, Scala и JavaScript (благодаря активному применению платформы Node.js). Отмечается уменьшение на общем числе сайтов процента применения Python.
6) Статистика вакансий ITJobsWatch
Статистика ITJobsWatch для вакансий постоянных сотрудников в Великобритании, отсортированная именно по языкам программирования, позволяет рассмотреть языки с точки зрения количества вакансий по ним за период в 6 последних месяцев.
Данный рейтинг начинается со значения 4, поскольку 1, 2 и 3 места занимают вакансии Agile Software Development, Developer и Finance.
Из представленной таблицы можно увидеть, что среди общего количества вакансий лидирует SQL, затем идут JavaScript, C# и Java. Количество вакансий со знанием указанных языков относительно прошлого полугодия практически не изменилось.
С другой стороны, их догоняют Python – уже находящийся на 5 месте и C++ - на 6 месте среди языков программирования в вакансиях разработчиков.
На фоне общего количества вакансий падает доля запросов на разработчиков, владеющих PHP – на 17 пунктов и владеющих T-SQL – на 7 пунктов.
Наибольшая медианная зарплата соответствует Python – 60 000 £
.
7) Данные для размышления
По данным крупнейшей социальной сети для профессионалов и поиска работы - LinkedIn, за 2018 год в ТОП 5 наиболее растущих по количеству вакансий входят: блокчейн-разработчик, инженер сферы машинного обучения, специалист по машинному обучению.
Стоит отметить, что, согласно данным LinkedIn, в ТОП 20 навыков, которыми должен владеть соискатель работы в Индии входят среди прочих, в порядке убывания важности: Java, SQL, HTML, JavaScript, C++. Также, в ТОП 10 навыков, наиболее часто отмечаемых у себя среди представителей молодежи Индии, Бразилии, Индонезии и Южной Африки входят: C/C++, WEB-разработка и Java-разработка.
Выводы
Легко заметить, что одни данные мировых рейтингов языков программирования несколько противоречат данным других рейтингов о тенденциях изменения популярности языков. Однако есть ряд трендов, которые можно четко выделить из всех предоставленных данных:
Все они отмечают заметный рост запросов на разработчиков, применяющих Python – как в уже относительно устоявшихся сферах статистической обработки, BigData и машинного обучения, так и в WEB, и в embedded разработке. Python – однозначно стоит рассмотреть в качестве языка для изучения на 2019 год.
JavaScript остается бессменным лидером фронтенда и постепенно набирает очки в бэкенде и мобильной разработке под Android и iOs.
Java продолжает лидировать как в разработке под Android, так и в сфере Enterprise разработки. Постепенно проникает Java и в WEB-backend.
C# несколько растерял свои позиции, однако он однозначно будет находиться среди первых мест, оставаясь главным языком экосистемы Microsoft с широчайшей поддержкой этой корпорации. Также не стоит забывать достаточно глубокое проникновение С# в WEB, относительную простоту изучения, а также активное применение этого языка в разработке игр (Unity, XBOX 360) и мобильных приложений (Xamarin).
Неоднозначна позиция у C++. Несмотря на то, что этот язык все еще полноценно присутствует в ТОП 10 языков и активно применяется для разработки игр, приложений для мобильных платформ, десктопных приложений и в embedded разработке – все больше заметно вытеснение его с занимаемых позиций другими языками. Кроме того, стоит учитывать, что большинство разработчиков не рекомендуют его как первый язык для изучения, из-за его сложности.
В разработке под iOs Swift уже обогнал Objective-C и разрыв все еще увеличивается.
Значительная часть разработчиков не считает PHP – языком «будущих разработок», при этом признавая его однозначным лидером «сегодняшних разработок» в сфере бэкенда. Падение же популярности его будет явно достаточно длительным.
Ряд языков, такие как Go, Kotlin, Ruby и др. имеет смысл рассмотреть в качестве второго или третьего языка для развития себя как разработчика программного обеспечения.
Возможно на основе представленных данных Вы придете к несколько иным для себя выводам. Со своей же стороны в новом 2019 году мы желаем, чтобы и наши, и Ваши выводы помогли Вам достигнуть успеха в изучении новых языков, и технологий.
ASP.NET Core vs Node.JS
Автор: Guillaume Jacquart
Я работал с .NET-платформой на протяжении 5 лет – как в плане профессиональной необходимости в качестве бек-енд разработчика и архитектора, так и в плане определенных личных задач - таких как открытые и закрытые сторонние проекты.
После нескольких лет работы с экосистемой PHP и имея солидный стаж в плане Java, я пришел к выводу, что язык C# для меня представляет, пожалуй, наибольший интерес – благодаря своему удобству и эффективности. Этот язык комплексный, тщательно продуманный и лично для меня в работе с C# лучшую среду программирования, нежели Visual Studio, человечество еще не изобрело. Более того, ASP.NET уже содержит в себе все, что необходимо веб-разработчику, не требуя установки дополнительных фрейморков и библиотек.
Единственное, что меня не очень устраивало в плане .NET-системы, это ее «закрытость» и использование преимущественно Microsoft-платформы (хотя и существуют специальные Mono, которые позволяют в качестве альтернативы запускать шарп-проекты и под Linux, но достигается это ценой утраты целого ряда полезных фичей).
По этой причине я обратил свое внимание на Node.JS, хотя мои коллеги называли JavaScript бесполезным языком, а Node.JS – хламом. Я был очарован однопоточной каллбэк-системой, я наслаждался, создавая REST API, используя ExpressJS.
Но затем Microsoft выпустила кроссплатформенную технологию ASP.NET Core, и я призадумался, что же и когда стоит использовать.
После чего я решил собрать как можно больше информации касательно возможностей и реализации тех или иных фичей двух технологий, после чего выбрал для себя, по моему мнению, наиболее удобную технологию, в рамках которой и развернул свой новый проект. Надеюсь, эта публикация вам тоже поможет прийти к определенному решению.
Модель обработки запроса
Node.JS
Node.JS успел зарекомендовать себя как однопоточный обработчик запросов. Что это значит? Это значит, что вместо обработки каждого поступившего http-запроса внутри отдельного потока или процесса (наподобие Apache), обработка производится внутри одного потока.
Подобный подход делает обработку запросов однопоточной, тогда как в Apachi\PHP обработка является многопоточной. Однако, что касательно Node.JS, здесь преимущество заключается в асинхронной работе системного ввода-вывода, которое, соответственно, не блокирует требуемый поток. Операция ввода\вывода производится в рамках отдельного потока, в то время как основной продолжает свою работу. Как только вторичный поток завершает свою работу, вызывается callback, который, соответственно, передает в контекст основного потока результат.
С одной стороны, использование подобного подхода прекрасно подходит для приложений, интенсивно работающих с вводом\выводом. С другой стороны, появляется вероятность так называемого «ада обратных вызовов», который провялятся в цикличной сложности кода. Будем надеяться, что новая версия введёт в обиход полноценные async\await.
Однопоточная модель обработки запросов Node.JS может быть сгруппирована при помощи использования нативной кластеризации, Nginx или PM2.
ASP.NET (синхронный)
Исторически так сложилось, что обработка запросов ASP.NET MVC (или Web Api) производится подобно Apache / PHP: каждый запрос обрабатывается внутри своего собственного потока пула потоков. И каждая команда ввода-вывода производится синхронно внутри каждого из потоков.
В контексте жесткой работы с вводом-выводом подобный подход, конечно, менее удобный, если сравнивать со схемой Node.JS.
Хвала Небесам, .NET Framework 4.5 вводит в C# async\await, что также исправляет сложившуюся ситуацию.
ASP.NET Core (асинхронный)
Паттерн async\await позволяет в полной мере ощутить все прелести асинхронного программирования. Действительно, теперь появилась возможность указать каждый обработчик запросов как асинхронный, благодаря чему работа с системой ввода-вывода будет производиться в контексте своего потока. Это позволит не блокировать основной поток.
Подобная модель на базе Task`ов позволяет использовать обратные вызовы, ощутить все прелести асинхронности и прочее.
.NET Core часто применяет паттерн async\await при интенсивной работе с системой ввода-вывода.
Async\await Node.JS VS Async\await ASP.NET Core
Пример кода Node.JS для асинхронного запроса в базу данных:
Пример того же кода на ASP.NET Core (фрагмент класса Startup):
Разница между двумя моделями в том, что ASP.NET Core способен обрабатывать большее количество запросов благодаря своей дефолтной параллельности. В то же время переключение между асинхронными потоками может занимать время в случае использования большого количества общих для многих потоков переменных. В такой ситуации все же Node.JS будет быстрее.
Много современных языков программирования, вроде того же C#, реализуют асинхронный ввод-вывод, который часто недооценен сообществом Node.JS-разработчиков, но который может приводить к приятным неожиданностям.
В этом случае Node.JS в значительно меньшей мере технологичный, если сравнивать его с ASP.NET Core.
Язык программирования
Особенности и безопасность
Вращаться в среде C#-разработчиков – значит выслушать множество критики в адрес динамической типизации и удивительных булевых преобразований JavaScript. Впрочем, эта критика является обоснованной, если учитывать, что JavaScript был разработан всего за 10 дней для динамического контента HTML.
С другой стороны, с того времени язык очень даже «вырос», и новая спецификация привносит такие фичи, как:
Классы
Новые идентификаторы (const, let), повышающие надежность кода
Указательные функции
Интерполяцию строк
Генераторы
Элементы рефлексии
Впрочем, C# все равно остается намного более мощным языком программирования, ибо все вышеперечисленное – всего лишь небольшая часть того, чем может похвастаться строго-типизированный объектно-ориентированный язык программирования. Мне кажется, что для C# лучшей среды работы, нежели Visual Studio, просто не найти.
Однако, если учитывать рост спроса на рынок микросервисов, большинство из особенностей подобных гигантов здесь не найдут свое применение.
Изучение
Если вы раньше работали с классической MVC-архитектурой, переход на Node.JS \ Express затребует некоторое время, чтобы привыкнуть. Некоторые же вещи могут вообще оказаться в новинку. Также нужно будет время для того, чтобы «переварить» событийно-ориентированную парадигму Node.JS.
Что действительно может показаться запутанным впервые при работе со средними или большими приложениями, так это паттерны рефакторинга кода и, собственно говоря, архитектура кода. Так как функциональность Express.js очень гибкая, выбор «правильной» архитектуры и файловой структуры может быть затруднительным. С другой стороны, для создания качественного приложения без этого – никак.
Что же касается ASP.NET (Core) MVC / WebApi, то тут уже предоставляется готовая файловая структура. Да, разработчик может применить немного «креативности» при создании бизнес-логики и слоя для работы с базой, но предопределенность архитектуры упрощает разработку.
Однако, в случае с маленькими приложениями, JS-платформа более предпочтительна, так как позволяет написать сайт-визитку с использованием одного лишь js-файла и одного лишь package.json.
Продуктивность
Я обнаружил, что написание простого кода является более быстрым при использовании Node.JS. Причина в том, что простые приложения тут проявляют большую «гибкость».
Также возникают вопросы касательно типизации языка, так как в некоторых случаях оказывается, что динамическая типизация является скорее плюсом, чем минусом.
С другой стороны, я заметил, что при написании объемного кода, более читабельным он оказывается при работе с C#, чем с JavaScript. Думаю, причина этому – строгие ооп-парадигмы.
Что касается отладки и юнит-тестирования, тут C# / Visual Studio также показывают лучшую продуктивность, хотя и сказать, что JavaScript совместно с Visual Studio Code пасет задних, нельзя. Время построения маленьких js-приложений также меньше.
Екосистема
В этом плане две технологии отличаются больше всего. Node.JS обязана своим развитием в основном сообществу, которое и разработало для неё большее количество существующих популярных библиотек.
С одной стороны, вы чувствуете себя очень свободно в выборе модулей для разработки. С другой же, внезапное обновление одного из пакетов, отсутствие надлежащей проверки на ошибки и стабильность, в некоторых случаях могут легко привести к обвалу всего приложения.
ASP.NET Core технология разработана проверенной командой профессионалов из Microsoft. И она предоставляет абсолютно все, что необходимо разработчику веб-приложений любых направлений. Кроме того, сторонние библиотеки также качественно выполнены и разработаны другими крупными проверенными компаниями.
Один из многочисленных примеров – ORM-инструменты. Entity Framework, официальный инструментарий для работы с базой данных, предоставляет абсолютно все, что необходимо разработчику.
Публикация и запуск
А вот это та область, где Node.JS, без сомнения, лидирует. Технология является открытой, кросс-платформенной, поддерживает докеризацию. Это значит, что вы запросто сможете запустить свое приложение под такими платформами:
На собственном Linux, Windows или Mac-сервере. Все, что для этого нужно – это движок Node.JS и реверсивный прокси-сервер (наиболее популярный – Nginx).
Докер-контейнер.
Большинство PaaS-провайдеров (AWS, Google App Engine, Azure, Heroku, …)
Сервис Now, который позволяет провести запуск Node.JS-приложения в одну строчку без предварительной конфигурации.
Также есть много подходящих CI & CD – платформ.
Что же в случае ASP.NET-стека, тут все обстоит несколько печальнее. Хотя и ASP.NET Core также кросс-платформенная, количество сервисов для публикации несоизмеримо меньшее.
Вот какие хостинги я знаю на данный момент:
Собственный Windows-сервер с классическим IIS.
Собственный Linux-сервер с реверсивным прокси.
Докер-контейнер под Windows. Работает отлично, но занимает много места.
Некоторые облачные сервисы PaaS. В основном, Azure, но есть также некоторые неофициальные билды Heroku.
Заключение
Node.JS обладает асинхронной событийно-ориентированной моделью обработки запросов, которая не очень то и уступает многопоточной async\await модели ASP.NET.
Производительность Node.JS – приложений не всегда лучше, чем ASP.NET Core. Можно сказать, она даже хуже.
Язык JavaScript не так уж и плох (и становится лучше!). А использование его вместе с Node.JS может дать приятный результат.
ASP.NET (Core) лучше всего подходит для объемных приложений и предоставляет все необходимые разработчику инструменты высшего качества.
Для микро- или среднеразмерных сервисов Node.JS предоставляет широкие возможности в плане публикации.
И, как всегда, не существует одного лучшего инструмента «на все случаи жизни». Попробуйте доступные и подберите для себя тот, который лучше всего отвечает вашим требованиям.
Автор перевода: Евгений Лукашук
Источник
Найкращі практики Node.JS
Автор: Редакція ITVDN
Добро пожаловать в наш небольшой сборник советов от ведущих разработчиков на платформе Node.JS! Цель сей статьи – обобщить все те знания, которые были в свое время опубликованы в различных обучающих постах или журналах.
Автор статьи – Йони Голдберг, независимый разработчик и консультант Node.JS.
Итак, начнем!
1) Мониторинг
Что это: мониторинг – это такая интересная игра в «найти баг быстрее, чем это сделают твои пользователи». И, помимо прочего, эта игра обладает беспрецедентной важностью. Современный рынок переполнен всеми видами предложений - на любой вкус. Учитывайте: вы должны строго следовать заданной концепции, не переполняя ее различными «доп. фичами». Подберите для себя такое решение, которое удовлетворяет всем требованиям.
В противном случае - провал. Разочарованные клиенты. Все просто.
2) «Умное логгирование» - Ваш друг
Что это: логи, как правило, очень быстро превращаются в свалку утверждений и записей всех видов и типов. Однако при должном подходе, логи являют собой образец чистоты, легко дающие понять всю необходимую информацию, связанную с программой. Планируйте ведение логов с самого начала: как они будут собираться, храниться и анализироваться. Убедитесь, что желаемая информация (такая, как частота возникновения ошибок и прочее) в любой момент может быть легко извлечена.
В противном случае: вы окончите бесконечными копаниями в нечитабельных логах и, в конце концов, потратите уйму времени на «костыли», дабы понять хоть что-то из написанного.
3) Сваливайте все возможные задачи на обратный прокси
Что это: увы, но Node.JS ужасен, когда речь заходит о выполнении ресурсоемких задач на центральном процессоре (такие, как g-zip упаковка, SSL-терминация и прочее). Используйте вместо этого промежуточные middleware-сервисы, такие как nginx, HAproxy или облачные.
В противном случае: Ваша невинная однопоточная операция займет процессор на длительное время. Как следствие, ваше устройство будет уделять больше времени различным промежуточным задачам, нежели непосредственно Node.JS-приложению. Не буду говорить о производительности.
4) Блокируйте зависимости
Что это: код должен быть идентичен для всех сред. Однако, на удивление, можно обнаружить, что NPM творит с зависимостями что-то неимоверное – как только Вы попытаетесь установить пакет в различных средах, программа пытается использовать последнюю версию, характерную для конкретной среды, что, безусловно, вносит свои особенности. Дабы избежать этого, используйте файлы конфигурации. npmrc. Они настраивают NPM таким образом, чтобы тот сохранял текущую версию пакета, не последнюю. Как вариант Вы можете использовать “shrinkwrap”-опцию, так как NPM5 блокирует зависимости по умолчанию.
В противном случае: во время тщательного теста QA пропустят версию, которая в продукции будет вести себя неожиданным для разработчика образом. Даже хуже, разные серверы одновременно в том же кластере будут исполнять разный код.
5) Выбирайте правильные инструменты: экономьте время
Что это: процесс должен выполняться и перезапускаться в случае ошибок. Возможно, в обычной ситуации в качестве рестартера может сгодиться и что-то наподобие PM2, но в современном мире, где правит балом Докер и его приспешники, все подобные инструменты должны быть подобраны особенно тщательно.
В противном случае: использование десятков приложений с сотнями своих инструментов в конце концов приведет к хаосу.
6) Убедитесь, что вы используете только лучшие практики отлавливания багов
Что это: как правило, анализ ошибок – наиболее затратная по времени и устрашающая процедура в поддержании стабильности Node.JS-среды. В основном, причина этому – однопоточная модель приложений и отсутствие выработанной стратегии по отношению к ошибкам в многопоточной среде. Быстрых решений не существует, Вы должны в полной мере осознать и приручить это багнутое чудовище.
7) Используйте все ядра процессора
Что это: в своей стандартной ипостаси приложения Node.JS используют только одно ядро процессора, в то время как остальные в задаче никакого участия не принимают. Ответственность за утилизацию всех ядер лежит только на Вас. К примеру, для небольших и средних приложений Вы можете использовать Node Cluster или PM2. Для более полновесных программ обратите внимание на репликацию процесса при помощи Docker-кластера (такие, как K8S, ECS) или деплоймент-скрипты на базе инициализации Linux (system – как вариант).
В противном случае: Ваше приложение, скорее всего, будет использовать только 25 процентов доступных вычислительных ресурсов (!) или даже меньше. Заметьте, типичный сервер минимум 4-х ядерный, наивный деплой обычного NodeJS использует лишь одно (даже если Вы используете PaaS сервисы наподобие AWS beanstalk)!
8) Разумно планируйте диагностику
Что это: работайте с системной информацией как с количеством используемой памяти или REPL и специальных защищенных API. Хотя полагаться на стандартные инструменты и надежней, некоторую ценную информацию и некоторые операции лучше извлекать и производить напрямую в коде.
В противном случае: в один прекрасный момент Вы обнаружите, что тратите очень много информации на деплой – поставляя код в продукцию просто затем, чтобы получить некоторую информацию для диагностики.
9) Используйте APM-программы
Что это: программы мониторинга вроде APM, чтобы активно оценивать кодовую базу. Посему и их действия могут выходить за рамки действий простых программ мониторинга. К примеру: некоторые APM подсвечивают проблемные транзакции, которые могут вызвать падения производительности на стороне клиента и предполагают причину подобных проблем.
В противном случае: Вы можете провести тонны времени на анализ производительности и поиски проблемных мест. Вероятно, Вы так никогда и не будете уверенными, что именно замедляет работу Вашего приложения больше всего и как приложение будет вести себя в «реальном мире».
10) Завершенный код – завершенный продукт
Что это: «только идеальный код может быть выпущен в продукцию». Запомните это с самого первого дня разработки. Возможно, это и звучит как что-то из репертуара законченного перфекциониста, но, поверьте, результат того стоит.
В противном случае: IT-сообщество вряд ли оценит и сохранит для потомков плохо написанную систему.
11) Обращайте внимание на защиту
Что это: Node.JS включает в себя некоторые уникальные защитные механизмы. Понятно и без слов, что более «защищенная» система требует больше времени на ее анализ.
В противном случае: что может быть хуже, чем брешь в защите, когда продукт уже в производстве? Просто банальная проблема, которую Вы забыли исправить.
12) Отслеживайте и контролируйте память
Что это: Node.JS достаточно неоднозначно работает с памятью: движок v8 обладает ограничением в виде 1.4 ГБ, и были известны случаи, когда код был излишне «памятозатратным». Потому и контроль над использованием памяти – вопрос отнюдь не тривиальный. В небольших приложениях Вы можете настраивать работу с памятью, время от времени используя команды оболочки. Однако в проектах больших масштабов позаботьтесь о выводе состояния памяти в надежную систему мониторинга.
В противном случае: вы обнаружите ежедневную «утечку» памяти в несколько сотен мегабайт, как это произошло с Walmart.
13) Разделяйте клиентскую и серверную часть
Что это: для фронт-енд части используйте такие middleware компоненты, как nginx, S3, CDN и прочие. Выполнение подобных задач на Node.JS-сервере очень плохо сказывается на его производительности. Причина этому: обработка великого множества статических файлов в однопотоковой модели.
В противном случае: Ваш единственный Node.JS-поток будет занят обработкой сотен html/изображений/angular/react-файлов вместо того, чтобы заняться непосредственно обработкой динамического контента. Или, другими словами, того, для чего и была разработана технология Node.JS.
14) Храните данные вне сервера
Что это: сохраняйте любую информацию – будь то пользовательские сессии, кэш, загруженные файлы – на внешнем накопителе. Представляйте, как будто Ваш сервер будет регулярно «падать». Используйте «безсерверную» платформу (например, AWS Lambda).
В противном случае: «падение» конкретного сервера в результате приведет не только к утилизации нерабочей машины, но и к падению производительности самого приложения. Более того, зависимость от конкретного сервера значительно уменьшит гибкость всей системы.
15) Используйте инструменты с автоопределением уязвимостей
Что это: даже такие проверенные временем зависимости, как Express и другие, имеют бреши, которые время от времени могут ставить всю систему под угрозу. Однако подобное можно легко обойти, если использовать различные бесплатные или коммерческие продукты, которые постоянно проверяются на предмет уязвимостей и могут быть мгновенно исправлены в случае необходимости.
В противном случае: держать код в чистоте и без уязвимостей в случае неиспользования соответствующих инструментов затребует постоянного отслеживания новостных сводок и обновлений. Немного напрягает.
16) Присваивайте каждой записи лога свой TransactionId
Что это: присваивайте уникальный идентификатор каждой записи в логе. Подобный подход в значительной мере упростит работу и поиск ошибок. К сожалению, из-за асинхронной природы Node.JS реализовать подобное – задача отнюдь не тривиальная.
В противном случае: Поиск производственных ошибок будет достаточно длительным. Как следствие, Вы закопаетесь в логе ко всем чертям.
17) NODE_ENV = production
Что это: устанавливайте переменной окружения NODE_ENV значение production или development. Это нужно для того, чтобы указать NPM, включить ли оптимизацию или нет – так как многие подобные сервисы обладают опцией автоопределения состояния среды.
В противном случае: игнорирование этого нюанса может сильно замедлить производительность. К примеру, если проигнорировать NODE_ENV, используя Express для серверного рендеринга, производительность упадет в три раза!
18) Развертывайте приложение быстро
Что это: исследователи отмечают, что команды, которые проводят большее количество Node.JS-размещений, имеют меньший риск столкнуться с целым рядом проблем. Быстрые и автоматизированные размещения, не требующие рискованных ручных этапов и сервисов, в значительной мере ускоряют процесс размещения. Возможно, Вам стоит обратить свое внимание на Docker в комбинации с CI-инструментами.
В противном случае: длительное размещение -> падения производительности и человеческие ошибки -> неуверенность команды -> меньшее количество размещений и, как следствие, потенциальных фич.
19) Помещайте NPM-версию в каждое размещение
Что это: с каждым новым релизом указывайте в package.json-версию текущего NPM. Это внесет ясность в работе с приложением. Сей фактор важен, так как, к примеру, в среде MicroService некоторые сервисы могут обращать внимание на версию Вашего NPM. Вы можете использовать команду “npm version”, которая укажет версию автоматически.
В противном случае: достаточно часто разработчики пытаются исправить баг, часто в конце обнаруживая, что они ищут его не в той версии, в которой стоило бы.
20) Следите за актуальной информацией
Традиционное: отслеживайте последние обновления Node.JSб NPM и прочих технологий, с которыми Вы работаете. До новых встреч!
Автор перевода: Евгений Лукашук
Источник
Яку ІТ-спеціальність обрати у 2023 році?
Автор: Влад Сверчков
Коротко про українське ІТ в 2022 році.
Український ІТ-спеціаліст у 2022 році.
Аналітичні огляди сучасного ІТ.
Які ІТ-спеціальності будуть затребувані у 2023 році?
Кому потрібне гарне володіння англійською мовою?
Висновки.
Вітаємо наших читачів!
Українське ІТ демонструє чудові міцність та адаптивність навіть в умовах повномасштабної війни. Так, багатьом айтішникам довелося здійснити вимушене переселення в інші регіони країни, ба навіть інші держави, аби знаходитися у відносній безпеці. Однак більшість зберегла за собою роботу і доходи, які дозволяють не тільки забезпечувати себе та свої родини необхідними умовами та засобами для життя, але ще й активно донатити на армію та різноманітні волонтерські проєкти – середній донат станом на червень 2022 року становив $270 на місяць (відповідно до результатів опитування на DOU).
Стабільність та гарні умови праці, можливість віддаленої роботи з будь-якої точки світу, де є інтернет, велика кількість ІТ-напрямків на вибір – ці та інші особливості стали вельми затребуваними у багатьох українців. З’явилася велика кількість бажаючих спробувати свої сили в ІТ, і піднялися одні з найголовніших питань: “З чого почати? Яку ІТ спеціальність обрати у 2023 році?”.
А й дійсно – як грамотно оцінити ситуацію на ринку ІТ та обрати собі спеціальність, яка:
буде подобатися;
матиме гарні кар’єрні перспективи;
буде забезпечувати задовільні умови праці та ЗП?
Будемо розбиратися з цим у даній статті. Ми розглянемо найголовніші спеціальності, які будуть оптимальними для новачків та матимуть попит на ринку ІТ ще довгий час.
Коротко про українське ІТ в 2022 році
Не встиг світ оговтатися від кризи, спричиненої коронавірусом, як одразу з’явилася нова внаслідок повномасштабного вторгнення росії на територію України.
Відповідно до аналітики Opendatabot – українського ресурсу, що надає доступ до державних даних та аналізує відкриті дані, – ІТ-послуги стали єдиним напрямком бізнесу, який показав приріст у 2022 році в порівнянні з 2021 – аж на 27% (січень-травень 2022). А друге дослідження показує, що за 8 місяців даного року відбулося зростання експорту ІТ-послуг на 16% у порівнянні з відповідним періодом у 2021 році. У серпні 48% усіх послуг, що експортувалися Україною, належали саме ІТ-галузі.
Красномовною є і статистика Джину – українського ресурсу з анонімного пошуку вакансій.
Попит на Djinni перевищує кількість пропозицій майже втричі. У вересні – 18 779 відкритих вакансій і 52 405 кандидатів.
З посту в телеграм-каналі Джину легко бачити, що у серпні 2022 було понад 250 тисяч відгуків на вакансії – це при тому, що з серпня 2021 по лютий 2022 кількість відгуків кожного місяця коливалася в межах від 77 до майже 111 тисяч.
Ще один серпневий пост демонструє залежність середньої кількості відгуків на вакансію від вимоги до досвіду кандидата. Таким чином:
кандидати без досвіду – 75.25 відгуків на вакансію;
1 рік досвіду – 31.36 відгуків;
2 роки – 12.39;
3 роки – 5.76;
5 років – 4.1.
У новачків сезон справжніх “голодних ігор”.
Тим не менш, ІТ-сектор демонструє гарну стійкість та позитивну динаміку попри негаразди війни. Це перспективна галузь, яка не тільки дає масу переваг українцям-айтішникам, але й гарно підживлює економіку.
Варто не забувати, що така успішність багато в чому залежить від закордонних замовників, адже переважна більшість українських ІТ-продуктів та ІТ-послуг експортуються за кордон – приблизно 95% (за матеріалами “Економічної правди”).
Український ІТ-спеціаліст у 2022 році
Звернемося також і до свіжого портрету українського ІТ-спеціаліста від DOU за 2022 рік (15 135 респондентів).
Найбільша кількість чоловіків відповідно до напрямків:
DevOps, SRE (97.3%);
системне адміністрування (95.8%);
CTO, найвищі керівні посади (92.9%);
розроблення ПЗ, Software Engineering (91.3%);
розроблення ігор (89.5%);
Data Science (80.3%);
технічна служба підтримки (70%);
тестування (65.8%);
менеджерські посади (64.9%).
Найбільша кількість жінок у HR/Recruiting (90%), маркетингу (64%) та технічному письменництві (62%). За ними йдуть дизайн (45.6%), сфера продажів (44%) та аналітика (42.5%).
Відповідно до картинки вище, найбільша кількість опитаних українських айтішників працює у якості розробників. Далі йде професія тестувальника, менеджера, HR/рекрутера і т. д.
З картинки вище видно, що найчастіше респонденти мають тайтл Middle (1-5 років досвіду) та Senior (3-9 років). Розробники рівня Junior складають 16.2% (до 2-х років досвіду), а інтерни – всього 1.3% (без досвіду).
Найбільша кількість початківців (Junior та Intern) серед:
HTML Coder (45%);
Data Science (27%);
Game Developers (25%);
аналітики (24%);
тестувальники (23%).
При цьому ІТ України нараховує багато початківців. 6% опитаних знаходяться в ІТ менше року, 59% працевлаштовані в ІТ 5 років або менше, а 71% мають до 6-ти років досвіду за своєю поточною спеціалізацією.
87% респондентів мають вищу освіту, а 8% з них – навіть дві. Ще 5% є студентами і тільки на шляху до отримання диплому. Науковим ступенем володіє близько 2% опитаних. Найчастіше це ті, хто розробляє ПЗ під різну електроніку (Hardware Engineers – 9%), Data Science спеціалісти (7%) і представники найвищих керівних посад – CTO/CEO (6%).
Щодо англійської: в цьому році 53% респондентів оцінили свій рівень як Upper Intermediate (вище середнього) або Advanced (поглиблений). 33% визначають свій рівень як Intermediate (середній).
На зображенні бачимо, що найбільш цікава робота у керівників найвищої ланки (а хто б сумнівався?), спеціалістів у сфері маркетингу та HR/рекрутерів (критерії “цікава” та “дуже цікава”).
Найбільш невдоволеними виявилися сисадміни, Support та спеціалісти з продажів. Фахівці перших двох напрямків спеціалізуються на вирішенні технічних проблем, тому часті смикання під час роботи, необхідність швидко все полагодити та афілійовані із цими процесами стреси для них не є рідкістю. Ще можна додати відносно невисоку медіанну ЗП – $1000-$1045 – трохи вища за Junior розробника. А невдоволення спеціалістів із продажів можна пов’язати з великою відповідальністю і наслідками частого спілкування з різними клієнтами: Sales Manager-и повинні завжди демонструвати впевненість, знати все про свою компанію та свій продукт, діяти так, аби не заплямувати їх імідж, швидко знаходити відповіді на запитання клієнтів та виконувати інші професійні обов’язки.
Аналітичні огляди сучасного ІТ
Скористаємося аналітикою всесвітньовідомого ресурсу Stack Overflow, яким користується абсолютно кожний програміст сучасності. Порівняємо останні на сьогоднішній день опитування, проведені даним ресурсом – Stack Overflow Developer Survey 2022 (70 000 респондентів) та Stack Overflow Developer Survey 2021 (80 000 респондентів). В опитуваннях брали участь фахівці із різних куточків світу.
З ілюстрації вище видно, що найпопулярнішими напрямками, в яких працюють ІТ-спеціалісти, є:
Електронна комерція – інтернет-магазини, фінансові та торгові угоди і транзакції, проведені через інтернет тощо.
Фінансові технології – оптимізація та вдосконалення фінансових послуг, які надає той чи інший бізнес, компанія, корпорація і т. д.
Розроблення мобільних додатків під Android та iOS.
Медіа сфера.
Медичні технології – поліпшення якості та безпеки медичних послуг різноманітного характеру.
Розроблення ігор під різноманітні платформи.
Далі йдуть напрямки, що цьогоріч не перетнули 5-відсотковий бар’єр.
Із зображення вище бачимо, що найбільша кількість спеціалістів належить до наступних ІТ-напрямків:
FullStack – розроблення серверної + клієнтської частини вебдодатків;
BackEnd – серверна сторона вебдодатків;
FrontEnd – клієнтська частина вебдодатків;
Desktop or enterprise – розроблення настільних додатків (Desktop-додатків), розроблення додатків для потреб бізнесу (Enterprise).
На наступних сходинках йдуть:
розробники мобільних додатків – як для Android, так і для iOS;
DevOps спеціалісти – синхронізують всі етапи розроблення ПЗ: від створення коду до тестування та релізу;
інженери з хмарних технологій – займаються хмарною (cloud) інфраструктурою;
адміністратори баз даних;
системні адміністратори.
Переглянемо перші позиції цього ж рейтингу, але за 2021 рік.
Спостерігаємо аналогічну картину: перші позиції зайняті напрямками FullStack, BackEnd, FrontEnd, Desktop, Enterprise, Mobile Development, DevOps.
Звернемося і до рейтингів мов програмування. Опитування Stack Overflow 2022:
Опитування Stack Overflow 2021:
Перше місце в обох рейтингах займає мова програмування JavaScript, яка широко застосовується у web девелопменті (і у FrontEnd, і в BackEnd царинах). Далі йдуть мови верстання – HTML & CSS – інструменти, які застосовуються під час створення візуальної складової вебсайтів та вебдодатків (FrontEnd). На третє місце цьогоріч потрапляє SQL – мова запитів для роботи з реляційними базами даних (БД), яку обов’язково використовують розробники серверної частини вебдодатків, адміністратори БД та інші спеціалісти.
Python, Java та C# – дуже затребувані серед роботодавців та популярні серед розробників мови програмування, які вирізняються широким спектром застосування, зрозумілістю синтаксису, відносною простотою. Вони потрапляють у кожен ТОП-10 різноманітних мовних опитувань вже протягом багатьох років; їхня перспективність та актуальність обіцяє утримуватися ще довгий час. Особливою популярністю користується Python, оскільки його синтаксис максимально простий та лаконічний.
TypeScript – це та сама JavaScript, тільки з декількома нововведеннями та строгою типізацією для збільшення читаності коду і зменшення кількості ймовірних помилок. Використовується у веброзробці разом із відповідними фреймворками та платформами.
Node.js – платформа, яка розширює можливості та область застосування JavaScript (бекенд, настільні додатки, мікроконтролери).
Bash/Shell/PowerShell – інструменти, які найчастіше стають у нагоді системним адміністраторам та DevOps інженерам, бо дозволяють автоматизувати різноманітні рутинні процеси, завдяки чому вони і отримали високі позиції в рейтингу.
C/C++ – це сучасні корифеї від світу ІТ-розроблення. Непрості у вивченні мови, які при цьому мають дуже великі можливості та потужності. Незамінні під час створення ресурсоємного ПЗ, ігор, мікроконтролерів тощо.
PHP – класична мова серверного розроблення. Незважаючи на її вік, досі популярна та затребувана.
Розглянемо також і рейтинг мов відповідно до індексу TIOBE. Він щомісячно оцінює популярність мов програмування та вважається респектабельним джерелом – маса аналітиків посилається на нього в ході своїх досліджень.
Рейтинг TIOBE відрізняється від опитування Stack Overflow – це пов’язано з різницею опорних точок цих аналітик. Стек оверфлоу спирається на опитування, а статистика TIOBE ґрунтується на кількості кваліфікованих інженерів у всьому світі, а також на кількості курсів та сторонніх постачальників. Такі відомі пошукові рушіїі та сервіси, як Google, Yahoo!, Wikipedia, Amazon, Bing, YouTube та Baidu використовуються у розрахуванні рейтингів. Варто зазначити, що TIOBE не вказує, яка мова є найкращою, або якою написано найбільшу кількість коду. Він може бути використаний, аби виявити, чи відповідають ваші навички запитам сучасності, або, щоб прийняти стратегічне рішення щодо того, яку мову слід використати для створення нового додатку або програмної системи. Більше інформації стосовно методів визначення індексу за посиланням.
Рейтинг мов відповідно до індексу PYPL має наступний вигляд:
PYPL створений за рахунок аналізу того, наскільки часто люди шукають в пошуковій системі Google туторіали (інструкції) з мов програмування. Простіше кажучи, чим більше гуглять туторіали до тієї чи іншої мови, тим вища її позиція в рейтингу.
Розглянемо список популярних вебтехнологій відповідно до опитування Stack Overflow за 2022-й та 2021-й роки відповідно:
Як видно з діаграм, головні позиції належать FrontEnd бібліотекам та фреймворкам – jQuery, React.js, Vue.js, Angular, BackEnd-технологіям (Node.js, Express) а також технологіям .NET платформи – ASP.NET та ASP.NET Core. Після них йдуть фреймворки Django і Flask (Python).
Список інших фреймворків, бібліотек та інструментів розроблення:
Наразі перше місце посідає платформа .NET від компанії Майкрософт. Потім йдуть технології напрямку Python: NumPy (дає доступ до низки математичних конструкцій), Pandas (маніпулювання даними та їх аналіз). За ними – фреймворк Spring (Java), який призначений для веброзроблення. Менш популярними є інструменти Python для роботи з даними та ML – TensorFlow, Scikit-learn, а також платформи для мобільного розроблення – Flutter та React Native.
Отримані відомості вже дають достатньо уявлення про те, що зараз відбувається на ринку IT-послуг і дозволяють робити певні прогнози щодо затребуваності IT-професій.
Які ІТ-спеціальності будуть затребувані у 2023 році?
FrontEnd Developer
FrontEnd – це відгалуження у розробленні, спрямоване на створення клієнтської сторони вебдодатків, вебсайтів або іншого ПЗ та інформаційних систем: зовнішній вигляд застосунків, користувацька логіка, анімації – все, із чим користувач може взаємодіяти напряму.
Коли кажуть про FrontEnd або BackEnd, найчастіше мають на увазі саме Web стихію. Насправді ж, фронтенд і бекенд бувають не лише у вебі але й у десктопних та мобільних застосунках. Однак історично склалося, що під цими двома термінами розуміють саме веб складову, тому і в цій статті ми будемо притримуватися цих традицій.
Відповідно до аналізу Stack Overflow Developer Survey 2022 та 2021 років, а також аналізу індексів TIOBE та PYPL, ядро фронтенду – HTML, CSS та JavaScript – досі є затребуваним і використовується багатьма розробниками.
Крім того, ресурси з пошуку роботи в ІТ містять велику кількість вакансій FrontEnd Developer. Наприклад, на вже згаданому Djinni на момент написання статті було опубліковано 1399 пропозицій за напрямком JavaScript / FrontEnd, тоді як на C# / .NET, Java та Python спеціальності припадало 678, 884 та 514 вакансій відповідно.
ІТ-індустрія має великий попит на FrontEnd розробників, тому немає жодних сумнівів, що цей напрямок буде актуальним і у 2023-му році.
BackEnd Developer (Python, Java, C#, PHP)
BackEnd – це відгалуження у розробленні, спрямоване на створення серверної сторони вебдодатків або вебсайтів: взаємодія застосунку з БД, робота з даними користувача, серверна та обчислювальна логіка, програмно-апаратна частина сервісу – все, що приховано від користувача і знаходиться “під капотом”.
На озброєнні BackEnd девелопер тримає одну з популярних мов програмування: C# / PHP / Python / Java / JavaScript (Node.js) / Ruby тощо. Також даний спеціаліст знає безліч супутніх технологій та інструментів серверного розроблення.
BackEnd розвивається паралельно з FrontEnd-ом, айті-ринок має багато відповідних пропозицій з гарними умовами праці, тому перспективність вивчення даного напрямку є очевидною.
Full Stack Developer
Синтез двох вищеописаних спеціальностей. Не секрет, що будь-який працедавець цінує співробітника, який може успішно виконувати декілька задач, поєднуючи в собі обов’язки інших спеціалістів. Так само і в ІТ – особливо цінними є розробники, які здатні своїми знаннями та навичками покрити декілька професій, а в даному випадку – FrontEnd та BackEnd.
Детальний розбір спеціальності Full Stack Developer ви знайдете в нашій статті. В ній ми пояснюємо специфіку даного напрямку, необхідні для вивчення технології, переваги та недоліки професії, а також даємо важливі поради щодо опанування цього фаху.
Mobile Developer (Android / iOS)
Мобільне розроблення є відносно молодим, оскільки зародилося трохи більше двох десятків років тому. За цей час воно зазнало багатьох змін і сьогодні очолює одну з головних позицій в ІТ. При цьому напрацюваннями фахівців цієї сфери користується майже кожна людина — це не лише смартфони та планшети, а й фітнес-браслети, смарт годинники, електронні книги, складові “інтернету речей” та інші гаджети.
Найбільш популярні мови мобільного розроблення: Java / Kotlin під Android розроблення та Objective-C / Swift під iOS.
DevOps інженер
DevOps – це методологія, котра є симбіозом розроблення (Development) та системного адміністрування (Operations). Її головна мета – збільшення частоти випуску релізів. Фахівці даного напрямку також повинні розбиратися у використанні хмарних технологій та мати навички автоматизації інфраструктури.
DevOps Engineers обирають Python у якості основної мови програмування за її лаконічність, багатозадачність та підтримку великого різноманіття спеціальних пакетів, створених для підвищення ефективності цієї мови програмування, а також за інші переваги. Python в основному використовують разом із командною оболонкою Bash, маючи на меті спростити процеси розгортання ПЗ та автоматизувати різні завдання системного адміністрування (написання скриптів).
Фактично, DevOps спеціалісти – це програмісти-сисадміни. Бізнес дуже любить фахівців-мультитулів, тому ця професія дуже актуальна, престижна та є однією з найбільш високооплачуваних в ІТ.
CyberSecurity
IT-індустрія нарощує свої об’єми та потужності, а отже, зростає затребуваність і тих, хто має її захищати. На це і направлена діяльність фахівця з кібербезпеки. Цей напрямок має декілька відгалужень, і ви можете як захищати інфраструктуру від проникнення та вибудовувати надійну оборону (напрямок "захисту"), так і виявляти вразливості шляхом різноманітних хакерських методів – такі фахівці називаються пентестерами (напрямок "атаки").
Можете зануритися в аналіз та ризики (посада Security Analyst та Risk Compliance Specialist відповідно), займатися захистом інфраструктури та пошуком комп'ютерних вірусів (Malware Researcher), а також випробувати себе в багатьох інших «кібербезпекових» спеціальностях – ця сфера дає багато можливостей для реалізації людям із сильними аналітичними здібностями, уважністю, розсудливістю та стресостійкістю.
Database Administrator, DBA
Комфортна життєдіяльність у сучасному світі дуже залежить від баз даних: картотека пацієнтів лікарні, облік студентів та їх успішності, облікові записи користувачів різних сервісів, банківські рахунки, різноманітний контент в інтернеті тощо. Існує реальна потреба у спеціалістах, які вміють грамотно обслуговувати ці БД і супутню інфраструктуру.
Крім цього DBA бере на себе такі функції, як вироблення вимог до баз даних, їх проєктування, реалізація, ефективне використання та підтримка цілісності БД, включаючи керування обліковими записами користувачів БД та захист від несанкціонованого доступу.
Тут важливо володіти мовою запитів SQL, однією із СУБД (PostgreSQL, наприклад), а також різними технологіями та прийомами системного адміністрування.
PM (Project Manager)
Сучасне IT має гострий дефіцит гарних, талановитих проєктних менеджерів – управлінців, котрі керують IT-проєктом загалом. Часто це колишні програмісти чи тестувальники. Однак щоб стати проджект менеджером, необов'язково мати айтішне минуле.
Ключові обов’язки PM: проєктування та розстановка пріоритетів, планування виконання завдань, контроль, комунікації, а також оперативне вирішення проблем всередині проєкту. Найголовніше завдання – зробити так, щоб ідея замовника була реалізована в межах заданих термінів з урахуванням обмеженості ресурсів.
Звичайно, даний перелік обов'язків виконаний широкими мазками. Насправді PM-и часто працюють понаднормово і їхній робочий стан можна описати як "білка в колесі". Але важко щось протиставити післясмаку успішно виконаного проєкту.
Нюанс цієї професії полягає в тому, що посада PM-а передбачає значну конкуренцію. Відповідно до даних, у вересні 2022-го року на сайті DOU на одну вакансію PM-а відгукнулося більше 34-х кандидатів (всього 184 вакансії). Більша кількість відгуків лише у FrontEnd, HR, QA та Legal (право). Тому, щоб отримати бажаний job-офер, необхідно мати не тільки досвід і знання, а й гарні організаторські здібності, а також інші важливі для цієї професії особистісні якості.
QA Engineer, тестувальник
Фахівець із забезпечення якості, він же – тестувальник. І хоча QA та тестувальник – це трішки не одне і те ж саме, але ми прирівняємо їх один до одного, бо це не грає значної ролі в даній статті.
Сфера відповідальності тестувальника – виявлення несправностей, багів ПЗ, допущених розробниками. Затребуваність цих фахівців важко оскаржити, адже кожний програмний продукт перед появою може пройти не одну ітерацію тестування, де виявляється вагома кількість багів. Виходить, без QA ми мали б дуже недопрацьоване ПЗ, а виробник — провал продукту на ринку, падіння репутації та, ймовірно, навіть банкротство.
Тестувальників ділять на два види – Manual QA Engineer та Automation QA Engineer. Перші виконують всю роботу вручну, а другі використовують інструменти автоматизації, у тому числі мови програмування (наприклад Java, Python), що підвищує цінність такого співробітника, і, відповідно, його зарплату. Конкуренція за місце тестувальника в українських реаліях надзвичайно висока, тому для отримання першого job-оферу потрібно буде докласти багато зусиль.
Data Scientist
Вчений-експерт, головними завданнями якого є вилучення з великого масиву даних корисної інформації, яка потім може використовуватися в різних сферах; в основному, це бізнес та наука.
Даний фахівець повинен мати чудове аналітичне мислення, володіти математичним апаратом (включаючи мат. статистику та мат. моделювання), знати програмування (Python, R) та бази даних (як реляційні, так і нереляційні). З початку 2010-х років професія Data Scientist вважається однією з найбільш привабливих, високооплачуваних та перспективних в IT.
Data Analyst
Якщо Data Scientist орієнтується на предиктивну аналітику, то Data Analyst працює з інформацією постфактум. У цього спеціаліста менш технічна роль — він працює зі вже готовими даними, а саме: проводить дескриптивний аналіз, інтерпретує та візуалізує результати, а також презентує звіт своїм замовникам.
При цьому з БД, мовами Python і SQL та іншими інструментами збору та оброблення інформації аналітик також має бути гарно знайомий, аби ефективно виконувати покладені на нього задачі.
Кому потрібне гарне володіння англійською мовою?
Відповідно до вже згаданого портрета ІТ-спеціаліста, високий рівень англійської у тих, хто спілкується з іноземними замовниками та клієнтами або займається просуванням продуктів: Customer Success Manager, Project Manager, найвища ланка керівництва, спеціалісти з продажів, архітектори, техліди.
Також англійська на рівні Upper Intermediate+ у технічних письменників та спеціалістів з роботи з даними (Data Scientists, аналітики).
Розробникам буде достатньо рівня Intermediate, аби читати технічну документацію без зайвих проблем. Однак бажано мати Upper Intermediate та вище, оскільки це не тільки сприяє більш комфортній взаємодії з англомовними ресурсами та іноземними колегами, але й підштовхує вас вгору кар’єрними сходами і, звичайно ж, позитивно впливає на ЗП (відповідно до зарплатного опитування від DOU за літо 2022 року).
Висновки
У цій статті ми постаралися дати вичерпну відповідь на запитання: “Яку IT-спеціальність варто обрати у 2023 році?”. У наших судженнях та висновках ми спиралися на такі авторитетні ресурси (міжнародні та українські), як Stack Overflow, Djinni, DOU, індекси TIOBE та PYPL. Також була проведена кореляція з минулим роком, аби продемонструвати стабільність ринку ІТ-професій та показати, що вкладені вами сили та час у навчання не будуть марними, а обраний вами напрямок нікуди не зникне.
На лідерських позиціях, як і в минулі роки, залишаються Web, Enterprise та Mobile розроблення. Тестувальники також затребувані, хоча і мають надзвичайно велику конкуренцію серед початківців, оскільки це один із найлегших способів потрапити в ІТ, а з початком повномасштабного вторгнення інтерес до ІТ зріс так само стрімко, як і під час ковіду.
Висока затребуваність також і у DevOps інженерів при відносно невисокій конкуренції – 3.7 відгуки на одну вакансію у вересні 2022 року (всього вакансій – 243, джерело).
Звичайно, повномасштабна війна наклала свій відбиток на ІТ у вигляді міграції бізнесів та айтішників на захід України, різкого притоку новачків, збільшення “дистанційних” вакансій та проблем з електроенергією через обстріли росіянами нашої енергетичної інфраструктури, але зарплати залишилися високими – десь навіть підвищилися, – та й в цілому ІТ стоїть і забезпечує як айтішників, так і нашу армію.
То ж навіщо чекати відповідного моменту? Беріть момент та робіть його відповідним! ITVDN – це освітня платформа для онлайн навчання програмуванню та інформаційним технологіям.
Наш портал налічує понад 230 відео курсів та має власні програми навчання за 15 найпопулярнішими IT-професіями, серед яких:
Верстальник сайтів
FrontEnd Developer
Java Developer
Python Developer
C# / .NET Developer
Android Developer
Unity / Game Developer
PHP Developer
та інші.
Формат навчання – записані відео курси, за якими можна навчатися у будь-який зручний час. Таким чином, ви зможете опанувати IT-професію, не виходячи з дому. З усіма спеціальностями можна детально ознайомитись, перейшовши на сторінку спеціальностей ITVDN.
Окрім записаних відео курсів наша освітня платформа надає навчання у новому форматі – Live Online. Він передбачає регулярні онлайн заняття з ментором у невеликих групах із 6-25 осіб, на яких пояснюється новий матеріал, обговорюються нюанси виконання практичних завдань, є перевірка ДЗ та чат для спілкування з одногрупниками, а також доступ до відео курсів ITVDN. У процесі навчання учні також розробляють власний курсовий проєкт, який наприкінці захищають та додають до свого портфоліо.
На даний момент Live Online навчання проводиться за чотирма найпопулярнішими IT-спеціальностями:
C#/.NET Developer
Frontend Developer
Java Developer
Python Developer
Якщо вас зацікавив формат Live Online, переходьте за посиланнями та ознайомтеся з подробицями пропозицій щодо кожної з чотирьох спеціальностей.
Також пропонуємо вашій увазі підбірку вебінарів, які допоможуть вам розібратися в головних моментах тієї чи іншої мови програмування або спеціальності:
Чи варто вчити Ruby у 2023 році?
Як стати Java розробником у 2023 році?
Яку мову програмування вчити в 2023 році?
Огляд корисних ресурсів для вивчення C# та .NET з нуля
Як швидко вивчити Python. Покроковий план з нуля
Як стати PHP розробником та отримати офер від ІТ-компанії
Старт кар’єри в Java розробці. Особистий досвід, актуальні тренди та підводні камені
Що таке DevOps
та інші корисні вебінари – у нашому каталозі.
Сподіваємось, що наша стаття була корисною для вас.З радістю приймемо будь-які побажання та з розумінням і повагою – будь-які зауваження. Обирайте IT-професію вашої мрії та нехай ніщо не зупиняє вас на шляху до неї!
Вивчайте ІТ-спеціальності на ITVDN!