50

Профессия программист

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


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


Итак, программисты в Национальном реестре профессиональных стандартов открывают 06 раздел, стандартом 06.001 "Программист", в его обязанности входит:


1. Формализация и алгоритмизация поставленных задач

2. Написание программного кода с использованием языков программирования, определения и манипулирования данными

3. Оформление программного кода в соответствии с установленными требованиями

4. Разработка процедур проверки работоспособности и измерения характеристик программного обеспечения

5. Разработка тестовых наборов данных

6. Проверка работоспособности программного обеспечения

7. Исправление дефектов, зафиксированных в базе данных дефектов

8. Анализ требований к программному обеспечению

9. Разработка технических спецификаций на программные компоненты и их взаимодействие

10. Проектирование программного обеспечения


Теперь о том же, но с точки зрения жизни.


Итак, первый сюрприз для тех кто выбирает эту стезю - учиться Вы будете сами. Сколько моих ребят ни поступало на профильные факультеты, везде одно - актуальных данных на них нет. Очень мало и педагогов, которые способны дать ответы на актуальные вопросы. То есть поступая на обучение сегодня обычно получают данные актуальные 2-3-5 (в особо запущеных случаях и более) лет назад, а ведь эта среда очень динамичная!


Итак, обучение складывается из самообучения (90%) и сдачи зачетов (10 %) для получения бумажки об образовании.


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


Классически алгоритм состоит из трех типов построения команд:

1. Линейная форма. Все команды выполняются последовательно одна за другой.

2. Условие. Есть несколько наборов команд и выполняется только та часть которая отвечает (или не отвечает) какому либо условию.

3. Циклы. Один и тот же набор команд выполняется многократно. Сюда же входит рекурсия, про которую говорят "чтобы понять рекурсию нужно понять рекурсию"...


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


Декларативное программирование (которое 99% императивных программистов за программирование не считают) строится совершенно иначе. ВАЖНО!!! Декларативный язык действительно не является программой в классическом понимании, он не может почти ничего, но в том, что он может он на несколько голов выше императивных.


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

1. Языки разметки.

2. Базы данных.

3. Логическое программирование.


Языки разметки, это например, HTML. Если брать инструментарий императивного языка, то в нем мы создаем графический элемент, прописываем его свойства и даем команду отображения. В языке разметки мы просто пишем код элемента и его свойства. Делая интерфейс Пикабу, например, на Qt мы получим в разы больший объем кода, который к тому же написать будет гораздо сложнее.


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


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


родная сестра =(женский пол, (мама сестры = мама объекта или папа сестры = папа объекта)


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


Думать - это переводить своё внутреннее мировоззрение в четко построенные алгоритмы или декларативные конструкции. Пока этого не будет - Вы не программист.


Итак думать алгоритмами мы научились. Далее вторая задача - изучить документацию и примеры языка программирования или набора языков. Основная сложность - читать нужно реально много. Документация - это тысячи страниц примеров кода, функций и пояснений к ним. Если гуманитарии начнут наезжать, что им нужно много читать - дайте им почитать документацию к PHP/Python/Java ну или хотя бы SQLite3. Главная проблема - на чтение уходит сравнительно много времени.


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


И так успешно решив эти три задачи Вы стали программистом, что Вас ждет?


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


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


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


И о работе...


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


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


Всем удачи!

Выбор профессии

44 поста352 подписчика

Правила сообщества

запрещены:

посты не по теме

спам

прямые оскорбления автора

реклама

посты, не несущие никакого смысла, удаляются на усмотрение модераторов.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества