Информатика и программирование

Программирование ≠ информатика

Информатика и программирование

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

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

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

Мы верили в структурное программирование. Затем начали верить в языки четвёртого поколения, потом в объектно-ориентированные методы, потом в экстремальное программирование, а теперь, может быть, в open source.
Но программирование — это именно то место, где происходит контакт шины с асфальтом. Мало кого волнует, действительно ли равняется , чисто ради красоты вопроса.

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

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

Имея такую цель, я всегда был озабочен одним вопросом (как и многие другие исследователи): почему программисты не могут получить более строгие результаты, как в других областях информатики? Если спросить иначе, «Какую часть архитектуры и конструкции программ можно сделать формальной и доказумой?» Ответ на этот вопрос находится на рисунке 1.

Рисунок 1: Яркая линия в информатике Темы выше этой линии принадлежат к разработке программного обеспечения. Области исследования ниже этой линии — основные предметы информатики. У последних есть ясные, формальные результаты. Для открытых проблем в этой области мы ожидаем получения новых результатов, которые будут формально сформулированы.

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

Так что это за яркая линия, и почему ниже неё нет ни одной из тем программирования? Линия — это качество под названием «прямое человеческое участие». У разработки ПО есть такое качество, а у традиционной информатики его нет. Результаты из дисциплин ниже линии могут быть использованы людьми, но эти результаты напрямую не подвержены влиянию людей.

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

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

Все эти проблемы вращаются вокруг людей. Мой тезис объясняет, почему разработка ПО настолько трудная и такая скользкая. Проверенные методы одной команды программистов не работают для других команд. Исчерпывающий анализ прошлых проектов может быть бесполезен для хорошей оценки следующего. Каждый из революционных инструментов разработки помогает по чуть-чуть, а затем не соответствует своим великим обещаниям. Причина в том, что люди слишком мягкие, разочаровывающие и непредсказуемые. Прежде чем перейти к последствиям моего утверждения, рассмотрим три вероятных возражения: В чём-то это возражение верное, но не во всём. Я утверждаю, что набор дисциплин, обычно называемый разработкой программного обеспечения, будет и дальше по существу бросать вызов строгому решению. Узкие аспекты некоторых проблем могут поддаваться формальному подходу, но их успех будет лишь на периферии ключевых проблем разработки.
Эти методы в целом решают проблему оценки и включают в себя Function Point Counting, COCOMO II, PROBE и другие. Несмотря на свой математический вид, эти методы не являются доказательствами или формальными результатами. Такая статистика — просто попытка квантифицировать субъективный человеческий опыт по прошлым софтверным проектам и экстраполировать его на будущие проекты. Иногда работает. Но внешне строгие формулы в этих схемах — это свинья с губной помадой, если использовать современное выражение. Например, одна из формул в COCOMO II выглядит так: , где , а — это набор из пяти факторов масштабирования, таких как «гибкость разработки» и «сплочённость команды». Сама формула выглядит строго, но в ней доминирует показатель, составленный из человеческих факторов.
Действительно, исследователи формальных процессов демонстрируют прогресс в решении разных проблем. Но их можно уличить в нарушении самого первого возражения в этом списке: они слишком узко определяют разработку ПО, чтобы она поддалась строгому решению. Формальные методы просто удобно для себя истолковывают любую проблему, которая основана на человеческом участии и интерпретации. Например, ключевым элементом формальных методов разработки является создание строгих, недвусмысленных спецификаций. Эти спецификации затем используются для проведения (и доказательства) последующих этапов разработки. Конечно, формальный метод может содержать недвусмысленную схему семантической нотации. Но никакой формальный метод не содержит точного рецепта, как перевести в недвусмысленное состояние смутные мысли людей о том, что должна делать программа. Вопреки этим возражениям я заявляю, что разработка ПО по существу отличается от традиционной, формальной информатики. Первая зависит от людей, а вторая — нет. Это приводит нас к Заключению Коннелла:
Например, Дэвид Парнас в 1972 году написал замечательную научную статью «О критериях разложения системы на модули». Она описывает простой эксперимент, который Парнас провёл с альтернативными стратегиями дизайна ПО, одна с сокрытием информации, а другая с глобальной видимостью данных. Затем на основе этого маленького эксперимента он вывел несколько заключений и привёл рекомендации. Ничего в статье не является доказанным, и Парнас не гарантирует, что следуя рекомендациям каждый получит аналогичный результат. Но статья содержит мудрые советы и сильно повлияла на популярность объектно-ориентированных языков программирования.

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

Объём CMMI примерно 1000 страниц — не считая примеров, интерпретаций и обучающих материалов — и она представляет более 1000 человеко-лет работы. Многие крупные организации использовали её и добились значительного прогресса в своих процессах разработки ПО и продуктах.

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

На самом деле Институт программной инженерии констатирует, что CMMI — это даже не процесс, а скорее мета-процесс, детали которого заполняются каждой организацией.

Другие области исследований в том же духе — это паттерны дизайна, стили архитектуры, рефакторинг на основе сомнительных методов, гибкая методология разработки и визуализация данных. Эти дисциплины могут частично содержать проверенные результаты, но в целом нацелены на системы, которые изначально содержат человеческое участие. Чтобы внести ясность: ключевые темы информатики (ниже яркой линии) — жизненно важные инструменты для любого разработчика. Знания алгоритмов важны при проектировании высокопроизводительных приложений. Теория массового обслуживания помогает проектировать ядро операционной системы. Методология «чистой комнаты» тоже полезна в некоторых ситуациях. Анализ статистики может пригодиться при планировании похожих проектов с похожей группой участников. Но формализм — это просто необходимое, а не достаточное условие для хорошей разработки. Давайте для примера рассмотрим строительство и архитектуру (то есть дома и здания). Представьте блестящего инженера-строителя, лучшего в мире эксперта по строительным материалам, зависимости деформаций от напряжений, распределению нагрузок, защите от сдвига ветров и подземных толчков, и т. д. Этот парень занесён в записные книжки архитекторов во всех странах, чтобы звонить ему для консультаций по каждому строительному проекту. Будет ли этот мифический инженер-строитель настолько же хорош в проектировании зданий, которые он анализирует? Совсем нет. Он может теряться в разговорах с клиентами, неспособен проектировать приятные для проживания места, его фантазии не хватает, чтобы придумать решения для новых проблем, и он до чёртиков скучен. Техника строительства полезна для реальных архитекторов, но её недостаточно для хорошего проекта. Удачная архитектура требует креативности, концепции, междисциплинарного мышления и гуманизма. Таким же образом и классическая информатика полезна в разработке ПО, но её никогда не будет достаточно. Проектирование хорошего программного обеспечения тоже требует креативности, концепции, междисциплинарного мышления и гуманизма. Это наблюдение освобождает исследователей процесса разработки программного обеспечения. Они могут тратить время на изучение успешных методов — накапливая совокупность коллективных знаний для будущих практиков. Мы не должны втискивать разработку ПО в рамки расширения информатики на математической основе. Это не сработает и может отвлечь нас от полезных открытий, которые ещё ждут своего времени.

Выражение признательности

Благодарю Стива Гомера за дискуссию, которая разожгла мой интерес к этому вопросу.

  • программирование
  • разработка ПО
  • информатика
  • тезис Чёрча-Тюринга

Источник: https://habr.com/post/335160/

Что такое программирование

Информатика и программирование

| Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 9 классы | Планирование уроков на учебный год | Понятие о программировании

Что такое программирование

Компьютерный практикум ЦОР. Что такое программирование

Теперь вам предстоит ближе познакомиться еще с одним разделом информатики, который называется «Программирование».

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

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

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

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

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

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

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

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

Что такое язык программирования

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

Язык программирования — это фиксированная система обозначений для описания алгоритмов и структур данных.

За годы существования ЭВМ было создано много языков программирования. Наиболее известные среди них: Фортран, Паскаль, Бейсик, С (Си) и др.

Распространенными языками программирования сегодня являются С++, Java, Pascal, Basic, Python.

Что такое система программирования

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

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

Существуют системы программирования на Паскале, Бейсике и других языках.

В данной главе речь будет идти о средствах и способах универсального программирования — не ориентированного на какую-то узкую прикладную область.

Примером узкоспециализированного программирования является Web-программирование, ориентированное на создание Web-сайтов. Для этих целей, например, используется язык JavaScript.

Языки Паскаль, Бейсик, Си относятся к числу универсальных языков программирования.

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

Коротко о главном

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

Программирование бывает системным и прикладным.

Паскаль, Бейсик, Си, Фортран — это универсальные языки программирования.

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

Вопросы и задания

1. Что такое программирование?

2. Какие задачи решают системные и прикладные программисты?

3. Назовите наиболее распространенные языки программирования.

4. В чем состоит назначение систем программирования?

Источник: https://xn----7sbbfb7a7aej.xn--p1ai/informatika_09_sim/informatika_materialy_zanytii_09_22_23.html

Информатика и программирование

Информатика и программирование

Кафедра программной инженерии

Специальность: Программная инженерия

Преподаватель: Карпенко С.Н. Сысоев А.В.

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

Освоение дисциплины «Информатика и программирование» необходимо для выполнения курсовой и выпускной работ бакалавра.

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

Данная дисциплина преследует цель систематического изучения следующих аспектов:

  • общие вопросы создания программ, включая основные этапы процесса разработки и используемые средства;
  • краткие сведения о среде исполнения программ;
  • краткие сведения об инструментах программирования;
  • основные элементы и принципы построения языков программирования высокого уровня на примере языков С и С++;
  • базовые алгоритмы и основы алгоритмизации с примерами на языке С;
  • различные способы описания моделей объектов предметной области с помощью конструирования типов данных с использованием средств C и C++;
  • вопросы динамического управления памятью и работы с файлами с использованием средств C и C++;
  • основы технологии объектно-ориентированного программирования на примере C++;
  • углубленные элементы технологии объектно-ориентированного программирования: наследование, виртуальные методы, шаблоны функций и классов.

1 семестр

  1. Введение в предмет. Структура и содержание курса.
  2. Решение задач с использованием вычислительной техники.
  3. Современная система разработки программного обеспечения.
  4. Среда исполнения программ. Программа в среде Microsoft Windows.
  5. Основные понятия языков программирования. Синтаксис, семантика, формальные способы описания языков программирования.
  6. Типы данных, способы и механизмы управления данными.
  7. Программа на языке C. Методы и основные этапы трансляции.
  8. Структурное программирование и операторы языка C.
  9. Конструирование новых типов данных.
  10. Модульное программирование.
  11. Элементы анализа и разработки алгоритмов.
  12. Методы работы с внешней памятью. Файлы.
  13. Динамическое управление памятью.

2 семестр

  1. Отличия  языка С++ от языка С
  2. Введение в объектно-ориентированное программирование
  3. Классы и объекты
  4. Конструкторы и деструктор
  5. Обработка исключений
  6. Перегрузка операций
  7. Пример.

    Класс Cdate

  8. Наследование и иерархия классов
  9. Специальные поля и методы классов
  10. Виртуальные методы. Абстрактные виртуальные методы и классы
  11. Шаблоны. Шаблоны функций и шаблоны классов
  12. Пример. Класс Container
  13. Пример.

    Класс Dictionary

 2 семестр

  1. Некоторые отличия С++ от С. Ввод/вывод, константы, работа с динамической памятью, ссылки, передача параметров по ссылке, перегрузка функций, константные параметры.
  2. Введение в объектно-ориентированное программирование. Парадигмы ООП. Процедурное и объектно-ориентированное программирование.

    Сравнительный пример применения двух подходов.

  3. Классы и объекты. Объявление класса, поля и методы, спецификаторы доступа. Описание класса. Объявление и использование объектов класса.
  4. Конструкторы и деструктор. Понятие и типы конструкторов. Понятие деструктора. Когда и как вызываются конструкторы и деструктор.

  5. Обработка исключений. Ошибки и способы их обработки. Обработка исключений. Правила написания обработчика. Вложенные исключения.
  6. Перегрузка операций. Введение. Перегрузка операций, два способа перегрузки операций. Правила перегрузки операций различных типов. Динамические поля и перегрузка операций.
  7. Перегрузка операций и конструктор преобразования типа. Пример класса CDate.
  8. Агрегация и наследование. Агрегация, наследование и спецификаторы доступа. Создание и удаление объектов при наследовании. Перегрузка и перекрытие методов.
  9. Специальные поля и методы классов.

    Константные поля и методы класса. Константные объекты. Статические поля и методы.

  10. Виртуальные методы. Виртуальное перекрытие методов. Абстрактные методы и классы.
  11. Шаблоны. Шаблоны функций. Введение в шаблоны классов
  12. Примеры применения наследования и шаблонов. Класс Container.

    Класс Dictionary

  13. Введение в STL.

а) основная литература:

  1. Буч Г. Объектно-ориентированный анализ и проектирование с приложениями на С++. 2-е изд. М.: БИНОМ, СПб: Бином, 2000. – 560 с.
  2. Грудзинский А.О., Мееров И.Б., Сысоев А.В. Методы программирования. Курс на основе языка ObjectPascal. – Н.Новгород, изд. ННГУ, 2006. – 392 с.
  3. Карпенко С.Н.

    Методические материалы по курсу «Основы программирования». URL: http://www.software.unn.ru/?doc=941.

  4. Карпенко С.Н. и др. Методы объектно-ориентированного программирования. URL: http://e-learning.unn.ru/course/view.php?id=251.
  5. Кетков Ю.Л. Введение в языки программирования C и C++.

    Интернет-университет информационных технологий — ИНТУИТ.ру, БИНОМ. Лаборатория знаний, 2006 г. — 344 с. http://www.intuit.ru/studies/courses/1039/231/info.

  6. Подбельский В.В. Язык С++. М.: Финансы и статистика, 5-е изд. — 560 с.
  7. Страуструп Б. Язык программирования С++. М.:Бином-Пресс, 2008.

    — 1104 с.

б) дополнительная литература:

  1. Йенсен К., Вирт Н. Паскаль: Руководство для пользователя и описание языка. – М.: Мир, 1982.
  2. Стивенс Р. Delphi. Готовые алгоритмы. – М.: ДМК Пресс, 2005.
  3. Шилдт Г. Самоучитель С++. СПб.: БХВ-Петербург.

Отчетность

  • Семестр 1: Зач
  • Семестр 2: Экз

Источник: http://www.itmm.unn.ru/courses/informatika-i-programmirovanie

Основы программирования. Часть 0

Информатика и программирование

Будет много букв, но быть может моя история поможет кому-то в жизни.

Если ты ждал сигнала от вселенной — то это он! Действуй.

Цель — Senior Frontend Developer.

Язык: JavaScript.

Исходные данные:

Возраст: 28 лет;

Образование: высшее, инженер ПГС;

Работа (настоящее время): Junior Frontend Developer (контракт на 3 месяца).

Привет всем!

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

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

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

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

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

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

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

В декабре мы закончили сотрудничество и разошлись.

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

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

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

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

Всё для того ,чтобы  получить свои кровные, честно заработанные 600 рублей за 4 часа работы, чтобы хоть как-то платить по счетам за съемную квартиру и пару рассрочек.

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

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

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

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

И важно, чтобы это было востребовано, было интересно и позволило в будущем релокацию в другую страну. Чтобы это сделать менеджеру…в общем очень сложно.

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

Вот мы встретились и Олег мне начал рассказывать. Про то, как он работает сейчас программистом, как у него все круто и в финансовом плане, и в целом: какие интересные проекты он делает. И у нас есть общий товарищ — Антон.

Я знал, что Антон 1,5 года назад оставил свою работу инженером-геологом и сейчас работает программистом, но как-то не придавал этому особого значения. Ну работает — работает, молодец.

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

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

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

Я не верил, что такое возможно! Я конечно знал, что есть компании, которые вкладываются в сотрудников. Но чтобы так и чтобы это было так рядом, практически из первых уст — такого не было. И тут я посмотрел на себя. Чего достиг я за последние 1,5 года? Отсутствие работы, денег, отсутствие перспектив и т.д.

И я нереально вдохновился! Я не думал, что можно вот так вот за 1,5 года достичь такого уровня в программировании.

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

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

Уже 18 апреля я твердо знал направление, в котором буду развиваться и я понимал, что смогу и что это то, что мне нужно. И начал разбираться и учиться.

Всё, что было после вы можете прочитать в предыдущих моих постах.

Сегодня 18 августа, прошло 4 месяца,  и я уже устроился на работу джуном в небольшой проект. Да платят мне немного, но это мелочи жизни. Важно другое.

Я счастлив этим заниматься! , это круто, это востребовано. Я радуюсь каждой мелочи, которую я узнал или смог сделать в проекте. Мне интересно изучать, читать, гуглить, решать задачи и развиваться.

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

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

Не меняйте других — меняйтесь сами.

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

И речь не идет о программировании. Программирование — хороший частный случай. Идите туда, куда хотите идти и туда, где вас будут ценить как специалиста.(когда вы им станете).

Спасибо, Антон, за твой личный пример.

Спасибо, Олег, что рассказал мне об этом и показал выход.

Спасибо, Таня. Ты продолжала в меня верить и оставалась рядом, несмотря ни на что. Когда в меня не верил никто, когда даже родная мать в меня не верила, ты была рядом. Ты просто была рядом, и ты помогла мне встать. Спасибо тебе. Именно за это я тебя люблю.

Впереди много работы. Я еще в начале пути. Следующий отчёт о проделанной работе, с новым режимом, через месяц.

Результативного месяца и добрых перемен в жизни!

OWIII, Артем.

Источник: https://pikabu.ru/story/osnovyi_programmirovaniya_chast_0_3219983

Booksm
Добавить комментарий