فیزیک پیشه ای که دیتاساینتیست از آب درآمد

:فهرست مطالب

من کیستم و مخاطب این نوشته چه کسانی هستند؟ -
چرا این مطلب را می نویسم؟ -
از محیط دانشگاهی به صنعت -
دیتاساینس چیست و دیتاساینتیست کیست؟ -
(چه مهارت هایی مورد نیاز است؟ (منابع یادگیری -
سه مرحله تا دیتاساینتیست شدن -

 من کیستم و مخاطب این نوشته چه کسانی هستند؟

من یک دیتا ساینتیست با پیش زمینه فیزیک هستم. این مطلب را برای آن دسته از افرادی می نویسم که سابقه آکادمیک دارند و علاقه مند هستند در بخش صنعت به عنوان دیتا ساینتیست مشغول به کار شوند. اگرچه مخاطب این نوشته افراد دانشگاهی با مدارک عالی در حوزه های کمّی همچون فیزیک، آمار، ریاضیات و مهندسی هستند، افراد علاقه مند در سایر حوزه های مرتبط نیز ممکن است این مطلب را مفید بیابند

چرا این مطلب را می نویسم؟

به اعتقاد من همه افراد در هر جای دنیا باید بتوانند به اطلاعاتی که نشان می دهد چطور می توانند علاقه مندی های خود را دنبال کنند، دسترسی داشته باشند. تفاوت ها در میزان موفقیت افراد نباید به واسطه ی نبود اطلاعات باشد، بلکه می تواند به عنوان مثال به دلیل تفاوت ها در میزان خلاقیت، استراتژی و سخت کوشی آنها باشد

اگرچه بدیهی است که برای رسیدن به موفقیت فقط یک راه وجود ندارد، اما همیشه مشخص نیست راه و روش موفق به چه صورت است. این پرسش نه تنها برای خود من مطرح بوده، بلکه اغلب، پرسش های مشابهی نیز از بسیاری از همکاران و دانشجویان سال های پایین تر نیز گرفته ام. از آنجایی که خودم نتوانستم یک مطلب جامع و آموزنده در خصوص تغییر مسیر از محیط آکادمیک به دیتا ساینس در صنعت پیدا کنم، تصمیم گرفتم این مطلب را بنویسم و با علاقه مندان به اشتراک بگذارم

 از محیط دانشگاهی به صنعت

ژانویه ی سال ۲۰۱۵ که تازه کارم را به عنوان دیتا ساینتیست شروع کرده بودم، یکی از دوستان فیزیکدانم که دوره ی پسا دکترایش را در اروپا می گذراند، از من راجع به کارم پرسید و اینکه نظرم تا بحال راجع به آن چیست. او هم به دیتا ساینس علاقه مند بود و می خواست بیشتر در موردش اطلاعات کسب کند. اینکه برای دیتا ساینتیست شدن از کجا باید شروع کند، چه مهارت هایی نیاز دارد و کجا باید دنبال این پوزیشن بگردد. از آنجایی که او اولین نفری نبود که این سوال ها را از من می پرسید، تصمیم گرفتم در اینجا به این پرسش ها پاسخ دهم و به اختصار مسیری که خودم طی ۱۸ ماه طی کردم تا از یک محقق دوره پسا دکترا در محیط علمی به دیتا ساینس در محیط صنعت فناوری روی بیاورم را توضیح دهم. امیدوارم این مقاله برای افراد دیگر فارغ التحصیل در رشته های علوم و مهندسی که سوالات مشابهی دارند و قصد دارند دیتا ساینس را به عنوان شغل آینده ی خود انتخاب کنند نیز مفید باشد

به عنوان یک محقق سابق پسا دکترا و کسی که محققان پسا دکترای زیادی در دوران تحصیل و تحقیق خود ملاقات کرده، بر این باورم که اگرچه در یک روند حرفه ای موفق، پوزیشن پسا دکترا جای فوق العاده خوبی برای گذار است (گذار به یک پوزیشن ثابت در هیئت علمی دانشگاه ها یا شغل مناسبی در حوزه صنعت) اما الزاماً بهترین جا برای ماندن به مدت طولانی نیست. در زمان نه چندان دور، قصد تقریباً تمامی افرادی که مدرک دکترا و پسا دکترا در رشته های علوم داشتند، این بود که بعد از یک یا دو دوره ی پسا دکترا، استادان دانشگاه آینده شوند. این رویه طی یک دهه ی گذشته به دلایل مختلفی همچون نبود مشاغل دانشگاهی مناسب از یک سو و تقاضای رو به رشد حوزه ی صنعت برای جذب دارندگان دکترای علوم از سوی دیگر، تغییر قابل توجهی کرده است

phd_flow_uk

بنابراین، به دلایل مختلف (که برخی از آنها را می توانید اینجا ببینید) بسیاری از افرادی که دکترای علوم، مهندسی یا حتی رشته های دیگر دارند ممکن است محیط دانشگاهی را بهترین جا برای ماندن نبینند و در نتیجه نهایتاً تصمیم به ترک آن محیط بگیرند. در حقیقت تنها درصد بسیار کمی از دارندگان مدرک دکترا، یعنی پروفسورها، هستند که تمام سال های حرفه ای خود را در محیط دانشگاهی می مانند (به عنوان مثال نگاه کنید به نمودار بالا از این گزارش که در سال ۲۰۱۰ در انگلستان به چاپ رسیده است)

یکی از مسیر های حرفه ای معقول برای افراد دارای تحصیلات دانشگاهی در رشته های علوم و فناوری، انتخاب حوزه ی دیتا ساینس است، حوزه ای که به سرعت در حال رشد می باشد. ادامه ی این یادداشت بیشتر برای آن دسته از افرادی مفید است که دارند به انتخاب این مسیر فکر می کنند تا دیتا ساینتیست شوند. آنهایی که ممکن است بخواهند راجع به اینکه این رشته چیست، چگونه می توان برای آن آماده شد، و کجا می شود برای پیدا کردن بهترین موقعیت های شغلی جستجو کرد، بیشتر بدانند. در قسمت های بعدی سعی می کنم به این موارد بپردازم

 دیتا ساینس چیست و دیتا ساینتیست کیست؟

002b309

به دلیل ماهیت این رشته تعریف واحدی برای دیتا ساینس و دیتا ساینتیست وجود ندارد. تعاریف و توصیفات محدوده ی وسیعی را شامل می شود. اما تفسیر من این است

دیتا ساینتیست یک فرد حرفه ای و با مهارت با ذهنیت علمی است که از داده های قبلی و فعلی استفاده می کند تا پرسش های درست را بپرسد (و در نهایت به آنها پاسخ دهد) تا اینکه بتواند آگاهانه ترین تصمیمات آتی را در یک سازمان بگیرد.

نقل قول های مشهور زیادی از افراد ارشد این رشته برای تعریف دیتا ساینس وجود دارد. هرکدام از آنها یک جنبه را از یک منظر به خوبی توصیف می کند و همه ی آنها با هم می تواند توصیف خوبی از واقعیت مربوط به دیتا ساینس و دیتا ساینتیست ها به ما بدهد. در ادامه چند نقل قول مورد علاقه ی من در مورد اهمیت/تعریف دیتا/دیتا ساینس/دیتا ساینتیست را می خوانیم.

دیتا نفت جدید است؟ خیر. دیتا خاک جدید است. دیوید مک کندلوس

 دیتا ساینتیست ها درگیر جمع آوری دیتا و ماساژ دادن آن به یک فرم قابل انعطاف و قابل کنترل هستند، دیتا را وادار  می  کنند که داستانش را بگوید، و  آن داستان را به دیگران ارائه می دهند. — مایک لوکیدیس، نایب رئیس اورایلی

دیتا ساینتیست شخصی است که در آمار از هر مهندس نرم افزاری و در مهندسی نرم افزار از هر  آمارگری بهتري است.  جاش ویلز

تا سال ۲۰۱۸ ایالات متحده آمریکا کمبود ۱۹۰ هزار دیتا ساینتیست با مهارت و همچنین یک و نیم میلیون مدیر و تحلیل گر با توانایی به دست آوردن بینش قابل اقدام از سیل کلان داده ها را تجربه خوهد کرد.  مک کینزی ریپورت

این رشته ی جدید مورد تقاضا (دیتا ساینس) وعده تغییرات اساسی و انقلابی در صنایع از تجارت تا دولت، و از نظام درمانی تا محیط دانشگاهی را می دهدنیویورک تایمز

دیتا ساینتیست باید در علوم کاربردی اطلاعات داشته باشد با تجربه ای گسترده در صنعت و آموزش در علوم. ـــ خوآن اف سیا

و این هم جوک مورد علاقه ی من در مورد تعریف دیتا ساینتیست که کریس دیکسون در توییتر باز نشر کرده: «دیتا ساینتیست کارشناس آماری است که در سن فرانسیسکو زندگی می کند!» که تا حدودی هم واقعیت دارد

برای اینکه دید جامع تری نسبت به این رشته و کلان داده ها داشته باشید، پیشنهاد می کنم حتماً این پیام ویدیویی دو دقیقه ای از باراک اوباما، رئیس جمهور وقت آمریکا، در مورد دیتا ساینس در سال ۲۰۱۵ را تماشا کنید که در آن دی جی پاتیل را به عنوان اولین دیتا ساینتیست ارشد کاخ سفید معرفی می کند و پس از آن سخنرانی ۱۰ دقیقه ای شنیدنی از دی جی پاتیل و همچنین ویدیوی ۱۲ دقیقه ای از هیلاری میسون در سال ۲۰۱۲

(چه مهارت هایی مورد نیاز است؟ (منابع یادگیری

(به طور کلی مهارت هایی که برای شغل دیتا ساینتیست لازم است معمولاً در این سه طبقه قرار می گیرد (نمودار را ببینید

ریاضیات و آمار –

مهارت های برنامه نویسی و هک کردن –

دانش تخصصی در زمینه ی کاری –

 

spring_2014_azam_01

بسته به اینکه گرایش تحصیلی شما چیست، ممکن است نیاز داشته باشید روی تقویت مهارت های متفاوتی از لیست بالا تمرکز کنید. به عنوان مثال، دانش آموختگان دوره دکترای فیزیک نباید در بخش ریاضیات و آمار مشکل قابل توجهی داشته باشند. اما دو دسته دیگر، یعنی دانش تخصصی در زمینه ی کاری و مهارت های هک کردن (الگوریتم های یادگیری ماشین، مهارت های برنامه نویسی، ابزارهای پیشرفته ی نرم افزاری، غیره) مواردی هستند که باید بیشتر رویشان تمرکز کنند. فهرست دقیق و نسبتاً جامعی از مهارت هایی که برای دیتا ساینتیست شدن مورد نیاز است در این نمودار قابل دسترس است. این مقاله نیز در مورد مهارت های مورد نیاز این حوزه اطلاعات مفیدی می دهد

موضوعات و ابزار های بسیاری در گروه مهارت های هک کردن وجود دارد که می توانید در دوران آماده سازی خود را با آنها آشنا کنید. اما هیچ کسی نیست که همه ی آنها را کامل بداند و این مسئله اصلاً اشکالی ندارد. به نظر من مهم ترین مهارت ها در این گروه که تقاضای بالایی هم برایشان وجود دارد عبارتند از

:الگوریتم های یادگیری ماشین

Regression, Classification, Clustering, Recommender Systems, Neural Networks…

:زبان های برنامه نویسی

Python, R, SAS…

:ابزارهای کلان داده ها

Map Reduce Fundamentals, Hadoop, Spark, SQL…

:ابزارهای مصورسازی

D3.js, ggplot2, matplotlib…

من شخصاً زمانی به حوزه ی دیتا ساینس علاقه مند شدم که داشتم در دوره ی پسا دکترا به عنوان محقق در گروه تحلیل داده های  لایگو کار می کردم. در آن دوره این فرصت را داشتم که در حین کار با کلان داده های امواج گرانشی با تعدادی از ابزارها و تکنیک های تحلیل داده ها بیشتر آشنا شوم و با آنها کار کنم که در طول مسیر کمک زیادی به من کرد. اولین پروژه های دیتا ساینس را زمانی شروع کردم که یک دوره ی ۱۰ هفته ای یادگیری ماشین با اندرو-ان-جی از دانشگاه استنفورد گرفتم. دوره ی بسیار خوبی بود و باعث شد بعد از آن در دوره های دیگری نیز شرکت کنم و به دیتا ساینس به عنوان مسیر شغلی آینده ام فکر کنم. در ادامه نمایی از مسیری که من به سمت دیتا ساینس طی کردم را خواهید دید که مطمئناً تنها یکی از بیشمار راه های ممکنی است که وجود دارد

mypath_to_ds

:کتاب های درسی

از میان تمام کتاب های مفید موجود در زمینه ی آمار کاربردی و الگوریتم های یادگیری ماشین که برای دیتا ساینس بسیار ضروری هستند، من کتاب های زیر را توصیه می کنم که توسط ناشر هایشان آنلاین و به صورت رایگان نیز در دسترس است

  1. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. By Trevor Hastie, Robert Tibshirani, Jerome Friedman. [Download] (see the course: Statistical Learning)
  2. An Introduction to Statistical Learning with Applications in R. By Gareth James, Daniela Witten, Trevor Hastieand Robert Tibshirani [Download]
  3. Mining of Massive Datasets. By Jure Leskovec, Anand Rajaraman, Jeff Ullman. [Download] (see the course: Mining of Massive Data) 

:وبلاگ ها

تعداد وبلاگ های فعالی که به صورت منظم راجع به دیتا ساینس می نویسند رو به افزایش است. در ادامه به تعدادی از آنها که به نظرم جالب و مفید آمدند اشاره می کنم

نویسنده ی وبلاگ بالا به اختصار از نحوه ی گذارش از محیط دانشگاهی به دیتا ساینس می گوید. اگر کنجکاوید بدانید بعد از این نوشته چه می کند، این مصاحبه را که یک سال و نیم بعد با او انجام شده بخوانید

:دوره های آنلاین

دوره های آنلاین زیادی وجود دارد که ممکن است بخواهید در آنها شرکت کنید. بسیاری از آنها رایگان هستند و بسیاری دیگر نه. در ادامه من لیست شناخته شده ترین وبسایت های آموزشی را به همراه لینک برخی از دوره های مختص دیتا ساینس می آورم. دوره هایی که در این وب سایت ها ارائه می شود مسلماً تنها محدود به آنهایی که در لیست من آمده نمی شود. آنهایی که به نظرم از همه ی دوره هایی که من تا کنون گذرانده ام مفیدتر بودند را با سه ستاره [***] مشخص کرده ام که به نظرم بالاترین اولویت را دارند

  • from CourseraSeries on Data Science:
    • [***] Machine Learning [ده هفته، حجم کار بالا]
    • [***] Mining Massive Datasets [هفت هفته، حجم کار بالا]
    • [***] Deep Learning Specialization [پنج کلاس هر کدام دو تا چهار هفته، حجم کار بالا]
    • The Data Scientist’s Toolbox [چهارهفته، حجم کار متوسط]
    • R Programming [چهار هفته، حجم کار متوسط]
    • Getting and Cleaning Data [چهار هفته، حجم کار متوسط]
  • from EdXSeries on Data Analysis and Statistics:
    • Data Science and Machine Learning Essentials (AzurML) [پنج هفته، حجم کار متوسط]
  • from Stanford Online Laguna:
  • from UdacitySeries on Data Science:
    • Intro to Hadoop and MapReduce [شش هفته، حجم کار متوسط]
    • Data Visualization and D3.js [شش هفته، حجم کار متوسط]
  • from Data Camp:
    • [***] Kaggle R Tutorial on Machine Learning [یک ساعت، حجم کار پایین]

 

:دوره های فشرده (Bootcamps)

Insight Data Science Fellows Program:

دوره ی فشرده ی رایگان ۶ هفته ای دیتا ساینس در شهر نیویورک. اتمام دوره ی دکترا یا نزدیک بودن زمان فارغ التحصیلی فرد شرکت کننده لازم است

The Data Incubator:

دوره ی فشرده ی ۶-۸ هفته ای رایگان دیتا ساینس در نیویورک و واشنگتن دی

Microsoft Research Data Science Summer School:

دوره ی فشرده ی ۸ هفته ای رایگان دیتا ساینس در نیویورک

دقت داشته باشید که از آنجایی که این دوره های فشرده به صورت رایگان ارائه می شوند و از سطح کیفی بالایی برخوردار هستند و میزان استخدام فارغ التحصیلان این دوره ها توسط کمپانی های شناخته شده بسیار بالاست، پذیرش گرفتن برای شرکت در آنها بسیار رقابتی است

علاوه بر لیست رایگانی که در بالا به آنها اشاره شد، دوره های فشرده ی شناخته شده ی دیگری نیز وجود دارند که رایگان نیستند (هزینه آنها سال ۲۰۱۵ بین ۱۲ تا ۱۶ هزار دلار بود). برای دیدن لیست جامع تری از دوره های فشرده دیتا ساینس در آمریکا اینجا را کلیک کنید. در نظر داشته باشید شرکت در این دوره ها اختیاری است و برای اینکه در جای خوبی به عنوان دیتا ساینتیست مشغول به کار شوید، حتماً نباید این دوره ها را گذرانده باشید. اما اگر وقت و هزینه شرکت در یکی از آنها را دارید، این کار را بکنید

:برنامه های تحصیلات تکمیلی

از آنجا که مخاطب این نوشته افرادی هستند که تحصیلات عالی دانشگاهی دارند و می خواهند به دیتا ساینس در حوزه صنعت بپیوندند، شاید گزینه برنامه های تحصیلات تکمیلی به آنها مرتبط نباشد، اما برای کامل شدن بحث این قسمت به صورت کوتاه به آن اشاره ای می کنم

به تازگی دوره های کارشناسی ارشد دیتا ساینس در دانشگاه های مختلف آمریکا از جمله دانشگاه کلمبیای نیویورک و همچنین دانشگاه استنفورد آغاز شده است. برای دیدن لیستی از این دوره ها اینجا کلیک کنید. دوره تمام وقت کارشناسی ارشد این رشته معمولاً یک تا دو سال طول می کشد. به دلیل زمان و هزینه بالا، شرکت در این برنامه ها تنها به فارغ التحصیلان دوره کارشناسی که علاقه مند به دیتا ساینس هستند و یا  آن دسته از افرادی که در حال حاضر در تیم های تجزیه و تحلیل شرکت ها مشغول به کار هستند و می خواهند دیتا ساینس را به صورت آکادمیک بیاموزند، توصیه می شود

سه مرحله تا دیتا ساینتیست شدن

با فرض اینکه شما یک فرد با تحصیلات عالی دانشگاهی و تجربه و تخصص معتبر در حوزه ی علمی خود هستید و مایل هستید دیتا ساینتیست شوید، باید سه گام اساسی برای گذار از حوزه خود به حوزه دیتا ساینس بردارید. اینکه چه مدت زمان برای این گذار نیاز است کاملاً به سطح کنونی مهارت هایتان و اینکه چقدر مایل هستید در این روند تلاش کنید بستگی دارد. به عنوان مثال، برای من از زمانی که اولین دوره ی آنلاین خود را شروع کردم تا اولین پیشنهاد کاری ام را به عنوان دیتا ساینتیست گرفتم، حدود ۱۸ ماه طول کشید. در ادامه به تفصیل به این سه گام اساسی می پردازم. به طرح زیر نگاه کنید

enjob

گسترش مهارت: ایجاد مجموعه ای قوی از مهارت های دیتا ساینس

از آنجا که این گام اولین و شاید مهم ترین گام به سوی هدفتان است، بسیار مهم است که آن را درست انجام دهید. به این دلیل که دیتا ساینس یک گرایش بین رشته ای است، مباحث زیادی ممکن است وجود داشته باشد که کاملاً برای شما جدید باشد و تا کنون با آن ها برخورد نکرده باشید. صبور باشید و یک برنامه منظم را دنبال کنید تا این مباحث را تا آنجا که می توانید به صورت عمیق یاد بگیرید. خیلی نگران میزان وقتی که در این مرحله صرف می کنید نباشید. مثل هر یادگیری دیگری انقدر عقب و جلو می روید تا آن مبحث برای شما جا بیفتد و بتوانید در جاهای دیگر آن را به کار بگیرید. تا می توانید از منابع آموزشی بهره بگیرید و با مفاهیم جدید ارتباط برقرار کنید تا بتوانید در آینده به راحتی از آنها در مسایل دنیای واقعی استفاده کنید

منابع خود را با دقت و هوشمندانه انتخاب کنید و تا می توانید مطالعه کنید، گوش دهید، تماشا کنید و یاد بگیرید تا بتوانید دانش پایه و مهارت های خود را در برنامه نویسی، الگوریتم های یادگیری ماشین و ابزارهای نرم افزاری تکمیل کنید و بهبود ببخشید. کتاب های درسی و دوره های آموزشی آنلاین که در قسمت گذشته به آنها اشاره کردم منابع غنی برای شروع هستند. من شخصاً توصیه می کنم با Machine Learning course in Coursera by Andrew Ng شروع کنید که تقریباً هیچ پیش نیازی از یادگیری ماشین و دیتا ساینس نمی خواهد و بعد از آن دوره ی پیشرفته تر Statistical Learning by Trevor Hastie and Rob Tibshirani  از دانشگاه استنفورد را شروع کنید. لینک هر دوی این دوره ها در قسمت قبلی آمده. آنها دامنه وسیعی از مباحث را با رویکردها و ابزار نسبتاً متفاوت پوشش می دهند که به نظر من استراتژی فوق العاده ای برای یادگیریست

به دنبال افرادی بگردید که در این حوزه تجربه دارند یا آنهایی که مانند شما می خواهند این مسیر گذار را طی کنند، آنها را دنبال کنید و با آنها ارتباط برقرار کنید. قرار است مسیر طولانی ای را طی کنید و داشتن افراد مناسب در زمان مناسب کنار خود در این مسیر بسیار به شما کمک خواهد کرد. از آنجا که مسیر گذار است ممکن است لحظات سخت و تاریکی را هم تجربه کنید. هرگز ناامید نشوید و همواره مثبت بیندیشید. هر چه تصمیم اولیه شما برای شروع این مسیر آگاهانه تر باشد، لحظات سخت و تیره ی کمتری خواهید داشت. تا می توانید در مورد حوزه ی جدیدی که می خواهید به آن وارد شوید اطلاعات کسب کنید

علاوه بر مفاهیم جدید و الگوریتم های مختلف یادگیری ماشین که برای دیتا ساینس ضروری هستند، آشنایی با ابزارها نیز بسیار با اهمیت است. به یک زبان برنامه نویسی به صورت کامل مسلط شوید و سعی کنید تا می توانید از زبان های دیگر هم یاد بگیرید تا بتوانید در شرایط خاص از آنها استفاده کنید. دیتاساینتیست ها در مورد اینکه بهترین زبان برنامه نویسی در این حوزه کدام است نظر واحدی ندارند. مهم نیست از کدام زبان برنامه نویسی برای پیاده سازی الگوریتم های خود استفاده می کنید، آنچه اهمیت دارد این است که قادر باشید با بقیه افراد این حوزه که زبان های برنامه نویسی دیگری استفاده می کنند نیز ارتباط برقرار کنید. به همین خاطر و همچنین به دلیل محبوبیتشان، یادگیری و استفاده از زبان های پایتون و آر بیشتر از بقیه توصیه می شود. پایتون توسط دانشمندان حوزه علوم کامپیوتری نوشته شده و در نتیجه از آر سازمان یافته تر است. در صورتی که آر توسط آمارگران ایجاد شده و برای یادگیری آسان تر است و مفاهیم آماری را راحت تر می توان با آن به کار بست. من برای اطمینان هر دو را یاد گرفتم و با آنها کار کرده ام. و از آن پشیمان نیستم

انجام پروژه: شروع کردن و تمام کردن یک پروژه ی دیتا ساینس

اگرچه گسترش مهارت های مورد نیاز اساسی ترین و طولانی ترین گام برای دیتا ساینتیست شدن است، نمی توان تأثیر مثبت انجام پروژه های کوچک دیتا ساینس را بر موفقیتتان در گام بعدی که جستجوی کار است، نادیده گرفت. اگر از نقطه نظر مدیری که می خواهد شما را برای اولین بار به عنوان دیتا ساینتیست استخدام کند فکر کنید، هر اندازه هم رزومه ی خوب و لیست طولانی مقاله های داوری در مجلات علمی تأثیرگذار داشته باشید، اولین چیزی که او می خواهد بداند این است که آیا شما واقعاً توانایی انجام یک پروژه دیتا ساینس را از ابتدا تا انتها دارید یا خیر. انجام یک پروژه دیتا ساینس پیش از مصاحبه ی کاری و نشان دادن مراحل و نتایج آن یک فاکتور کلیدی است که توانایی و کیفیت کار شما را برای مصاحبه شونده مشخص می کند و در واقع به او کمک می کند تا بتواند آگاهانه تر و در نتیجه با اطمینان بیشتری تصمیم خود را بگیرد

پروژه های بسیاری در این زمینه وجود دارند که می توانید در این مرحله روی آن ها کار کنید. شرکت در برنامه های کارآموزی شرکت های معتبر هم قطعاً ایده ی خوبی است که اگر وقتش را دارید انجام دهید. در نظر داشته باشید که در این صورت باید تمام مراحل اداری مرتبط با درخواست کارآموزی را طی کنید. اما اگر به هر دلیلی نمی توانید به عنوان کارآموز در جایی مشغول شوید، توصیه می کنم خودتان روی یک پروژه کار کنید که هم زمان کمتری از شما می گیرد و هم انعطاف پذیرتر است. در صورتی که تصمیم گرفتید خودتان روی یک پروژه کار کنید توصیه می کنم حتماً در یکی از رقابت های کگل Kaggle شرکت کنید. کگل جایی است برای آن دسته از دیتا ساینتیست هایی که مایلند در حل مسائل بسیار جالب و واقعی شرکت کنند. رقابت ها در دسته های مختلف با ساختار تقریباً یکسان انجام می شود. روال ساده ای دارد: مسائل مختلف دیتا ساینس وجود دارد که باید پیش از موعد مقرر آن را حل کنید. تمام داده های آزمایشی هم برای دانلود قابل دسترسی است. راه حلی که شما قرار است در وبسایت ثبت کنید باید در قالب یک فایل با فرمت استاندارد باشد. مهم نیست از چه ابزار، روش یا الگوریتمی استفاده می کنید. کگل فایل ثبت شده ی شما را با مقایسه آن با راه حل درستی که به صورت محرمانه نگه داشته، امتیاز دهی می کند

به چند دلیل کگل جایگاه فوق العاده ای برای استفاده شما در این مقطع است. اول اینکه تمام مسایل مطرح شده در این وبسایت مسایل استاندارد و واقعی هستند و شما گزینه های مختلفی دارید که می توانید از میان آنها انتخاب کنید. دوم اینکه از آنجایی که در قالب رقابت انجام می شود، تعداد زیادی مانند شما خواهند بود که روی همان مسئله ای که شما کار می کنید، کار می کنند. در نتیجه می توانید با آنها ارتباط برقرار کنید تا ایده های خود را با آنها در میان بگذارید  و الگوریتم ها و نتایج خود را بهتر کنید. و سوم اینکه در پایان رقابت، راه حل شما رتبه بندی می شود و اگر آن را به خوبی انجام داده باشید، می توانید آن را به عنوان یک دستاورد معتبر که کیفیت کار شما را نشان می دهد ارائه کنید

جستجوی کار: رزومه خود را به روز کنید و جستجو ای هوشمندانه انجام دهید

پس از طی دو مرحله ی قبلی حالا زمان آن رسیده که جستجو برای شغل رویاییتان را آغاز کنید. اما همچون مراحل قبلی، این مرحله یعنی یافتن شغل مناسب هم آسان نخواهد بود. اگرچه تقاضا برای جذب دیتا ساینتیست بالاست، باید در نظر داشته باشید که افراد با استعداد بسیاری مانند شما با تحصیلات عالی به صورت فعال در بازار کار مشغول جستجو هستند و در نتیجه محیط برای دیتا ساینتیست شدن بسیار رقابتی است. به همین دلیل برای اینکه در مرحله ی پایانی هم موفق شوید باید استراتژی و قواعد خاصی را دنبال کنید

اگر از محیط دانشگاهی می آیید و سی-وی ۱۰ صفحه ای با لیست کامل سخنرانی ها، مقالات، سمینارها و دستاوردهای خود دارید، آن را کنار بگذارید و به جای آن یک رزومه ی حداکثر دو صفحه ای بسازید. در ابتدای رزومه خود اطمینان حاصل کنید که به صورت واضح خود را معرفی کرده اید؛ اینکه که هستید و چه می خواهید. مهارت های اصلی خود را که مرتبط با شغلیست که دنبال آن هستید (یعنی دیتا ساینتیست) برجسته کنید. تجربیات کاری خود را فهرست کنید تا مهارت های ذکر شده شما را توجیه و تأیید کند

در نظر داشته باشید که عبارت “دیتا ساینتیست” اغلب به صورت یک عنوان کلی استفاده می شود و مشاغلی که به شدت با هم متفاوت هستند را در بر می گیرد. دقت کنید با عنوان شغلی دیتا ساینتیست دقیقاً قرار است چه وظایفی داشته باشید و در چه حوزه ای از صنعت کار خواهید کرد. نقش مهندس دیتا، تحلیل گر دیتا و دیتا ساینتیست ممکن است در نگاه اول برای شما گیج کننده به نظر برسد. این لینک نقش های مختلفی که در حوزه کاری دیتا ساینس وجود دارد را به خوبی توصیف می کند

وقتی می خواهید به یک حوزه ی جدید وارد شوید، اطلاعاتی که از پیش در این زمینه کسب می کنید به شما قدرت پردازش و انتخاب می دهد. در نتیجه جنبه های مختلف مرتبط و همچنین آنچه که بیش از همه به آن علاقه مند هستید را به دقت مورد تحقیق و بررسی قرار دهید. هیچ پرسشی احمقانه یا ساده لوحانه نیست. پاسخ سوالات خود را در مورد مشاغل مربوط به دیتا ساینس پیدا کنید.  خواندن  این گزارش در مورد تحلیل وضعیت ۳۷۰ دیتا ساینتیست در سال ۲۰۱۵ در آمریکا در این مرحله، یعنی جستجوی کار، بسیار مفید است. ممکن است در سال های آتی نیز چنین گزارش هایی در مورد وضعیت دیتا ساینس و افراد مشغول در این حوزه منتشر شود. این وبسایت  نیز در این زمینه اطلاعات خوبی می دهد. این اطلاعات و گزارش ها را به دقت مطالعه کنید و ذهن خود را در مورد اینکه قرار است وارد چه محیط کاری و حوزه ای شوید آماده کنید

در واقع برای تکمیل بحث در این قسمت باید راجع به این موضوع که چطور می توان به صورت کارآمد به جستجوی شغل مورد نظر خود پرداخت و چه تکنیک هایی در این مسیر نیاز است، نیز اشاره ای بکنم. اما از آنجایی که موضوع گسترده ایست و ممکن است ما را از بحث اصلی این متن خارج کند، تصمیم گرفتم به این موضوع نپردازم و شما را به منابع تخصصی دیگری که در این خصوص وجود دارد ارجاع دهم

اما می خواهم در آخر به اختصار به سه مورد مهم و اساسی اشاره کنم. اول اینکه، برای انجام مصاحبه آماده باشید اما انتظار نداشته باشید چند مصاحبه ی اول شما حتماً همانطور که می خواهید پیش بروند. همیشه مصاحبه های بعدی بهتر می شود. از نکاتی که به نظرتان مهم است یادداشت بردارید و از تجربیات مصاحبه های قبلی در موارد بعدی استفاده کنید. از قبل ذهن خود را برای آنچه می خواهید ارائه دهید آماده کنید. این کار زمان می برد و در مصاحبه های اول آسان نخواهد بود. یادم می آید وقتی از گوگل مصاحبه تلفنی گرفتم فقط به خاطر اینکه برایش آماده نبودم خیلی استرس داشتم. بعداً در مصاحبه های بعدی این مسئله بهتر شد

نکته دوم در مورد مهارت های ارتباطی است که باید روی آن سخت کار کنید و شبکه ارتباطی خود را بسازید. اگر دوستان دیتا ساینتیست دارید، با آنها تماس بگیرید، از آنها نظرخواهی کنید و آنها را در روند جستجوی کاری خود وارد کنید. ممکن است آنها اطلاعاتی در مورد فرصت های شغلی در محل کار یا شبکه ارتباطی خود داشته باشند که برای شما جالب باشد. با ارتباط با دیگران می توانید فرصت ها و حق انتخاب های خود را گسترش دهید

سوم اینکه شبکه های اجتماعی ابزار قدرتمند و بسیار پرکاربردی هستند. از آنها استفاده کنید و همیشه به روز باشید. هرچند ملاقات های رو در رو فوق العاده هستند اما ابزارهای آنلاین را نیز در مسیر جستجوی کاری خود دست کم نگیرید و حداکثر استفاده را از آنها ببرید. دیتا ساینتیست های مطرح و شناخته شده را، به خصوص آنهایی که در منطقه جغرافیایی مد نظر شما هستند، در شبکه های اجتماعی دنبال کنید و ببینید مشغول چه کاری هستند. شبکه های اجتماعی زیر در این زمینه میتوانند بسیار مفید باشند

LinkedInMonsterIndeedKaggle job boardGlassdoor

ترجمه از منبع اصلی
شناسه ی من در توئیتر: smirshekari

 

Advertisements
Posted in Programing, فارسی | Tagged | Leave a comment

Sprinkler Problem: Why You Should Avoid Same Bases

During summer, despite all the modern and old irrigation systems, many people still use portable sprinklers to water their lawns and gardens, and it’s fun! Instead of pushing a couple of buttons here and there on your sprinkler system while inside your cozy house, it is fun to step outside while keep an eye on your lawn and move your sprinkler around to make sure it covers the whole target area and everywhere get enough water as uniformly as possible. But, does it?!

Among all the many sprinkler watering lovers, not many know what are the sweet spots of their sprinklers on the ground though. The manufacture companies may claim a uniform sprinkling experience via their products, but how exactly is this true? How accurate is it? Is actually everywhere on the ground gets equal watering? If not, where exactly gets more water and where less?

Let see if we can figure this out starting with one of the simpler motion sprinklers namely those with one moving axis like the image above. The direction of the pressured stream of water can change from upward vertical direction all the way to horizontal directions on both sides periodically. This way it covers a rectangular area in one motion period. I drew a simple fun schematic of the situation to help setting up the situation and the parameters of the problem on your mind.

Assuming that the magnitude of the initial velocity of the water stream is always constant as well as the speed of axis’s rotation, we are interested to know weather the covered ground area receives an equal amount of water or not! And if not, in what angle and what distance ground gets the most and the least rate of water rain fall.

After staring at the cartoon above for a short while and probably a little bit of thinking, the question can get narrowed down to: what is the rate of the variation of X (the distance from the sprinkler to the point the water droplet hits the ground) relative to the variation of the rotational axis’ angle? Or simply dX/d\theta. Wherever this is minimum is where it gets wet the most on the ground or in another words where the X-spot moves the slowest.

After neglecting some other real-world effects like friction and make a few reasonable assumptions, one can use the Newtonian laws of motion to draft down the end-solution as:

Assuming a typical sprinkler with the maximum range of 15ft on each side which means an initial velocity of 7m/s, and assuming g=10, one can plot the magnitude of the rate of changes of X relative to the angle theta as below.

The take-home message is that the rate of falling water on the ground is not uniform and changes with the angular position. Keeping in mind the underlying assumptions, manufacturing companies who claim a uniform water distribution, may want to double check their claim with the laws of physics before putting any ads or labels out for sell and/or consulting with the legal department.

In fact, according to the plot above, when the angle theta is 45 degrees on each side from the middle position, that’s when the ground receives the most amount of water. The very far edges on the covered area borders and the area right around the place of sprinkler itself are where the water hits the least. That’s exactly why I would recommend not always using the same spots/directions in your laws/garden for your sprinkler and change the bases regularly instead.

Posted in Uncategorized | Leave a comment

How to bring life to your ggplots?

Cars_Travolta

If you’re wondering how you can add a GIF layer to your ggplot to get something like the above image, one working example is given below [1].

library(ggplot2)
library(magick)
library(here) # For making the script run without a wd
library(magrittr) # For piping the logo
ggplot(mpg, aes(displ, hwy, colour = class)) +

geom_point() +
ggtitle(“Cars”) +

ggsave(filename = paste0(here(“/”), last_plot()$labels$title, “.png”),
width = 5, height = 4, dpi = 200)
background <- image_read(paste0(here(“/”), “Cars.png”))

logo_raw <- image_read(“https://media.giphy.com/media/hcrfSTtvl93cA/giphy.gif&#8221;)

frames <- lapply(logo_raw, function(frame) {
image_composite(background, frame, offset = “+100+50”)
})
animation <- image_animate(image_join(frames))
animation
image_write(animation, “~/Cars_Travolta.gif”)

[1] Read more here: [http://danielphadley.com/ggplot-Logo/]

Posted in Programing | Tagged , , | Leave a comment

Stop Not Paying Original Content Creators on The Web, It’s Bad For Everyone

Introduction

Imagine you have recently got a new idea that you have worked on for a while. You have made it mature enough that at this point you feel comfortable sharing it with the outside world. What you would do? How would you share it? Will you feel going through the time-consuming process of peer review journal publication? If relevant, will you consider publishing your work in a blogpost or social media platforms?  Do you feel motivated/rewarded enough to do so?

Classical Publication

If this is a technical, scientific novel idea that you have worked on hard for a long time, probably your best option is submitting your manuscript to a relevant peer review scientific journal for publication. If relevant, you may also fill and submit a patent application for your work.  For these classical sharing methods, here are the Pros:

  • Strict Copy Right protection
  • Peer reviewed
  • Targeted audience

and Cons:

  • Limited visibility
  • Slow rewarding process
  • Low rewarding (if not rewardless)

Besides all the above listed cons, for technical materials which have a very small size group of target audience your best option might be still the classical ways including publishing in technical peer review journals.

Modern Tools

But what if your idea/work is targeting a broader group of audience? The best example for this might be the article you are reading right now. This is a work that (1) I have thought about for a while (which is not a moody random thought passing through my mind and coming out of my mouth right away), (2) it is not too technical, (3) it is broad in scope, (4) it has the potential to make an immediate impact towards creating value.

To share such a work I wouldn’t submit this to a peer review journal, because of all the cons and irrelevant pros (for this case) listed above. Instead, I would think of using a more efficient way among modern publishing tools on the web such as blogging platforms and social media to share content. For these modern sharing methods, here are some of the advantages:

  • Fast process
  • Broad visibility
  • Copy Right protection to some extent

and here is the big disadvantage:

  • Rewarding doesn’t exist or is foolishly low, if it does [please see below to see why]

which not only hurts the OCCs, but also blocks the potential for absorbing more resources by other parties including consumers, hosting platforms, and enterprise. The image below displays the mechanism of how rewarding the OCCs leads to more value for everybody.

aaa.001

Web Marketplace for Original Content

Ecosystem and Inhabitants

Imagine the current ecosystem of original content marketplace on the public domain web. You may think of  at least four types of inhabitants in this ecosystem:

  1. Original Content Creators (OCC): who create original contents
  2. Content Customers: who consume the content including readers, watchers, and listeners.
  3. Hosting Platforms: which provide all the necessary skills and tools to share and communicate the contents
  4. Enterprise: which provides support to the Hosting Platforms for receiving advertisement services.

The Current Dynamics of The System

The animation below shows the overview of the current dynamics of transactions between these inhabitants in this ecosystem that I believe must change.

output_vd9L0q

OCCs: The Only Party Not Getting Fed Fair By System

You should be able to notice why the above displayed dynamics does not provide a good deal for all the parties in this ecosystem, especially if you look at the following pyramid diagram. All the sections of the pyramid have at least one input and one output transaction except the OCCs which have no income in this marketplace. This is insane, if you think about it.

rest.002

Inhabitant Contributions to The System

The following table summarizes the contribution of each party into the system and their take-out share. Although the OCCs might receive some credit during time eventually, this is far behind the true value they create by their work which is the driving force of the whole system i.e. the original content.

rest.001

How It Should Work

By rewarding the OCCs, we not only make the OCC party happier, but also the other parties. As it was visually displayed above (Fig. 1) rewarding the content creators causes more value for the whole system.

output_MA3gff

Rewarding Original Content Ecosystem (ROCE)

Below animation visually summarizes the whole idea of how rewarding content creators empowers all: 1) content consumers (because, there will be more content and most probably better quality original contents), 2) Host Platform (because, there will be more visitors), and 3) Enterprise (because, their advertisements go farther to a larger audience which eventually causes more sell).

output_bzSWFP

Challenges and Solutions

In Progress…

Posted in Efficient City | Tagged , , , , , | Leave a comment

Self-Driving Cars May Need To Know Why I Avoid Driving Behind Moving Trucks, But Choose to Stop Behind Them

Nope! This is not because of any safety issue that one may think of initially, but only because I would like to spend less time behind traffic lights during my daily commute in St. Louis. This can buy even more time for people in New York City and Los Angeles, I believe.

This note includes a problem and the solution. I can’t go to the solution without describing the problem. Therefore, let me describe the problem and the conditions first.

The Question

Imagine a one-way road with one line of cars all going forward towards a traffic light. Let’s look at this situation in four different times:

trafficLight.001

  1. t=t0 in which the light is green and cars are moving. This is in the past time before your car arrives.
  2. t=t1 in which the light has turned to red already and your car reaches to the tail of the traffic jam.
  3. t=t2 in which your car comes to stop right behind the front car AND at exactly the same moment the light turns green in the very front of the line.
  4. t=t3 in which the light is still green and the car in front of you has just started to move and reached in distance “d” from you. Now it’s time for you to move!

Now, the question is: will you pass this green light before it turns red again?

For simplicity, let’s make a few clear assumptions.

  • Each car only sees the front car and reacts only based on this piece of information.
  • All cars have the same length [= L].
  • When a car moves, it always keeps the same distance from the car in its front [= d] AND always moves with a constant speed [= V0] (no acceleration).
  • A car moves if and only if the car in its front is moving in exactly the distance of “d”.
  • When cars stop, they stop right behind the next car in their front.
  • A car comes to stop if and only if the car in its front is in stop (or it sees the red light).

The Answer

If the traffic light is fair in time (i.e. it stays red the same amount of time as in green), in the given assumptions, you can never make this green light in this round! The light will turn red before you pass it.

In the given conditions, you have to always wait for the next green light. This is independent of the length of the vehicles in front of you. However, when you are moving, you’d better drive in a lane in which the ratio of the length of the vehicles to the distance between the vehicles (L/d) is lower. The speed of traffic jam packing up for lanes in which there are larger vehicles is higher. However, it is better standing behind a standing line of large vehicles than small ones with the same length of line, if you have a choice. You can find out why these are true by reading the rest of this note.

trucks.002

The final quantitative result that I obtained with respect to the above described conditions is as following. You can never pass this green light this round if and only if:

Equation

where “tGreen” and “tRed” are the green time and red time, respectively, “L” is the average length of the vehicles in the line, and “d” is the average distance between moving vehicles.

If you are curious how you can derive this, here is my step-by-step approach.

  1. Let’s define “X” as the length of the traffic jam at the moment your car arrives.
  2. Let’s define “X_prime” as the distance you can drive from the moment you are permitted, i.e. the moment in which the front car starts to move and reaches the distance “d” from you.
  3. If “X_prime” turns to be bigger than “X”, you will pass the green light; otherwise, you won’t!

Here are the values of “X” and “X_prime” in terms of other variables in this problem:

X

in which “LV0/d” is the speed of traffic jam! In other words, if we want to calculate the length of the line of cars from the moment the light goes red until our car arrives and stops (in which the light turns green again), we have to think with what speed the traffic jam grows. Well, the answer is very simple if you think about it. Each time one car stops behind another car, the length of the line grows by the length of that car. Therefore, the speed of traffic jam growth is equal to “L” devided by the time it takes for one stop [d/V0] which is exactly what you see in the equation above. This also describes why bigger vehicles make longer traffic jams and therefore you should reconsider driving behind moving trucks.

X_prime

where has two time terms. The first term represents the whole green cycle time. The second term, however, shows the time wasted since the light turned green until you can actually move. This later time term is also very easy to quantify if you think about it. There is a delay time for each car to be able to move. This delay for each car is equal to the time it takes for the front car to travel distance “d” which is “d/V0”. Let’s assume there are “n” cars in front of us. The total wasted time will be equal to “n” times “d/V0”. But we can estimate how many cars are in front of us in terms of “X” (the length of the line), “n = X/L”. This justifies the second term inside the parentheses.

Assume the length of the traffic line is fixed (X). In this situation, according to the above relation, there will be less wasted time if “L” is larger. That’s why you should consider stopping behind trucks in a traffic jam.

“X_prime” defined above is the distance you can go forward before the light turns red! Bigger “X_prime”, bigger gain! It is interesting to see how this value is related to the other parameters. If we simply substitute “X” in the relation for “X_prime”, we obtain:

GR

which speaks for itself. In this given simplified situation, if the red time and green time are equal, the light always turns red even before you get a chance to move. However, it doesn’t mean that you don’t move forward. You will, but the traffic light is red already. This relation also clearly shows “X_prime” is independent of the lenght of the vehicles and the distance between them. You will end up being in longer lines by driving behind large vehicles though. That’s the only difference.

As we mentioned earlier above in the third bullet, the idea is that the last car which comes to stop at the tail of the traffic jam (and don’t forget this is right at the moment the light turns green at the front of the line) can catch the same green light if and only if: “X_prime > X”. This describes the main equation in this note.

For completeness, it needs to be mentioned that this solution may or may not be a good estimate for when other parameters come to play, for example the acceleration of the cars and variable “d” and variable reaction times of the cars, to name a few. I do believe, however, that the results in this note is enough to convince you not to drive behind large vehicles in unknown roads and consider stopping behind them when you have a choice.

I also think this is a piece of information that self-driving cars should consider in their decision making. The following flowchart shows how a draft of what a self-driving car decision making algorithm should consider for changing lanes:

selfdrivingcar.001

All the above discussion given, at the end of the day, the story is quite simple if you think about it: the traffic status change signal (stopping-signal or moving-signal) travels along a lane with a velocity equal to the length of the individual vehicle, for which the traffic status signal is passing through it at this moment, divided by the reaction time of that vehicle. This describes the logic behind the above flowchart.

Posted in Efficient City, Physics | Tagged , , , , , , , , | Leave a comment