У вас уже есть несколько хороших ответов, но позвольте мне добавить небольшой поворот…
Мне нравятся люди, использующие документацию, и это отличный знак вашего профессионализма.
Не используя документацию
я знаю достаточно программистов, которые спотыкаются без реального плана на долгие промежутки времени, пробуя то и другое случайно, пробирая старые исходные тексты там, где, кажется, уже сделано (но не совсем) и так далее. Честно говоря, я ненавижу такой подход. Они никогда не заходят далеко, часто вынуждены спрашивать у людей, редко прислушиваются к советам и предпочитают продолжать в том же духе вечно, казалось бы.
Только учебники?
Люди часто ищут учебники или фрагменты кода, включая SO, withwith никогда не ссылаются на документацию, раздражайте меня до бесконечности. Это поведение, на мой взгляд, огромная ловушка. Оно приводит к своего рода программированию, подпитываемому полузабудочными, произвольными, несистематическими “знаниями”. Эти программисты имеют тенденцию заканчиваться множеством предрассудков. Вот откуда берутся такие самородки, как “никогда не используй git rebase
”, “никогда не используй not in
в SQL”, “всегда делай XXX”, “никогда не делай YYY”. Им будет очень трудно придумать что-то из коробки, придумать новые идеи, сформировать интуицию о том, как структурировать свои приложения и все такое, что делает их отличными разработчиками.
Я бы призвал вас сначала решить любую проблему, посмотрев документацию/ссылку, а then ищите SO или другие фрагменты.
Конечно же, есть исключения. Если ваша проблема - это что-то вроде ошибки, или что-то очень, очень, очень особенное, что вряд ли может быть обработано в какой-нибудь документации (например, специальная комбинация библиотек/модулей и т.д.), то обязательно перейдите прямо к SO.
Если это что-то, что можно легко разобрать по документации/API, то я бы посоветовал сесть и поработать над этой конкретной частью вашего языка программирования / библиотек и т.д., чтобы ваши знания стали теснее.
Документация
Лучший вид для меня - это программист, который, сталкиваясь с новой темой, тратит время на то, чтобы по-настоящему сесть, покопаться в ней, получить хороший обзор и хорошие технические знания. В большинстве случаев это достигается (опять же, по моему опыту, со многими языками программирования, с которыми я контактировал) чтением старой доброй документации, включая ссылки на API и так далее.
я не нахожу странным читать, например, старую классику C++ (старую добрую бумагу), Gang of Four Design Patterns, (он-лайн версию) “Programming Ruby” manual, очень хорошо сделанные Perl manpages, книгу Git, некоторые RFC, HTML/XML/etc. спецификации и т.д. спереди и сзади. Я бы делал и делал это даже в свободное время и, честно говоря, ожидал бы этого от любого программиста, стоящего его соли (в зависимости от того, с чем они работают, очевидно). Я также прекрасно понимаю, что я (по крайней мере, в компаниях, в которых работал, в последние десятилетия) совершенно один с этим мнением.
(N.B.: Очевидно, что не нужно запоминать огромные списки ссылок на API, но хотя бы замалчивать их, чтобы посмотреть, что доступно и в чем “дух” API, кажется. )
После тщательного изучения темы, then пришло время взглянуть на сторонний код для вдохновения, или посмотреть на старые вопросы по SO (или задать новые вопросы самостоятельно).
Вы также можете обнаружить, что когда вы поглотили одно поле, как это, очень легко найти ответы, увеличив масштаб прямо в мясо, откуда вы получаете вашу документацию (man-страницы и т.д.). На данный момент автозавершения вашего редактора также может быть уже достаточно. И вы можете довольно скоро узнать, когда что-то просто невозможно с помощью инструмента, с которым вы работаете, что экономит много бесполезных поисков.