Pull to refresh

Изобретайте велосипед часто

Reading time 2 min
Views 1.9K
Website development *
Translation
Original author: Jason P Sage
Переводчик не несет ответственности за несовпадение мнения автора с точкой зрения читателя

«Просто используйте то, что существует — это глупо, изобретать колесо...»

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

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

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

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

Заученные факты и книжная мудрость очень важны, но становление великим программистом требует больше приобретения опыта, чем простого сбора фактов. Изобретать велосипед так же важно для образования разработчика, как поднятие тяжестей для бодибилдера.
Tags:
Hubs:
Total votes 126: ↑104 and ↓22 +82
Comments 92
Comments Comments 92

Posts