שפת מקור: מדוע ידיעת שפות רבות הפכה לדרישה הכרחית למתכנתי העתיד?

לשחות בשפות חדשות: האם זו היכולת המתבקשת למתכנת-העל בעתיד? | צילום: Shutterstock
לשחות בשפות חדשות: האם זו היכולת המתבקשת למתכנת-העל בעתיד? | צילום: Shutterstock
שפות תכנות הן עולם שלם של תרבויות ודקויות: הן נוצרו לצרכים שונים, בזמנים שונים ובמקומות שונים. כך ידיעת שפות רבות ככל האפשר תסייע לכם לבלוט על פני המתחרים בשוק העבודה

Contributors

פוליגלוטים הם אנשים הדוברים מספר שפות ברמת ניהול שיחה. מדובר בטרנד עולמי וגם על-זמני. פוליגלוטים הם תופעה ידועה עוד מימי מצריים העתיקה, ימי הביניים ואפילו יש לה אזכור בקאנון היהודי כמו למשל המלך שלמה שידע לפי הכתוב 70 שפות. נאמר שיש אנשים שיודעים "לקלוט שפות מהר" או יש להם "כישרון לשפות", כך שאם למדו שפה אחת – ידעו לקלוט אחרות באותה קלות.

בפועל, מדובר בעבודה רבה, אימון ושקידה על חומרי קריאה ושיחה, מעבר לכישרון או נטייה מולדת גרידא. אין עוררין על היתרונות הברורים של שליטה במספר שפות. מעבר ליכולת להתנייד בקלות ברחבי העולם, יש פתח להבנת תרבויות שונות.

קשה לדבר אנגלית בארצות הברית בלי להיכנס לראשם של האמריקאים, וכידוע, צרפתים יחזירו תשובה בשפתם אך ורק לדובר צרפתית שנתפס מספיק מיומן בעיניהם. בשל ניואנסים כאלו ואחרים, השפה מאלצת את הדובר להשליך את מחשבותיו על התרבות אליה הוא נחשף.

המצב דומה גם בשפות תכנות. לדעת "לדבר" מספר שפות תכנות הוא כישור מאוד משתלם בעולם התוכנה של ימינו. המיומנות עוזרת לא רק בחיפוש ומציאת עבודה, אלא גם בשיחות חיצוניות לשוק העבודה. התרגלנו לראות ולכתוב קורות חיים בהם אנחנו מפרטים סוג של 'רשימת מכולת' של שפות תכנות, מהנמוכות ועד לגבוהות ביותר, דרך סקריפטים ושפות חומרה. זה נעשה במטרה להאדיר ולפאר את יכולות הלמידה שלנו.

בסופו של יום – לכל מפעל תוכנה יש את שפת הדיבור הייחודית לו. אם אתם דוברים את השפה תמיד תהיו בסוד העניינים, יתרשמו מכם בראיונות יותר מאשר המועמדים האחרים והסיכוי שתקבלו הצעה חזקה – יעלה.

עם זאת, לדעת לדבר בשפת תכנות כזו או אחרת זה ממש לא הכל. שפת תכנות היא גם תרבות ועולם שלם של דקויות. בשפות המסורתיות כמו למשל שפות C, העיסוק העיקרי הוא בעיקר בנושאים מסורתיים כמו ניהול זיכרון ויעילות, בעוד שבשפות תכנות חדשות יותר כמו RUST, העיסוק המרכזי הוא בנכונות האלגוריתם, מבני הנתונים והאפשרות לבדוק אותם. שפות תכנות נוצרו לצרכים שונים, בזמנים שונים, במקומות שונים בעולם, וכך יצא שכל אחת היא מיוחדת ומקודדת בתוכה את תרבות התכנות של יוצריה.

שפת תכנות היא גם תרבות ועולם שלם של דקויות: הן נוצרו לצרכים שונים, זמנים שונים ובמקומות שונים בעולם, כך שכל אחד מיוחדת ומקודדת בתוכה תרבות ייחודית של יוצריה

תרבות תכנות היא עולם שלם הקיים בכל ארגון בימינו. המטרות והערכים של הארגון מוגדרים מחדש כמעט בכל צוות ולכל ארגון תוכנה יש גם את סט הכלים הייחודי שלו. מבחוץ אמנם כולם נראים דומים, אבל בתוכם מדובר בעולם אחר.

סך כל הדברים האלו יוצרים סוג של "שבט", משפחה גדולה בה כולם מבינים את כולם באמצעות סימנים – הקוד. כל שנדע לתקשר בשפת השבט, כך נבין את התרבות, נוכל לתרום קוד, לתעד ובעיקר להבין את האנשים שעומדים מאחורי שורות הקוד. בסופו של דבר, שפות תכנות הן ניסוי אנתרופולוגי המציג שיח בין מכונות.

אם נכנס אפילו יותר למחילת הארנב, נגלה שבכל ארגון תוכנה ישנם צוותים עם ייעוד שונה, כמו למשל צוותי פרונט-אנד ובק-אנד. אין ספק שלעיתים הקווים מטשטים אך נדע מה לכתוב באיזו שפה.

שפות תכנות כוללות בתוכן גם את התרבות של מי שיצר אותן | צילום: Shutterstock
שפות תכנות כוללות בתוכן גם את התרבות של מי שיצר אותן | צילום: Shutterstock

את ה-UI נכתוב ב-TypeScript ואת הסרבר נכתוב ב-Go, נכון? מתכנת סרבר, אם ידע TypeScript, יוכל לנהל דיון יותר משטחי על המשימה עם עמיתיו בצוות הפרונט. לכן, משתלם לדעת את כל שפות הארגון מכמה סיבות, למשל פחות חיכוכים ביןצוותים כי אנשים מבינים טוב יותר את הבעיות של הקולגות שלהם, והרחבת סט ה-reviewers לכל פול ריקווסט.

שליטה במספר שפות תכנות היא בהחלט אחד הדברים החשובים ביותר לצוות קטן של מקימי סטארט-אפ, אך צריך לזכור שלדעת מספר שפות ברמה גבוהה זו ממש לא משימה פשוטה.

כל שפת תכנות, כמו שפות דיבור, מורכבת מחוקים (הלוא הם הסינטקס), סביבת הרצה, המטרות שלה והספריות שלה. שפת CUDA למשל, של חברת NVIDIA שבעזרתה בונים תוכנות למאיצים גרפיים, אולי תזכיר את שפת C הארכאית, אבל ברור שהיא שונה לחלוטין. בנקודה זו אפשר להעלות את הטיעון "ראית אחת – ראית את כולן", מאחר וכל השפות דומות ברמה מסוימת, בין אם במבנים הלוגיים, הנחות העבודה או המודל, אז למה בעצם לטרוח ולהעמיק בלמידה של שפות נוספות?

הסיבה לכך היא שאין תחליף לניסיון מעשי, ובעולם התוכנה הניסיון הוא אך ורק באמצעות האצבעות. אצבע על המקלדת תמיד טובה יותר מאצבע מורמת בכיתה כדי לשאול שאלה. גם בעולם ההנדסה, מה שעובד בתיאוריה לא בהכרח קורה במציאות, על כן אין תחליף לניסיון מעשי.

אני צופה כי בעתיד נראה עוד ועוד מתכנתים על-שפתיים שלא חוששים לקפוץ לסרבר אם צריך להוסיף עוד endpoint, לא נרתע מלחלץ עוד פיצ'רים למודל הלמידה החישובית שמאחורי הקלעים, ולא מפחד מלשנות את מודל ה-redux או לשכתב שאילתות mongo – והכל באותו קומיט!

אם נדבר את השפה של השבט השני, נוכל לתקשר ולהבין אותם טוב יותר ובכך לאחד את השבטים אל מול אויב משותף – הלקוחות. והפעם, צחוק בצד: ללמוד שפות תכנות זה דבר משתלם לכל אחד, תמיד. עצתי היא לעולם לא לפספס הזדמנות ללמוד שפה חדשה.


ד”ר רועי שילקרוט הוא מדען ראשי בחברות בארה”ב ובישראל, עמית מחקר במכון הטכנולוגי של מסצ’וסטס (MIT) בו הוא מרצה בנושאי בינה מלאכותית, ובעבר פרופ’ למדעי המחשב באוניברסיטת סטוני ברוק בניו-יורק. הוא פרסם מאמרים וספרים בנושא והוא חתום על מספר פטנטים בתחום.

ה- Contributors של פורבס ישראל הם כותבים עצמאיים שנבחרו על ידי מערכת פורבס, מומחים בתחומם, המספקים פרשנות וסקירת תופעות עכשוויות בתחום התמחותם. התוכן הוא מטעמם ובאחריותם והוא אינו תוכן ממומן.

הרשמה לניוזלטר

באותו נושא

הרשמה לניוזלטר

מעוניינים להישאר מעודכנים? הרשמו לרשימת הדיוור שלנו.

דילוג לתוכן