StackOverflow как суперплатформа для обучения

Переполнение стека

Имя (или божество 🙏), которое заставляет улыбаться каждого разработчика, предоставляя качественные ответы на их вопросы, касающиеся ошибок, API и т. д. Студенты учатся использовать SO самостоятельно, прокладывая свой путь в мире разработки приложений, облачных вычислений, машинное обучение или все, что работает на 0 и 1.

Итак, в этот День учителя 🎓 2021 я решил отдать дань уважения этому интернет-герою и призвать читателей не только использовать SO, но и использовать его в качестве обучающей платформы для расширения своих навыков решения проблем.

В этом руководстве обсуждаются моменты, которые могут помочь вам начать работу со StackOverflow, особенно ответы на вопросы, а также то, как стать профессионалом в этом.

Это руководство включает в себя мой личный опыт, поэтому я не смогу найти ссылки на каждое из своих утверждений. Но я уверяю читателей, что они смогут легко понять мои точки зрения, даже если они какое-то время активно использовали SO.

Я разработчик Android и TensorFlow, и вы могли заметить это впереди. Простите меня и помните, что это руководство предназначено для каждого программиста!

Итак, давайте углубимся в это.

🎓 Обучение у нашего учителя

StackOverflow как центр обучения

Большинство из нас использовали SO для устранения конкретной ошибки/сбоя или для реализации определенной функции. Некоторые разработчики среднего уровня также используют его для обновления своих существующих методов и замены его оптимизированным кодом. Тем не менее, суть заключается в устранении ошибок и сбоев, с которыми мы сталкиваемся на протяжении всей нашей карьеры в области разработки.

Есть много вещей, которые мы можем узнать из SO, помимо того, что я упомянул выше, чего также нет в официальной документации используемого вами фреймворка/языка. Это как учиться на чужих вопросах. Это может показаться странным на минуту, но может помочь нам глубже изучить структуру, которую мы используем. Если вы имеете дело с огромными фреймворками, такими как Android, iOS, PyTorch, за исключением создателей этих фреймворков, я не верю, что кто-то из нас когда-либо использовал все методы/функции/утилиты, доступные в фреймворке.

Отвечая на вопросы других на StackOverflow, мы не только помогаем им, но и получаем возможность исследовать невидимые части нашего любимого фреймворка. Лично я нашел несколько супер-наводящих на размышления вопросов, которые довольно просты, но требуют тщательного изучения. Эти вопросы — кладезь знаний, поскольку они, кажется, задают вопрос, который никто никогда не задавал (или не реализовывал ранее). Я бы рассматривал SO как учебную платформу, а не как платформу, которая выводит результаты поиска Google всякий раз, когда я ищу ошибку. Быть активным участником платформы на самом деле заставил меня понять, что может быть несколько решений одной и той же проблемы, и нам просто нужно расширить наше видение, чтобы найти эти решения.

🙄 Как начать работу со StackOverflow?

В разделе комментариев рождаются великие империи

Раздел комментариев на веб-сайте SO — это место, где вы увидите ответы на вопросы с величайшими знаниями, а также уничтожение хороших ответов. Много раз, даже если вы не являетесь активным участником SO, вы, возможно, поняли, что комментарий действительно решил вашу проблему! Это происходит со всеми, так как большинство ответов на SO остаются там годами, а структура (по поводу которой был написан ответ) полностью изменила свое лицо. Комментарии, получившие наибольшее количество голосов, обычно описывают совместимость версий или иногда совместимость устройств и даже улучшения существующего ответа (скорее всего, за счет использования какой-либо новой языковой функции или недавно представленного API) . На некоторые новые вопросы нет ответов, но косвенные ответы содержатся в комментариях под вопросом.

Будучи новичком, я мало знал об Android и TensorFlow, наряду с Java и Python. Как и у других разработчиков, у меня не было достаточно уверенности, чтобы написать подробный ответ, как это сделали другие участники (с тысячами очков репутации). Итак, я начал писать комментарии к вопросам, которые задавали новые участники. Новые участники были новичками, как и я, а также им нужны были правильные документы, закрытая проблема GitHub или ссылка на существующий ответ, который они, вероятно, не могли найти. Поверьте мне, когда пользователь, задавший вопрос, говорит "Эй, спасибо, что решил мою проблему!", это доставляет вам огромное удовольствие и уверенность, и вы думаете, что сможете покорить мир с помощью SO.

📝 Как написать хороший ответ на StackOverflow

А также победить римлян с его помощью!

Хороший ответ SO может спасти миллионы разработчиков своей элегантностью и красотой. Будучи активным участником в течение долгого времени, я обнаружил некоторые лайфхаки, которые дают ответы Аватар Джеймса Кэмерона и зарабатывают тысячи голосов и благословений. Давайте углубимся в это,

1. Расширьте существующие ответы 🛠

Много раз вы найдете вопрос, на который был дан ответ где-то еще, но он требует некоторого обледенения, прежде чем вы представите его в этом вопросе. Я видел, как это происходит в вопросах, связанных с конкретным языком программирования, где вопрос просто требует некоторых дополнительных методов или некоторой настройки в зависимости от фреймворка, для которого задается вопрос.

В любом случае, всегда полезно найти решение, прежде чем отвечать на вопрос. Если есть существующий ответ SO (или любого другого сообщества на Stack Exchange), укажите его в своем ответе и внесите необходимые изменения.

2. Официальная документация — ваш друг 📚

Я всегда был человеком, который продолжает цитировать вещи из официальной документации. Большинство фреймворков размещают свою документацию по API, и на это есть свои причины. Я использую его, когда необходимо использовать какой-либо устаревший или старый API, поскольку пользователь может напрямую ссылаться на эти документы. Официальные документы хороши тем, что они поддерживаются должным образом и содержат гораздо больше информации на хорошем языке, а также упоминают любые изменения совместимости версий.

Мы можем упустить некоторые детали, если попытаемся сами выразить использование какого-либо API, поэтому я в основном предпочитаю цитировать точные строки из официальной документации. Помимо документации, также упомяните официальные руководства по API (например, Google Codelabs, если применимо).

3. Обходные пути есть обходные пути 🩹

Лично я ненавижу обходные пути, когда вы работаете с приложением, которое будет работать в нескольких версиях. В Android большинство обходных решений терпят неудачу на определенных устройствах (от одного и того же производителя) или в определенной версии Android. Лично я не сталкивался ни с одним сбоем из-за обходного пути, но они молча терпят неудачу.

Кроме того, большинство обходных путей связаны с отсутствием некоторых API, которые в основном будут включены в будущие версии этой конкретной платформы. Лучшее, что я сделал бы, это упомянул, что «это обходной путь», а также сведения об устройстве, на котором действительно работал ваш обходной путь.

4. Предоставление ответов в длинных и кратких формах 🤑

Большинство пользователей, которые посещают SO, занимаются устранением ошибок и жаждут кода, который они могли бы использовать CTRL + C для достижения мира. Даже я сам (и я уверен, что большинство из вас) спешу решить проблему как можно быстрее, без вечернего копания в пояснениях, предоставленных пользователем. Ответы, которые охватывают все пункты, объясняют вещи так, как если бы это была квантовая физика, кажется, игнорируются перед теми ответами, которые дают только решение.

В случае, если я столкнусь с таким вопросом, на который возможен как быстрый, так и подробный ответ, я думаю сначала написать решение в меньшем количестве строк. Затем я делаю новый заголовок «Объяснение» и излагаю все свои знания, исследования и ссылки в виде других ответов SO или блогов. Эти ответы, кажется, собирают больше голосов и просмотров, чем ответы похожие на докторскую диссертацию.

😎 Улучшение ответов других — просмотр правок/ответов

Скука — это хорошо… по крайней мере, для пользователей SO

Иногда я чувствую усталость, и у меня нет топлива, чтобы ответить или даже прокомментировать StackOverflow. Я предполагаю, что это происходит со всеми нами, так как мы не рождены только для SO, и у нас есть и другие обязанности. Не волнуйтесь, мы все еще можем сделать мир лучше для разработчиков, просматривая ответы/исправления, внесенные в вопросы/ответы.

Мы можем улучшить вопросы для новых участников, улучшить форматирование кода (я делаю это в основном), исправить орфографию, теги вопросов и т. д. В буквальном смысле это намного лучше, чем просмотр веб-сериалов Netflix или Instagram, когда вы помогаете другому разработчику. в другом уголке мира.

🧪 Изучение других сайтов StackExchange для занятия хобби

StackExchange предлагает множество замечательных сообществ, будь то физика, математика, путешествия, квантовые вычисления, робототехника, электротехника, и этот список можно продолжить. Я обнаружил большинство этих сайтов в разделе самые популярные вопросы в сети в правой части SO. Эти сообщества очень привлекательны, и иногда вы будете думать, что это не для вас.

Но поверьте мне, эти сообщества являются лучшими для академических исследователей, особенно для чистых наук, таких как физика, математика, химия, биология и т. д. Просто откройте Mathematics.StackExchange, и вы увидите алхимию прямо там. Кроме того, для любителей и любознательных людей эти сайты содержат массу полезных вопросов, а также нетехнические ответы (если этого требует пользователь, задавший вопрос). Эти сообщества просто великолепны.

Спасибо

Я надеюсь, вам понравилась история, и я уверен, что вы можете поделиться с моим опытом, а также. Не стесняйтесь выражать свое мнение/предложения в комментариях ниже или по адресу [email protected].

Хорошего дня впереди!