Полное раскрытие - я пожилой человек, который обучался другому Интернету, доступному в эпоху работы. Я наблюдал, как навыки молодых разработчиков неуклонно ухудшаются, в основном из-за того, что они не сохраняют информацию или не понимают решения, которое они взяли из Интернета. Я заметил, что уровень компетентности, который был у человека после 1-2 лет опыта, 20 лет назад, теперь является уровнем компетентности, который есть у человека после 5-7 лет опыта. (Да, это личное наблюдение, но я много нанимал, у меня нет статистических данных по этому вопросу, и да, я иногда стар и капризен, прими это утверждение с недоверием. И держись подальше от моего двора. )
Поиск всего неэффективен с точки зрения времени. Это также признак того, кто не обладает большой глубиной знаний. Люди с глубоким знанием могут писать код быстрее, чем люди, которые не знают, как решить проблему, не глядя на вещи. Так что стоит научиться справляться с большим количеством вещей без необходимости постоянно их искать.
Теперь я не говорю, что вы никогда не должны искать вещи, я говорю, что вы должны научиться сохранять знания и только нужно искать вещи, которые вы используете редко или когда вы сталкиваетесь с действительно новой проблемой, языком или парадигмой. И я не говорю, что вы не должны читать, чтобы не отставать от новых решений, инструментов и языков.
Моя настоящая забота о разработчиках, которые слишком часто ищут вещи, так что слишком многие из них (не обязательно вы) никогда не развивают аналитические навыки, чтобы понять проблемы, которые у них есть, и решения, которые необходимы. Прочитайте, сколько вопросов есть в том месте, где человек вставляет сообщение об ошибке, которое он или она явно не понимает, но которое должно быть совершенно ясно любому, кто работает на профессиональном уровне. Или те, где человек говорит: «Это не работает, почему?» без ссылки на сообщение об ошибке или на то, как оно не работает, а код синтаксически правильный. Или те, кто получил кусок кода, который должен работать,
Так что, если вы ищете то, что является частью основной функциональности языка (ов) (кстати, это должно включать SQL, если вы обращаетесь к базам данных), который вы использовали более шести месяцев, я подозреваю, что вы тоже ищете много. Если то, что вы ищете, - это расширенные функции, особенно те, которыми вы редко пользуетесь, то у вас все хорошо.
Но как научиться сохранять больше информации? Сначала поймите, почему код сломался. Даже если кто-то дает вам рабочее решение, если вы не видите, почему это сработало, а ваше - нет, спросите. Если вы не понимаете сообщение об ошибке, спросите, что оно означает, а затем попытайтесь решить его самостоятельно.
И никогда не вырезайте и не вставляйте решение, которое вы не понимаете. На самом деле, не вырезать и не вставлять вообще. Если вы хотите сохранить информацию, вам нужно набрать ее. На самом деле физическое написание кода самостоятельно помогает вам его освоить. Это хорошо известная методика обучения.
Практикуйте обобщение вашего понимания кода. Я видел, как люди снова и снова задают подобные вопросы, потому что они не понимают, что решение проблемы ABC, которое они получили месяц назад, - это то же решение новой проблемы DEF.
Поэтому, когда вы что-то исследуете, уделите время тому, чтобы подумать о том, какие проблемы было бы полезно решить, и напишите себе об этом. Затем, когда вам нужно решить проблему, сначала проверьте свои заметки, чтобы увидеть, что вы уже отметили возможную технику. Если вы оцениваете несколько способов решения проблемы, сделайте заметки о типе проблемы, возможных решениях, которые вы рассматривали, а также о плюсах и минусах каждого из них. Опять же, ведение записей помогает укрепить знания в вашем мозгу, у вас уже есть свой собственный мыслительный процесс с точки зрения плюсов и минусов, и вам не нужно делать это снова (или, по крайней мере, не настолько глубоко, вы можете все еще ищите больше возможных методов) для следующей подобной проблемы.
И когда вы решаете, что изучать дальше, изучите одну из ваших основных технологий, прежде чем приступить к изучению первых 30 дней использования еще одной технологии (это предполагает, что у вас достаточно широты знаний, чтобы фактически выполнить свою работу, если вам нужно используйте 6 технологий - сначала изучите основы всех шести, прежде чем углубляться). Затем переходите назад и вперед, изучая новые вещи на базовом уровне, изучая что-то более глубокое, а затем изучая новые технологии на базовом уровне. Если вы сделаете это с течением времени, вы обнаружите, что ваш базовый уровень того, что вы хотите от новой технологии, гораздо глубже, потому что вы понимаете более сложные вопросы, чтобы задать об этом.
Еще один способ научиться сохранять знания - научить их кому-то еще. Отвечайте на вопросы в подобных местах, представляйте учебные темы для своей команды, делайте презентации в своих локальных группах пользователей, пишите записи в блогах и помогайте поддерживать вики в вашей компании информацию, чтобы помочь другим разработчикам.