КУРС

DATA SCIENCE ACADEMY

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

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

Какие сбои в ПО бывают и почему

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

Классификация типичных ошибок программистов выглядит примерно так:

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

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

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

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

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

Когда некорректная работа ПО стоила слишком дорого

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

После обновления ПО синхронная работа вышек по приему и передаче сигнала была выведена из строя. Одна вышка передавала сигналов в 10 раз больше, чем успевала обрабатывать вторая. Откат к первоначальной версии результатов не дал. Итог – почти 60 тысяч человек остались без связи на 8 часов.

КУРС

DATA SCIENCE ACADEMY

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

Еще один случай сбоя в программном обеспечении, который обошелся в 2 миллиарда рублей, произошел в России. Онлайн-кассы после очередного обновления перестали направлять данные в ФНС. В итоге заблокированным оказался каждый 20 магазин офлайн и онлайн торговли.

Типичные ошибки начинающих программистов

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

  1. Делать продукт “под себя”.  Пользователи умеют отличать хорошее ПО от плохого – да, они не знают о бэкенде и фронтенде, не представляют, какой язык программирования использовался, но понять удобно работать в приложении или нет они в состоянии. Поэтому неважно, что думает программист о своем ПО, важна оценка пользователя.
  2. Не развиваться – если у кодера есть набор инструментов, который он хорошо знает, то это не значит, что они будут хороши для конкретного продукта или его отдельной опции. Поэтому учиться новому нужно.
  3. Не использовать чужие коды – часто говорят, что хорошие программисты – ленивы. Оптимизировать хорошие компоненты нет смысла. И если  разработчик сможет включить в алгоритм готовый фрагмент – он так и сделает.
  4. Зубрить функции без понимания принципа их работы. Выучить язык программирования можно, применить его, если не знать принципы ОС и структуры данных – нет.
  5. Измерять продуктивность количеством строк – ИТ не конвейер, а кодер – не машинистка. Иногда, на небольшой фрагмент кода уходит полдня и это нормально, поскольку исключает риски доработки ПО за несколько часов до дедлайна.
  6. Не читать ТЗ – в задании заказчик дает понять, что хочет получить.  Если формулировки не понятны (а такое случается часто), то не стоит делать так, как кажется правильным разработчику. Лучше сто раз уточнить, чем потом переписывать код заново.
  7. Не учить технический английский – если не хотите быть в курсе новостей ИТ, которые генерируются англоязычными ресурсами, то о карьере можно забыть.

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

Можно ли менять специализацию

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

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

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

КУРС

DATA SCIENCE ACADEMY

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