Поиск ответов на вопросы и решение проблем с помощью Гугла — важнейший навык для программиста. Большинство проблем, с которыми сталкивается новичок, уже решены и описаны. Нужно лишь научиться находить эти решения и ответы.
- Сайты
- Язык
- Поисковая система
- Язык запросов
- Поиск библиотек
- Поиск по сообщению об ошибке
- Поиск по поведению
- Официальная документация
Сайты
Основные сайты с ответами на вопросы:
- GitHub
- Stackoverflow
Язык
Как показывает практика, в самом начале своего пути немалая часть программистов пытается найти ответы, задавая вопросы поисковой системе на русском языке. Иногда так можно найти ответ, но в большинстве случаев — нет. Главный язык программистов — английский, весь мир говорит именно на нем. Количество информации в англоязычном сегменте на порядки больше, чем в русскоязычном. К тому же она свежее. Учитесь формулировать свои мысли, а в случае поиска — набор слов, на английском. Заодно быстрее изучите терминологию.
Поисковая система
Связано с предыдущим пунктом. Искать нужно в Гугле. Яндекс хоть и хорош для определенных задач, все же англоязычный сегмент — не его основной рынок, и там он значительно уступает Гуглу. Например, вы заметите, что через некоторое время Гугл адаптируется к вашим запросам и начнет показывать более релевантные ссылки. Он вполне способен понять, какой язык программирования вы предпочитаете, чтобы показывать ответы, применимые именно к нему.
Еще один важный момент. Гугл даже лучше, чем специфические поиски конкретных сайтов. Если вам нужно что-то на том же Гитхабе, то лучше сформировать правильный запрос в Гугле и получить результат лучше и быстрее. Ниже, в разделе «язык запросов» об этом рассказано подробнее.
Язык запросов
Каждая поисковая система обладает языком запросов. В него входят специальные операторы, позволяющие более точно указать то, что вы хотите. Вот некоторые важные возможности:
site:stackoverflow.com how to test react code
— поиск будет произведен среди страниц сайта Stackoverflow.add class to element -jquery
— дефисом обозначаются стоп-слова, то есть будут найдены все варианты, в которых эти слова не упоминаются."immutable js"
— двойные кавычки указывают на то, что нужно искать точное совпадение.
Полный список можно найти на сайте поддержки Гугл.
Поиск библиотек
Подавляющее большинство библиотек находятся (говорят, «хостятся») на Гитхабе. Предположим, понадобилось найти библиотеку для выполнения HTTP-запросов в JavaScript. Для этого можно сформировать следующий запрос: github js http client
. Гугл выдаст десяток ссылок на разные репозитории. Конечно, можно использовать и язык запросов: site:github.com js http client
, но чаще всего достаточно просто указать github
.
Точно такая же стратегия поиска может использоваться для библиотек с известным названием: github express
.
Поиск по сообщению об ошибке
Перед тем, как искать по сообщению об ошибке, нужно понять, где же тут сообщение об ошибке. Часто вывод с ошибками содержит много информации, которая хоть и относится к делу, но не является описанием той самой ошибки. Пример:
There was 1 failure:
1) App\SolutionTest::testResult with data set #2 (0, 2, 2, 1, 2)
Failed asserting that '1' matches expected 0.
/usr/src/app/tests/App/Tests/SolutionTest.php:15
FAILURES!
Tests: 3, Assertions: 3, Failures: 1.
Makefile:2: recipe for target 'test' failed
make: Leaving directory '/usr/src/app'
make: *** [test] Error 1
В этом выводе много текста, но реальное сообщение об ошибке только одно: Failed asserting that '1' matches expected 0.
. Конкретно в этом случае примерно понятно, что не так и куда смотреть (в стектрейсе ниже указан файл и строчка). Но так бывает далеко не всегда. Если вам удалось точно идентифицировать сообщение об ошибке, то не лишним будет сделать еще кое-что. Часто подобные сообщения индивидуальны. В них подставляются конкретные значения каких-то параметров, относящихся именно к вашему окружению. Например, пути до файлов. Соответственно, если вы будете искать по всему тексту ошибки, то скорее всего Гугл ничего не найдет. Например, в сообщении выше такими параметрами являются '1'
и 0
. Если очистить фразу, то получится Failed asserting that matches expected
. Именно её и надо искать. Не лишним бывает добавить имя языка: php Failed asserting that matches expected
.
Поиск по поведению
Нередко сообщение об ошибке либо отсутствует, либо не может привести к правильному ответу (потому что оно — следствие, а не причина). В этой ситуации нужно проявить креативность и составить предложение на английском языке. Набор ключевых слов тоже подойдет. Если поиск не увенчался успехом, то к поисковой фразе полезно добавить site:stackoverflow.com
. Stackoverflow — место, где есть ответы практически на все подобные вопросы.
Если известно, к какой библиотеке или программе относится ошибка, то полезно найти её репозиторий на Гитхабе и поизучать раздел Issues. Если ошибка действительно есть, и она актуальная, то почти наверняка о ней уже кто-то отписался.
Официальная документация
Поиск — это хорошо, но никогда не забывайте про официальную документацию используемых инструментов (в том числе языков программирования). Официальная (и не только) документация, как правило, делится на несколько видов:
- Getting Started — небольшое (не всегда) пошаговое руководство по созданию минимально рабочей версии. Первым делом нужно искать именно этот документ. Он позволяет быстро стартануть чтобы посмотреть инструмент в деле.
- Guides — описания компонентов рассматриваемого инструмента. Написаны в повествовательной манере, что позволяет их прочитывать от и до. По гайдам удобно изучать большие блоки.
- API — сухая документация по всем возможным функциям приложения. В нее имеет смысл смотреть только для поиска ответов на конкретные вопросы.
- Tutorials — в отличие от гайдов, направлены на различные варианты использования инструмента.