Итак, вы решили записать себя в ряды веб-разработчиков?
Тогда сразу же откладываем в сторону книги из серии “Изучаем супер-пупер язык версии 8.3 за 24 часа”. И просто каждый день отвечаем на следующие десять вопросов.
А не закрался ли здесь шаблон?
Ищите паттерны в рабочих и проблемных участках кода. Таким образом вы откроете для себя связь между вещами, которые на первый взгляд, как вам показалось, не имеют ничего общего. Для более глубоко понимания своей работы, просто заведите себе новую привычку — спрашивайте себя “Нет ли здесь шаблона”.
Применение этого принципа распространяется куда дальше, чем только на ваш код. Как вы думаете, существует ли шаблон в тех изменениях, которые вас постоянно просит внести заказчик? А как насчет развития современных технологий? И, конечно, вы постоянно сталкиваетесь с одними и теми же проблемами в своем коде.
Чтобы понять шаблоны, надо научиться их различать — Isaiah Berlin
Каким образом можно упростить код?
Чаще всего веб-разработчики излишне усложняют решение задачи. Видимо, такой подход добавляет чувство гордости за свой проект. Но тут кроется одна очень даже немаленькая проблема — врят ли вы сможете предугадать каком образом ваш проект изменится в будущем. “Архитектура приложения” в коде больше соизмерима с садоводством чем с архитектурой.
Самое главное — уметь быстро подстраиваться под постоянно изменяющеюся среду. Поэтому излишнее усложнение проекта ни к чему хорошему не приведет.
Все гениальное просто — Леонардо да Винчи.
Почему это работает именно так
Разница между хорошим разработчиком и тем, который просто знает язык программирования лежит в понимании того, как и почему работает тот или иной механизм.
То же самое применимо к устранению и других проблем. “Просто перезапустите программу”. “А вы пробовали перезагрузить компьютер?”. Мы все когда-то произносили эти фразы при возникновении проблем. И каждый раз, когда вы произносите подобную фразу, вы теряете возможность узнать что-то новое.
Понимание причины проблемы позволяет выявить корневую причину и устранить целый ряд вопросов навсегда. Во всяком случае, вы больше не повторите свою ошибку.
Не изобретайте велосипед
Когда вас переполняет гордость за то, какой сложный алгоритм вы написали, скорее всего, вы не на правильном пути. Достаточно велик шанс того, что кто-то уже решил до вас подобную проблему, если вы только не занимаетесь исследованием в аспирантуре.
Чувствуете, что вам нужен алгоритм для размещения лейбла на ближайшем к указателям мыши элементе? Проблема уже была решена с помощью диаграммы Вороного. Ищете кратчайший путь для доставки? Вот вам алгоритм Дейкстры. Хотите найти теги, похожие на только что добавленные пользователем, используйте расстояние Левенштайна.
Поверьте, это далеко не полный список возможных примеров.
Если я видел дальше других, то потому, что стоял на плечах гигантов — Исаак Ньютон
Кто был первым?
Итак, думаете вы знакомы с REST?
А вы читали доклад Роя Филдинга, описывающий REST? Поняли ли вы истинную цель REST? Сразу скажу, статья в блоге, автор которого на пять минут опережает вас в опыте использования REST в очередной модной IDE, не считается. Не ограничивайте себя в информации, всегда обращайтесь к оригинальному источнику.
Влюблены ли вы в свою работу?
Признайте, программирование — довольно сложный труд.
Помимо этого, программирование не стоит на месте. Фреймворк, служивший два года назад всем примером, уже зачислен в разряд мамонтов. Чтобы владеть актуальной информацией вам придется полностью посвятить себя любимому делу.
Если вам не нравится программировать, то лучше даже не пытаться сравнивать с тем человеком, для кого это дело жизни. Так что, ищите свой стиль, тот, который будет подталкивать вас оставаться в теме. Не стоит становиться специалистом по безопасности только потому, что на этом рынке не хватает сотрудников или хорошая зарплата. Не обращайте внимание на статьи, в которых говорится, что разработка пользовательских интерфейсов — самая востребованная профессия.
Повторюсь, занимайтесь любимым делом.
Делайте то, что вам нравится, а остальное приложится — Питер МакУильямс
Где еще использовать то, что уже сделано?
Одно из самых больших ограничений, которое накладывают на себя веб-разработчики — отсутствие фантазии.
Допустим, вы столкнулись с какой либо уникальной проблемой или используете оригинальное решение, то вам, наверняка, кажется, что это единственное место применения решения. Как правило, вы ошибаетесь. Каждый раз, когда сталкиваетесь с новым решением, спрашивайте себя: “Где еще можно его применить?”.
Нашли новый способ размещения узлов в графе? Может стоит применить этот подход для поиска точек в 2D наборе данных. Познакомились со способом отправки данных через веб-сокеты от сервера к клиенту? Как использовать этот способ для масштабирования бекэнд служб? Даже если вы и не правы, то всегда помните — на ошибках учатся.
Таким образом мы подкрадываемся к следующему вопросу…
Логика способна привести вас из пункта А в пункт Б, воображение — безгранично — Альберт Эйнштейн.
В чем я сегодня ошибся?
Самый результативный способ повысить производительность — уменьшить цену ошибки. Разрабатывающая игры компания Valve следует этому принципу в одном ряду с другими организациями. То же применимо и к вашему пути разработчика. Боязнь ошибок навсегда блокирует вас от совершения прорывов.
Не бойтесь, пробуйте, ошибайтесь, учитесь и пробуйте снова.
Не бойтесь совершать ошибки. Познав ошибки, стремитесь к цели дальше — Бенджами Франклин.
Как добиться цели?
В нашем мире довольно мало недостижимых целей, за небольшим исключением. Для начала просто предположите, что вы сможете сделать то, что задумали, а затем пройдите весь путь в обратном направлении. Возможно, вы придёте к выводу, что вам и жизни не хватит, для решения проблемы. Но современный мир очень изменчив, так что, кто знает…
Цель всегда кажется недосягаемой до тех пор, пока она не окажется у вас в руках — Нельсон Мандела.
С кого брать пример?
Никогда не работайте там, где вы знаете больше других! Беритесь за ту работу, где вы получите возможность поработать с теми людьми, кто вас вдохновляет и кто подстегивает вас к лучшему результату. Это касается не только разработчиков. Знаете, мир не ограничивается вашим любимым текстовым редактором и командной строкой. Познавайте новое во всех сферах и ищите применение этому в своей работе.
Просто быть компетентным уже недостаточно.