Результати пошуку за запитом: html
Онлайн навчання програмуванню: підводні камені та поради
Автор: Влад Сверчков
Двадцать первый век знаменует “бум” информационных технологий. Научно-технические достижения за последние двадцать лет достигли значительных высот и позволили человечеству выйти на новый уровень жизни. Прогресс не обошел стороной и сферу образования - с развитием персональных компьютеров, сети Интернет и других приспособлений обработки информации практически у каждого человека появилась возможность обучаться не выходя из дома.
Возможность получения знаний в онлайн-режиме - одно из главных достижений нашего века. На сегодняшний день особый спрос на онлайн-обучение прослеживается в связи со сложившимися карантинными условиями. Зачем зря терять время и сидеть сложа руки, если можно извлечь из ситуации максимум выгоды, прокачав свои знания?
Образовательная платформа ITVDN предлагает вам использовать свой потенциал и технологию онлайн-обучения, чтобы сделать первый шаг навстречу одной из наиболее востребованных профессий нашего времени - профессии программиста.
Возможно ли стать программистом, обучаясь онлайн?
Конечно! Просторы интернета полны различных образовательных ресурсов. Если рассматривать англоязычные платформы с доступом к IT-курсам, стоит отметить:
MIT OpenCourseWare - онлайн-курсы от Массачусетского института технологий - одного из самых престижных технических учебных заведений мира;
edX - платформа, которая содержит курсы от более чем 140 ведущих ВУЗов мира;
Coursera - проект для публикации образовательных материалов, основанный профессорами математики Стэнфордского университета;
Pluralsight - онлайн-платформа с большим количеством всевозможных видео курсов.
Если говорить о русскоязычных онлайн-ресурсах:
Hexlet - проект, содержащий программы по обучению 6 IT-специальностям;
JavaRush - онлайн-курс по программированию на Java;
ITVDN - образовательная онлайн-платформа, содержащая полноценные программы обучения по 12 самым популярным специальностям. В каталоге ITVDN свыше 180 видео курсов по различным языкам программирования и информационным технологиям;
другие онлайн-ресурсы.
Наиболее качественными являются англоязычные курсы, так как английский - интернациональный язык и преимущественное количество форумов с полезной информацией ведется именно на нем.
Если ваше владение языком Туманного Альбиона не является столь продвинутым и вы предпочитаете русскоязычные платформы, мы советуем вам ITVDN. Это один из лидирующих образовательных IT-ресурсов в СНГ, который начал свою работу в 2014-м году и на данный момент имеет в своем распоряжении огромную базу видео уроков, которая помогает всем, кто изучает программирование и информационные технологии, обучаться и становиться профессионалами выбранной IT-специальности.
Какой язык программирования учить?
Зависит от IT-сферы, в которой вы хотите себя реализовать. Если это FrontEnd разработка (создание внешнего вида веб-сайта), то не обойтись без JavaScript + языки верстки HTML и CSS. Если BackEnd (создание всего, что находится “под капотом” сайта), то здесь выбор шире - PHP, Java, C#, Python, Ruby, Go, JavaScript (Node.js). В мире машинного обучения очень важен Python и его библиотеки. Компьютерные игры крупных масштабов и с высокой производительностью создают на С++, рангом поменьше - на движке Unity.
Это очень поверхностные описания того, какие языки надо учить для овладения определенной IT-специальностью, поскольку каждая профессия в IT имеет целый перечень требуемых к изучению технологий. С полным списком требований к некоторым профессиям вы можете ознакомиться в наших статьях, перейдя по ссылке.
Как учиться онлайн самостоятельно? Как правильно спланировать свое обучение?
Планировка - очень важный и ответственный момент в онлайн-обучении. Вы находитесь дома под воздействием множества отвлекающих факторов - будь то ваши сожители, домашний питомец, сосед с перфоратором, вкусно пахнущая еда из кухни, открытый ютуб или интересная компьютерная игра. Важно не только избавиться от всех помех, но и следовать составленному под себя учебному плану.
После определения желаемой IT-профессии и выбора образовательной онлайн-платформы необходимо запастись мотивацией. Но одной только мотивации будет мало, причем она быстро иссякает. Следует составить расписание, в котором будет органично сочетаться теория, практика, выполнение домашнего задания и тестирование (проверка знаний). Мы предлагаем следующее:
Прежде всего выделите время на онлайн-учебу и организуйте регулярные занятия. К примеру, с 19:00 до 21:00 каждый день вы занимаетесь онлайн-обучением и ничем иным (небольшие перерывы допускаются, естественно). Работа короткими интенсивными интервалами улучшит общую продуктивность урока. Учебный процесс не должен прерываться готовкой пищи, выгулом собаки, разговорами по мессенджеру и прочими делами, для которых также находится место в вашей жизни.
Все образовательные интернет-ресурсы используют схожую тактику: вначале вам дается теория, затем предлагается решить несколько практических задач, а для закрепления знаний - домашнее задания по теме. Придерживайтесь ее. Распределите ваше учебное время на ознакомление и изучение материала, а также для последующей практики (включая прохождение тестов). Домашнее задание лучше оставить на следующий день либо сделать длительный перерыв перед ним, чтобы дать вашему мозгу спокойно обработать новую информацию.
Проходите тесты, предусмотренные выбранной образовательной платформой. Помимо проверки усвоения материала тестирование способствует развитию навыков эффективного написания кода.
На ITVDN для усовершенствования навыков создания кода был разработан специальный интерактивный тренажер, а для подтверждения знаний и получения соответствующего сертификата мы предлагаем testprovider.com.
Разрабатывайте собственный интересный проект в специально отведенные дни: придумайте себе задачу (либо поищите в интернете) и занимайтесь ее постепенной реализацией, используя изученные темы - так вы и освежите знания, и попрактикуетесь в написании кода. Если выйдет неплохой проект, добавите его в свое портфолио.
Используйте гугл и форумы для программистов. Профессия программиста предусматривает широкое использование сети Интернет в процессе поиска решения возникающих проблем. Вам очень пригодятся такие сайты как stackoverflow.ru, quora.com и прочие, где вы найдете ответы на программистские “как?” и “почему?”.
Какие подводные камни у онлайн-обучения?
Потеря мотивации. Изучение программирования - это длительный и кропотливый процесс. Именно на мотивацию делают ставку большинство новичков и именно поэтому большинство очень быстро “выгорают” и прекращают обучение. Регулярные занятия, выполнение домашних заданий, закрепление новых тем через тестирование, разработка собственного проекта, участие в различных событиях, касающихся выбранной IT-профессии (хакатоны, тренинги и прочие активности) создадут благоприятные условия для подпитывания ваших сил и будут давать вам уверенность для продвижения вперед.
Отсутствие ментора и контроля. В среде онлайн-обучения отсутствует жесткий контроль, поскольку вы сам себе хозяин. Вы можете поддаваться лени, ничего не учить, не практиковаться и вовсе “забросить” учебу. Это главный камень преткновения в интернет-обучении. Над вами нет никого, перед кем вы бы несли ответственность за свои результаты и кто вами курировал бы.
Сколько стоит онлайн-обучение?
Есть три варианта онлайн-обучения:
С использованием сервиса YouTube и документаций, которые свободно распространяются в интернете. Выбрав эту опцию, вы будете обучаться бесплатно. Но эффективность данного варианта оставляет желать лучшего.
Приобретение видео курсов. Здесь вам придется потратить небольшую сумму денег. Взамен вы получите доступ к видео базе, над которой трудились профессионалы, домашним заданиям, дополнительным обучающим материалам, конспектам по рассмотренным темам, онлайн-тестам.
Онлайн-обучение в мини группе с тренером. Данный вариант самый дорогостоящий, но и эффективность его максимально высока, так как вы получаете возможность дистанционно общаться с ментором и небольшой группой учащихся через специальные программы (Skype, Zoom и т. д.), задавать вопросы и получать развернутые ответы, просматривать видеозаписи уроков. Проблема с мотивацией также решена - вы вложили свои деньги и над вами есть куратор, который следит за вашими успехами и выполнением домашних заданий.
Таким образом, если вы не хотите тратить много денег либо и вовсе желаете освоить программирование бесплатно, подумайте над выбором одного из первых двух вариантов. Если же вам нужно больше общения с ментором, обратите внимание на третью опцию. На ITVDN она представлена новым форматом обучения - Live Online. Занятия проходят в небольшой группе в форме регулярных онлайн встреч, на которых объясняется новый материал, обсуждаются нюансы выполнения практических заданий, есть проверка ДЗ и чат для общения с одногруппниками, а также доступ ко всем видео курсам ITVDN по выбранной специальности. Опция онлайн-обучения с тренером доступна на ITVDN по 3-м специальностям: .NET Developer, FrontEnd Developer и Java Developer. Параллельно процессу обучения вы также создаете собственный курсовой проект, который украсит ваше портфолио и станет неплохим подспорьем во время дальнейшего трудоустройства.
Надеемся, что наши советы помогли вам составить целостную картину онлайн-обучения.
Желаем вам здоровья и успехов в прокачке знаний!
Оставайтесь на ITVDN!
10 фактів на користь C#
Автор: Corstiaan Hesselink
Изучай новый курс C# 8.0 Стартовый бесплатно! Акция до 29 апреля
«Разве стоит изучать C# сейчас?» - этот вопрос мне приходится слышать время от времени. Предположим, у вас есть друг – JavaScript-программист, искренне недоумевающий от причин изучать С#. Что же, похоже настало время развеять это недоумение.
Для начала давайте проясним, какие нужно иметь при себе «в запасе» технологии и фреймворки, которые вы можете использовать каждый день, – это хорошая практика. Технология, которая действительно «отмирает», как только появляется сколь-нибудь более современный аналог, не стоит нашего внимания. Выбор «подходящего» языка программирования, который мы будем использовать практически каждый день, всегда было стрессовым вопросом. И если у вас ещё нет окончательного ответа, возможно, эта статья позволит вам определиться.
Использование .net core под Linux означает, что вам никогда больше не нужно прикасаться к Windows-серверам (конечно же, если вам самим этого не захочется)!
Это не тот Microsoft, который был раньше
Для тех разработчиков, которые никогда не прикасались к продуктам Microsoft, использование их инструмента кажется синонимом к зацикленности на одной торговой марке, сумасшедшим проприетарным лицензиям, голубым футболкам и так далее. И, будем откровенными, не так давно все это так и обстояло. Сообществу .NET – разработчиков потребовалось немало времени, чтобы избавиться от этого. Не очень-то весело застрять в рамках Windows-машины и дорогих Windows-серверов, в то время как мир значительно больше этих рамок. В частности, это одна из причин, почему я оставил платформу .net и решил попробовать Ruby on Rails, но это уже другая история. Что подкупает, так это любовь современной Microsoft к открытым платформам.
Действительно, все ваши опасения касательно Microsoft могли бы быть правдой, если бы не open-source и одержимость мыслью о том, что коды инструментов разработки должны быть доступны каждому и каждый разработчик сам бы смог выбирать удобные ему инструменты разработки.
А учитывая то, что Microsoft собирается выкупить GitHub (уже выкупила – прим. переводчика), похоже, что компания все больше близится к своим непосредственным истокам – а именно к созданию инструментов для разработки.
Это все еще тот Microsoft, который был раньше
Не будем забывать о том, что Microsoft – это, в первую очередь, гигант программной индустрии. Что это значит? А это значит, что за С# стоит такая мощь, которая в любом случае будет поддерживать язык программирования «на плаву» в течение многих лет.
C# заслужил свое место
Согласно показаниям опроса, проводимом на Stack Overflow, C# занимает 8 место в списке наиболее популярных технологий. В 2017, правда, было четвертое. И 4 года подряд до этого так же четвертое. «Падение» с 4 позиции на 8 частично может быть объяснимо добавлением html и css к опросу 2018 года, а с популярностью этих технологий трудно соперничать. Так, в 2018 году около 34.4 процентов разработчиков в списке наиболее часто используемых инструментов называют С# - и с этими показателями, пожалуй, ни один из существующих языков не может посоперничать.
Нативные мобильные приложения
Используя Xamarin и C#, вы сможете создавать мобильные приложения для IOS и Android (ну и для Windows Phone, ясен пень). Почему? C 2016 года Xamarin стал частью Microsoft, которая к тому же дала доступ к исходному коду.
Разработка на Mac, деплой на Linux
А вот это прямая отсылка к .net core, так как .net core – это современный кроссплатформенный стандарт. .Net core работает в рамках Windows, Mac и Linux-сред – без никаких дополнительных танцев с бубном. Что это значит? Это значит, что вы можете разрабатывать на C# программы для практически всех существующих наиболее популярных операционных систем, конечно же! Microsoft предоставила отличный инструментарий для разработки под все вышеперечисленные технологии.
Быстрые и современные (веб) приложения на .net core
Net core и asp.net core – инновации в мире .net и asp.net стандарта-фреймворка. Когда-то монолитные, закрытые технологии теперь перестали быть такими! Разбор в деталях был бы вопросом уже другой статьи, но комбинация C# + (asp).net core является более чем достойной причиной начать изучать С#.
Visual Studio – не более чем опциональное решение
Разработка под С# значила использование Visual Studio. Некоторым разработчикам было все равно, некоторым это пришлось не по душе. Теперь же, если хотите, вы можете использовать любой удобный для вас текстовый редактор + командную строку для компиляции. Плюс, если что, уже на данный момент существует Visual Studio для Mac (хотя и пока-что не такая мощная, как для Windows).
Андерс Хейлсберг и Медс Торгерсен
Андерс Хейлсберг является создателем С#. Он работает на постоянной основе в Microsoft. Хейлсберг является одним из самых светлых ныне живущих умов в современной компьютерной индустрии. Но, поскольку на данный момент он переключился на TypeScript, программным менеджером C# стал Медс Торгерсен.
Адекватное асинхронное программирование
С использованием C# асинхронное программирование станет намного проще и безболезненнее: async-await на страже ваших нервных клеток! Вырезка из официальной документации: «Используя эти два ключевых слова, вы сможете использовать ресурсы .NET Framework, .NET Core или Windows Runtime для создания асинхронных методов так же просто, как и для создания синхронных».
К примеру, те же async-await в JavaScript были сделаны по примеру таки С#.
Надежное, составное, компилируемое
Конечно, тот факт, что C# - компилируемый, статически типизируемый язык программирования, не делает его особенным. Но стоит ли переходить на C# с таких динамически типизированных языков, как PHP, Python, Ruby и так далее, понимая, что для работы со строго типизированным кодом вам наверняка понадобится больше сноровки? Что же, возможно это так. Но, тем не менее, строго типизированный код позволяет работать со связями в коде, находить определения, проводить «безопасный» рефакторинг и так далее. В общем, применять множество тех вещей, которые в значительной мере упрощают процесс программирования.
Обратная сторона медали заключается в том, что каждый раз, как только вы хотите запустить свой C#-код, для начала вам необходимо его скомпилировать. Это может надежно «вырубить» некоторых разработчиков, привыкших работать в рамках динамически типизированных интерпретируемых языков программирования, так как им будет казаться, что постоянная предварительная компиляция замедляет процесс разработки приложения. Впрочем, разрабатывая более масштабное приложение, преимуществом такого подхода становятся возможности современных сред разработки – а именно отладка, рефакторинг или расширение кода
Как это может мне помочь?
Появление .net core открыло множество дверей для C# в частности и стандарта .net в целом. Итак, вы думаете, что С# «отмирает»? Спешим разубедить. Его будущее ярко и солнечно, а кроссплатформенность привлечет новое поколение разработчиков.
Автор перевода: Евгений Лукашук
Источник
Найкращі книги з програмування
Автор: Редакция ITVDN
В свое время я работал и продолжаю работать сейчас разработчиком. Начал в качестве веб-программиста в 2004 году, перешел на полный стек в 2009 году, начал разработку для iOS в 2013.
Я начал свой путь программиста с прочтения трех книг: одна была про HTML, другая – про CSS и третья, соответственно, об SQL. Прочие знания я получил из Google, Stack Overflow и блогов. Вообще, Интернет – прекрасная штука. Каждый день я прочитывал по 5 или больше тематических статьей. И, что самое главное, все эти знания были бесплатны.
В основном мои знания о программировании были получены из университета и опыта работы. Как-то так. Действительно, получается, что большая часть из того, что вы изучаете о программировании, были получено в основном во время решения определенных практических задач.
То, что меня также интересует – это чтение различных специализированных книг. Увы, но размеры списков по типу «Обязательных к прочтению для разработчиков» выходят далеко за рамки адекватных. Ситуация со сжатым списком из этого списка также ненамного лучшая…
Каждая из книг хороша по-своему, но и целой жизни будет мало, чтобы прочитать все это. Лично меня это всегда несколько сбивало с толку, так как выбрать первую книгу для изучения становится весьма проблематично.
Потому я и решил немного покопаться в списках и создать один «универсальный» список, в котором будут включены книги, общие для всех рассмотренных списков.
Конечно, прочтение всех этих книг не сделает из вас профессионального программиста, но использование того, что было выучено из книг на практике – сделает. Лично я для себя решил выработать привычку прочитывать по крайней мере одну книгу в два месяца.
Полный список содержит 139 книг. Все книги, которые вы увидите в этом списке, находятся на вершине популярности рассмотренных списков.
В этом списке вы не найдете книгу о том, как стать Java-разработчиком, но вы можете увидеть книги, которые используют язык Java для приведения практических примеров, рассматриваемых тем. Вы сможете найти книгу, направленную на один конкретный язык программирования, но которая также пригодится и для разработчиков на других языках. Также я включил здесь книги, не связанные с разработкой непосредственно, но которые в то же время считаются неплохими для развития особого «программного» мышления.
Короче говоря, без лишних слов – я рад представить:
Список лучшей литературы для разработчиков
7 упоминаний:
Паттерны проектирования: Элементы повторного использования программного обеспечения
«Классическая книга, прочтение которой ознакомит читателя с различными паттернами программного проектирования, а также раскроет некоторые секреты наиболее популярных из них.» Джон Сонмец
«Еще одно произведение классики, содержащее в себе огромную коллекцию различных паттернов программирования.» Лик Бун
Код: Скрытый язык аппаратного и программного обеспечения
«Должна быть в закладках у каждого, кто так или иначе связан с программной индустрией, не важно при этом – программист ли он али нет.» Вуди Леонхард
«После прочтения этой книги вы поймете, что на самом деле выполняет ваш код и как на самом деле этот код исполняет процессор. Это одновременно и весело, и полезно.» Джон Сонмерц
8 появлений:
Эффективная работа с правильным кодом
«Я обожаю эту книгу, так как рано или поздно в один прекрасный момент программисту придётся заниматься поддержкой и разработкой уже существующих комплексных систем.» Джейсон Роял
«Если вы принимаете участие над работой с большим объемным кодом более пяти лет, эта книга, вероятно, станет вашей новой Библией. Прочтите это и примите в свои сердца.» Джон Сонмерц
Люди: Продуктивные проекты и команды
«Эта книга оказала на меня наибольшее влияние в свое время. Пожалуй, я могу сравнить ее с эффектом от прочтения Манифеста Анти-Дилберта.» Джоел Сполски
«Если вы желаете носить гордое звание тим лидера на практике, нежели на словах – эта книга определенно для вас.» Джеф Атвуд
9 упоминаний:
Паттерны разработки корпоративных приложений
«Книга очень полезна при разработке массивных приложений, так как она предлагает детальное объяснение ситуаций, когда нужно использовать определенный программный паттерн (а когда наоборот - нет). Даже не могу назвать примерное количеств раз, сколько мне приходилось обращается к данной книге.» Род Хилтон
«Обеспечивает читателя каталогом качественных проверенных корпоративных паттернов и ситуаций, советует, когда эти самые паттерны стоит использовать.» Иан Джойс
11 упоминаний:
Вступление в алгоритмы
«Пожалуй, это лучшая книга для понимания и использования алгоритмов (которые де-факто являются основным инструментом разработчика программного обеспечения).» Вуди Леонхард
12 упоминаний:
Чистый код: Пособник мастера программного обеспечения
«Если вы пожелаете прочитать книгу, связанную с программированием, определенно – вам стоит обратить свое внимание на эту.» Роберт Грайнер
«Это еще одна книга, которой удалось полностью изменить стилистику написания моего кода. Я могу ясно разделить свою жизнь на период до прочтения книги и после.» Джон Сонмерц
Рефакторинг: Улучшение дизайна существующего кода
«Книга, строго рекомендуемая к прочтению для каждого, кто желает улучшить качество кода.» Деепак Карантх
«Обязательна к прочтению каждому, кто так или иначе принимает участие в работе с объектно-ориентированными языками программирования.» Дэниель Рид
14 упоминаний:
Мифический человеко-месяц, или Как создаются программные системы
«Это классика, но недавно исправленная и дополненная. В высшей степени поразительно то, как она тесно связана с разработкой программного обеспечения. Если вы принимаете участие в программировании, определенно эта книга – обязательна к прочтению.» Джейсон Роел
«Бесспорно, единственная классика, посвященная программированию. Позор всякому, кто еще не прочитал ее.» Джеффри Атвуд
15. упоминаний:
Прагматичный программист: От новичка к мастеру
«Насколько революционна эта книга? Пожалуй, достаточно для того, чтобы развернуть целую издательскую кампанию. Если вы все еще не прочитали ее – это, бесспорно, большое упущение с вашей стороны.» Род Хилтон
«Эта книга не только изменит ваш код: она изменит вас как программиста. Наполненная практическими советами по улучшению вас и вашего кода, бесспорно, является отличным приобретением для каждого, кто хочет стать лучшим в сфере разработки программного обеспечения.» Деепак Карант
16 упоминаний:
Идеальный код: Практическое пособие по программной архитектуре
«Сделайте для себя приятное. Пусть это будет первой книгой, которую вы прочитаете – и первой книгой, которую вы посоветуете другим.» Джеффри Атвуд
«Эта книга потрясла меня больше всего. Определенно, после ее прочтения то, как я писал код, и то, что я думал о программировании в целом, претерпело серьезные изменения.» Джон Сонмец
Полный список содержит в себе 139 книг. При желании на языке оригинала его можно рассмотреть здесь.
Автор перевода: Евгений Лукашук
Оригинал статьи
Огляд популярних сервісів тестування
Автор: Редакция 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 году мы желаем, чтобы и наши, и Ваши выводы помогли Вам достигнуть успеха в изучении новых языков, и технологий.