یک دیتا ساینتیست خوب چه مهارت هایی دارد؟
برای اینکه شما دیتا ساینتیست شوید یا اینکه دیتا ساینتیست خوبی شوید، باید علاوه بر مهارتهای متنوع، خصوصیات منحصربهفردی هم داشته باشید. پیش از همه باید ذاتی کنجکاو داشته باشید که شما را دائما به سمت یادگیری چیزهای جدید سوق دهد. در حوزه دانش دادهها، موضوعات فراوان و دادههای بسیاری وجود دارند که یک دیتا ساینتیست باید کنجکاوی ذاتی برای مطالعه، تفکر و جمعآوری اطلاعات درباره آنها را داشته باشد تا در نهایت بتواند با یافتن ارتباط بین اجزای مختلف در دادههای موجود، پاسخهای درست به سوالهای مطرح شده بیابد.
حوزههایی مثل دانش دادهها که دائما در حال تغییر هستند، چالشهای همیشگی اجتنابناپذیر هستند، لازم است مستمر یاد بگیرید و خلاقیت دائمی داشته باشید. چنین چیزی میتواند خستهکننده هم باشد، در نتیجه کمی سرسختی در این شغل بسیار مفید خواهد بود.
قضیه اینجاست که یک دیتا ساینتیست در طول کارهایی که به طور معمول انجام میدهد، به شرایطی برمیخورد که انگار همهچیز به هم گره خورده است و ممکن است به کلاف سردرگمی از دادهها و مسائل پیچیده برسد که به نظر حلناپذیر میآید. اما یک دیتا ساینتیست خوب در این شرایط هم دست از دستهبندی، تحلیل دوباره و کارکردن روی دادهها برنمیدارد و آنقدر ادامه میدهد که بتواند مسئله را از نگاهی جدید دریابد و حل کند.
خصوصیات دیگری مثل خلاقیت، توانایی تمرکز بالا و توجه بسیار زیاد به جزئیات میتواند به شما کمک کند که یک دیتا ساینتیست خوب باشید. داشتن مهارتهای ارتباطی و توانایی کار تیمی هم مهم است.
در ضمن از آنجا که در این شغل اولا شما باید مهارتهای زیاد و در حوزههای گستردهای داشته باشید و همچنین بتوانید دائم و سریع یاد بگیرید، اگر یک فرد چندپتانسیلی (Multipotentialite) هستید، مطمئن باشید که شما میتوانید بهترین دیتا ساینتیستی باشید که میتوان پیدا کرد. اما علاوه بر اینها شما باید تحصیلات دانشگاهی و تعداد زیادی مهارت کامپیوتری هم داشته باشید.
قدم به سوی دیتا ساینتیست شدن
تحصیلات دانشگاهی
برای اینکه شما در شرکتی دیتا ساینتیست بشوید، باید دکترا یا کارشناسی ارشد داشته باشید. در دنیا ۲۷ درصد دیتا ساینتیستها مدرک دکترا و ۷۳ درصد مدرک کارشناسی ارشد دارند. بعید هم است که این قاعده به این زودیها از بین برود. در نتیجه باید یک لیسانس در حوزه آیتی، علوم کامپیوتر، ریاضیات، فیزیک، آمار، ریاضیات کاربردی، اقتصاد یا علوم اجتماعی بگیرید.
اگر مدرک کارشناسی ارشد شما هم که مرتبط به دادهها باشد، بهتر است. طبیعتا اگر پایاننامه کارشناسی ارشد شما کارهایی مثل شبیهسازی، برنامهنویسی و یا کار با دادههای بزرگ دارد، برای شما مفیدتر خواهد بود. اگر هم میخواهید دکترا بگیرید، بهتر است کار شما در دکترا به برنامهنویسی، هوش مصنوعی یا حتی استخراج داده (Data Mining) ربط داشته باشد.
همچنین باید پیش از اینکه بخواهید دیتا ساینتیست شوید، اطلاعات و دانشی در حوزهای که میخواهید در آن کار کنید، داشته باشید؛ مثلا اگر میخواهید در یک شرکت دارویی دیتا ساینتیست شوید که مثلا میخواهد متناسب با نیاز بازار دارو تولید کند، بهتر است اطلاعاتی در مورد بیماریها، میزان شیوع، دوره بیماری، دوره پنهان و هر چیزی دیگری در مورد بیماریها داشته باشید.
همچنین اگر میخواهید یک دیتا ساینتیست ارشد در شرکتی شوید، احتمالا داشتن مدرک دکترا برای شما ضروری خواهد بود. اخیرا در دانشگاههای جهان، رشته دانش دادهها از همان دوره لیسانس تاسیس شده است. احتمالا چند سال دیگر این رشته به ایران هم خواهد آمد. البته من اطلاعاتی در این مورد ندارم، شاید همین الان هم وجود داشته باشد.
مسلما اگر شما مدرکی از این رشته داشته باشید، از بقیه رشتهها بهتر است. چنین رشتهای به شما دانش لازم برای تحلیل مجموعه دادههای پیچیده و مهارتهای لازم در حوزه آمار، کامپیوتر و تکنیکهای تحلیل را آموزش میدهد.
مهارتهای کامپیوتری لازم برای دیتا ساینتیست
یک دیتا ساینتیست علاوه برای چیزهایی که در دانشگاه یاد میگیرد، باید مهارتهای دیگری هم بلد باشد که لزوما در دانشگاه و در رشته تحصیلیاش یاد نگرفته است. همچنین بسته به اینکه رشته تحصیلی شما چیست، ممکن است در برخی از این مهارتها بهتر از بقیه باشید. در هر صورت، اگر بخواهید دیتا ساینتیست شوید باید این مهارتهای کامپیوتری را نیز داشته باشید:
۱- زبان برنامهنویسی پایتون
پایتون (Python) یک زبان برنامهنویسی بسیار خوب و قدرتمند است. پایتون زبانی نیست که با هدف تحلیل دادهها ایجادشده باشد. بلکه شما با پایتون میتوانید وبسایت، اپلیکیشن وب و هر برنامه دیگری بنویسید.
اهمیت پایتون در اینجاست که در طول این سالها کتابخانههای بسیار مهمی مثل Numpy و Matplotlib برای پایتون نوشته شده است که پایتون را تبدیل به زبانی قدرتمند و محبوب در بین دیتا ساینتیستها کرده است. به همین دلیل الگوریتمها و کدهای فراوان دیگری نیز در پایتون نوشته شدهاند که برای کار یک دیتا ساینتیست لازم هستند.
همچنین دانستن زبانهایی مثل جاوا، پرل (Perl) و C++/C نیز میتواند بسیار مفید باشد. انعطاف زبان پایتون باعث میشود که شما بتوانید صرفا با کدنویسی در آن به پایگاههای داده گوناگون متصل شوید و از آنها داده بخوانید و داده وارد کنید.
۲- زبان R
زبان برنامهنویسی R برخلاف پایتون، زبانی است که فقط برای کارهای آماری و سروکلهزدن با دادهها ساخته شده است. شما میتوانید با زبان R هر مسئله مربوط به دادهها را حل کنید اما چون این زبان انعطاف و قدرت زبان پایتون را ندارد، احتمالا لازم خواهد بود برخی از کارها را دستی انجام دهید.
یکی از مشکلات زبان R این است که یادگیری آن سخت است، خصوصا وقتی شما پیش از این یک یا چند زبان برنامهنویسی را بهخوبی بلد باشید. به دلیل همین سختی و همچنین نداشتن انعطاف کافی در زبان R، زبان برنامهنویسی دیگری با نام جولیا (Julia) نیز درست شده است. جولیا زبانی است که همزمان قدرت و انعطاف و سرعت زبان R، پایتون و C++/C را ترکیب کرده است. دانستن نرمافزارهای آماری مثل SPSS و SAS هم میتواند به دردتان بخورد.
۳- پلتفرم هادوپ
پلتفرم هادوپ (Apache Hadoop) مجموعهای از نرمافزارها و ابزارها مثل هایو (Apache Hive) و پیگ (Apache Pig) است که مخصوص مدیریت دادهها و کارهای عددی و محاسباتی روی دادههای حجیم ساخته شدهاند. تسلط به ابزارهای مجموعه هادوپ بعد از زبان پایتون، مهمترین مهارت لازم برای یک دیتا ساینتیست است.
قضیه اینجاست که وقتی شما با مجموعه دادههای بسیار عظیم روبهرو میشوید، ممکن است شرایطی پیش بیاید که حجم دادهها یا میزان حافظه رم یا حتی توان پردازشی لازم برای دادهها بسیار از بیشتر از چیزی باشد که شما در اختیار دارید. در نتیجه شما مجبور میشوید دادهها را به سرورها یا کلاسترهای محاسباتی دیگری انتقال بدهید. اینجاست که هادوپ به درد میخورد. هادوپ میتواند این کار را بهصورتی راحت، بهینه و سریع برای شما انجام دهد. همچنین شما میتوانید از همین هادوپ برای استخراج، کاوش، فیلترکردن، نمونهگیری و خلاصهسازی دادهها هم استفاده کنید.
۴- تسلط به SQL
وقتی حجم دادهها بسیار زیاد است، ذخیرهسازی و خواندن آنها روی فایلها چیز معقولی نیست؛ چون هم کار را کند میکند و هم حجم زیادی میبرد. در این حالتها دادهها در پایگاههای داده ذخیره میشود؛ یعنی دادهها در فرمت خاصی که در هر پایگاه دادهای متفاوت است، بهصورت فایلهایی ذخیره میشوند که خواندن و نوشتن در آنها سریع و راحت است.
وقتی هم که حجم دادهها بسیار زیاد باشد، پایگاههای داده NoSQL و هادوپ بسیار به درد میخورند و احتمالا بخش زیادی از احتیاجهای یک دیتا ساینتیست را رفع کنند؛ اما از شما بهعنوان یک دیتا ساینتیست انتظار میرود که دستورها و درخواستهای پیچیده در SQL را هم بلد باشید.
با اینکه شما باید پیش از SQL، هادوپ و NoSQL بدانید، اما دانستن SQL میتواند بسیار مفید باشد؛ زیرا دستورهایی که برای درخواستهای آن استفاده میکنید، میتوانید تصویر بسیار خوبی از دادهها به شما بدهد. در ضمن سادگی دستورهای آن، کار را سادهتر میکند و شما میتوانید با برنامهنویسی کمتری کارتان را جلو ببرید.
۵- آپاچی اسپارک
آپاچی اسپارک (Apache Spark) مثل هادوپ یک ابزار مدیریت بیگ دیتا است. هر دو هم محصول تیم نرمافزاری آپاچی هستند؛ اما تفاوت اسپارک یا هادوپ این است که اسپارک بسیار سریعتر از هادوپ است. اسپارک بهطور اختصاصی برای اجرای سریع الگوریتمهای پیچیده ساخته شده است. همچنین مدیریت دادههای بدونساختار با اسپارک راحتتر است و میتواند از گمشدن و از دست رفتن دادهها جلوگیری کند.
۷- یادگیری ماشینی و هوش مصنوعی
بسیاری از دیتا ساینتیستها، هوش مصنوعی بلد نیستند؛ اما هوش مصنوعی چیزی است که میتواند شما را بسیار جلو ببرد. پس اگر میخواهید چند سروگردن بالاتر از بقیه دیتا ساینتیستها باشید، بهتر است هوش مصنوعی بدانید. توانایی آموزش یک سیستم هوش مصنوعی متناسب با دادهها و پاسخهای موردنیاز با استفاده از الگوریتمهای گوناگون، میتواند به شما کمک کند مسائل متفاوتی را حل کنید.
تسلط به هوش مصنوعی در مفهوم کلی و الگوریتمهای گوناگون آن، کاری سخت و زمانبر است؛ اما شما میتوانید با کتابخانه بسیار قدرتمند و رایگان تنسورفلو (Tensorflow) گوگل، هوش مصنوعی یاد بگیرید. یادگیری آن آسان است و آموزشها و کدهای فراوانی برای آن وجود دارند.
۸- مصورسازی دادهها (Data Visualization)
بعد از استخراج دادهها، مهمترین کار ارائه آنها است؛ اما برای اکثر افراد درک یک جدول عریض و طویل از اعداد کار سختی است. در نتیجه شما باید از راه دیگری جلو بروید. شما باید بتوانید آنچه را از دادهها به دست آوردهاید، در نمودارها و جداول، تصویرسازی کنید. در نتیجه بد نیست که از هر ابزاری که میتوان با آن نمودار کشید، سر دربیاورید؛ اما دانستن ggplot، matplotlib و d3.js ضروری است. شما با همین نمودارها است که میتوانید توجهها را جلب کنید تا افراد را به اقدامهای درست مجاب کنید.
۹- کار کردن با دادههای بدونساختار
دادههای بدون ساختار شامل ویدئوها، پستهای وبلاگی، کامنتها، پستهای شبکههای اجتماعی، صدا و حتی تصاویر است. این دادهها شامل متنهای بلند و درهمتنیدهای هستند که دستهبندی آنها هم کار سختی است. شما باید بهعنوان یک دیتا ساینتیست بتوانید با اینگونه دادهها کار کنید. تحلیل دادههایی بدونساختار میتواند به شما اطلاعات بیشتری برای کسب بینش بهتر از دادهها بدهد.