مهارت گوگل کردن

مخاطب من توی این مطلب برنامه نویس ها هستند و به خصوصی برنامه نویس های کم تجربه تر. پس محتوای این مطلب خیلی روی این موضوع متمرکزه.چطور پرسیدن …تمرکز این مطلب روی این هست که روش هایی رو بگم که برای سرچ کردن و رسیدن به جواب به کار میاد. روش های ساده ولی واقعا کاربردی.یادتون باشه که سرچ کردن یه مهارته و اصلا نشونه ضعف نیست.فارسی سرچ نکنید (تا جای ممکن)متاسفانه و متاسفانه در محتوای فارسی بسیار مشکل داریم! خیییلی کم پیش اومده من جواب مشکلم رو با سرچ فارسی پیدا کنم.مقایسه کنید با نتایج انگلیسییا این یکی که اصلا نتیجه نداد:واقعا بعضی چیز ها رو نباید فارسی سرچ کردفارسی سرچ کردن معمولا زمانی به درد من خورده که میخواستم یه نرم افزار کرک شده دانلود کنم یا کارای شبیه به این.پس اولین قدم اینه که زبانتون رو تقویت کنید تا جایی که میتونید. هیچ بهانه ای قابل قبول نیست. اگر زبانتون خوب نیست یه فکری براش بکنید وگرنه خیلی اذیت میشید.عبارت How toاولش یه how to بنویسید و بعدکاری که میخواید انجام بدید. تقریبا هرکاری که شما قصد شروع کردنش رو داشته باشید رو قبلا یکی انجام داده یا براش سوال شده و این عالیه!مثلا اگه میخواید یه اپلیکیشن چت بنویسید:سعی کنید تا جایی که ممکنه، عبارتی که سرچ می‌کنید دقیق باشهیه مثال دیگه:خیلی بعیده بخواید کاری رو انجام بدید و نتونید روشش رو پیدا کنید!من اول همین دو تا عبارت رو به صورت فارسی بالا تر نوشتم و دیدید که نتایج خیلی متفاوت بود.عبارت Not workingاین روش زمانی به کار میاد که به نظرتون یه چیزی درست کار نمیکنه. مثلا توی اپلیکیشنی که نوشتید نیاز به لوکیشن دقیق کاربر هست. همه کد ها سرجاشون هستند و هیچ اروری هم وجود نداره. انتظار دارید که درست کار کنه ولی به دلیلی این اتفاق نمیوفته! مشکل اینجاست که خطایی هم در کار نیست و بنابراین سر نخی هم وجود نداره. پس اتفاقی که انتظار دارید بیوفته رو گوگل کنید (تا جای ممکن دقیق بنویسید) و در انتهاش یه not working هم اضافه کنید.این مثال ها رو ببینید:نتایج اول همیشه بهترین جواب هستندیاعبارت not working انتهای جملهمعمولا این روش زمانی بیشتر کاربرد داره که همه چیز به نظرتون سر جای خودشه و پیام خطایی هم نداریم ولی چیز ها اونطور که باید کار نمیکنند.کپی،پیست کنیداین روش خیلی کاربردی و مهمه. نکته اصلی اینه که هر خطایی که بهش برخوردید مطمین باشید که قبلا یک نفر دیگه هم دقیقا به همون خطا برخورده و براش سوال شده. قطعا اگر شما پیام خطا رو کپی و پیست کنید میتونید به جواب برسید.این مثال رو ببینید:من از zsh استفاده میکنم و بعد از اجرای این دستور، میبینیم که اون خطا رو دادهخطا:zsh: no matches found: postcss@^7خیلی راحت همینو کپی میکنم و نتایج:جواب رو توی اولین نتیجه پیدا کردم.از این مثال ها خیلی زیاد میشه زد. خیلی راحت هر جا به ارور های این شکلی برخوردید همونو دقیقا کپی کنید و توی گوگل سرچ کنید.یکی دیگه:این یکی توی ری‌-اکت اتفاق افتادهبعد از کپی و پیست کردن ارور:مجدد جوابم رو توی اولین نتیجه پیدا کردم.بپرسیداین مورد خیلی به گوگل کردن ربطی نداره، بعضی وقت ها شما ممکنه بعد از جستجو هم نتیجه مورد نظرتون رو پیدا نکنید. از اینکه سوال بپرسید نترسید. میتونید سوالتون رو توی Stackoverflow مطرح کنید که کار جذابی هم هست و نشون میده شما به هر شکل ممکن دنبال جواب هستید.من یادمه سال ۲۰۱۶ خیلی توی این زمینه فعال بودم! هم سعی میکردم سوال جواب بدم و هم سوال خوب بپرسم. یکی از سوالاتی که پرسیدم و بازدید خیلی زیادی هم داشت این بود: https://stackoverflow.com/questions/51009090/sort-and-group-objects-alphabetically-by-first-letter-javascript پس از پرسیدن هم نترسید. خیلی کمک میکنه به تقویت بقیه مهارت های شما.چطور جواب درست رو پیدا کنیمخب مشخصه که جواب درست جوابیه که کار کنه وگرنه درست نیست! خب این جمله خیلی احمقانه است ولی نکته اصلی اینجاست که "فقط" کار کردن مهم نیست. خوانایی و مختصر بودن و سادگی راه حل هم خیلی مهمه. خب این ها رو از کجا میشه متوجه شد؟ معمولا سایت هایی که برای اینکار ها در نظر گرفته شدن یه سیستم برای امتیازدهی به سوال و جواب ها دارند که الان با هم یه نگاهی میندازیم بهشون.سایت Stackoverflowاگر جواب راه حلتون رو روی سایت stackoverflow پیدا کرده باشید میتونید ببینید که هر جواب چندتا رای مثبت گرفته و چندتا رای منفی. برای اینکه کسی بتونه به پستی یا سوالی رای مثبت و منفی بده باید یه مراحلی رو گذرونده باشه و اینطوری نیست که هر کسی دوست داشت بیاد یه رای بده و بره که این یعنی حتی رای ها هم با حساب و کتاب داده میشن و الکی نیستن، واقعا به این میگن یه Gamification درست و حسابی. این رو ببینید:این لیست ۳ تا از سوالاتی هست که بیشتری تعداد vote رو دارند.همینطور که میبینید برای هر کدوم از سوالات تعداد خیلی زیادی جواب داده شده. و البته رنگ سبز باکس answers هم نشون میده که یکی از جواب ها رو کسی که سوال رو پرسیده، به عنوان بهترین جواب انتخاب کرده.سوال اول خیلی جالبه! ۹۹۶۳ نفر رای دادن و ۱۱۲ نفر جواب دادن! البته همه این رای ها برای جواب نیست. دقت کردید دیگه؟ یعنی اینطوری هم نبوده که یه نفر بیاد جواب رو بده و بقیه دیگه بیخیالش بشن. اینطوریه که راه حل های متنوعی میتونیم برای مشکلات پیدا کنیم و اونی که بالاترین رای رو داشته احتمالا بهترین جواب هم بوده.سوال ساده ای هم هست اما خیلی مهم.رای های سوال هم ۹۹۶۳ تا هست که نشون میده سوال خیلی خوبی بوده.اینجا چندتا نکته هست که باید بهش توجه کنید:تاریخی که سوال پرسیده شدهمهمه که ببینید چه زمانی سوال پرسیده شده، ممکنه سوال خیلی خیلی قدیمی باشه و الان در زمان حال چنین سوالی دیگه اهمیت نداشته باشه یا باگی بوده که به مرور زمان توسط توسعه دهنده های زبان یا کتابخونه حل شده باشه.آخرین activity اش چه زمانی بودهآخرین فعالیت یعنی آخرین باری که کسی اومده و سوال رو ادیت کرده یا جوابی اضافه کرده (اگر این مورد رو دقیق تر میدونید توی کامنت ها بنویسید). نکته مهمش اینجاست که اگر آخرین فعالیت این سوال، نزدیک بود به زمانی که سوال پرسیده شده و همچنین سوال هم در زمان های خیلی دور پرسیده شده ممکنه اصلا جای درستی برای پیدا کردن پاسخ درست نیومده باشید.سوال چی بودههمونقدر که جواب سوال مهمه، صورت سوال هم مهمه. امکانش وجود داره که عنوان سوال طوری پرسیده شده باشه مشکلی رو بخواد حل کنه که مشکل شما نیست. حتما صورت سوال رو با دقت بخونید و مطمئن بشید که با مشکل شما همخوانی داره.بعد از خود سوال میرسیم به جواب هاش:جوابش خیلی طولانی بود، این فقط یک بخشی از جواب هست.اون تیک سبز رنگ نشون میده که این جواب تایید شده و راه حلی که ارائه داده کاملا قابل اعتماده. عدد ۱۴۴۳۰ هم که نشون دهنده تعداد رای های مثبتی هست که گرفته که اعتبار جواب رو چند برابر میکنه.پس نکته مهم در مورد پیدا کردن جواب از stackoverflow اینه که سوال و جواب خیلی قدیمی نباشن، جواب حتما تایید شده باشه و صورت سوال با سوال شما همخوانی داشته باشه.سایت Githubممکنه جواب سوالتون رو توی گیت‌هاب پیدا کنید. البته قسمت Issues. معمولا زمانی جواب هایی رو اینجا پیدا میکنید که به یک خطا برخورده باشید و از اونجا که ممکنه به خاطر یک باگی در خود کتابخونه یا تکنولوژی باشه، یا نکته ای بوده که توی مستندات پروژه بهش اشاره نشده باشه، توی ریپازیتوری خودش به صورت یک issue مطرح شده.توی این مثال نگاه میندازیم به کتابخونه moment که در واقع کتابخونه ای هست برای کار کردن با تایم.توی قسمت issues این مساله مطرح شدهمجدد همونطور که گفتم خوب توجه کنید که سوالی که پرسیده شده سوال شماست. مثال هایی که من اینجا آوردم برای نشون دادن نکته های سوال و جواب هستند و شاید خیلی واقعی نباشند(از این نظر میگم که من فقط اسکرین‌شات گرفتم و درگیر مساله مشابهی در زمان نوشتن مطلب نبودم) بنابراین روی این موضوع خیلی دقت کنید.تعداد فیدبک هایی که سوال ها و جواب هاشون میگیرن اهمیت داره. خوبی گیت هاب اینه که این انجمن ها معمولا توسط خود سازنده های کتابخونه یا اون تکنولوژی مدیریت میشن. بعضی وقت ها هم خودشون مستقیما جواب سوالات رو میدن که این خودش خیلی نکته مثبتیه.یکی از اعضای توسعه دهنده این کتابخونه اومده و جوابش رو دادهراه حلی که ارائه داده رو میبینیم که هم کامله و هم بازخورد های خوبی گرفته. بازخورد ها میتونن هم منفی باشن هم مثبت. بعضی وقت ها توی گیت‌هاب ممکنه این علامت رو هم ببینید:که نشون میده به عنوان جواب درست برای سوالی که پرسیده شده انتخاب شده.سعی میکنم اگر نکته دیگه ای به ذهنم رسید بنویسم حتما، شما هم میتونسد کمکم کنید و توی کامنت ها اکر راه حل دیگه ای میشناسید معرفی کنید.