יש איזה הייפ כזה בתעשיית ההייטק, בגלל הרבה סיבות כמובן, אני רוצה להצביע על איזה נקודה ספציפית, שהיא מכירת קורסים ו"כניסה לעולם הייטק"… מוכרים מעיין חלום כזה שבעזרת קורס פיתוח זריז והנה אתם תוך 3 חודשים מתחילים לעבוד עם משכורת 30.. זה בלוף כמובן, אבל בסדר ככה העולם עובד, כמה בודדים באמת יתגדלו כפנומנים שבאמת יתקבלו למשרה לאחר הקורס ובזכות זה העסק הזה עוד קיים כי "יש קבלות". אבל זה בסדר מבחינתי, כל אחד שיעשה את השיקולים שלו, הקטע שאותי קצת מרגיז זה שלקחו דווקא את עולם הפרונט אנד ועשו אותו כאילו "קל" , רוב הקורסים המהירים הם בעולמות של פרונט אנד, יש מתכנתים שפגשתי שציינו בפניי שהם הלכו ללמוד קורס פרונט כי זה יותר קל ואפשר ללמוד את זה מהר ולהיכנס להייטק.
בכל מקרה , אני לא רוצה למכור לכם את האשליות האלה, ישנם נושאי פיתוח במגוון תחומים והבדלים רבים המבדילים בין העולמות הללו וכן סט הכישורים הוא שונה (יש נקודות השקה כמובן). כולנו אנשים וכל אחד מיוחד עם סגנון משלו ולפעמים נמצא כי חלק מאיתנו יתחברו יותר לעולם קוד ויזואליים והאחר לעולמות יותר טכניים.
בשביל להיות טובים במה שאתם עושים, חשוב שתהיה לכם את ההבנה הזו, שאתם אכן מתחברים לעולם שבחרתם לעסוק בו. כבר שמעתי לו פעם מתכנתי פרונט שאומרים "אני לא אוהב לממש design, אני מעדיף לעשות רק את הלוגיקה" . זה משפט מוזר מאד להגיד אם אתה מפתח פרונט, זה רוב עיסוקך..
עיסוקנו כמפתחי פרונט הוא יישום – עד הפיקסל! – של הממשק שאיתו אנשים רבים הולכים לבוא במגע. באחריות שלנו, זה החיבור בין צד העיצובי והמחשבות והקריאטיב של הצוות העיצוב, לבין הRND. אנחנו נדרשים להפעיל שיקולים רגשיים וכישוריי פיתוח על מנת לממש את פנטזיית הגולשים.
אז בואו נדבר על ה"הגדרה" של מפתח frontend ואתן גם הגדרה חדשה משלי (אם יורשה לי 🐱)
מה הוא מפתח ה Front End
מתכנת צד לקוח: (Front-end developer) מימוש החלק הויזואלי של המוצר, כלומר לממש את המסכים, האינטראקציות והתהליכים השונים ברמה הטכנית והעיצובית, בטכנולוגיות מתאימות, לשימוש יעיל עבור האנשים הבאים במגע עם המוצר.
סה"כ ההגדרה "מדויקת", אבל מפספסת את רעיון מרכזי חשוב והוא, חווית המשתמש. יש האומרים שיגידו כי יעילות היא החוויה אבל זה לא תמיד נכון, לפעמים תהליכים לא יעילים יהיו חווייתיים מאוד. וכן הייתי רוצה לשנות מאט את ההגדרה ולציין כך:
מתכנת צד לקוח: (Front-end developer) באחריותו לדאוג לחלק הויזואלי והחווייתי של המוצר , כלומר לממש את המסכים, האינטראקציות והתהליכים השונים ברמה הטכנית והעיצובית, בטכנולוגיות מתאימות, לשימוש חווייתי עבור האנשים הבאים במגע עם המוצר. כמו כן מפתח צד לקוח צריך להיות בקיא בתהליכי צד שרת וכן לדעת לממש תהליכים אלו.
זוהי אחריותו העיקרית של מתכנת פרונט. אך כמובן אין בעיה לספק פיתוח פרונט מאוד טכני ויעיל ועדיין עם אפס הבנה בעיצוב. לדעתי, מפתח פרונט כזה יהיה בינוני, ולא בגלל הביצועים שלו, בגלל שהוא יפספס חלק מרכזי במוצר, וזה יוביל למוצר בינוני. חשוב להבין שאנחנו כמפתחי פרונט נמצאים בחזית! ונוגעים באזורים הכי מהותיים ללקוח של המוצר, ואם לא נשים דגש על זה, ככל הנראה איש אינו ישים לב, אלא אם התעקשו אתכם על זה (מה שלא קורה כמעט בכלל בישראל). ולצורך דוגמה אם תרצו לממש כפתור, ולא יהיה לכפתור הובר\טאץ' בעיצוב, האם זה נראה לכם לגיטימי? אנחנו ב2023 (נכון לכתיבת פוסט זה) הובר ואנימציות קוד הם כבר מובן מאליו. תתפלאו שזה עדיין קורה. באחריות מי זה ? המעצב? לדעתי זו אחריות של מפתח צד לקוח.
עוד דגש שציינתי בהגדרה המשודרגת, וכן על מנת שלא תבינו אותי לא נכון, מפתח פרונט לא מסתכם בעיצוב ולא ביכולתו לממש CSS HTML , ממש לא, מפתח פרונט צריך להיות בקיא גם בסביבת צד שרת. לדעת ליישם תהליכים אלו, בין אם מדובר בבנייה של API בקשות שונות לדטהבייס , סטטוסים, הודעות ועוד.. כמובן שארחיב על זה בהמשך.
סיכום הגדרות מתכנת צד לקוח
יכול להיות שזה נשמע מעט מוזר ויכול להיות שחלקכם לא תסכימו עם זה. אולי תחשבו שזה עובר להגדרות של FULLSTACK או PRODUCT. אבל אם אתם באמת תנסו לבוא בגישה של לקבל הגדרה חדשה, יכול להיות שתצליחו לראות שיש השקה בין מה שאתם הבנתם כמפתחי צד לקוח לבין התפקידים האחרים שהרגע ציינתי, וכמו שכולנו יודעים רוב הכשלים נמצאים בחיבורים וכן כל אחד מהצדדים צריך לקחת על עצמו הבנה וניסיון באותם נקודות ההשקה. זה מה שיבטיח מוצר מנצח ויהפוך אתכם לטובים יותר ובעלי יתרון גדול בשוק.