בתחילת דרכי כאנליסט נתונים, אי שם בתחילת שנות האלפיים, לקחתי החלטה עקרונית לעסוק במהות של הנתונים, באפיון ובניתוח שלהם – והרבה פחות בקוד הנדרש להבאתם. מדוע? כי לראייתי דאז אנליסט נתונים אינו מתכנת, והמיקוד שלו צריך להיות בניתוח תוכן הנתונים והבנת המשמעות העסקית שלהם; עיסוק בקוד מאיים להפוך את ראיית העולם של האנליסט לטכנית יתר על המידה, על חשבון מרכיבי הבנה עסקית וניתוח מערכות הנדרשים להפיכת הנתונים למידע עסקי בעל ערך.מדי פעם אני נזכר בהחלטה זו, ושואל את עצמי האם בדיעבד היא היתה נכונה. התשובה היא כן ולא;כן, בגלל שנכון לתקופה ההיא, למעט SQL ו-Access שהיו טריוויאליות יחסית וממוקדות בתפיסה של בסיסי נתונים והבנת תוכן הנתונים, שפות קוד אחרות דוגמת C++, VB ואחרות דרשו משאבים רבים מאוד בשביל ללמוד אותן ולפתח יכולות Best Practice לשימוש בהן, מה שהפך את הכרתן למקצוע בפני עצמו – והסיט כל אנליסט נתונים ממשימתו העיקרית – לעסוק בתוכן של הנתונים;מצד שני, במהלך העשור האחרון חלו מספר מגמות בתחום, אשר שינו באופן דרמטי את יחס העלות-תועלת של שימוש בקוד מצד אנליסטים, וכן את המהות עצמה של המקצוע הנקרא אנליסט נתונים / מדען נתונים:
- התפקיד של אנליסט נתונים השתנה באופן די משמעותי במהלך העשור האחרון: בעבר, הוא היה בעיקר 'ספק נתונים', גם לאור המורכבות של השליפות, ובעיקר לאור העובדה כי הנתונים היו יחסית סטטיים. כיום, קצב קליטת הנתונים והמגוון שלהם כל כך גבוהים, וכתוצאה מכך אנשי הביזנס רוצים מידע 'לעוס', הכולל תובנות והמלצות לביצוע (Action Items), וכל זאת בזמן מימוש (Time to market) קצר מאוד.
- במקרים רבים נדרש ממדען הנתונים או האנליסט להציג אב-טיפוס לתחום אותו הוא חוקר, ואב-טיפוס מעין זה מחייב שימוש בשפת קוד מעבר ל-SQL, בעיקר לטובת ממשק משתמש ו/או אינטגרציה עם כלים אחרים.
- ארגונים רבים מתקשים מאוד בפיתוח מערכות מידע מתוחכמות הכוללות Predictive Analytics, מאחר ובאופן מובנה לא ניתן לאפיין באופן סגור את מימוש המערכת לפני סיום מחקר הנתונים. מצד שני, מחקר הנתונים עצמו דורש מיחידות ה-IT בארגונים לספק נתונים חדשים רבים, עוד טרם התחלתו – ורבים מנתונים אלה יתבררו בדיעבד כחסרי ערך עסקי. התוצאה היא תהליך מחקר ופיתוח ארוך מאוד ולא יעיל.
- העוצמה של שפות הקוד הקיימות כיום היא רבה מאוד, גם בהיבט של מה שהן מאפשרות לבצע, וגם בהיבט של כמה משאבים נדרש להשקיע בשביל לממש פתרונות באמצעותן. כנובע מכך, מתאפשר כמעט לכל אנליסט נתונים ללמוד בקלות שפות קוד, ולעשות בהן שימושים שיכולים להקפיץ ארגונים קדימה בכמה רמות.
- עולם ה-Big-Data, ענן וקוד פתוח דחף לשוק פתרונות רבים שאינם סטנדרטיים, דוגמת NoSQL Databases והתממשקות לנתונים של חברות אינטרנט דרך API’s. עבור פעילות מול כלים אלה שפת SQL כבר אינה מספיקה, ונדרש שימוש בשפות קוד אחרות.
הפתרון המתבקש לאור המגמות האמורות הוא שחוקרי הנתונים יפתחו יכולות עצמאיות לקליטת, עיבוד וניתוח הנתונים לצרכי מחקר גם ללא תלות במשאבי ה-IT היקרים, כאשר אחד המרכיבים העיקריים בפתרון זה הוא שפות סקריפט.
שפת סקריפט היא בעצם שפת קוד שמאפשרת אוטומציה של משימות מצד המשתמש – ופועלת באופן מידי בסביבה בה עובדים. דוגמה לכך היא בעצם סביבת SQL עצמה, בה אנחנו יכולים להריץ לא רק שאילתות, אלא גם לולאות, משתנים, קוד דינמי וכיו"ב.
אך בעוד שסקריפטים שכותבים ב-SQL הם מצוינים לצרכי בסיסי נתונים – קיימים צרכים רבים נוספים, שאינם טבעיים עבור SQL. כמה דוגמאות לכך: יצירת קישורים לקליטת נתונים מרשתות חברתיות או יישומים חיצוניים, עיבוד וניתוח טקסט ונתונים לא מובנים אחרים, יצירת דוחות ייעודיים, ניהול ותחזוקת תהליכים או משימות בסביבה המקומית או בענן וצרכים רבים אחרים.
עולם שפות הסקריפט הוא רחב מאוד, ולצרכים אנליטיים בולטות שתי שפות עיקריות: R ופייתון.
בעוד R ממוקדת בעיקר בצרכים סטטיסטיים, Python מכוונת לטווח רחב הרבה יותר, ולמעשה מאפשרת פיתוח של כמעט כל יישום.
הפילוסופיה מאחוריה היא צמצום דרמטי בהיקף שורות הקוד שנדרש לכתוב – וזה היתרון העצום – בעיקר כלפי מי שאינו מתכנת. רק על מנת להמחיש את הפילוסופיה הזו, ב-Python אין צורך להגדיר מראש משתנים – וזה כשלעצמו גורם לאנחת רווחה עבור כל מי שמכיר ולו במעט את תחום התכנות.
יתרון עצום נוסף בשפה זו הוא התמיכה לה היא זוכה בקהילה העולמית – ל-Python קיים פחות או יותר כל תוסף העולה על הדעת – החל משליטה על מערכת ההפעלה, דרך ממשק לנתונים של חברות ואתרים ברחבי הרשת וכלה באפשרות לכתוב אפליקציות Mobile או Web, או בוטים לקליטת נתונים. מיותר לציין שקיימים תוספים ייעודיים גם לניתוח נתונים כמו מטריצות, סטטיסטיקה, סימולציה, Machine Learning, כריית טקסט וכיו"ב.
בתור אנליסטים, אנחנו אוהבים מאוד תוספים כאלה, כי הם מאפשרים לנו לממש פתרונות בעלי יכולות דמיוניות כמעט ברמת אבטיפוס, ולבחון נתונים חדשים שאנו ממליצים לקלוט לבסיס הנתונים של הארגון שלנו גם ללא סיוע של גורמי ה-IT. באופן כזה, אנליסט הנתונים מרכיב את 'פסיפס המידע' בארגון באופן עצמאי ומקצר מאוד את זמני הפיתוח של פתרונות מידע מתקדמים.
לימוד של שפת Python אינו תהליך קצר, במיוחד למי שלא בא מרקע תכנותי. יחד עם זאת הוא עדיין קצר מהותית מלימוד של שפות אחרות, וללא ספק מתגמל וכדאי לטווח הארוך – ותעדנה על כך מודעות הדרושים הרבות, אשר Python מהווה בהן דרישה מחייבת. אך גם למי שאינו מחפש כרגע עבודה חדשה, עצם האפשרויות שמאפשרת השפה מהווה שדרוג משמעותי ביכולות המקצועיות, במעבר מעולם הנתונים המסורתי לעולם ה-Big-Data, ובהפיכה לסופרמן של מידע.