• Инжене́р (фр. ingénieur ← от лат. ingenium - способности, изобретательность) - специалист, осуществляющий инженерную деятельность. Инженеры вовлечены, как правило, во все процессы жизненного цикла технических устройств, являющихся предметом инженерного дела, включая прикладные исследования, планирование, проектирование, конструирование, разработку технологии изготовления (сооружения), подготовку технической документации, производство, наладку, испытание, эксплуатацию, техническое обслуживание, ремонт и утилизацию устройства и управление качеством.

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

    Во втором веке до н. э. инженерами называли создателей и операторов военных машин. Понятие «гражданский инженер» появилось в XVI веке в Голландии применительно к строителям мостов и дорог, затем в Англии, Пруссии и России. В русском войске XVI века инженеры назывались «розмыслами». Понятие и звание инженера давно применялись в России, где инженерное образование началось с основания Петром I в 1701 году в Москве Школы математических и навигационных наук (Школа Пушкарского приказа), а затем в 1712 году первой инженерной школы.

    Инженеры объединяются в национальные, региональные и международные научные общества и профессиональные ассоциации, к примеру Американское общество инженеров-механиков (США), Институт инженеров электротехники и электроники (США), Российская инженерная академия, Российский союз инженеров. Посредством этих организаций осуществляется координация научных исследований, разработка технических стандартов, повышение квалификации, защита и представление интересов инженерного сообщества и другая деятельность. Основной формой обмена идеями, информацией и опытом для инженерного сообщества являются публикации в профессиональных изданиях, а также профессиональные научные и научно-практические форумы - съезды, конференции, семинары.

    Примерный список должностных обязанностей инженера:

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

    Разрабатывает методические и нормативные документы, техническую документацию, а также предложения и мероприятия по осуществлению разработанных проектов и программ.

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

    Участвует в работах по исследованию, разработке проектов и программ предприятия (подразделений предприятия), в проведении мероприятий, связанных с испытаниями оборудования и внедрением его в эксплуатацию, а также выполнении работ по стандартизации технических средств, систем, процессов, оборудования и материалов, в рассмотрении технической документации и подготовке необходимых обзоров, отзывов, заключений по вопросам выполняемой работы.

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

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

    Оказывает методическую и практическую помощь при реализации проектов и программ, планов и договоров.

    Осуществляет экспертизу т

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

«Программистов» лучше называть инженерами

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

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

По мере того как течёт время, порог входа становится ниже. Например, в Microsoft сейчас нет такой роли, как «тестер» - у них есть developer in test. При этом всех людей, которые занимаются разработкой, называют инженерами программного обеспечения (software engineers), просто они задействованы в немного разных сферах. Сейчас освоить инструменты стало настолько просто, что границы между конкретными специализациями стираются. В будущем вряд ли останется разделение, скажем, на JavaScript-программиста, Python-программиста и.NET-программиста - как и разделение между фронтэндом и бэкэндом.

Правда, пока что остаётся проблема со средствами выражения. На фронтэнде есть JavaScript, а на бэкэнде удобнее выбрать другой язык. Из этой мысли возник весь тренд с Node.js. Благодаря этому упрощаются стандартизация и формирование команды, знание и экспертиза которой будут примерно равны. Да, у Node.js сейчас есть проблемы, но куда важнее, что мы получаем тот же набор инструментов во фронтэнде и бэкэнде.

Знать язык программирования недостаточно

Всё важнее становится понимание технологического стэка - технологий, которые лежат в основе того, что использует человек. Встречаются люди, которые программируют на JavaScript, и на вопрос, как работает протокол TCP, они отвечают, что это слишком низкоуровневое и они не хотят с таким разбираться. Вот это страшно: исходя из моего опыта, понимание базовых принципов, которые лежат под тем, что ты используешь, очень важно. До поры до времени это может не сказываться, но, как правило, зашоренность в одной технологии не позволяет делать нормальные решения по всему технологическому стэку.

Вот пример того, что я имею в виду под технологическим стэком в случае с браузером. Есть JavaScript, есть представление о том, что такое HTML, протокол HTTP. JavaScript-программисту никуда от этого не деться, он должен его понимать - как и то, откуда взялись правила изоляции и кроссдоменной безопасности, как работает протокол SSL, как работает безопасность, основанная на сертификатах. Дальше, если мы идём в бэкэнд, то человек обязательно должен понимать организацию структур данных. В любом более-менее сложном приложении, когда речь заходит о визуальном отображении сложных структур данных, объединении таблиц и организации выборок, интерфейс и бэкэнд становятся непосредственно связаны. Очень сложно сделать эффективное приложение, если люди, которые делают интерфейс, не понимают хотя бы базовых проблем, о которых нужно думать в бэкэнде: шардинг, организация данных, структура запросов. И наоборот: очень сложно сделать правильный API в бэкэнде, правильно предусмотреть возможность шардинга и горизонтального масштабирования, если человек, который пишет бэкэнд, не понимает проблем, которые есть на фронтэнде.

Можно опускаться ниже - и долго говорить о том, что вы не хотите думать, как устроены процессы и потоки в операционной системе. Но, когда вы, например, выбираете, как запустить своё приложение в вебе, тут же возникает вопрос процессов против потоков: нужно понимать, чем они отличаются, плюсы и минусы, как это работает. Люди, которые не понимают этого, в какой-то момент упираются в потолок профессионального роста. Это происходит часто: людей, которые думают широко, системно и изучают новые области, всегда было мало. Можно всё время делать сайты одного и того же уровня, не задумываясь о сложных вещах, но сделать сайт с большим количеством клиентов и динамическим контентом - это принципиально другое. Часто этот шаг невозможно сделать, не построив у себя в голове фундамента базовых знаний.

Грань между дизайнерами и инженерами останется

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

Сейчас, если я хочу сделать хороший сайт, то, наверное, имеет смысл нанять JavaScript-программиста. С другой стороны, я могу пойти на Wix или другой билдер и сделать там сайт, близкий к тому, что мне нужно. Мне кажется, что этот тренд продолжится. Возможность сделать свой сайт с неплохим динамическим контентом, просто подвигав ползунки и покидав кнопочки, появится у любого человека. Необходимость в людях, которые будут писать такие сайты, сама по себе отомрёт. Скорее всего, JavaScript-программисты не исчезнут - кому-то ведь нужно будет создавать высокоуровневые средства визуального моделирования. Но от специалистов потребуются более глубокие знания.

На уровень выше можно выходить бесконечно. Когда-то были средства низкоуровневого программирования: люди писали в байткодах, и их это не очень беспокоило. Потом появились средства того же ассемблера, следом за ними - средства уровнем выше. Если фантазировать, через 50-100 лет всё можно будет автоматизировать и дойти до полуискусственного интеллекта - вопрос во времени и сложности следующего технологического витка. Если посмотреть на историю разработки, то на каждом новом технологическом витке увеличиваются суммарный объём и широта знаний, которые нужно держать в голове, - хотя и доступ к ним упрощается. То, что можно просто взять и изучить JavaScript - это иллюзия. Реально нужно знать JavaScript и всё, что под ним. Переходя на следующий виток, нужно иметь хотя бы основные представления о том, что было до этого.

Инженерам нужны и естественные, и гуманитарные науки

Чем дальше, тем более сторонними оказываются затрагиваемые сферы. Возьмите хотя бы развитие компании Apple, которое во многом было продиктовано увлечением Стива Джобса и людей, которые его окружали, гуманитарными науками: в частности, маниакальной любовью к красивым шрифтам и иероглифам. Все запоминающиеся изменения в информационных технологиях очень часто происходят на стыке наук. Это почти всегда синтез, потому что IT - просто способ представления и обработки информации, который лишается смысла в вакууме. Так, сложно назвать «программистами» людей, которые придумали графический пользовательский интерфейс, - это как сказать, что iPhone стал успешен благодаря только «железу» или только «софту».

Ещё 10 лет назад фронтэнд-разработчику казалась бы дикой мысль о том, что нужно прочитать книги о восприятии и психологии людей. Сейчас это уже само собой разумеющееся: если человек разрабатывает сайты, то он прочитал все возможные книги по UX, UI, тому, какой объём информации люди способны воспринимать, как её лучше подавать. И это ведь смежная технология, пришедшая к нам чуть ли не из медицины - и то же самое будет касаться физики, химии и биологии.

Сегодня много говорят о квантовых компьютерах, но мало кто понимает, что это такое. Когда удастся создать первый действующий квантовый компьютер, готовый к запуску в массы, это радикально поменяет весь технологический стэк. При этом выбрасывать всё не придётся. Люди будут искать средства совместимости: условно, как Parallels Desktop решает задачу совместимости между Windows и Mac, но в гораздо большем объёме.

Рассматривают и возможность построить биологические вычислительные машины. Когда это получится, они радикальным образом поменяют не только вычислительные технологии, но и устройство медицины и всего общества. Сейчас массовая медицина отслеживает здоровье людей всего по нескольким показателям: грубо говоря, это пульс, давление, биохимический анализ крови. А что, если создадут устройство, которое будет «жить» в организме человека и выдавать все эти данные в реальном времени по каждому человеку на Земле? Представьте последствия, которые это повлечёт за собой: продолжительность жизни увеличится не на жалкие проценты, а на очень заметные цифры.

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

Получайте базовые знания, которые не устаревают

Что бы вы ни начинали учить сейчас, через 5–10 лет оно устареет. А потому, как бы глупо это ни звучало, нужно учиться учиться. Если есть запас времени, лучше посвятить его тому, как работает то, чем вы собираетесь пользоваться, - начиная от курса физики и математики. Без базовых знаний пресловутым умением учиться сложно воспользоваться. Фазовый переход на следующий уровень всегда намного проще для людей, которые понимают, как работают компьютеры на физическом уровне, - пускай они даже этим не пользуются и работают на гораздо более высокоуровневых языках. Они не просто пользуются автомобилем и включают передачи, а понимают, как автомобиль работает. Когда эта штука становится чем-то вроде электромобиля, им сделать этот переход намного проще.

Если мы ставим на стратегию долгосрочного развития и роста, то важнее не прикладные, а фундаментальные знания. Не банальное представление, как послать GET-запрос, а понимание HTTP-протокола: почему он был так сделан, какие идеи в него были заложены. Когда мы перейдём на условный SPDY (Разработанный Google протокол, предлагаемый как замена частей HTTP. - Прим. ред.), вы сможете понять, как произошло это изменение. Нужно общее понимание того, когда эти запросы посланы на сервер, как работает процессор, который делает эти вычисления на сервере. Слишком углубляться во всё не надо, но для широты знаний нужно понимать, как это всё работает.

А знаете ли вы, что инженерная профессия имеет очень древние корни?! А точнее сказать, является одной из древнейших и важнейших! Одним из ярчайших представителей инженеров является древнегреческий ученый, математик и механик, основоположник теоретической механики и гидростатикиАрхимед. Его изобретениями мы пользуемся каждый день. Например, обычная мясорубка имеет, в своем составе архимедов винт, без которого получение всеми нами любимого фарша было бы проблематичным! Изначально этот винт, конечно, применялся как водоподъемный механизм при осушении земель залитых Нилом. А винт и гайка? Это тоже благодаря Архимеду!

Как звали инженеров в древности в России и в разных странах

Во втором веке до нашей эры инженерами называли создателей и операторов военных машин. Понятие «гражданский инженер » появилось в XVI веке и применялось в первую очередь к строителям мостов и дорог. В XVI веке в русском войске инженеров звали «розмыслами ». В старину на Руси розмыслами называли строителей городов, укреплений, литейщиков пушек и колоколов.

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

Надо сказать, что русское слово «розмысл » наиболее точно характеризует суть инженерного бытия. Судите сами, в Англии инженеров называли капитанами, у французов – мэтрами, у немцев – мейстерами. Слова эти означали: господин, хозяин, владелец, учитель, мастер своего дела. Что касается немецкого «мейстер», то в просторечии это слово означало палач. Только в XIX веке, с распространением машинного производства «изобретательных людей» всех стран стали называть словом инженеры.

Когда в России появилась инженерная специальность

В Россию специальность инженера пришла благодаря Петру I. Само же слово инженер происходит от латинского ingenium – хитроумный, способный, специалист.
Инженерное образование в России началось с основания в 1701 году школы математических и навигационных наук в Москве (Школа Пушкарского приказа), а затем в 1712 году инженерная школа.Надо сказать, наша страна всегда была очень богата инженерами с мировым именем.

Инженер в наши дни


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

Сегодня в нашей стране более трети специалистов с высшим образованием – инженеры. Но в век капиталистических отношений к званию и профессии инженер, кажется, потеряли такое трепетное отношение и интерес. Да и сами инженеры уже ни так дорожат своим званием. А зря!

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

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

На дефицит инженеров в стране недавно обратил внимание и президент РФ В.В. Путин, обращаясь к федеральному собранию 4 декабря 2014 года:

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

Предлагаю Правительству с привлечением Агентства стратегических инициатив организовать эту работу… Самые передовые технологии могут заработать, если будут люди, способные их развивать и использовать.

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

У нас есть хорошие заделы, есть молодые люди очень талантливые и перспективные. Но это говорит также и о том, что нам нужно многое сделать по изменению системы подготовки рабочих кадров. То, о чём я говорил. Нужно только подойти к этому неформально… Самое базовое условие развития экономики – это, конечно, высокоподготовленный и квалифицированный рабочий класс, инженерные кадры. Об этом мы никогда не должны забывать. И нужно, конечно, создать сеть сертификационных центров, где каждый работник смог бы подтвердить свою квалификацию. Мы обязаны думать и о том, кто будет решать перспективные проблемы в будущем.

Инженеры — люди будущего

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

Быть инженером в нашей стране во все времена было не легко. Словно, кто-то специально создал условия отбора. Но такого количества находчивых, пытливых, творческих умов нет ни в одной другой стране. Выучиться на инженера и стать им совсем не одно и то же! Чтобы получить диплом инженера достаточно пройти курс лекций в течение 5 лет. А чтобы стать инженером надо каждый день работать над собой, всем сердцем любить науку и то, что делаешь, и может быть, только тогда получится стать настоящим инженером.

Закончить хотелось бы цитатой, на мой взгляд, одного из интереснейших (не смотря на его политические пристрастия) писателей, Александра Исаевича Солженицына:

«Инженер ?!… Этот открыто светящийся интеллект, этот свободный и необидный юмор, эта легкость и широта мысли, непринужденность переключения из одной инженерной области в другую и вообще от техники к обществу, к искусству. Затем эту воспитанность, тонкость вкусов; хорошую речь, плавно согласованную и без сорных словечек; у одного немного музицирование; у другого немножко живопись; и всегда у всех – духовная печать на лице»

Сейчас программистам хорошо платят за узкопрофильные задачи, будь это разработка под одну платформу или приложений одного вида. Но отрасли, которые называют самыми перспективными, например биотехнологии, требуют более глубокого изучения смежных областей, понимания как естественных, так и гуманитарных наук. Вице-президент Parallels Максим Кузькин рассказал Look At Me, почему широта знаний вновь становится важнее узкой специализации.

«Программистов» лучше называть инженерами


Максим Кузькин

вице-президент Parallels и главный архитектор продуктов Odin - бренда,
под которым реализуются решения
для дата-центров от лица Parallels

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

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

Людей, которые думают широко, системно и изучают новые области, всегда было мало

По мере того как течёт время, порог входа становится ниже. Например, в Microsoft сейчас нет такой роли, как «тестер» - у них есть developer in test (Специалист, который пишет программы, тестирующие другие программы. - Прим. ред.) . При этом всех людей, которые занимаются разработкой, называют инженерами программного обеспечения (software engineers) , просто они задействованы в немного разных сферах. Сейчас освоить инструменты стало настолько просто, что границы между конкретными специализациями стираются. В будущем вряд ли останется разделение, скажем, на JavaScript-программиста, Python-программиста и.NET-программиста - как и разделение между фронтэндом и бэкэндом.

Правда, пока что остаётся проблема со средствами выражения. На фронтэнде есть только JavaScript, а на бэкэнде удобнее выбрать другой язык. Из этой мысли возник весь тренд с Node.js (Платформа, превращающая JavaScript из узкоспециализированного языка в язык общего назначения. - Прим. ред.) . Благодаря этому упрощаются стандартизация и формирование команды, знание и экспертиза которой будут примерно равны. Да, у Node.js сейчас есть проблемы, но куда важнее, что мы получаем тот же набор инструментов во фронтэнде и бэкэнде.

Знать язык программирования недостаточно


всё Важнее становится понимание технологического стэка - технологий, которые лежат в основе того, что использует человек. Встречаются люди, которые программируют на JavaScript, и на вопрос, как работает протокол TCP, они отвечают, что это слишком низкоуровневое и они не хотят с таким разбираться. Вот это страшно: исходя из моего опыта, понимание базовых принципов, которые лежат под тем, что ты используешь, очень важно. До поры до времени это может не сказываться, но, как правило, зашоренность в одной технологии не позволяет делать нормальные решения по всему технологическому стэку.

Вот пример того, что я имею в виду под технологическим стэком в случае с браузером. Есть JavaScript, есть представление о том, что такое HTML, протокол HTTP. JavaScript-программисту никуда от этого не деться, он должен его понимать - как и то, откуда взялись правила изоляции и кроссдоменной безопасности, как работает протокол SSL, как работает безопасность, основанная на сертификатах. Дальше, если мы идём в бэкэнд, то человек обязательно должен понимать организацию структур данных. В любом более-менее сложном приложении, когда речь заходит о визуальном отображении сложных структур данных, объединении таблиц и организации выборок, интерфейс и бэкэнд становятся непосредственно связаны. Очень сложно сделать эффективное приложение, если люди, которые делают интерфейс, не понимают хотя бы базовых проблем, о которых нужно думать в бэкэнде: шардинг, организация данных, структура запросов. И наоборот: очень сложно сделать правильный API в бэкэнде, правильно предусмотреть возможность шардинга и горизонтального масштабирования, если человек, который пишет бэкэнд, не понимает проблем, которые есть на фронтэнде.

Можно опускаться ниже - и долго говорить о том, что вы не хотите думать, как устроены процессы и потоки в операционной системе. Но, когда вы, например, выбираете, как запустить своё приложение в вебе, тут же возникает вопрос процессов против потоков: нужно понимать, чем они отличаются, плюсы и минусы, как это работает. Люди, которые не понимают этого, в какой-то момент упираются в потолок профессионального роста. Это происходит часто: людей, которые думают широко, системно и изучают новые области, всегда было мало. Можно всё время делать сайты одного и того же уровня, не задумываясь о сложных вещах, но сделать сайт с большим количеством клиентов и динамическим контентом - это принципиально другое. Часто этот шаг невозможно сделать, не построив у себя в голове фундамента базовых знаний.

Грань между дизайнерами
и инженерами останется


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

Сейчас, если я хочу сделать хороший сайт, то, наверное, имеет смысл нанять JavaScript-программиста. С другой стороны, я могу пойти на Wix или другой билдер и сделать там сайт, близкий к тому, что мне нужно. Мне кажется, что этот тренд продолжится. Возможность сделать свой сайт с неплохим динамическим контентом, просто подвигав ползунки и покидав кнопочки, появится у любого человека. Необходимость в людях, которые будут писать такие сайты, сама по себе отомрёт. Скорее всего, JavaScript-программисты не исчезнут - кому-то ведь нужно будет создавать высокоуровневые средства визуального моделирования. Но от специалистов потребуются более глубокие знания.

На каждом новом технологическом витке увеличиваются суммарный объём и широта знаний, которые нужно держать в голове

на уровень выше можно выходить бесконечно. Когда-то были средства низкоуровневого программирования: люди писали в байткодах, и их это не очень беспокоило. Потом появились средства того же ассемблера, следом за ними - средства уровнем выше. Если фантазировать, через 50-100 лет всё можно будет автоматизировать и дойти до полуискусственного интеллекта - вопрос во времени и сложности следующего технологического витка. Если посмотреть на историю разработки, то на каждом новом технологическом витке увеличиваются суммарный объём и широта знаний, которые нужно держать в голове, - хотя и доступ к ним упрощается. То, что можно просто взять и изучить JavaScript - это иллюзия. Реально нужно знать JavaScript и всё, что под ним. Переходя на следующий виток, нужно иметь хотя бы основные представления о том, что было до этого.

Инженерам нужны и естественные, и гуманитарные науки


Чем дальше, тем более сторонними оказываются затрагиваемые сферы. Возьмите хотя бы развитие компании Apple, которое во многом было продиктовано увлечением Стива Джобса и людей, которые его окружали, гуманитарными науками: в частности, маниакальной любовью к красивым шрифтам и иероглифам. Все запоминающиеся изменения в информационных технологиях очень часто происходят на стыке наук. Это почти всегда синтез, потому что IT - просто способ представления и обработки информации, который лишается смысла в вакууме. Так, сложно назвать «программистами» людей, которые придумали графический пользовательский интерфейс, - это как сказать, что iPhone стал успешен благодаря только «железу» или только «софту».

Ещё 10 лет назад фронтэнд-разработчику казалась бы дикой мысль о том, что нужно прочитать книги о восприятии и психологии людей. Сейчас это уже само собой разумеющееся: если человек разрабатывает сайты, то он прочитал все возможные книги по UX, UI, тому, какой объём информации люди способны воспринимать, как её лучше подавать. И это ведь смежная технология, пришедшая к нам чуть ли не из медицины - и то же самое будет касаться физики, химии и биологии.

Сегодня много говорят о квантовых компьютерах, но мало кто понимает, что это такое. Когда удастся создать первый действующий квантовый компьютер, готовый к запуску в массы, это радикально поменяет весь технологический стэк. При этом выбрасывать всё не придётся. Люди будут искать средства совместимости: условно, как Parallels Desktop решает задачу совместимости между Windows и Mac, но в гораздо большем объёме.

Фазовый переход на следующий уровень всегда намного проще для людей, которые понимают , как работают компьютеры
на физическом уровне

Рассматривают и возможность построить биологические вычислительные машины. Когда это получится, они радикальным образом поменяют не только вычислительные технологии, но и устройство медицины и всего общества. Сейчас массовая медицина отслеживает здоровье людей всего по нескольким показателям: грубо говоря, это пульс, давление, биохимический анализ крови. А что, если создадут устройство, которое будет «жить» в организме человека и выдавать все эти данные в реальном времени по каждому человеку на Земле? Представьте последствия, которые это повлечёт за собой: продолжительность жизни увеличится не на жалкие проценты, а на очень заметные цифры.

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

Получайте базовые знания,
которые не устаревают


Что бы вы ни начинали учить сейчас, через 5–10 лет оно устареет. А потому, как бы глупо это ни звучало, нужно учиться учиться. Если есть запас времени, лучше посвятить его тому, как работает то, чем вы собираетесь пользоваться, - начиная от курса физики и математики. Без базовых знаний пресловутым умением учиться сложно воспользоваться. Фазовый переход на следующий уровень всегда намного проще для людей, которые понимают, как работают компьютеры на физическом уровне, - пускай они даже этим не пользуются и работают на гораздо более высокоуровневых языках. Они не просто пользуются автомобилем и включают передачи, а понимают, как автомобиль работает. Когда эта штука становится чем-то вроде электромобиля, им сделать этот переход намного проще.

Если мы ставим на стратегию долгосрочного развития и роста, то важнее не прикладные, а фундаментальные знания. Не банальное представление, как послать GET-запрос, а понимание HTTP-протокола: почему он был так сделан, какие идеи в него были заложены. Когда мы перейдём на условный SPDY (Разработанный Google протокол, предлагаемый как замена частей HTTP. - Прим. ред.) , вы сможете понять, как произошло это изменение. Нужно общее понимание того, когда эти запросы посланы на сервер, как работает процессор, который делает эти вычисления на сервере. Слишком углубляться во всё не надо, но для широты знаний нужно понимать, как это всё работает.

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

Рассказывает Максим Кузькин, вице-президент Parallels и главный архитектор продуктов Odin - бренда, под которым реализуются решения для дата-центров от лица Parallels.

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

Я в своей работе никогда не пользуюсь словом «программист»

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

По мере того, как течёт время, порог входа становится ниже. Например, в Microsoft сейчас нет такой роли, как «тестер» - у них есть developer in test (Специалист, который пишет программы, тестирующие другие программы. - Прим. ред.). При этом всех людей, которые занимаются разработкой, называют инженерами программного обеспечения (software engineers), просто они задействованы в немного разных сферах. Сейчас освоить инструменты стало настолько просто, что границы между конкретными специализациями стираются. В будущем вряд ли останется разделение, скажем, на JavaScript-программиста, Python-программиста и.NET-программиста - как и разделение между фронтендом и бэкэндом.

Знать язык программирования недостаточно

Всё важнее становится понимание технологического стэка - технологий, которые лежат в основе того, что использует человек. Встречаются люди, которые программируют на JavaScript, и на вопрос, как работает протокол TCP, они отвечают, что это слишком низкоуровневое и они не хотят с таким разбираться. Вот это страшно: исходя из моего опыта, понимание базовых принципов, которые лежат под тем, что ты используешь, очень важно. До поры до времени это может не сказываться, но, как правило, зашоренность в одной технологии не позволяет делать нормальные решения по всему технологическому стэку.

Что бы вы ни начинали учить сейчас, через 5-10 лет оно устареет

Вот пример того, что я имею в виду под технологическим стэком в случае с браузером. Есть JavaScript, есть представление о том, что такое HTML, протокол HTTP. JavaScript-программисту никуда от этого не деться, он должен его понимать - как и то, откуда взялись правила изоляции и кроссдоменной безопасности, как работает протокол SSL, как работает безопасность, основанная на сертификатах. Дальше, если мы идём в бэкэнд, то человек обязательно должен понимать организацию структур данных. В любом более-менее сложном приложении, когда речь заходит о визуальном отображении сложных структур данных, объединении таблиц и организации выборок, интерфейс и бэкэнд становятся непосредственно связаны. Очень сложно сделать эффективное приложение, если люди, которые делают интерфейс, не понимают хотя бы базовых проблем, о которых нужно думать в бэкэнде: шардинг, организация данных, структура запросов. И наоборот: очень сложно сделать правильный API в бэкэнде, правильно предусмотреть возможность шардинга и горизонтального масштабирования, если человек, который пишет бэкэнд, не понимает проблем, которые есть на фронтенде.

Грань между дизайнерами и инженерами останется

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

Сейчас, если я хочу сделать хороший сайт, то, наверное, имеет смысл нанять JavaScript-программиста. С другой стороны, я могу пойти на Wix или другой билдер и сделать там сайт, близкий к тому, что мне нужно. Мне кажется, что этот тренд продолжится.

Инженерам нужны и естественные, и гуманитарные науки

Чем дальше, тем более сторонними оказываются затрагиваемые сферы. Возьмите хотя бы развитие компании Apple, которое во многом было продиктовано увлечением Стива Джобса и людей, которые его окружали, гуманитарными науками: в частности, маниакальной любовью к красивым шрифтам и иероглифам. Все запоминающиеся изменения в информационных технологиях очень часто происходят на стыке наук. Это почти всегда синтез, потому что IT - просто способ представления и обработки информации, который лишается смысла в вакууме. Так, сложно назвать «программистами» людей, которые придумали графический пользовательский интерфейс, - это как сказать, что iPhone стал успешен благодаря только «железу» или только «софту».

Ещё 10 лет назад фронтенд-разработчику казалась бы дикой мысль о том, что нужно прочитать книги о восприятии и психологии людей. Сейчас это уже само собой разумеющееся: если человек разрабатывает сайты, то он прочитал все возможные книги по UX, UI, тому, какой объём информации люди способны воспринимать, как её лучше подавать. И это ведь смежная технология, пришедшая к нам чуть ли не из медицины - и то же самое будет касаться физики, химии и биологии.

Получайте базовые знания, которые не устаревают

Что бы вы ни начинали учить сейчас, через 5-10 лет оно устареет. А потому, как бы глупо это ни звучало, нужно учиться учиться. Если есть запас времени, лучше посвятить его тому, как работает то, чем вы собираетесь пользоваться, - начиная от курса физики и математики. Без базовых знаний пресловутым умением учиться сложно воспользоваться. Фазовый переход на следующий уровень всегда намного проще для людей, которые понимают, как работают компьютеры на физическом уровне, - пускай они даже этим не пользуются и работают на гораздо более высокоуровневых языках. Они не просто пользуются автомобилем и включают передачи, а понимают, как автомобиль работает. Когда эта штука становится чем-то вроде электромобиля, им сделать этот переход намного проще.

Если мы ставим на стратегию долгосрочного развития и роста, то важнее не прикладные, а фундаментальные знания. Не банальное представление, как послать GET-запрос, а понимание HTTP-протокола: почему он был так сделан, какие идеи в него были заложены. Когда мы перейдём на условный SPDY, вы сможете понять, как произошло это изменение. Нужно общее понимание того, когда эти запросы посланы на сервер, как работает процессор, который делает эти вычисления на сервере. Слишком углубляться во всё не надо, но для широты знаний нужно понимать, как это всё работает.