Главная » Отношения » Несколько интересных фактов о программировании о которых вы, вероятно, не знали

Несколько интересных фактов о программировании о которых вы, вероятно, не знали

При упоминании главной характеристики 21-го века на первый взгляд у каждого на ум приходит слово “цифровизация и информатика”. С момента достижения компьютерной миниатюризации и изобретения Интернета практически в каждом обществе всё управляется технологическим оборудованием и его всемогущим обучением информатике включая единый государственный экзамен  (ЕГЭ).

Несомненно, ЕГЭ информатика курсы стали ответом на экстраординарную растущую потребность в подготовке.

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

Несколько малоизвестных фактов о программировании

Факты о программировании

Программисты не спешат обращаться за помощью, когда сталкиваются с проблемами

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

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

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

Прогресс в программировании можно разделить на 4 этапа

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

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

Интересная классификация определила четыре возможных состояния прогресса:

  • медленный прогресс;
  • сложное программирование;
  • достижение прогресса;
  • погружение.

Разработчики программного кода сталкиваются с непобедимыми барьерами

Это может показаться очевидным, но очень важно обнаружить программный барьер поскольку это может привести к серьезным проблемам со сроками, моральным состоянием и доверием. Одной из основных трудностей обнаружения барьеров и их классификации является тот факт, что эта информация может быть субъективной. Другими словами, прямой вопрос программисту, сталкивается ли он/она с каким-либо преодолимым барьером, который уже влияет на результат — не всегда может быть искренним. Есть также некоторые последствия с точки зрения эго и морали, просто идентифицируя этот тип барьера в программировании.

Существует 6 типов барьеров, связанных с программированием

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

  • дизайн: “Я не знаю, что должен делать компьютер”;
  • отбор: “Я знаю, что делать, но не знаю, что использовать”;
  • координация: “Я знаю, что использовать, но не знаю, как сочетать то, что мне нужно”;
  • использование: “Я знаю, что использовать, но не знаю, как использовать”;
  • понимание: “Я думал, что знаю, как использовать X, но это делает не то, что я ожидал”;
  • информация: “Я понимаю, что произошло, но я не могу проверить«.

Программисты тратят примерно 30% времени на просмотр исходного кода

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

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

Производительность удаленных программистов ниже, чем производительность программистов в офисах

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

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

Большинство программистов — молодые и мужского пола

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

Основные сообщения об ошибках, время выполнения и ошибки компиляции во время выполнения и среднее время их устранения

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

Обслуживание программного обеспечения отнимает более 50% усилий

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

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

На обслуживание программного обеспечения уходит от 40% до 90% затрат

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

Работа по сопровождению программного обеспечения делится на 4 основные задачи

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

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

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

Затраты на исправление ошибок после внедрения в 10 раз выше, чем на этапе разработки, и в 100 раз больше, чем на этапе проектирования

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

Экспертная проверка кода может выявить до 60% ошибок

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

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