Программист как профессия. Чем же занимаются программисты, и как объяснить это остальным? Программист пишет программы

Программист как профессия. Чем же занимаются программисты, и как объяснить это остальным? Программист пишет программы

05.04.2019

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

Кто же такие программисты, чем они занимаются, почему у программистов такие высокие ЗП?

На самом деле нет простого ответа на это.

Программист сидит за компьютером

Когда я учился в школе, я думал, что это люди, которые сидят за компьютерами. Пожалуй, с этим и связано название профессии в советском исполнении: "Оператор ЭВМ".

В принципе, не плохо - водитель управляет машиной, а "оператор ЭВМ" управляет компьютером. Но здесь есть всё же неувязочка: водитель всё же про "отвезти кого-то/что-то", его же не называют "оператор автотранспортного средства".

Так может и "оператор ЭВМ" - не лучшее название для этой профессии... если, конечно, он не просто сидит за этим самым компьютером.

Программист пишет программы

Следующая ступень понимания этой профессии: "программист пишет программы". Уже лучше. Если вы хоть раз ставили программу / приложение на компьютер или, например, телефон, вы, возможно, имели в виду, что эту программу кто-то сделал...


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

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

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


Программист автоматизирует

Автоматизирует решение проблем, а заодно и проблемы.

После первого семестра началось более прикладное программирование. Мы начали не просто "считать графики функций", а писать программы, которые решают какие-то проблемы. И это уже в разы интереснее! Не для всех - на этом этапе как раз и можно сказать: станет человек хорошим программистом или нет - есть кайф от решения проблем средствами программ или нет?

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


Всё это уменьшает нагрузку на людей, увеличивает эффективность бизнеса.

Вы главное скажите - а что надо автоматизировать?

Программист решает проблемы

Громкое заявление, но если грубо (а честно - это почти всегда грубо) - то так и есть. Часто в работе не было чёткого описания процесса, который надо автоматизировать. Часто это был просто список хотелок, которые надо сделать, и головной боли, от которой надо избавить заказчика.

И тут, чтобы хорошо сделать свою работу, надо сначала понять проблему, придумать решение и таки решить проблему.

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

Так кто же такие программисты?

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

Однако, чтобы придти к выводу "программист решает проблемы" от "сидит за компьютером" мне потребовалось 8 лет. Не думаю, что многие в наше время тратят столько на повышение своей квалификации в области компьютерных технологий. Пожалуй, именно поэтому и нет понимания: что за зверь такой "программист".

Почему они получают много? Ответ очевиден - рынок: покупателей много, а программистов мало. Почему их мало? Потому что надо не просто сидеть за компьютером, а решать проблемы. При чём автоматизировать эти решения. Те, кто просто сидят за компьютером, получают мало. Те, кто пишут программы - больше. Но ценны именно те люди, что решают проблемы. Ценны они в любой отрасли и получают хорошую ЗП.

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

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

- Чем занимаются программисты? Это не так-то просто рассказать… Ответьте мне для начала: как в двух словах можно описать, например, суть профессии хирурга?
- Хирург проводит операции.
- Да, отличное описание! Ну а, скажем, футболиста?
- Играет в футбол!
- Угу, а хирург «занимается хирургией». А если без однокоренных слов?
- Пинает мяч?
- Вот это точно. А что же делает программист, кроме как «разрабатывает программы»?
- …
- Программист пишет код . Исходный код своей программы, составленный на каком-то специальном языке программирования. Точнее говоря, сначала он продумывает структуры своих данных, потом составляет алгоритмы для работы с этими структурами - ну а затем уже представляет это в виде кода.
- Что ещё за «структуры данных»? Разве он не управляет компьютером, не нажимает кнопки?
- Эх...

Миф №1: программист работает с компьютерами

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

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

Миф №2: машина умеет думать

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

- В общем, код любой программы представляет собой набор команд, а компьютер их тупо исполняет.
- То есть, он не понимает сути самих команд? Но как он воспринимает текст, который я ввожу на экране?
- Когда ты крутишь педали на велосипеде - понимает ли он, что ему сейчас нужно поехать вперёд?
- Нет, но ведь едет. Поскольку его цепь преобразует вращение педалей во вращение колёса.
- Именно! Также и компьютер преобразует введённый тобой текст в набор чисел.
- Каким образом?
- У каждого символа текста есть свой числовой код, который знает компьютер. Это называется кодировкой. Например, английская «a» кодируется числом 97, а знак равенства - числом 61.
- Поэтому машина и может понимать текст, который мы ей сообщаем?
- Нет, она «понимает» не смысл. А лишь то, каким образом этот текст хранить, и как к нему обращаться.
- Выходит, сначала мы вводим текст, затем компьютер разбивает его на символы, а каждый символ уже представляет в виде числа?
- Верно. Сложные структуры представляются в виде более простых , которые и «понимает» машина.

Скажите мне, из чего состоит жилой дом?
- Ну… Из этажей.
- А из чего состоят этажи? И так далее.
- Этажи - из стен. А стены - из кирпичей. А кирпичи…
- Вот числа для компьютера - это то же, что и кирпичи для дома. Символы - это стены. Отдельные предложения - этажи. А книги - целые дома! Но у программистов есть преимущество перед строителями.
- Какое?
- Строитель не может строить целыми этажами, он вынужден всегда класть кирпичи. Даже если некий сверхмощный подъёмный кран позволит ему строить готовые этажи, он не сможет строить им целые дома или жилые кварталы. А программист сможет! Раз он уже «обучил» машину понимать конечный текст - то, по сути, он «обучил» подъёмный кран строить готовый дом за одно действие.
- То есть, программист может использовать всё более и более сложные структуры данных?
- Да. Поэтому первая из составляющих его работы - представить понятные человеку данные (текст, изображение, звук) в виде объединения более простых данных, уже понятных компьютеру. Разработчик практически «с нуля» составляет структуру, которая должна полностью описывать понятную человеку вещь - причём таким образом, чтобы эта структура была легко расширяемой и изменяемой (ведь в программу часто приходится вносить какие-то новые возможности).
- Хех! Выходит, что он строит резиновые дома из съёмных панелей!
- Примерно так. Однако, ещё ему придётся не только описать, что же ему нужно построить - но и как всё это построить. То есть, придумать алгоритм. Это вторая из составляющих его работы.
- Программист придумывает алгоритм на каждое действие?
- Именно. Поэтому алгоритмов получается очень много. Но его работу облегчает то, что одни действия могут содержать в себе другие, уже описанные им ранее.
- И здесь ему на помощь приходит язык программирования?
- Не совсем...

Миф №3: язык программирования нужен для составления алгоритмов

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

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

- Правда, многие из нынешних языков программирования уже содержат «в себе» набор заранее составленных алгоритмов, которые разработчик может использовать в качестве готовых. Поэтому язык всё же немного облегчает процесс составления алгоритмов.
- То есть, если один программист составил какой-то алгоритм, то его тут же могут использовать другие?
- Да, и это происходит постоянно. Это одна из причин, почему отрасль IT так быстро развивается. Однако новые алгоритмы приходится составлять самому.
- А составь какой-нибудь прямо сейчас!
- Легко. Классический пример: у вас есть книга, в ней 1000 страниц. Вам нужно открыть в ней, к примеру, 875-ю страницу. Как бы вы стали это делать?
- Ну, просто пробежал от первой до 875-й, только и всего.
- Угу, и придётся тебе глядеть на номер каждой страницы. А представь, если все их уголки слиплись - сколько времени тогда пройдёт? А вот мне достаточно перебрать лишь 3 страницы!
- Как?
- Вначале я выберу страницу, которая находится посередине книги, то есть 500-ю. Потом посмотрю: в какую из образовавшихся половин должна попасть искомая страница?
- Во вторую. А дальше что?
- То же самое. Интервал с 500-й по 1000-ю я снова поделю надвое, открыв центральную страницу. Получится интервал от 750-й страницы до 1000-й, в нём я опять выберу центральную. Какой будет номер?
- 750 плюс 125… Так это же и есть 875!
- Вот видишь. Всего 3 действия! Даже если я буду не совсем точен при выборе центральной страницы, я всё равно найду нужную намного быстрее тебя. Этот алгоритм носит название «дихотомия». Хотя в реальности программисты используют куда более сложные алгоритмы.
- И ты можешь записать его на бумаге?
- Конечно. Где там моя ручка?

Псевдокод

повторяем цикл: ищем(в книге, центральную_страницу); если (центральная_страница = искомой_странице) выходим из цикла; иначе если (центральная_страница < искомой_страницы) удаляем(в книге, все страницы от первой до центральной); иначе удаляем(в книге, все страницы от центральной до последней);


- Ну как, алгоритм ясен?
- Хм… Да, и впрямь ясен.
- Сейчас он записан в виде, уже слегка похожем на реальный программный код.
- А в чём отличия?
- В реальном коде все слова будут написаны на английском, а также будет заранее описана структура «книга» (помните, что я раньше рассказывал про структуры данных?). Плюс, для действий «ищем» и «удаляем» тоже будут составлены свои алгоритмы. Но в целом - всё то же самое.
- И ты занимаешься этим изо дня в день?
- В основном.
- И тебе не скучно?
- Ничуть!

Миф №4: программирование - это скучно

Конечно, разработка вполне может наскучить, если заниматься только рутинными и однообразными делами. Например, составлением очень простых алгоритмов, но в большом количестве. Или монотонным поиском ошибок в чужом коде. Но это же касается и любой другой работы - рутина везде убивает творческий процесс. А творчества в программировании немало, написание кода похоже на написание художественной книги. Только, в отличие от большинства писателей, программист сначала сам создаёт свой собственный мир (структуры данных) - а уже потом наполняет его сюжетом (алгоритмами).

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

- В шутку можно сказать, что в итоге получается какой-то детектив в выдуманном мире, выраженный с помощью языка программирования.
- А убийца в этом детективе - дворецкий?
- Ага, нулевой указатель. Бывает так, что весь отдел день-другой ловит особо назойливый баг, и каждый программист из отдела берёт на себя какой-то участок кода. Получается целое расследование, с наказанием виновных и награждением сопричастных…
- Хм, а это и впрямь интересно звучит!
- Вот видишь.
- А, скажем, я могу хоть немного научиться программированию?
- Да, конечно! Я знаю один сайт специально для этого...

От автора:

Данный диалог вполне реален, вплоть до финальной реплики. Конечно, он порядком приукрашен - но, уверяю вас, примерно так всё и было;)

Справка

Билл Гейтс, Марк Цукерберг, Шон Паркер, Торвальдс Линус… Все эти люди прославились благодаря особому таланту в программировании. Работа в такой области считается преимущественно мужской, но первым программистом является женщина. Это дочь знаменитого английского поэта Байрона - Ада Лавлейс. Именно благодаря ей появились первые приёмы управления вычислениями, которые до сих пор используются в современном программировании.

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

Востребованность профессии

Достаточно востребована

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

Вся статистика

Описание деятельности

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

Заработная плата

средняя по России: средняя по Москве: средняя по Санкт-Петербургу:

Уникальность профессии

Довольно распространенная

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

Как пользователи оценивали этот критерий:
Вся статистика

Какое необходимо образование

Высшее профессиональное образование

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

Как пользователи оценивали этот критерий:
Вся статистика

Трудовые обязанности

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

Вид труда

Исключительно умственный труд

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

Как пользователи оценивали этот критерий:
Вся статистика

Особенности карьерного роста

Программист - особенно ценный специалист в условиях развития информационных технологий. Учиться на программиста не только интересно, но и перспективно, так как в дальнейшем он сможет найти применение своим профессиональным навыкам в научно-исследовательских институтах, вычислительных центрах, IT-компаниях, web-студиях, учебных заведениях. Уровень заработной платы опытных специалистов достаточно высокий, он будет зависеть от места и эффективности их работы. Программисты также могут стать владельцами собственного бизнеса и предлагать покупателям новые проекты и технические разработки.

Возможности карьерного роста

Возможностей достаточно

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

Как пользователи оценивали этот критерий:

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

Практически все сферы жизнедеятельности современного человека неразрывно связаны с величайшим изобретением человечества – компьютером. Быт, производство, услуги, образование, аэропорты, военные части, больницы и т.д. – сегодня невозможно себе представить себе слаженную работу предприятия или компании без компьютера. Безусловно, компьютер значительно облегчил нам жизнь, сделал ее удобной. Но если программное обеспечение устарело или в нем произошел сбой, то высокоинтеллектуальная машина превращается в груду металла, которую можно использовать разве что в качестве подставки под цветы. А зависит работоспособность ПК от программиста – человека, занимающегося разработкой и обслуживанием программного обеспечения компьютеров.

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

Кто такой программист?


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

Название профессии произошло от древнегреческого πρό и γραμμα (пред и запись соответственно). Другими словами, если переводить название профессии программиста буквально, то мы получим "предписание", из чего становится понятно, что этот специалист предписывает как должно быть. Несмотря на то что профессия молодая, первую программу решения уравнения Бернулли в 1843 году написала Ада Лавлейс, между прочим, дочь знаменитого поэта Джорджа Байрона, графиня и математик. Ей и присвоено почетное звание «первый программист», хотя профессия преимущественно мужская. Сегодня программисты известны во всем мире и часто занимают на страницах прессы не меньшее место, чем, скажем, звезды кино. Кто не знает имена Стива Джобса, Майкла Цукерберга, Сергея Брина, Евгения Касперского или одного из самых богатых людей мира Билла Гейтса?

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

Отметим, что профессия программиста неоднородна. Внутри профессии существует несколько узких специализаций:

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

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

Какими личностными качествами должен обладать программист?


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

  • способность к самообучению;
  • терпеливость;
  • выдержка;
  • коммуникабельность;
  • инициативность;
  • самостоятельность;
  • креативность;
  • ответственность;
  • упорство.

Необходимо также учитывать, что официальный язык программистов – технический английский. Потому знание английского языка также является одним из важнейших требований, предъявляемых к специалисту. Мало того, без знания английского языка программисту будет очень сложно выполнять свои профессиональные обязанности.

Преимущества профессии программиста

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

Второе несомненное преимущество – высокая оплата труда. Даже начинающий программист может рассчитывать на зарплату около 30-40 тысяч рублей. Если же говорить о зарплате высококвалифицированного программиста, то яркий пример таких именитых программистов, как Павел Дуров и Илья Сегалович свидетельствует о том, что доход специалистов в сфере IT может исчисляться миллионами (если не миллиардами).

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

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

Недостатки профессии программиста


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

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

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

Где можно получить профессию программиста?

Чтобы получить профессию программиста необходимо пройти обучение в ВУЗе на базе которого осуществляет подготовка по таким специальностям, как "Программное обеспечение вычислительной техники и автоматизированных систем", "Прикладная математика и информатика" или "Математическое обеспечение и администрирование информационных систем". Сразу предупреждаем, что поступить на эти специальности сложно: конкурс очень высокий, и осуществить свою мечту могут только самые достойные и талантливые.

Кстати, русская школа программирования известна во всем мире, а наши специалисты ценятся во всем мире за глубокие знания и творческие способности. Поэтому выбор ВУЗа принципиального значения не имеет: все российские институты и университеты дают примерно одинаковый уровень знаний и навыков. Тем не менее, наибольшей востребованностью среди работодателей пользуются выпускники таких лучших ВУЗов России , как:

  • Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики;
  • Московский государственный технологический университет им. Баумана;
  • Санкт-Петербургский государственный политехнический университет;
  • Московский физико-технический институт (МФТИ);
  • Московский государственный университет имени М.В. Ломоносова.

Программист сегодня — одна из самых востребованных и распространенных профессий. Известность о ней такова, что, похоже, не нуждается в подробном рассказе. Популярными также стали и зарплаты программистов, и осведомленность в этом вопросе делает ее очень привлекательной. Но каков «входной билет», ведь если все так хорошо, какую цену придется заплатить?

Почему это так называется?

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

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

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

Какими они бывают?

Программисты специализируются по программам (системам), языкам, конкретным продуктам. Подробную классификацию приводить не буду, но ясно, что есть те, кто работает с прикладными программами и целыми системными.

Программисты находят работу в интернет-компаниях (Яндекс, Гугл и пр.), трудятся над бухгалтерскими и кадровыми программами (1С, Контур, Босс, Парус, АйТи, Галактика и пр.), поддерживают работу систем управления предприятиями (ERP) SAP R3, ORACLE, Axapta, Navision и пр. или их модулей (отдельных больших программ).

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

Что делают современные программисты?

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

Сегодня создаются продукты, анализирующие Big Date — огромные массивы данных, полученных из разных источников, например, перекрестная обработка данных из социальных сетей позволяет увидеть моральные ценности и политические взгляды разных категорий людей, их товарные предпочтения и пр. Этим пользуются политические партии, правительственные органы для управления мнениями и поведением людей. Скандал, поднятый в США по поводу вмешательства российских программистов в выборы президента, связан с эффектами именно таких технологий.

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

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

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

Какими качествами надо обладать?

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

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

Как стать программистом?

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

Сегодня специалистов готовят по широкому спектру программистских специальностей:

«Прикладная математика и информатика», «Фундаментальная информатика и информационные технологии», «Математическое обеспечение и администрирование информационных систем», «Программирование в компьютерных системах», «Информатика и вычислительная техника», «Прикладная информатика», «Информационная безопасность» и другие.

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

Понятно, что основным экзаменом для учебы в вузе по этой специальности является математика.

Вместе с тем, существует и другой путь в профессию: получение дополнительного образования и даже самообразование.

Мой отец говорил мне в семидесятых годах, возможно, повторяя слова кого-то из основоположников кибернетики: «Образованный человек должен знать хотя бы один язык программирования». Слова пророческие, они означают, что программирование должен знать и неспециалист. Хотя бы для того, чтобы общаться с программистами, которые порой представляются нам «инопланетянами», которые на понимают нас, но и мы не постигаем их языка.

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

Как строится карьера в этой профессии?

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

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

Лет тридцать назад основатель компании Microsoft Билл Гейтс предложил миру идею и даже чертеж карманного устройства, который заменит телефон, паспорт, кошелек и прочее. Тогда мир еще не был готов ее реализовать. Сегодня мы видим ее воплощение. Но что важнее: устройство или программа, управляющая им? Он же как-то сказал про конкурента, сделавшего очередной компьютер, примерно следующее: «Ну сделал он очередную коробочку. А кто напишет для нее программу, чтобы она заработала?».



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows