Компьютер. Радиоэлектроника. Блоки питания. Справочники. Источники питания. Радиосвязь

Программист какая специальность. Профессия Программист. Кто такой Программист. Описание профессии. Какие технологии ему желательно знать

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

Что делает программист

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

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

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

Не лишним станет глубокое изучение английского языка в области IT-технологий для чтения технической документации.

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

Общение – неотъемлемая часть работы программиста. Большинство проектов разрабатывается в команде, где людям необходимо не только дискутировать, но и соглашаться друг с другом. Существует стереотип образа человека, занятого в сфере IT: замкнуты, одинокий очкарик, находящейся на своей волне. В большинстве случаев, это открытые коммуникабельные люди, а отшельничество присуще любому гению, вне зависимости от профессии.

Программист – это востребованная и высокооплачиваемая профессия. Специалист начального уровня может смело претендовать на заработную плату около 1 000 долларов. По мере приобретения опыта и практических знаний, можно выйти на доход 1500-1800 долларов. В крупной организации по разработке программного обеспечения специалисты зарабатывают до 3 000 долларов, на руководящих должностях – 5 000 долларов.

Не пропустите:

Плюсы и минусы работы программистом

Преимущества:

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

Недостатки:

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

Существует несколько вариантов построения карьерной лестницы для специалистов, которые хотят добиться успеха в программировании. Один из самых популярных – объединиться с единомышленниками вокруг креативной идеи, получить внешние инвестиции, и таким образом заявить о себе. Нередко зарубежные компании ищут «светлые умы» среди специалистов в странах пост советского пространства. Талантливые программисты никогда не останутся без работы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Псевдокод

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


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

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

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

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

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

От автора:

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

Программист – специалист, который пишет программы для компьютеров.

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

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

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

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

Специализации программиста

Условно программистов можно разделить на 3 большие группы, которые могут делиться на более маленькие уже внутри себя: это системные, прикладные и веб-программисты. Рассмотрим каждую группу более подробно.

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

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

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

Возможные места работы

История профессии

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

На протяжении многих веков человечество пыталось создать счётную машину: первые попытки известны ещё с древнего Вавилона за 3000 лет до нашей эры. Создавший в 1642 году вычислительную машину Блез Паскаль стал основоположником и первооткрывателем.

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

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

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


Самостоятельно

Как уже было сказано ранее, профессии программиста прекрасно осваивается без получения высшего образования. В Вашем распоряжении огромное количество справочной информации, книг, онлайн и оффлайн курсов.

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

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

Спешите начать обучение. Скидка на обучение профессии «Программист» действует для Вас всего 3 дня!

Классическое высшее образование

Получить высшее образование в области информационных технологий можно во множестве ВУЗов. При поступлении лучше ориентироваться на крупные или федеральные университеты, хорошо зарекомендовавшие себя при подготовке IT-специалистов, имеющих хорошую образовательную базу с известными программистами в качестве преподавателей. Ещё одним фактором качества обучения является процент трудоустроенных по специальности выпускников, особенно работающих в самых известных компаниях: Microsoft, Google, Яндекс, СКБ-Контур и других.

В России обучение программистов ведётся на следующих специальностях:

02.03.02 – Фундаментальная информатика и информационные технологии (бакалавриат)

02.04.02 – Фундаментальная информатика и информационные технологии (магистратура)

09.03.03 – Прикладная информатика (бакалавриат)

09.04.03 – Прикладная информатика (магистратура)

02.03.01 – Математика и компьютерные науки (бакалавриат)

02.04.01 – Математика и компьютерные науки (магистратура)

09.01.02 – Компьютерная безопасность

Будущее профессии программиста

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

Обязанности программиста

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

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

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

Плюсы и минусы профессии программиста

Плюсы

  • Большая востребованность на рынке труда
  • Заработная плата значительно выше среднего
  • Отличный соц.пакет (питание, оплата тренажёрного зала, компенсация стажировок)
  • Возможность работы фрилансером с зарубежными заказчиками
  • Можно разрабатывать личные проекты для души или заработка денежных средств
  • Престижная профессия
  • Творческая профессия с возможность реализовать себя
  • Возможность переквалифицироваться в смежные отрасли

Минусы

  • Необходимость постоянно повышать квалификацию
  • Длительная сидячая работа за компьютером
  • Возможность авралов и необходимости срочно доделать проект сверхурочно
  • Часто бывает большой объём работы
  • Возможен недостаток межличностного общения


Требования к программисту

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

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

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

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

Зарплата программистов

Указан приблизительный уровень заработной платы. В зависимости от региона и работодателя он может существенно отличаться.

Забавные видео про программистов

День программиста – отмечается 12 сентября. День выбран не случайно и символично: это 256-й день года, а 256 это количество чисел, которые могут быть выражены через восьмиразрядный байт.

Профессия программиста входит в десятку самых востребованных профессий мира.

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

Язык программирования Python назван совсем не в честь питонов, хотя иконки, логотипы и повсеместные фанатские изображения изображают именно их. Автор языка любил сериал «Летающий цирк Монти Пайтона» и назвал язык в честь него.

Самый дорогой дефис в истории стоил 135 000 000$, когда благодаря пропущенному дефису в одном из уравнений вскоре после старта потерпел крушение Маринер-1, первый космический аппарат для изучения Венеры.

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

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

Иногда для отладки программы программисты используют так называемый «Метод утёнка», когда перед монитором ставится фигурка утёнка (классический вариант – жёлтый утёнок для купания) и строчка за строчкой ей объясняется, что должна делать программа. Часто такой метод позволяет выявить ошибки, которые пропускаются просто просматривая написанный код.

Известные программисты

Ричард Столлман – основатель движения свободного ПО, Фонда свободных программ и Лиги за свободу программирования, проекта GNU.

Дональд Кнут – учёный, заслуженный профессор Стэнфордского университета, преподаватель и идеолог программирования. Автор множества монографий и всемирно известной серии книг «Искусство программирования». Создатель издательских систем METAFONT и TEX для набора и вёрстки научно-технических книг.

Билл Гейтс – предприниматель, общественный деятель, филантроп. Основатель компании Microsoft и самый богатый человек на планете. Один из рекордсменов по передаче средств на благотворительность.

Линус Торвальдс – создатель ядра Linux, самой распространённой из свободных операционных систем.

Алексей Пажитнов – советский программист, автор знаменитого Тетриса. После переезда в США продолжает заниматься разработкой компьютерных игр.

Стив Возняк – соучредитель компании Apple, в одиночку спроектировал компьютеры Apple I и Apple II, определивших развитие отрасли и начавшие микрокомпьютерную революцию.

Евгений Касперский – российский программист, один из ведущих мировых экспертов в области информационной безопасности. Сооснователь, владелец и руководитель международной компании АО «Лаборатория Касперского».

Марк Цукерберг – американский программист и предприниматель, один из основателей и разработчиков крупнейшей международной социальной сети Facebook.

Павел Дуров – российский программист и предприниматель, один из создателей ведущей отечественной социальной сети Вконтакте. Один из создателей защищённого мессенджера Telegram.

Деннис Ритчи – компьютерный специалист, участвовавший в создании языков программирования BCPL, B, C и разработке операционных систем Multics и Unix.


Цитаты про программистов

Когда кажется, что все уже работает, все объединено в систему — вам еще осталось работы на четыре месяца – Ч. Портман

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

Ошибка? Это не ошибка, это системная функция – Д. Уэнделл

Пользователь не знает, чего он хочет, пока не увидит то, что он получил – Э. Йодан

Если отладка — процесс удаления ошибок, то программирование должно быть процессом их внесения – Э. Дейкстра

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

В любой программе есть ошибки – аксиома.

Законы Мерфи для программистов

Сложность программы растет до тех пор, пока не превысит способности программиста.

Чем больше программист делает ошибок, тем быстрее он делается учёным.

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

Программист видит ошибки только в чужих программах.

Если написанная программа сработала правильно, то, скорее всего, программист не понял задание.

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

Абсолютно любая программа всегда обходится дороже и требует больших затрат времени, чем предполагалось.

Если программа уже полностью отлажена, то ее нужно будет переделать.

Любая программа стремится занять всю доступную память.

Самая серьёзная ошибка будет выявлена, только лишь когда программа пробудет в производстве как минимум полгода.

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

Плохо спланированная программа требует в три раза больше времени, чем предполагалось; отлично спланированная — только в два.

Если программа полезна, то её обязательно придётся переделать.

В любой программе всегда есть ещё одна ошибка.

Решительно невозможно создать программу с абсолютной защитой от дураков, ибо дураки крайне изобретательны.

Если разработка идет хорошо — ждите серьёзных осложнений.

Если кажется, что хуже уже некуда, то вскоре выяснится, что это далеко не так.

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

Всегда оставляйте место для объяснения того, почему написанная Вами программа работает не так как ожидалось.

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

Ирина Давыдова


Время на чтение: 13 минут

А А

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

Так или иначе – все начинают с нуля. И прежде чем с этого самого нуля начать – задайтесь вопросом, действительно ли вам нужна эта профессия?

Суть работы программиста – основные специализации, плюсы и минусы работы

Суть работы программиста зависит от специализации и компании.

Впрочем, иногда программист – и «швец, и жнец, и на дуде игрец». Но это, как правило, в маленьких фирмах, начальники которых экономят на специалистах.

Основные категории, на которые условно можно поделить всех программистов в соответствии с их деятельностью:

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

К плюсам профессии можно отнести следующие преимущества:

  1. Очень даже достойная зарплата.
  2. Высокий спрос на хороших специалистов.
  3. Возможность получения престижной работы без образования.
  4. Возможность зарабатывать удаленно, сидя дома на диване.
  5. Возможность работать удаленно на зарубежные компании.
  6. Творческая профессия (правда, нередко творчество зависит от пожеланий заказчика).
  7. Комфортные условия, которые обеспечивают крупные компании своим специалистам (бесплатные напитки/булочки, специальные места для отдыха и спорта, и проч.).
  8. Возможность получения «опциона». То есть, пакета акций компании. Правда, только после отработки определенного срока в компании.
  9. Расширение кругозора. По мере развития себя в профессии приходится знакомиться с самыми разными сферами жизни и вникать в самые разные системы – от делопроизводства и бухгалтерии до проч.

Минусы:

  • Работа «сутки напролет» — обычное дело для данной профессии.
  • Данная работа для многих людей будет скучной и однообразной.
  • Интересы специалиста и заказчика не всегда совпадают, и то, что очевидно для программиста, как правило, совершенно не объяснить клиенту. Это приводит к конфликтам и стрессам.
  • Не редкость – авральные режимы работы.
  • Необходимость постоянно развиваться, изучать новое, успевать эволюционировать вслед за IT-сферой. Всего за несколько лет программы устаревают, и приходится писать новые.

Видео: Как стать программистом?

Необходимые личные и деловые качества, профессиональные умения и навыки для работы программистом – что необходимо знать и уметь?

Главные качества хорошего программиста

Хороший программист должен…

  1. Любить свою работу. И не просто любить – болеть ею.
  2. Любить учиться и учить с нуля.
  3. Быть очень трудолюбивым, усердным и терпеливым.
  4. Быть готовым к постоянной рутинной работе.
  5. Уметь работать в команде.

Какие знания нужны будущему программисту?

Начинать следует с изучения…

  • Английского языка.
  • Устройства компьютера и физики всех процессов.
  • Языков программирования.
  • Методик разработки ПО.
  • Методик тестирования ПО.
  • Систем версионного контроля.

Язык программирования – с какого начать?

Также нужно будет изучить…

  • Java. Более популярный, чем Питон, и неплохой выбор для начинающего. Но более сложный, чем Питон.
  • PHP. Заточен под «веб», но будет полезен любому новичку.
  • C и C#. Весьма сложные языки, можно оставить их на потом.
  • Ruby. Хороший вариант для второго языка.
  • Django. Он научит программировать правильно. По сложности схож с Питоном.

Многое зависит от выбранного направления.

Например…

  1. Веб-программисту будут полезны знания HTML, CSS и JavaScript.
  2. Для десктоп-программиста — API и фреймворки.
  3. Для разработчика мобильных приложений — Android, iOS или Windows Phone.

Где обучаться на программиста с нуля – учебные заведения России, курсы, дистанционное обучение, онлайн-обучение?

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

  • Самообразование. Самый сложный путь к программированию, который лежит через изучение сайтов, приложений, книг и проч.
  • Университет. Если вы только закончили школу и мечтаете получить престижную профессию программиста, поступайте на соответствующий факультет. Основные знания вы все равно будете получать путем самообразования, но «корочка» поможет вам быстрее приблизиться к заветной цели. ВУЗы выбирайте технические, изучив заранее программы обучения.
  • Персональный учитель . Если вы сможете найти наставника среди программистов, самообучение будет более быстрым и эффективным. Ищите наставников на онлайн-форумах, на айти-тусовках, тематических конференциях и проч.
  • Курсы. Обучить вас тому или иному языку программирования смогут на простых курсах, которые можно найти даже в маленьких городах. Например, «Образовательный IT-портал GeekBrains», « Специалист» при МГТУ Баумана , «Компьютерная Академия ШАГ» , МАСПК .

Получить высшее образование по специальности программист можно в…

  1. МИФИ.
  2. Российском экономическом университете Плеханова.
  3. Московском государственном строительном университете.
  4. МГТУ Баумана.
  5. Государственном университете управления.

Видео: 7 ошибок начинающих программистов

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

  • habrahabr.ru (статьи на IT-тематику, информация по самым разным темам). Этот ресурс известен каждому программисту.
  • rsdn.org (книги, актуальные вопросы, полезный форум, восполнение пробелов в знаниях, материалы на русском языке).
  • sql.ru (отличный удобный форум, полезная литература и даже предложения по работе).
  • theregister.co.uk (новости из IT-сферы).
  • opennet.ru (новости, полезные статьи, форум и проч.). Ресурс для профессионалов.
  • driver.ru (библиотека драйверов). Полезный сайт для новичков.

Ресурсы для обучения:

  1. ocw.mit.edu/courses (свыше 2000 курсов на разные темы).
  2. coursera.org (более 200 курсов, бесплатно).
  3. thecodeplayer.com (пошаговые руководства для новичков).
  4. eloquentjavascript.net (ресурс для введения в Java Script).
  5. rubykoans.com (для всех, кто изучает Ruby).
  6. learncodethehardway.org (изучение Python, Ruby, C и др.).
  7. udemy.com (платные и бесплатные курсы).
  8. teamtreehouse.com (свыше 600 уроков).
  9. webref.ru/layout/learn-html-css (для освоения HTML и CSS).
  10. getbootstrap.com (изучение возможностей Bootstrap).
  11. learn.javascript.ru (изучение frontend и Javascript).
  12. backbonejs.org (для фронтенд-разработчиков).
  13. itman.in/uroki-django (для изучения Django).

Бесплатные сайты для обучения в помощь новичкам:

  • ru.hexlet.io (8 бесплатных курсов по C и PHP, JavaScript и Bash).
  • htmlacademy.ru (18 бесплатных курсов для верстальщиков).
  • codecademy.com (популярные курсы по языкам, инструментам и проч.).
  • codeschool.com (более 60 курсов (13 – бесплатных) по HTML/CSS и JavaScript, Ruby и Python, iOS и Git, и пр.).
  • checkio.org (для изучения Python и JavaScript).
  • codingame.com (обучение через видео-игры, 23 языка программирования).
  • codecombat.com (изучение JavaScript, Python и пр.). Обучающая игра, доступная и для тех, кто пока еще не владеет английским языком.
  • codehunt.com (обучение поиску ошибок в коде).
  • codefights.com (обучающая платформа, через турниры на которой можно «загреметь» на собеседование в приличную IT-компанию).
  • bloc.io/ruby-warrior# (изучение Ruby, а также искусств/интеллекта).
  • theaigames.com (развитие навыков программирования – увлекательный игровой онлайн-тренажер для программиста).
  • codewars.com (сборник обучающих интерактивных задач для тех, кто обладает минимумом знаний).

Обычно на самостоятельное изучение основ программирования уходит от полугода до 12 месяцев.

Как быстро найти работу программиста и начать зарабатывать – советы бывалых

Естественно, устроиться в нормальную компанию без опыта работы вы просто не сможете.

Поэтому…

  1. Читайте книги, изучайте сайты и самообразовывайтесь, но уже сейчас начинайте писать свои самые 1-е строчки кода.
  2. Сами создавайте и усложняйте себе задачи по пройденному материалу.
  3. Ищите свои первые проекты, пусть даже и за «смешные деньги», записывайте себе в «резюме».
  4. Ищите работу на русскоязычных биржах фриланса (ru) и на англоязычных биржах (upwork.com) тоже – там больше шансов ее получить.
  5. Начинайте с маленьких проектов, которые вам по плечу.
  6. Не упускайте и вариант open source (в таких проектах всегда не хватает людей).
  7. Помогайте «за копеечку» (или даже бесплатно, для опыта) знакомым программистам. Пусть они дают вам несложные задания.

  • Обязательно пишем: свой опыт работы, список языков и технологий, которыми вы владеете, образование и контакты.
  • Не впихиваем в резюме весь перечень своих качеств и талантов. Даже, если вы виртуозно играете на баяне, писать об этом в резюме не стоит.
  • Оформляйте резюме с учетом креатива, но уместного.
  • Не стоит заполнять пункты вроде «ваши цели и амбиции» или «кем я вижу себя через 5 лет». Достаточно написать, чем вы занимались ранее и чем хотели бы теперь.
  • Не пишите о языках и технологиях, которые вам известны только по названиям. В резюме следует писать лишь те, в которых вы плаваете, как рыба в воде. Для всего остального есть волшебная фраза – «был небольшой опыт».
  • Если вы профессионально владеете Delphi, не забудьте упомянуть, что знаете также C#, jave или иной язык, потому как просто «программист дельфи» никому по сути не нужен (дельфи – это азы, с которыми знаком каждый выпускник).
  • Не упоминайте работу, которая была не по специальности. Это никому не интересно. Также никому не интересно, есть ли у вас водительские права или автомобиль. Вы же не курьером собираетесь устраиваться.

Перспективы карьеры программиста и зарплата программистов

Средняя зарплата программиста в крупных городах страны – от 50000 до 200000 рублей .

По России в целом – от 35 тысяч до 120000 .

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

От стажера до руководителя IT-отдела – путь не такой уж долгий, а зарплата на самом верху может достигать и 4000 долларов ежемесячно. Ну а потом можно двинуться и в руководители крупного проекта (прим. – по разработке ПО), а тут уже зарплата превышает 5000 долларов.

Описание профессии:

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

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

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

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

Программирование возникло тогда, когда появилась первая электронно-вычислительная машина, а может немного ранее. В 1944 году была разработана мощнейшая по тем временам вычислительная машина «Марк-1», а уже в 70-х годах ХХ века эта профессия стала престижной и хорошо оплачиваемой, не смотря на то, что развитие программирования в различных странах эволюционировало совершенно по-разному. Без программистов сложно представить нашу нынешнюю жизнь. Интернет играет важную роль в развитие бизнеса и не только. Если нужно найти информацию, мы ищем через поисковую систему подходящие веб-ресурсы. Собственный сайт помогает в работе, является визитной карточкой фирмы. Если бы не умение программистов создавать нечто уникальное, то на Интернет страшно было бы смотреть.

Личные качества:

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

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

Образование (Что надо знать?):

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

Много хороших программистов - самоучки.

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

Место работы и карьера:

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

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

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

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

Еще одна сфера деятельности программиста - web-программирование: разработка, модернизация и поддержка сайтов. Эта область требует многих специфических знаний - PHP, MYSQL, XHTML, CSS, JavaScript, XML. Причем очень часто работодатели желают получить профессионала «два в одном» - web-дизайнера и web-программиста, чтобы он не только решал технические вопросы (быстрая загрузка сайта, работа ссылок, поисковика), но также занимался и оформлением сайта, а иногда даже и его информационным наполнением.

Можно основать собственный бизнес, который потенциально может оказаться очень доходным (достаточно вспомнить, что Билл Гейтс, основатель корпорации Microsoft, стал благодаря своему детищу самым богатым человеком в мире). Однако для того, чтобы успешно управлять таким бизнесом, недостаточно уметь создавать хорошие компьютерные программы; для этого требуются основательные знания в области экономики, юриспруденции, менеджмента.

Родственные профессии:

Веб - Дизайнер, системный администратор, верстальщик

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!