Читайте новости. Начните с лежащих на виду популярных источников, используемых ежедневно профессионалами с любым стажем. Пусть даже вы пока не можете понять почти ни слова. Зачем? Чтобы держать руку на пульсе, понимать, в какие области стоит углубиться именно вам. Вдохновляться разработками других, препарировать работу «черных ящиков»: отдельных методов, браузеров, баз данных и фреймворков. Читайте иностранные, англоязычные сайты. Блоги известных разработчиков, авторов фреймворков, например, Дена Абрамова; авторов топовых IT-шных книг, евангелистов профильного мира и энтузиастов: Лию Веру, Сару Суадан и др., – причастных к разработке браузеров, таких как Вадим Макеев; создателей языков: Дугласа Крокфорда из мира JS, Страуструпа из века С++, легендарного Сэнди Метца и др.
Изучайте чужой код. GitHub, Bitbucket, примеры в статьях влиятельных авторов, выдержки из документаций. Как маленькие дети слагают свою речь, еще не понимая всей глубины отдельного слова и составляющих его букв, так и вам стоит принимать авторитетные фрагменты кода как слова, из которых сформируется вся программа. Пусть понимание отдельных нюансов придет чуть позже – окружайте себя готовыми классическими решениями и используйте их в своих работах. Старайтесь не просто копировать и вставлять, а самостоятельно набирать фрагмент – так стандартные решения быстрее отложатся в голове, подкрепившись моторной памятью. И в следующий раз, при написании своего кода с чистого листа, рука сама потянется добавить «content:»»» для псевдоэлемента или проверить на undefined переменную перед обращением к свойству.
Учите основы. Да, пусть это скучно, но необходимо. Без них вы никогда не станете уважаемым профессионалом. Представьте, к вам подходит подопечный джуниор-разработчик с вопросом: почему “2” + 2 = 22? А вы не можете ответить, потому что не знаете про механизм приведения типов и наличие toString () у прототипа объекта Number. Сложно представить? Правильно, потому что у таких программистов подопечных не бывает. Более того, сейчас всё стремительнее сменяются фреймворки и дополняются возможности языка. Без понимания, что там «под капотом», практически невозможно быстро переключаться над высокоуровневыми реализациями. Угнаться за темпом IT не получится, запоминая только методы популярного на текущий момент фреймворка: завтра он сменится другим, ваши познания превратятся в тыкву, а цена на рынке как специалиста уйдет в –1. Все крупнейшие IT-компании уже давно просят кандидата на собеседовании написать алгоритмический код, зачастую без привязки к языку, а если и спрашивают конкретику, то исключительно про подводные камни, языковые тонкости и их комбинации, требующие глубокого понимания того, «как работает мотор».
Старайтесь понять. Думаю, предыдущего упоминания процессов отбора на работу IT-корпорациями достаточно, чтобы отказаться от сладостной мысли выучить/запомнить и попытать свое счастье в отрасли. Часы университетских лабораторных или стоящих курсов призваны заставить пробовать написать самому, наткнуться на проблемы, задуматься, почему так, понять и исправить. При необходимости – повторить. Но, увы, никак не «скопипастить» готовый код, как принято наивно полагать у многих не слишком прилежных студентов. Любой успешный разработчик проводил порой десятки минут, раздумывая над логикой создателей языка, причинными связями, устройством браузера, взаимозависимостями нового материала и уже известных ему фрагментов знаний. Только понимание, как происходит рендеринг страницы, как влияют на него заданные вами СSS-свойства, помогут исправить «тормозящий» интерфейс. Без глубокого осознания нет качества, нет надежности, а часто и нет самого результата – столкнувшийся с неизвестным разработчик не в силах предпринять что-либо, ведь малейший шаг по диагонали делает его совершенно беспомощным в мире, законы которого он так и не осознал.
Впитывайте best practices. Как известно – devil in details. То, как написан код, насколько он читаем другими разработчиками и расширяем по мере жизни и развития продукта, – главные отличительные черты новичка от профессионала. Чтобы преодолеть этот путь быстрее, лучше взять велосипед, собранный по проверенным чертежам и отшлифованный до мельчайших деталей, нежели начать выяснять, овальное или круглое колесо лучше зарекомендует себя для комфортных путешествий. Знакомство с Бандой Четырех, принципами DRY, SOLID, классикой вроде «Рефакторинга» Мартина Фаулера, Стивом Макконнеллом с его «Совершенным кодом» и «Чистым кодом» Роберта Мартина – ваш необходимый чеклист по данному пункту.