Как программисты, мы будем использовать множество технологий. Эти технологии охватывают разные области, и в каждой области есть много места для глубокого копания. Так как же мы выбираем между глубиной и широтой, когда мы учимся?
Моя точка зрения состоит в том, чтобы продолжать углубляться в одну область и стать экспертом в этой области, но также иметь некоторое представление о других областях, то есть стать Т-образным талантом с одной специальностью и несколькими способностями. Это может не только обеспечить высокую конкурентоспособность, но и расширить возможности других аспектов.
Наш путь продвижения также одинаков.Позиционирование p7 является экспертом в предметной области, то есть иметь более систематическое познание и ускорение в области, но p8 и p9 должны иметь лучшие технологии и разработки во всей области переднего плана. , Познание также требует широты, и маршрут обучения сначала в глубину и вширь также более способствует продвижению.
Тем не менее, продолжать проникать в определенную область нелегко. Есть две основные проблемы. Позвольте мне взять себя в качестве примера для иллюстрации:
Чем глубже вы идете в поле, тем труднее учиться
Когда я впервые начал изучать подключаемый модуль babel, я прочитал официальное руководство по подключаемому модулю и почувствовал, что все это новые знания, и я быстро научился, но когда я захотел найти реальный пример применения, в документации и почти ничего в интернете.Для этой информации мне пришлось изучить возможность использования плагинов babel для автоматизации в различных сценариях.Позже я разобрался с применением автоматического встраивания,интернационализации и генерации документов API в бизнесе, а также инструменты Аспекты линтера, чекера типов, обфускации сжатия и др. Сначала быстро изучить область, но затем прогресс, который необходимо изучить самостоятельно, будет медленным.
На самом деле, это так во многих областях.Большинство материалов остается на мелководье.Если вы начнете, вы быстро научитесь и почувствуете, что делаете быстрый прогресс. Но когда вы погружаетесь все глубже и глубже, справочных материалов будет все меньше и меньше, и даже постепенно входить в ничейную землю.В это время вы почувствуете, что прогресс очень медленный, и вы почувствуете боль, но это не так. Стадия, через которую должны пройти специалисты в предметной области, требует определенной жесткости или настойчивости, чтобы пройти ее и продолжить углубление. По истечении этого периода вы можете строить технические барьеры и можете сказать, что вы эксперт в этой области.
После долгой работы в определенной сфере появляется все больше гомогенизированного контента.
Взяв за пример себя, я хочу продолжать углублять компиляцию фронтенда, пока не напишу книгу. Я планирую написать отдельный буклет для babel, eslint, API компилятора машинописного текста, postcss и даже swc, а затем организовать его в книгу.
Когда я впервые начал изучать плагин babel, я почувствовал, что многому научился, потому что все виды знаний были новыми знаниями. Однако, постепенно изучив некоторые другие инструменты, вы обнаружите, что явление гомогенизации становится все более и более серьезным, а урожай становится все меньше и меньше.
Плагин babel предназначен для преобразования кода, анализа и добавления, удаления и изменения на основе AST.
Плагин eslint выполняет статический анализ и проверку формата кода, и он также основан на AST, но поскольку информация о токенах сохраняется в AST, он может проверять формат, например номера строк и столбцов, пробелы и т. д. Тогда сгенерированный код не основан на печати AST, а напрямую выполняет замену строк. Единственным отличием от плагина babel является возможность проверки формата и способа генерации кода, в остальном все аналогично и однородно.
API-интерфейс компилятора машинописного текста выполняет преобразование из ts в ts, и он также основан на AST.По сравнению с плагином babel, он может генерировать ts-код, который не может сделать плагин babel, а также может выполнять проверку типов. Остальные аспекты также однородны.
Плагин postcss похож на плагин babel, но нацелен на область CSS, и многие вещи тоже однородны.
Когда вы продолжите исследования в какой-либо области, вы обнаружите, что многие вещи похожи и однородны, а новых вещей становится все меньше и меньше. Это также неизбежно, и требуется определенная стойкость или настойчивость, чтобы пережить этот период.
так,Если вы хотите продолжать углубляться в какой-либо области, после начального периода быстрого роста вы неизбежно столкнетесь с проблемой все меньшего и меньшего количества информации, все более и более трудоемкого обучения и все более и более однородного содержания. это, продолжайте, и тогда вы можете стать экспертом в этой области.
Однако, хотя и говорится, что должна быть определенная степень преданности технологии, она также должна быть ограничена.Достаточно понимать технологию за пределами профессиональных границ как интерес.
Взяв меня в качестве примера, я обнаружил, что технология компиляции в области внешнего интерфейса представляет собой только транспилятор исходного кода и не требует интерпретатора и компилятора, который компилирует в байт-код или машинный код. Вот почему я думал о том, чтобы пойти в Huawei, чтобы делать языки программирования и изучать компиляторы и интерпретаторы, но в итоге я туда не попал, и Али потерял работу.
Подумав об этом, как фронтенд-инженер, если вы хотите изучить технологию компиляции, достаточно хорошо изучить различные транспиляторы, а что касается компиляторов и интерпретаторов, то это не входит в компетенцию фронтенд-инженеров. Это очень хорошо знать в качестве интереса, но если вы хотите пойти дальше, в этом нет необходимости, стоимость очень высока, и это бесполезно для работы с интерфейсом.
так,Нужно продолжать углубляться в какой-то области, но нужно и обращать внимание на границы.Достаточно углубиться в границы профессиональной сферы.Вещи за пределами можно понять,и нет необходимости идти слишком глубоко.
Суммировать
Для инженера лучший способ обучения — начать с углубления, а затем с расширения, что также более способствует развитию карьеры.
Если вы хотите углубиться в определенную область, вы будете быстро расти в начале, но постепенно вы столкнетесь с проблемой все меньшего и меньшего количества информации, все более и более трудоемкого обучения, и вы столкнетесь с большой гомогенизацией технологий. и новое... Чтобы пережить этот период, требуется все меньше и меньше проблем и некоторое упорство.
Однако у увлеченности техникой должен быть предел, достаточно выйти за границу профессионального масштаба, за пределами можно понимать интерес, но не нужно слишком углубляться.
То есть технология обучения должна быть постоянной, но не слишком постоянной.