Як програміст, якщо ви не чули про Stackoverflow, краще подумайте про це. Одна з книг з програмування, яку програмістам потрібно прочитати найбільше (насправді, достатньо залишити цю для книг з програмування!). ):
(Головна сторінка, яку Джун сильно вставив, зображення вище — це пародійне фото, деякі користувачі раніше цього не розуміли, особливо щоб це сказати) Для тих програмістів, які ще не читали книгу, настав час купити одну. Якщо ви все ще вагаєтесь, ознайомтеся з цією статтею, щоб зрозуміти, чому не можна обійтися без StackOverflow. Мудрість ставити запитання Коли ви ставите технічне питання, чи отримаєте ви корисну відповідь, часто залежить від того, як ви ставите це і продовжуєте. —— Ерік С. Реймонд Іноді чіткий опис проблеми, особливо технічної, не такий простий, як здається. Ставити запитання завжди було наукою, але, на жаль, багато людей цього не усвідомлюють або не приділяють їй достатньої уваги. Або деякі запитувачі взагалі не просять допомоги. Тож ми знайдемо вкупні питання, на які люди не можуть відповісти або не хочуть відповідати: Проблема з Java regex? Що таке час реагування SLA? У чому різниця між класами ATL і загальним спадковим класом? Щоб уникнути закриття або зміни цієї проблеми, додайте тут фото, щоб відчути цю проблему:
Ви можете знайти багато таких питань у невідповідних питаннях на SegmentFault, тому багато людей явно не мають мудрості чи настрою, щоб ставити запитання. Реймонд і Рік Моен написали класичне есе про те, як ставити запитання «Розумний шлях» (http://www.catb.org/~esr/faqs/smart-questions.html#translations), яке було перекладено різними мовами, широко поширене і доступне у китайському виданні тут. Stackoverflow і Segmentfalut також пропонують поради щодо запитань: Центр допомоги > запити Як запитати Як поставити гарне питання? Які питання вітаються? На Stackoverflow занадто багато класичних питань, і ми можемо навчитися ставити питання та спілкуватися з тими, хто відповідає на них. Коли ви звикнете читати питання на stackoverflow, ви несвідомо будете імітувати їх, уникаючи бездумних питань. Ось деякі з найважливіших питань, на які варто звернути увагу при постановці запитань: Задайте питання, на яке пошукова система не дає задовільної відповіді (Google має щонайменше чотири сторінки). Ставте питання, які ви не можете вирішити самостійно і вже багато разів пробували Спробуйте описати проблему якомога чіткіше: гарна типографіка, код, підказки на помилки, зображення тощо Зробіть свої питання корисними для інших На це питання має бути чітка відповідь, і не повинно бути надмірної суб'єктивності Різні схеми Часто ми сподіваємося знайти рішення, але на Stackoverflow часто є несподівані вигоди. Ви можете побачити різні рішення проблеми, навіть порівняння цих рішень. Припустимо, тепер ви хочете дізнатися, як викликати зовнішню команду в Python, наприклад ls -l, щоб надрукувати статтю під каталогом. Пошукайте в Google команду system call python, і перше питання стосується stackoverflow: виклик зовнішньої команди в Python. (http://stackoverflow.com/questio ... l-command-in-python) (Технічні проблеми в Google, фактично питання, пов'язані зі stackoverflow, будуть відображатися). Далі під цим питанням хтось підсумовує кілька способів викликати зовнішні команди: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() І кожен метод також впроваджується, ви можете обрати той, що підходить вашому сценарію застосування. Ще один приклад — питання: як перевірити, чи існує файл за допомогою Python? (http://stackoverflow.com/questio ... exists-using-python), який описує різні методи в Python для перевірки наявності файлу. Використання інструментів Існує багато потужних інструментів, які можуть допомогти нам краще вивчати задачі, можливо, ви знаєте інструмент налагодження gdb, можливо, знаєте модуль моніторингу часу в Python, але не знаєте інструментів, яких не знаєте. Часто, коли ми вперше знаємо інструмент, відчуваємо, що зустрічаємося занадто пізно. Однак інструменти, які вам подобаються, завжди дуже важко знайти. На Stackoverflow у кожному запитанні чи коментарі можуть бути хороші інструменти, і ви завжди матимете можливість знайти найкращі, які залишилися позаду. Ось список деяких чудових інструментів, які я знайшов: truss/strace: відстежує системні виклики та отримані сигнали під час виконання процесу, strace може відстежувати системні виклики, згенеровані процесом, включаючи параметри, повернені значення та час виконання. (З питання: Чому читання рядків зі stdin у C++ набагато повільніше, ніж у Python?) vprof: Візуальний інструмент, який аналізує характеристики програм на Python, такі як час виконання, використання пам'яті тощо. (З питання: Як можна профілювати Python?) Regex 101: Онлайн-асистент регулярних виразів, який допоможе вам зрозуміти значення регулярних виразів, налагодити регулярні вирази та провести прості експерименти. (З випуску: Вивчення регулярних виразів) Ось простий приклад Regex 101:
Процес мислення Часто, коли ми стикаємося з проблемою, ми не маємо чого почати і не знаємо, в якому напрямку думати. Але зі stackoverflow ми легко можемо знайти конкретне рішення, а іноді навіть знати, що думають інші, коли стикаємося з цією проблемою. Припустимо, ви хочете використати декоратора для виконання завдання, додаючи до і після рядка, поверненого функцією say нижче, і думаєте про визначення скажімо так. @makebold @makeitalic Обов'язково скажіть(): повернутися"Привіт" Кожен дзвінок повертається «Привіт». Але як реалізувати makebold і makeitalic — це проблема. На Stackoverflow є великі бики, які прямо дадуть відповідь і надішлють посилання на документацію декораторів. Але є й Деніелс, які детально розкажуть про свій процес мислення та розуміння декораторів, щоб ви могли глибоко зрозуміти механізм декорування. У відповідь на вищезазначене питання є відповідь, яка набрала понад 3000 лайків і розповідає, як розв'язати проблему крок за кроком. Перш за все, розкажіть, які характеристики функцій у python: Функції — це об'єкти Функцію можна призначити змінній Функцію можна визначити в іншій функції Одна функція може повертати іншу функцію Функції можна передавати як параметри Потім починайте пояснювати, що таке декоратор: це насправді інкапсулятор, який дозволяє виконувати інший код до і після виконання оригінальної функції без її змін. Простий прототип декоратора реалізується вручну, після чого вводиться синтаксис декоратора в Python. Нарешті, наведено деякі просунуті способи використання декораторів, зокрема передача параметрів декораторам. Прочитайте повну відповідь, ви точно глибше зрозумієте дизайнера і дізнаєтеся про процес мислення дизайнера. Таким чином, слідуючи цьому шляху мислення, ви самі зможете зрозуміти, як користуватися декораторами. Можливі сліпі зони Коли у вас немає запитань, ви також можете час від часу заходити на stackoverflow, переглядати питання з більшою кількістю голосів і дивитися, що інші відповіли. У цій величезній базі знань ви, ймовірно, знайдете деякі свої когнітивні сліпі плями та знайдете контент, на який раніше не звертали уваги. Я знайшов кілька цікавих питань, таких як: Друкувати в терміналі з кольорами на Python? Що таке метаклас у Python? Який ваш найпродуктивніший короткий шлях у Vim? Я склав тут список якісних питань з Python для частого звернення. Шкодую, що ми зустрілися занадто пізно Отже, як знайти StackOverflow, дві поради: Опишіть задачу точно англійською Загугліть Якщо ви не перша людина, яка зіткнулася з технічною проблемою, ви, ймовірно, знайдете таку ж або схожу проблему на StackOverflow. Зустріньтеся незабаром, закохайтеся у Stackoverflow рано, і ви побачите, що життя таке комфортне.
|