воскресенье, 5 апреля 2009 г.

10 навыков, которые потребуются разработчикам в ближайшие 5 лет

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

1. Один из «Большой Тройки» (.NET, Java, PHP)

Если в мире разработки не произойдет радикальных изменений (скажем, на Редмонд упадет астероид), то разработчикам будет необходимо знать по крайней мере один, из «Большой Тройки» языков программирования и платформ разработки: .NET (VB.NET or C#), Java, или PHP в самом ближайшем будущем. И недостаточно знать одного лишь синтаксиса языка программирования. Поскольку проекты охватывают самые разнообразные функциональности, вам будет просто необходимо знать Фреймворки и библиотеки, связанные с необходимым функционалом, более углубленно.

2. Насыщенные Интернет Приложения (RIA)

Любили вы RIA, или ненавидели, но Flash используется сейчас не только для создания мультфильмов про политиков, которые поют глупые песенки. Flash нарастил дополнительную функциональность по для создания приложений, используя такие технологии как Flex и AIR. Конкуренты Flash, такие как JavaFx и Silverlight, также разрабатывают подобные фичи и повышают производительность. И чтобы укрепить связь между этими вещами, HTML5 объединит себе всю функциональность RIA, включая соединение с базами данных, и ставя этим официальную печать W3C на технологии AJAX. И это значит, что в ближайшем будущем, различия RIA платформ будут очень сильно сглажены.

3. Веб-разработка

Веб-разработка никуда не уйдет, по крайней мере в ближайшее время. Многие разработчики игнорируют Веб, или по крайней мере знакомы лишь с теми основами, которые предоставляют им фреймворки. Но, компаниям требуется все больше и больше людей, умеющих работать с теми технологиями, которые лежат ниже уровня фреймворка. Так что JavaScript, CSS, и HTML будут успешны на протяжении еще 5-ти лет.

4. Веб-службы

REST или SOAP? JSON или XML? То, что выбор решения зависит от проекта, сложность работы разработчика возрастает без использования технологии Веб-служб. Даже те сферы, где раньше использовались ODBC, COM, или RPC, постепенно переходят на использование Веб-служб. Разработчики, которые не умеют работать с Веб-службами, найдут себя в сфере поддержки и баг-фикса старых проектов.

5. Социальные навыки

Все что сейчас происходит, движется к увеличению видимости IT внутри и снаружи предприятия. Разработчики постепенно вовлекаются в сферы, не связанные непосредственно с разработкой, для получения от них ответов на существующие вопросы. Скажем, финансовый директор не может изменить правила бухгалтерского учета, без помощи IT для внесения изменений в необходимые системы. Точно так же, как нельзя изменить работу кол-центра, без внесения необходимых изменений в CRM-систему предприятия. Также, клиентам часто необходимо работать с разработчиками напрямую, чтобы убедится в том, что их требования были учтены. Пойдут ли разработчики изучать ораторское искусство, или начнут изучать книгу по типу «Как завоевать друзей и влиять на людей»? Нет. Но, разработчики, которые все-таки сделают так, будут более ценны для своего начальства и высоко ценится на рынке труда.

6. Один динамически и/или функциональный язык

Такие языки, как Ruby, Python, F#, Perl и Groovy это не совсем мейнстрим, но хорошие идеи в них есть. Скажем, LINQ из .NET Framework – это прямой потомок функциональных технологий программирования. Python и Ruby стают более востребованы в некоторых областях, благодаря фреймворку Ruby on Rails и хорошей поддержки программирования под Silverlight. Изучение одного из этих языков не просто улучшит ваше резюме, но и расширит ваш кругозор. Каждый признанный и уважаемый разработчик, рекомендует изучить по крайней мере один динамический или функциональный язык программирования, чтобы познать новые способы мышления и решения задач. И из личного опыта, могу сказать вам, что это действительно работает.

7. Гибкие методологии

Когда Agile только появилось в мейнстрим разработке, я и много других людей, которых я знаю, отнеслись к этому скептично. Это скорее всего был рефлекс по защите традиционного подхода, отбрасывая прочь все инструменты, которые бы привели к анархии. Но, время шло, и идеи, лежащие в основе Agile стали лучше определены и четче выражены. И многие команды уже используют и экспериментируют с Agile. Конечно же, Agile не является той панацеей, которая спасет проект от провала, но гибкие методологии действительно успешно используются во многих проектах.
Разработчики с пониманием Agile и успешной работы с инструментами гибкой разработки будут востребованы на рынке труда. И этот спрос будет расти в ближайшие 5 лет.

8. Знание предметной области

Вместе с гибкими технологиями, команды разработчиков все больше и больше рассматриваются как партнеры для других проектов. Это означает, что разработчики, понимающие проблемную область, способны сделать очень значимый и ценный вклад. Вместе с Agile, разработчик, который может сказать, «Вот сюда, мы можем легко добавить такую-то функциональность, и это будет очень значимо для нас», или «Эй, это требование не соответствует тому, что хотят видеть наши пользователи», будет действительно выделяться. И чем больше разработчики будут сопротивляться знаниям предметной области, неоспоримо то, что компании будут отдавать предпочтение тем, кто понимает хотя бы основы предметной области.

9. «Гигиена» разработки

Несколько лет назад, много коллективов разработчиков не использовали такие инструменты как: баг-трекинговые системы, системы контроля версия и другие подобные инструменты. Они просто работали со своей IDE и все. Но, благодаря новым подходам по интеграции, и новым инструментам, таким как Microsoft Visual Studio Team System и появлению высококачественных инструментов с открытым исходным кодом, коллективов не использующих такие инструменты стает все меньше. Но, разработчикам уже недостаточно знать только то, как можно залить код в репозиторий, или забрать его оттуда, или как использовать виртуальные машины для создания тестовой среды. Они должны быть аккуратны, и уверены в том, что они надлежащим образом координируют свои действия с действиями команды. Те люди, которые копируют все на свою персональную флешку, не документируют то, каким элементам задачи соостветсвуют изменения кода и тому подобное, не приветствуются в традиционных коллективах, и еще больше не приветствуются в Agile-командах, полагающихся на тесную координацию и коммуникацию между членами команды.

10. Разработка для мобильных устройств

В конце 1990-х годов, Веб-разработка росла и получала всеобщие признание, и постепенно начала утеснять традиционные настольные приложения во многих областях. В 2008-м году, развитие мобильной разработки уже покинуло стартовую площадку, и на протяжении следующих 5-ти лет, она станет все более и более важной. Конечно, есть множество подходов разработки программного обеспечения для портативных устройств: создание веб-приложений, RIA, и приложения, которые работают непосредственно на устройстве. Независимо от того, какой путь вы выберете, добавление умений по разработке для мобильных устройств в вашу копилку мастерства обеспечит вашу востребованность на рынке труда, в будущем.


От себятинка:
Одиннадцатым пунктом я бы добавил в этот список «знание английского языка», этот скилл был востребован и раньше и будет востребован еще и через пять и пять десятков лет. Если, конечно же, на Редмонд не упадет огромный астероид ;)
Подобные переводы, отнимают кучу моего времени, но вместе с тем, они прокачивают мой уровень английского языка, и просто приносят удовольствие.
Поэтому, могу посоветовать тебе, Читатель, ищи что-то интересное на английском, и переводи на свой родной язык.

Оригинал статьи:
10 skills developers will need in the next five years

Про автора оригинальной статьи:
Justin James is an employee of Levit & James, Inc. in a multi-disciplinary role that combines programming, network management, and systems administration.

10 коммент.:

Denis комментирует...

Хороший перевод. Автору и переводчику респект.

Толік комментирует...

оригинал написаy 1 апреля, april fools :)

Paul D. комментирует...

Согласен на все 100, все так и будет

Хотя возможна революция в сенсорном вводе, а это даст абсолютно новый подход и новые языки

Ну и создание удачного ИИ, и он будет все сам программировать)

Stas комментирует...

:-) Знание Unix - вот о чём не написал автор.

DmytroZ комментирует...

.NET Framework, Java, PHP, Flash, Silverlight, JavaFx, Python... все идет к тому, что не важно под какой операционной системой ты работаешь. С другой стороны, для разработки под мобильные устройства, знание unix и Си имеет большое значение.

Mr47 комментирует...

Согласен с тем что веб сейчас нужен всем ....
Еще по поводу ИИ которое будет само програмировать:
- Труд сделал из обезьяны человека, а лень сделала из человека программиста
:))))) хD

DmytroZ комментирует...

>> - Труд сделал из обезьяны человека, а лень сделала из человека
>> программиста

А ведь это истинна! :)

Анонимный комментирует...

Программист обязан знать системные языки, прикладными не обойтись, ну и про unix конечно забыли, да.

DmytroZ комментирует...

>> Программист обязан знать системные языки, прикладными не обойтись, ну и
>> про unix конечно забыли, да.

Это можно отнести к:
"10. Разработка для мобильных устройств"

P4olka комментирует...

А 12 списком я бы добавила математику...

Отправить комментарий

 

.NET ate my MOSK;. Powered By Blogger © 2009 Bombeli | Theme Design: ooruc