Первый программист… вернее, программистка!


Оглавление (нажмите, чтобы открыть):

Три главные проблемы в работе программиста и как с ними быть

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

В работу попал непонятный код

Например, IT-специалист трудится в интернет-магазине. Он написал программу для обслуживания заказов с нуля, он знает все её модули и понимает внутреннюю логику. Если что-то идёт не так, он мгновенно решает проблему.

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

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

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

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

Одно дело — когда код от другого специалиста просто устроен непривычно. Другое дело — когда он написан с огромным количеством «костылей».

Костыль в программировании — это когда, чтобы что-то работало, его подпирают чем-то неприспособленным. Представьте, что дверь в ванную закрывается на резинку, к которой привязана 100-килограммовая гиря. В итоге дверь работает, но гиря занимает место, и об неё все спотыкаются.

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

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

Не дают времени сделать нормально

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

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

Это если делать нормально.

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

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

Бонус: он просто не спал

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

Что делать

Если вы встретили расстроенного разработчика — дайте ему осознать, что вы понимаете его боль. А если вы сами программист — прокачивайте навык переговоров, чтобы добиваться дополнительного времени на задачи и не брать в работу чужой бракованный код. Сил вам!

Сервисы для соискателей

Продвижение резюме

Доверьте составление резюме профессионалам!

Узнайте какой вы специалист и добейтесь большего

Автоматическое поднятие резюме в результатах поиска

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

Отправьте свое резюме в компанию мечты

Образование и консультации

Cможете ли вы стать программистом?

Программист — не просто работа с хорошей зарплатой, а целая идеология. Вместе с образовательным IT-порталом ‎GeekBrains мы решили разобраться, кто с удовольствием окунется в разработку с головой, а для кого суровые будни программиста окажутся кошмаром наяву.

Если вы хоть раз в жизни с завистью смотрели на зарплаты в IT-сфере, попробуйте пройти наш тест. Кто знает, может быть, вы созданы для этой профессии?

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

Интересует следующий список вопросов

1. как правильно программист должен управлять своим временем
2. как избегать багов (возможно есть какие то правила кроме TDD?)
3. как управлять задачами и правильно их оценивать
итд

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

Всем спасибо за ответы! Для себя выбрал три книги:

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

  • Вопрос задан более двух лет назад
  • 11139 просмотров

как правильно программист должен управлять своим временем

Здесь нет специфики процесси же?

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

  1. Да никак. Весь этот тайм-менеджмент — фигня полная, ни разу не работает. Просто делай свою работу и не забывай про себя и семью
  2. Баги будут всегда, человек не может не делать ошибок. Главное, по возможности, их исправлять вовремя и не повторять
  3. По идее, этим должен заниматься тот, кто ставит задачи. Твоя задача: выполнять их по степени важности и срочности. А вообще — просто делай свою работу.

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

1. никак. программист просто программирует. временем управлять пока не научились.
2. никак. они есть всегда. больше или меньше. человеческий мозг не совершенен.
3. никак. не нужно управлять и не нужно оценивать. это хотелки продакт-менеджера.

зы: книжки по айти — хрень. почитал и забыл.

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

Ну и можно в методологии углубиться, если уж возникают такие вопросы.
Я бы посоветовал прочитать книжку с описанием XP Кента Бека.

Инструкция для тех, кто хочет стать программистом с нуля

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

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

С чего начать

Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.

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

  • Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

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

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

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

Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или других сервисах для хостинга кода. Не стесняйтесь задавать там вопросы.

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

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

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

Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

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

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

Программист

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

Разновидности

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

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

Особенности профессии

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


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

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

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

Плюсы:

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

Минусы:

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

Место работы

  • IT-компании и web-студии;
  • научно-исследовательские центры;
  • организации, которые подразумевают в своей структуре штатную единицу или отделы программистов.

Важные качества

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

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

Программист — это звучит гордо. Часть вторая, только для программистов

Легкость экспериментов

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

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

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

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

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

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

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

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

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

Проблема, конечно, быстро вскроется. Останется вопрос: Что делать?

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

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

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

Сроки начала разработки

Это страшное слово ДЕДЛАЙН ( deadline ). Что оно вообще обозначает? Только одно, что раньше ничего сделано не будет. К этому сроку еще вопрос, может и будет работать, хотя и плохо, но будет, а вот раньше точно ничего не работает.

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

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

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

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

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

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

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


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

Работа в команде

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

Разработка программного обеспечения – это коллективная задача. Да, программист играет в этом ключевую роль, но зазнаваться не стоит. Гениально написанная программа без внедрения не станет чем-то полезным, а останется просто кодом.

Общение в коллективе

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

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

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

Эксплуатация человека человеком

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

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

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

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

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

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

Разделим наших благодетелей, как они себя считают, на категории:

  1. Франчайзеры. Так как они профессионалы на этом рынке, то будут применять разнообразные приемы для снижения зарплаты программистов и зарабатывать у них много, особенно на начальных этапах своей карьеры, практически невозможно. Но можно приобрести огромный опыт. Кроме того, так как программисты у этого вида работодателя создают основную прибыль предприятия, то отношение к нашей братии у них немного лучше, чем бывает у других видов работодателей.
  2. Конечные заказчики. Продать себя им дорого, вполне вероятно, но они за это будут отыгрываться. Рабочее место похуже, компьютер подешевле, задачки посложнее. Программист у них обслуживающий персонал, да, делает важное дело, но прямой прибыли не приносит. Любой косяк будет рассматриваться как преступление, сроки работы всегда будут в глазах работодателя растянуты, технического задания не дождешься. При наличии целого отдела, все будет сильно зависеть от его начальника. Они бывают двух видов: на хорошем счету у начальства и на плохом счету у начальства. Это будет сразу заметно, по обстановке вITотделе, и на программистах это сильно отражается.
  3. Фриланс. Хороший способ продавать свои знания и навыки. Быстро приобретается опыт, денег немало можно заработать. Только нужно решить одну дилемму: когда программируешь не ищешь клиентов, когда ищешь клиентов не программируешь.

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

Удаленная работа

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

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

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

Эникейщик

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

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

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

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

Что мы хотим от работодателя? Высокая, своевременная оплата труда, социальная защищенность, комфортное рабочее место, уважение.

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

Только работать не получится, нужно уметь развлечься. Главное, чтоб развлечение заставляло двигаться. Работа у нас сидячая и нужно соблюдать баланс и поддерживать свое тело в тонусе.

Много программировать не следует. Состояние «поток» приятное, но приводит к эмоциональному выгоранию. Часа четыре в день не приносят неприятностей, но иногда приходится выкладываться и программировать по 8-10 часов в сутки, тогда отдых другой, физическая нагрузка, длительный сон. Но так долго не протянуть, это временный режим.

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

Там 1С Предприятие не пользуется популярностью. И если вам очень нравятся языки C *, Ruby , Pascal и другие, то вам за бугор. Там специалистов ценят и спрос на них огромный. Жаль, что не очень получается работать удаленно на забугорную компанию. Там высокие зарплаты, а у нас низкие расходы, получился бы хороший профит.

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

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

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

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

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

Три главные проблемы в работе программиста и как с ними быть

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

В работу попал непонятный код

Например, IT-специалист трудится в интернет-магазине. Он написал программу для обслуживания заказов с нуля, он знает все её модули и понимает внутреннюю логику. Если что-то идёт не так, он мгновенно решает проблему.

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

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

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

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

Одно дело — когда код от другого специалиста просто устроен непривычно. Другое дело — когда он написан с огромным количеством «костылей».

Костыль в программировании — это когда, чтобы что-то работало, его подпирают чем-то неприспособленным. Представьте, что дверь в ванную закрывается на резинку, к которой привязана 100-килограммовая гиря. В итоге дверь работает, но гиря занимает место, и об неё все спотыкаются.

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


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

Не дают времени сделать нормально

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

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

Это если делать нормально.

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

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

Бонус: он просто не спал

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

Что делать

Если вы встретили расстроенного разработчика — дайте ему осознать, что вы понимаете его боль. А если вы сами программист — прокачивайте навык переговоров, чтобы добиваться дополнительного времени на задачи и не брать в работу чужой бракованный код. Сил вам!

Закулисные проблемы программистов

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

Иногда его и вовсе не видно, если он работает в другом офисе или удалённо.

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

Эта статья не о том «как всё плохо» или наоборот «хорошо». Цель данной статьи познакомить читателей с проблемами данной профессии и поиск их решения.

С небес на землю

Как работает программист? Вокруг этого вопроса, да и самой профессии сложилось множество стереотипов ещё с 90-х годов XX века.

Но, «девяностые», когда компьютеры были ещё в новинку, а специалисты, умеющие с ними работать, а тем более писать программы, большой редкостью ушли в прошлое.

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

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

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

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

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

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

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

Поэтому, если вы работаете не в компании лидере IT индустрии, то скорее всего вам не придётся хватать звёзды с неба. Будете работать над проектом по автоматизации бизнес-процессов предприятия, «делать сайты» и т.п.

Оплата труда и успех в поиске работы сильно зависит от знаний, опыта и специализации.

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

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

Но, в любом случае, если трезво оценивать обстановку, работу в той же web студии найдёте.

Другой пример. Работа с «железом» (программирование микроконтроллеров и т.п.).

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

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

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

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

Как устроен рабочий процесс?

Вопреки расхожему мнению, в профессии программист почти нет никакой романтики.

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

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

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

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

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

Так что, в web студии вы в основном будете заниматься лендингами и интернет магазинами. Если компания пишет на Delphi, то добро пожаловать в мир корпоративных приложений под Windows (реже MacOS, iOS, Android). И т.д.

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

Условия работы программиста как правило стандартные «офисные». Но, бывают ситуации, когда «вспомогательные» подразделения включая IT размещаются в подсобных помещениях или помещениях с откровенно вредными условиями труда.

Сколько стоит быть программистом?

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

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


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

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

Первое время вам наверняка придётся программировать в консоли на таких языках как Pascal или C. Но, даже такого программирования у вас будет не очень много.

За то хоть отбавляй высшей математики (в объёме гораздо выше «обычного» технического ВУЗа) и фундаментальных дисциплин. Таких как, например, математическая логика, теория вычислительных процессов, теория принятия решений и т.п.

Но, как уже сказано, ВУЗ даёт лишь базовые знания. Поэтому, те кто всерьёз намерен после его окончания работать по специальности, уже с самого начала занимаются дополнительно. Читают книги и пишут программы в не учебное время. Многие уже в студенческие годы пробуют найти первую работу если не в офисе, то на фрилансе или на худой конец в Open Source. Главное, чтобы к моменту выдачи диплома был какой-то подтверждённый опыт.

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

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

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

Также со временем может встать вопрос о сертификации. Но, останавливаться на этом подробно не стану, так как писал уже на эту тему ранее.

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

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

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

Отдельно стоит сказать о «рабочих инструментах» программиста. Рабочих компьютерах, редакторах, компиляторах и т.д.

Для написания программ необходимо, прошу прощения за тавтологию, специальное программное обеспечение. К счастью, в наши дни многие даже коммерческие средства имеют вполне пригодные для работы бесплатные версии или специальные версии для разработчиков. Например, Visual Studio Community или Microsoft SQL Server Developer.

Для многих платформ IDE полностью бесплатны (Android Studio, NetBeans, Eclipse).

Всё это в значительной степени снижает напряжённость ситуации. Однако не всё так легко доступно. Да и «бесплатность» многих инструментов и технологий относительна.

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

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

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

С компьютерами также не всегда дело обстоит благополучно.

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

Мобильная разработка вопрос отдельный. Бывало, что для написания Android приложений выделялись компьютеры на базе процессоров без поддержки виртуализации, а выпросить 4 000 руб. на покупку устройства для отладки смерти подобно.

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

Дознаватель или телепат?

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

В результате процесс создания программы тонет в бесчисленных правках и доработках. «Здесь вы неправильно поняли», «Я не это имел в виду», «Я это не учёл», «здесь лучше сделайте вот так» и т.д. и т.п. и пр.

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

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

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

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

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

А, ведь эти убытки не только финансовые, но и репутационные.

Приходит жалоба от клиента на работу «сырого» модуля для сайта, который торопились выпустить. Кто будет виноват? Естественно программист.

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

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

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

И швец, и жнец

Не редко на программистов возлагают далеко не свойственные им функции («тыжпрограммист»). Тогда помимо написания кода, приходится править фотографии в Photoshop, заниматься размещением статей на сайте, продвигать сайт в поисковых системах, монтировать видеоролики и т.д.

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

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

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

Ведь с точки зрения средне статистического «босса», что толку от программы, которая принесёт его бизнесу миллионы, если у секретарши не работает принтер или завис Word? И вы всё время, даже находясь в отпуске будете привязаны к компьютеру («а вдруг чего случится?»).

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

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

Безусловно, нет худа без добра.

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

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

Я никого не хочу обидеть этими строками. Просто описываю реальность подобной работы как она есть.

Мавр сделал своё дело, мавр может уходить


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

Программа написана и выпущена в production. Предстоит её сопровождение. Но…

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

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

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

Такой вот круговорот…

Поэтому, всегда нужно быть готовым к тому, что вас рано или поздно могут «попросить».

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

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

Разделяй и властвуй

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

Интриги, подставы и прочие забавы «офисного планктона» проникли и в IT сферу.

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

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

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

Карьера программиста

Карьерные возможности зависят от специфики места работы.

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

Так как работа как правило не связана с физическими нагрузками (в том числе не нужно прыгать на стремянке прокладывая очередную интернет трассу), ограничений по возрасту как таковых нет. Знаю коллег, которым уже далеко за 50, но они продолжают писать программы. Однако, с возрастом на карьеру начинают влиять другие факторы.

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

На самом же деле опытному специалисту, у которого к тому же скорее всего есть семья, просто надо больше платить. Да и обмануть умудрённого опытом человека гораздо сложнее, чем 20 летнего мальчика или девочку после института.

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

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

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

Про амбиции многих «звёзд университетов» нет смысла даже и говорить.

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

Опытным профессионалам живётся ещё не так плохо. У них есть что показать и чем мотивировать работодателя в виде знаний, опыта, портфолио, сертификатов, рекомендаций, собственных freeware/open source разработок. Но, у молодых специалистов (именно специалистов) ничего этого ещё нет или почти нет, и они вынуждены быть одними из многих пока не наберутся опыта и не вырастут в профессионалов.

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

Что делать?

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

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

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

Вспомните, что вы не раб и не отбываете на работе наказание по приговору суда. Вы добровольно заключили договор с работодателем или заказчиком и, в конце концов, вы – квалифицированный специалист от которого зависит работа компании. Да, именно так. Много ли менеджеры и прочие смогут наработать если будут пользоваться только Excel и тем более бумагой?

Однако даже защищая свои права нужно знать меру.

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

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

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

Ведь перед вами по сути стоят следующие вопросы:

  • Оправдана ли дальнейшая работа в этой компании?
  • Если нет, есть ли возможность её покинуть хотя бы с приемлемыми потерями?
  • Требуется ли экстренное увольнение из компании?

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

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

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

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

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

Если вас не уважают, не выделяют средства для приобретения необходимых программ и оборудования, и вы вынуждены покупать их за свои деньги, вы работаете во вредных условиях труда (есть «фирмы», где IT отделы расположены в таких помещениях, в которых по-хорошему даже находиться без средств защиты нельзя), вас заставляют выполнять не свойственные вам обязанности, вас обижают деньгами или вообще задерживают выплаты – какой смысл там работать?

Лояльность компании и преданность общему делу? Если вы станете не нужны «предпринимателю», то через 5 минут он о вас и не вспомнит. Поверьте. За то о себе он всегда успеет подумать.

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

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


Да и оставаться на нынешней работе может быть связано с даже большим риском чем поиск новой.

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

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

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

Естественно, если у вас не будет подтверждённого опыта в новом направлении, вам сразу вряд ли предложат большие деньги, но как известно «те, кто оказался на вершине, не с неба туда упали» (М. Уошлинг). Со временем вы наверняка вырастите и здесь.

Жизнь после программирования

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

Вариантов на самом деле много.

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

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

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

Вместо послесловия

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

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

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

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

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

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

Кто такие программисты? Нет, ну правда!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Самый первый программист в мире

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

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

Первые шаги к программе

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

Многим из нас приходилось слышать о таком известном английском писателе, как Джорж Гордон Байрон. Его дочь, Ада Августа Лавлейс (Байрон), и есть первый программист в мире. Любовь к математике девушке привила мать еще с самого детства. С ней занимались лучшие ученые в округе, где жила юная особа. Так, ее первым учителем стал выдающийся Август де Морган, что считался выдающимся математиком и логиком. Именно эти две составляющие и закладывают основу программирования. Они и помогли девушке в ее последующих научных трудах.

Первый программист в мире — Ада Августа Байрон

В истории информационных технологий одним из первых стоит имя Чарльза Бэббиджа. Этот человек трудился над теорией функций и механизацией счета. Бэббиджа по праву считают прародителем первой вычислительной машины и называют «отцом компьютера». Он создал первую цифровую машину и назвал ее аналитической. Знаменательным событием в жизни Ады Августы становится знакомство с этим выдающимся изобретателем. Мать девушки была с ним хорошо знакома, и сам Бэббидж искренне радовался каждому новому достижению в освоении Адой математической науки.

Знакомство с аналитической машиной

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

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

Первый программист и его будни

В возрасте девятнадцати лет Ада Августа выходит замуж. Ее избранником становится лорд Кинг, впоследствии — граф Лавлейс. На тот момент лорду было 29 лет, и семейная жизнь Ады протекала счастливо и размеренно. Муж девушки поддерживал все ее научные начинания и даже восхищался складом ее ума. Супруги довольно часто посещали светские приемы, однако молодой особе было интересно совсем другое. Даже несмотря на замужество, ее общение с Чарльзом Бэббиджем стало ее теснее и сердечнее. Девушка напоминала Бэббиджу его погибшую дочь, тем более Ада являлась почти ее ровесницей. «Отца компьютера» также восхищали способности девушки, они часто обменивались интересными идеями и показывали друг другу свои вычисления. Со временем они стали не только коллегами, но и хорошими друзьями. Ада не выносила поверхностного общества и глупых людей. Она была требовательна к себе и окружающим. При математическом складе ума ее привлекали вещи, не свойственные женщинам. Девушка стала настоящим гением своего времени и посвятила свою жизнь науке.

Ада Августа не останавливается в своих научных расчетах

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

Изучение машин Бэббиджа

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

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

Первые программы

Свои первые программы для машин Бэббиджа девушка составляла для вычисления чисел Бернулли. Подробнее всего Ада Августа растолковала в своих трудах решение системы двух линейных уравнений. Тогда впервые появилось такое понятие, как рабочие переменные и их последовательная смена в программе. Девушка смогла применить оператор присвоения, который до сих пор является неотъемлемой частью даже самой сложной современной программы. Вторая программа, описанная в комментариях к статье Манибера, была составлена Адой Августой для вычисления тригонометрических функций и включала в себя работу цикла. Реккурентные вложенные циклы были основой третьей ее программы.

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

Последние годы жизни ученой

Ада умирает в возрасте 36 лет. В таком же возрасте умер ее отец от кровопускания. Отец и дочь скончались из-за одной болезни — рак. Даже несмотря на то, что Ада Августа пыталась лечиться, последние годы ее жизни были мучительными. Каждые новые расчеты были все более утомительными для женщины, но она не прекращала заниматься наукой до самой смерти. В честь Ады названы один из уникальных языков программирования «АДА», два маленьких города в Америке и колледж.

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

Мастер Йода рекомендует:  Облачная платформа Microsoft Azure теперь позволяет создавать блокчейн-приложения
Добавить комментарий