Цветовая гамма

Обзор рынка IT

С учетем скорости развития информационных технологий, прогноз и обзор перспективных web-технологий, можно дать только на 3-4 года вперед.

Новой появившейся технологи, которая сможет объединить серверное (бэкенд) и бразуреное (фронтенд) программирование потребуется примерно столько времени, чтобы стать восстребованной на рынке IT.

Инструментарий web-мастера

Web-мастером называют программиста, который успешно владеет всеми необходимыми навыками для решения задач дизайна, фронтенд-программирования и бэкенд-программирования, общения с клиентами и командной разработке.

  • IDE: PHPSthorm, NetBeanse (+PHPDoc), Adobe Breackets, Sablime Text 2, и WebMatrix компании Microsoft
  • Сервера Apache, Nginx
  • Операционная система Linux
  • Системы контроля версий GIT и Mercurial

FrontEnd

1. Гибкая блочная верстка.

2. Резиновая и фиксированная верстка, традиционная блочная и табличная

3. Адаптивная верстка.

4. Браузерный JavaScript

5. Серверный JavaScript или Node.js.

6. Менеджер зависимостей nmp

7. Фрэймворк Express

8. Шаблонизаторы jade, esp

9. MongoDB

10. JSON

11. Селекторы.

12. Архитектурный шаблон MVVM (ModelView-ViewModel)

13. JavaScript-библиотека jQuery(библиотека запросов)

14. Ajax

15. Backbone - MVVM библиотека. Backbone требует зависимостей Underscore.js и jQuery. Либо можно использовать Exoskeleton (форк Backbone), где никаких зависимостей не нужно. Данную библиотеку рационально использвать в крупном и среднем проекте, который работает со множеством пользовательских данных.

16. Marionette.js(модульный backbone-фрэймворк)

17. Angular и KnockoutJS.

18. CoffeeScript, язык программирования транслируемый в JavaScript.

19. Динамический язык стилей Less, который позволяет в файлах стилей работать с переменными, миксинами, создавать функции, расширения, импортировать файлы, использовать вложенность стилей, соединять в одно свойтсво несколько свойств.

20. Sass (альтернатива Less) - это метаязык на основе CSS. Позволяет работать с переменными, вложенностью, импортом файлов, миксинами или функцииями, логическими операциями. Фрэймворк Compass(compass-style.org) на основе Sass.

21. Системы сборки фронтенда GRUNT, GULP.

22. Редакторы кода Live Editor,CKEditor

23. HTML5 и APIHTML5: видео и аудио, холст, перетаскивание, работа с файлами, геолокация (в том числе работа с GOOGLEи YANDEX-картами), web-хранилища, взаимодейтсвие с сервером. Вспомогательный инструментарий.

24. Web Designer - приложение компании Google, позволяющее создавать банеры на HTML5

25. Bootstrap3, APIBootstrap

26. Браузерные web-консоли. В частности FireBugдля FireFox.

27.Основы SEO.

28. Shema.org, генератор shema.orgмикроформат данных, микроданные

29. Photoshop.

BackEnd

1. Языки программирования:

PHP+

Java+

Pithon-

Perl-

Ruby-

Asp.net -

Программирование под iPhone -

Программирование под Android +

2. Сервера (это ПО, получающие запросы от клиента, либо компьютеры, где это ПО находится):

3. СУБД (это ПО предназначенное для работы с базами данных):

База данных MySQL, системы управления этой базой: PHPMyAdmin (используется по-умолчанию на всех хостинговых площадках), MySQL-менеджер.

База данных NoSQL, SQL-lite.

4. Понятие потернов. MVC, HMVC. Маршрутизация.

5. ООП.

6. .HTACCESS

7 .Менеджер зависимостей: Composer.

8 .Один, лучше 2-3 фрэймворка. Для PHP– это YII2, ZendFramework, Symfony+Доктрина (для работы с запросами), Laravel. Самый быстрый Falcone–, однако требует установки PHP-модуля, написаного на C++, чтобы поставить необходим выделенный сервер, или просить хостинговую компанию. Особенно стотит обратить внимание на фрэймворк Laravel.

9 .FrozenNode - Laravel-зависимость для создания блоков администрирования и другие composer-зависимости

10 .Elexir. Взаимодейтсвие Laravel с Node.js, внедрение систем сборки фронтенда.

11 .CMS: Drupal и 1Cбитрикс (для PHP) MoDex. Joomla, WordPress, ProstoSHOP, Magenta, OpenCart

12 .Шаблонизатор twig

13 .Системы контроля вервсий: GIT. Mercurial, SVN, Subversion. Репозитории github.com и bitbucket.org

14 .Регулярные выражения, Строковые функции

15 .Платежные системы.

16 .Парсинг. CURL

17 .SSH

18 .Операционная система Linux

19 .UnitTest

20.Умение делать аудит, анализ и консультирование проектируемых и уже существующих сайтов. Ajile-технологии разработки проектов. Умение разрабатывать проекты без технического задания.

Вакансии рынка IT

Следует различать два вида программирования, а соответственно и программистов, занятых в этой сфере:

Репродуктивное программирование. Это люди, которые закончили какие-нибудь курсы, получили сертификат по изученной технологии, сидят на готовых продуктах и работают только в русле однажды изученной технологии. Это копирайтеры или пользователи. Они могут быть хорошими специалистами, но работают в узко-специализированной области.

Продуктивное программирование. Это специалисты, которые постоянно нацелены на изучение новых технологий, поиск новых решений. При необходимости могут стать специалистами практически в любой необходимой области, но нацелены на создание продукта.

IT-компании находятся в постоянном поиске и тех и других специалистов. Но если репродуктивные программисты – это программисты одного проекта (узконаправленные специалисты ищутся под конкретный заказ/проект), то продуктивные – вскоре становятся незаменимыми сотрудниками в любом проекте.

Как только компания переключается на другой проект, где нужны специалисты в других областях, репродуктивные программисты становятся в неудел. Одним из важных качеств успешного программиста является умение стать продуктивным программистом.

Отличительная черта продуктивных программистов – способность к развитию и саморазвитию. Они обретают способность решать всё более сложные самоорганизационные задачи, что выражается, прежде всего, возрастающей сложностью используемых для этого мыслительных моделей (web-технологии, паттерны проектирования). Причем, они не только саморазвиваются, но и подталивают к развитию компанию.

Развитие – это способность адекватно реагировать на изменения во внутренней и внешней среде, самоизменяться, реорганизовываться на ходу на основе системного анализа. Развитие (в отличии от роста) предполагает постоянное изменение формы, содержания, сущности, качества любого явления.

Так рост компании не подразумевает её развитие: можно нанять 100 человек, которые будут делать одни и те же механические дейтсвия, и это будет ростом компании, т.к. увеличивается её численность. Можно нанять одного продуктивного программиста, который одним технологическим решением, сможет заменить 100 человек, и это будет развитием компании.

В связи с тем, что не все репродуктивные программисты способны успешно переквалифицироваться в продуктивных, а продуктивные не засиживаются на одном метсе, а также с ростом самого рынка IT, за последние несколько лет количество вакансий на рынке IT-труда увеличилось на 40% (!).

Рост вакансий на рынке IT-труда связан со следующими показателями:

  • Рост и развитие самих компаний (причем, рост и развитие – это разные показатели). Т.е. открываются новые вакансии под новые web-технологии.
  • Текучка кадров. В сравнении с другими рынками, на рынке IT – самая большая текучка кадров.
Текучка кадров бывает двух видов:
  • Лучшие специалисты уезжают на ПМЖ в Москву, Европу, США. Это утечка продуктивных программистов, или, как раньше было модно говорить, утечка “мозгов”.
  • IT-компаниям под новый проект либо под замену мигрировавшим специалистам, проще найти новых специалистов на рынке труда, чем переобучать своих. Но в такой сложившейся ситуации виноваты сами программисты этих компаний, которые вскоре пополнят ряды безнадежных безработных. Именно в силу свой высокой квалификации, они не могут пересилить себя, согласиться на добровольное отречение от устаревших знаний, которыми они владеют.

Следует также помнить, что в IT один год равен пяти. Это значит, что какими бы мы крутыми специалистами на данный момент не были, через несколько лет наши знания устареют. Если мы за это время не успеем перестроиться, получить новые навыки, то останемся в неудел. Но для того чтобы перестраиваться, нужно знать куда.

Чтобы определить направление этого рынка нужно обладать развитой интуицией и хорошими аналитическими способностями.