براستی چگونه وارد حوزهی علم داده شویم؟ با توجه به کاربرد فراوان و بازار کار عالی رشتهی «علم داده» و یا «دیتا ساینس» بسیاری از عزیزان با بنده تماس میگیرند و میپرسند:
“چطور وارد این رشته و حوزه بشویم؟ از کجا شروع کنیم؟ چه کتابهایی بخونیم؟“
در ادامه قصد دارم پاسخ این سوال را به سادهترین شکل ممکن بدهم. پس برای دقایق کمی با بنده همراه شوید. قبل از شروع به مطالعه بد نیست که ابتدا مقالهی «دیتا ساینس یا علم داده» را بخوانید.
ابتدا چند توصيهي كلي:
- برای ورود به این رشته، اصلاً نیازی ندارید که با خواندن کتابهای تخصصی کار خود را آغاز کنید. در واقع این کار کاملاً اشتباه است. چون ماهیت این رشته عملی است و عموماً در کتابها، نمیتوانید کارها و پروژههای صورت گرفتهی پیشین را ببینید و بیاموزید. خواندن کتاب و مقالات تخصصی را کمی به تعویق بیاندازید.
- با دیدن فیلمهای آموزشی شروع کنید. امروزه، بدون نیاز به حضور در دانشگاهها و نشستن پشت صندلیهای کلاس، براحتی میتوانید با دنبال کردن برخی از کانالهای یوتیوب و یا از آن هم بهتر، دورههای کورسرا و یودمی و یا … به نتیجه مطلوب خود برسید.
- اگر کلاس حضوری خوب و استاندارد پیدا کردید، حتماً بصورت حضوری در کلاسها شرکت کنید. تنها دلیل اینکار، این است که شما در این جمعها به احتمال زیاد وارد یک تیم کاری خواهید شد. امری که با کنج منزل نشستن و فقط فیلم و دورهی آموزشی دیدن و چرخیدن در صفحات اینستاگرام، محقق نخواهد شد. یادتان باشد که علم داده یک رشته و فعالیت کاملاً گروهی است و باید (Team Work) را بیاموزید و تا حد ممکن انعطافپذیر باشید.
- کسی که دانش ریاضی قوی ندارد، به احتمال زیاد در این رشته موفق نخواهد شد اما، گاهاً مشاهده شده که دوستانی از رشتههای علوم انسانی و هنر، بسمت این رشته رفتهاند و موفقیتهای چشمگیری کسب کردهاند. پس درست است که دانش ریاضی و مهارت کدنویسی، جزوء اولین ضرورتهای ورود به این رشته است، اما اگر به اندازهی کافی تلاش کنید و منابع خوب و مناسبی برای رفع ضعفهای ریاضی و کدنویسی خود بیابید، کار نشد ندارد، اما شاید کمی نیاز به زمان بیشتر داشته باشد.
- با دیدن، دورههای آموزشی مختلف، شما میتوانید ادعا نمائید که تقریباً 70 درصد راه را پیمودهاید. اما ادامهی مسیر چطور باید طی شود؟. برای طی مابقی مسیر و تبدیل شدن به یک متخصص علم داده، فقط و فقط زبان انگلیسی، دستگیر شما خواهد بود. چون در سطح بالا، در این حوزه منبع خوب به زبان فارسی نداریم. شما خودتان، بر حسب موضوعی که در حال پیگیری و مطالعهی آن هستید، باید افراد متخصص در آن زمینه را در جاهای مختلف دنیا بیابید و سعی کنید با ایشان ارتباط برقرار نمائید. پس حتماً از ابتدای شروع به کار، مطالعهی زبان باید بخشی از جدول روزانهتان باشد. در غیر اینصورت، شما هیچگاه تبدیل به یک متخصص دادهی ارشد نخواهید شد و تنها وارد پروژههای کوچک که طبیعتاً پول کوچکی نیز دارد، میشوید. پس تلاش کنید که در کمترین زمان ممکن، تبدیل به یک فرد ارشد در رشتهی مد نظر، شوید.
- در حین گذراندن دوره (حضوری و یا آنلاین) اگر احساس نیاز کردید، کتابهای موجود را فقط در حد رفع نیاز بخوانید. اصلاً نیازی ندارید که کل کتاب را از ابتدا تا انتها بخوانید. این امر فقط برای آندسته از افرادی که کار دانشگاهی و تحقیقاتی انجام میدهند، لازم است. برای کسی که در حال انجام یک پروژه و کار میدانی است، زیاد بکار نخواهد آمد. مثلاً اگر شما از رشتهاي وارد علم داده شديد و آشنايي زيادي با بحث ساختمان دادهها نداريد، اصلاً نبايد يك كتاب ساختمان داده را بدست گرفته و از ابتدا تا انتهاي آنرا مطالعه كنيد. باز هم تكرار ميكنم، فقط در حد رفع نيازتان، از كتاب مطالعه كنيد.
- گمان نکنید که بهترین نقشه و مسیر راه، آن موردی است که دقیقاً برای شما، مواردی را که باید در طی یک الی دو سال پیشرو یادبگیرید، معرفی نماید. تنها شروع کنید. خیلی زود بهترین پلتفرمها و زبانهای برنامهنویسی را خودتان با توجه به شرایط پیشرو، یاد خواهید گرفت. بعضاً نیازی به دانستن حجم عظیمی از پیشنیازهای علم داده نیست. شرایط پروژه و کارهای پیشنهادی، این مسیر را برای شما مشخص میکنند.
يك مسير راه خلاصه براي شروع كار:
چگونه وارد حوزهی علم داده شویم؟ اين مسير به سه مرحلهي، مبتدي، متوسط و پیشرفته تقسيم ميگردد و براي هر بند، سعي كنيد كه يك بازهي يكماهه را دنبال کنید.
مبتدی:
- از برنامهنویسی آغاز کنید. برنامهنویسی قلب علم داده است. عموماً دو زبان پایتون (Python) و اس.کیو.ال. (SQL) برای مبتدیان توصیه میشود. بعضی از افراد نیز در کنار این دو زبان، زبان آر (R) را توصیه میکنند.
- مرحله دوم ریاضی است. یعنی شما باید دانشی نسبتاً مناسب از جبر خطی، ریاضیات عمومی، احتمالات و آمار داشته باشید. اگر برنامهنویسی قلب علم داده باشد، ریاضی مغز آن است.
- دانش شهودی از مباحث. سعی کنید کدهایی را که در زبان پایتون یا سایر زبانها مینویسید را کاملاً درک کرده و از پشت پردهی محاسبات آن مطلع باشید. سعی کنید که کمتر از کتابخانهها استفاده نمائید و در عوض، کدهای مربوط به کار در دست را خودتان بنویسید. اینکار کمکتان میکند که مباحث را بهتر درک و لمس کنید.
- رسماً وارد دنیای کتابخانههای مختلف در پایتون شوید. از پانداس (pandas) گرفته تا سای.کیت.لرن (scikit-learn). در این مرحله سعی کنید که تک تک کتابخانههای مورد نیاز برای علم داده را تا حد مطلوبی فرابگیرید. لیست برخی از این کتابخانهها به شرح ذیل است:
- پانداس (Pandas)، تحلیل دادهها
- مت.پلات.لیب (Matplotlib)، ترسیم دادهها
- نامپای (Numpy)، عملیات ریاضی و محاسباتی روی دادهها
- سای.کیت.لرن. (Scikit-learn)، پیادهسازی الگوریتمهای یادگیری ماشین
- ان.ال.تی.کی (NLTK)، پردازش زبان طبیعی
- استتز.مادل (Statsmodels)، انجام تحلیلهای آماری روی دادهها و برخی از الگوریتمهای یادگیری ماشین
متوسط:
- آنالیز اکتشافی (EDA- exploratory data analysis) و الگوریتمها را بهتر و عمیقتر یاد بگیرید. در این مرحله باید بتوانید با مصورسازی دادهها، بهتر و عمیقتر وارد بحث پیشپردازش شده و بخوبی بتوانید از پسِ آمادهسازی دادهها برای ورود به مرحله استفاده از الگوریتمهای یادگیری ماشین برآیید. بعد از یادگیری بهتر فرایند پیشپردازش، وارد دنیای الگوریتمهای مختلف یادگیری ماشین بشوید که در بند 4 دورهی مبتدی آموختید. تا میتوانید سعی کنید که از این الگوریتمها روی دیتاستهای مختلف استفاده کنید.
- تمرین، مطالعهی مجدد و تجدید نظر در برخی از آموختهها. بعضی وقتها دقیقاً چیزی که شما نیاز دارید، یک استراحت کوتاه هست. در این دورهی استراحت سعی کنید وارد مبحث جدیدی نشوید. تنها همت کنید و آموختههای قبلی خود را مجدد بخوانید. هر جا که مطلب را در مرحلهی اول یادگیری، خوب نیاموخته بودید، سعی کنید که در این مرحله آنرا با دقت و تمرکز بیشتر بخوانید و بیاموزید.
- سئوال و مسئلهی خود را بیابید و سعی کنید که بیشتر دادههای قبلی را آنالیز و واکاوی نمائید. تا میتوانید آموختهها و کتابخانههایی را که با آنها آشنا شدید، زیر سوال ببرید و تلاش کنید که ذهن خلاق خود را برای کشف مشکلات در سیستمهای موجود پرورش دهید. همیشه کارهایی که در قبل انجام شدند، کامل و بی عیب و نقص نیستند. اگر بدنبال نقصهای آنها و کارهای خود باشید، در آینده با اشتباهات کمتری در طول کار خود مواجه خواهید شد.
- سوالی را که در قسمت قبل یافتید، سعی کنید در این ماه، آنرا بصورت عملی، نه تنها روی کاغذ، حل کنید و کدهای مربوز به آنرا نیز بنویسید. سعی کنید کاری را که انجام میدهید، از سطح سوادتان خیلی بالاتر نباشد. اگر سوال و پروژهی در دستتان، سنگین باشد، شاید باعث سرخوردگی در شما شود. پس توصیه میشود که از پروژههای معقول و سبک شروع کنید. هیچ موردی ندارد که از سایتهایی که دیگران پروژههای درسی کوچک خود را قرار میدهند، پروژه انتخاب کنید و انجام دهید. هیچ کسی از ابتدا، وارد گوگل نشده است. پله پله شما میتوانید به رفیعترین قلهها و عظیمترین پروژهها برسید.
پیشرفته:
- تحقیق کنید. دیگر در این مرحله شما از کتابخواندن و مقاله خواندن نهی نمیشوید. برعکس. در این مرحله شما فقط باید کتاب و مقاله بخوانید و حتی سعی کنید که نتایج کارهای و مطالعات خودتان را نیز بنویسید. یادتان باشد که شاید با خواندن ده کتاب، فقط یک درصد به توانایی شما بعنوان یک متخصص علم داده افزوده شود. در این مرحله پیشرفت تمام افراد به این صورت است. سرعت بسیار پائین میرود، بر خلافهای ماههای نخست.
- در این مرحله دیگر باید وارد پروژههای واقعی شده و دیگر اصلاً نباید از سختی کارها بترسید. باید کار و پروژهی پیشنهادی انجام شود. چون شما در مرحلهی قبل با فرایند یادگیری مطالب جدید، با خواندن چند کتاب و مقاله آشنا شدید. هر پروژهایی را که بشما پیشنهاد شد، بگوئید بلدم و انجام میدهم. بعد بسرعت با مطالعهی چند کتاب و مقاله و یا دیدن چند ویدیو در یوتیوب با کلیت کار پیشنهادی آشنا خواهید شد. پس فراموش نکنید، از این مرحله به بعد، همیشه بگوئید بلدم و انجام میدهم.
- در مسابقات شرکت کنید. هدف اول شدن نیست. هدف به چالش کشیدن تواناییهای خودتان است. سعی کنید در کگل (kaggle) عضو شده و از مسابقاتی که برگزار میکنید مطلع باشید. از هر کدام از آنها خوشتان آمد، حتماً شرکت کنید. اصلاً برایتان مهم نباشد که قرار است برنده شوید یا بازنده. خیلی از افراد از همین مسابقات کگل استعدادیابی شده و وارد کمپانیهای بسیار بزرگ شدهاند.
- مثل هر حوزهی دیگر، تمرین کنید (Practice makes perfect or maybe awesome). یادتان باشد که کلیدِ نهایی برای موفقیت در هر چیزی، تمرین است. تمرین، تمرین و تمرین کنید.
اما سه خطای یک دیتاساینتیست که با ما به اشتراک میگذارد:
سه مورد که در ذیل آورده شده، خلاصهای است از این مقاله که در وبسایت (Towards Data Science) چاپ شده است. سعی کنید از این تجربیات که بطور خلاصه آورده شده، نهایت استفاده را ببرید.
۱- تماشای ویدیوهای آموزشی، باعث فهم موضوع میشود، اما متضمن یادگیری شما نیست. تا میتوانید، تمرین کنید. من اینکار را نکردم، در واقع کم تمرین انجام دادم. اینروزها در حال جبران کمکاریهای دوران یادگیریم هستم.
۲- از زبان SQL غافل نشوید. تمام کارهایی که کتابخانهی پانداس برای تحلیل دادهها انجام میدهد را میتوانید بنوعی با SQL انجام دهید. من در حال حاضر، تمام وقتم را روی SQL میگذارم ولی با توجه به محدودیت زمانم، کند پیش میروم.
۳- به جای انجام تعداد زیادی پروژه، سعی کنید تنها یک یا دو پروژهی بزرگ را به سرانجام برسانید. بعد از اینکه وارد محیط کار شدم فهمیدم که برای کارفرماها، مهم تعداد پروژههای انجام شده از سوی من نیست، بلکه کیفیت و اهمیت چیزی است که انجام دادهام. پس شما سعی کنید خود را درگیر چیزی کنید که اهمیت بیشتری دارد، حتی اگر زمان زیادی را بطلبد.
پینوشت:
بخشی از این نوشتار، از مقالهی منتشر شده در وبسایت (Towards Data Science) در این آدرس، اقتباس شده است. اگر به عناوین علاقمند بودید، توصیه میشود که متن اصلی مقاله را نیز مطالعه فرمائید. اکثر مقالاتی که بنده به زبان انگلیسی مطالعه میکنم را در کانال تلگرامِ «علم داده» قرار میدهم. اگر بدنبال یک دورهی آموزشی کامل و صددرصد رایگان از علم داده میگردید، به کانال یوتیوب «علم داده» سر بزنید و عضو شوید.
سوالهای احتمالی خود را در قسمت نظرات بنویسید. در اسرع وقت پاسخ شما را خواهم داد. در صورتی که نیاز به مشاوره و راهنمایی بیشتر در این حوزه داشتید، میتوانید از طریق این صفحه، وقت مشاوره بگیرید تا به بهترین شکل ممکن، مسیر درست را به شما معرفی نمائیم.
14 پاسخ
بسیار عالی بود آقای دکتر . قطعا بارها و بارها مطالعه می کنم و نکات و متدها رو در نظر می گیرم. همراه شما هستم
خواهش عزیزم، به امید موفقیت چشمگیر برای شما و سایر عزیزانم
درود برشما جناب دکتر
بنده میتونم تلفنی وقت شمارو کوتاه بگیرم
لطفا
سلام. شمارتو در پاسخ به این پیام بزار. تماس خواهم گرفت با شما
سلام آقای دکتر
چجوری می تونم پروژه برای تمرین پیدا کنم؟
سلام رفیع جان
برو تو سایت کگل (kaggle.com) عضو شو، معمولاً هر ماه یک مسابقه برگزار میکنند که میتونی اونجا مسئلههای واقعی رو ببینی. فقط باید توجه کنی که پروژهها و مسئلهها به اندازهی تواناییهات باشند.
عرض سلام و وقت بخیر خدمت دکتر فزونی
بنده دانشجوی آموزش ریاضی هستم.
میخوام برای ارشد، گرایش علم داده رو بخونم.
اگر بخوام تا قبل از ارشد که حدودا یک سال و دو ماه مونده، به صورت سلف استادی یاد بگیرم. آیا میتونم تا اون موقع پروژه بگیرم یا تو شرکتی مشغول به کار شم.
حدودا چقدر طول میکشه تا یک دیتا ساینتیست شد. میدونم که قانون کلی وجود نداره و بستگی به شرایط هر شخص داره.
ممنون میشم بنده رو راهنمایی بفرمایید. با تشکر
سلام محمد جان
برای کسی که اصول کلی پژوهش رو یاد داره و زبانش هم خوبه، بنظرم یکسال. البته شخص، باید منطق ریاضی قوی هم داشته باشه.
برای افرادی که زبانشون زیاد تعریف نداره، من فکر میکنم یکسال و نیم تقریباً زمان نیاز هست.
اگر مهارتهات زیاد و خوب باشن و اگر بتونی برای خودت یه تیم پیدا کنی، صد در صد میتونی پروژه بگیری. در دیتاساینس بشدت باید روابط عمومی بالایی داشته باشی.
ممنون از مطالب بسیار مفیدتون. حتمن توصیه هاتون رو انجام میدم??
سلام…من رشته اقتصاد پیام نور میخونم….امکانش هست برای دکتری دیتاساینس در آمریکا اقدام کرد و دو سال بعدش انصراف داد و مشغول به کار شد ؟اگر بله چه توانایی هایی باید داشته باشم غیر از نمره تافل خوب و معدل خوب؟
سلام علی جان. در حالت کلی نیاز به چیز خاصی نداری، به جز عزم جزم.
سلام.عيد شما مبارك
سوالم اينه كه فرض كنيد تحصيلات من در غير از رشته رياضي، آمار و علم داده باشه. به تبع پايان نامه و كاراي پژوهشي هم در همان زمينه علمي خودم خواهد بود.
اگر من بخوام براي ي موقعيت شغلي در ايران يا غير از اون، و يا يك موقعيت تحصيلي در خارج اقدام كنم، چه جوري به تحصيلاتم اشاره كنم؟ اصلا نام نبرم؟ با جزييات بيارم؟پايان نامم ذكر بشه؟چي به چيه؟لطفا به تفكيك توضيح بدين.
موقعيت شغلي برا كاربا داده و اينا باشه اما موقعيت تحصيلي مقطع دكتري رشته خودم(اقتصاد) باشه؟چه كنم؟
سپاس
سلام دوست عزیز. اولین و مهمترین چیز در نوشتن رزومه رعایت صداقت هست. شما دقیقاً به رشته تحصیلی خود اشاره کنید ولی صادقانه عنوان کنید که مثلاً «دو سالی هست که متمرکز شدهام روی کار با دیتا و علم داده کار میکنم». شخصی که از شما مصاحبه بگیرد، قطعاً خودش با کوچکترین اشاره از سمت شما، تمام مسیری که عنوان کردید رو تشخیص خواهد داد. برای اپلای در دکتری و تغییر رشته هم اصلاً نگران نباشید. این مورد در اکثر کشورها کاملاً یک چیز جا افتاده و طبیعی است.
مطالب عالی
ممنون