הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

8 שאלות שכדאי לשאול בראיון עבודה למשרת פיתוח Front End

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

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

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

אז כמו שהבנתם מהכותרת הנה רשימה של 8 שאלות שאני הייתי שואל את המעסיק הפוטנציאלי:

  1. האם כותבים טסטים? האם משתמשים במערכת CI/CD כלשהי?

  2. האם משתמשים בכלי ניהול גירסאות (רצוי git) ?

  3. האם יש תרבות של Code Reviews ? מי מבצע Code Reviews? ולמי? ובאיזו תדירות?

  4. מה מדיניות החברה בנוגע להשתלמויות מקצועיות? האם יקנו עבורך קורס אונליין?

  5. כמה זמן במהלך שבוע ממוצע מתכנתים בחברה משקיעים בלימוד? האם יש זמן מוקצב בלו״ז לדברים כאלה?

  6. מה היחס לנושא נגישות?

  7. מה היחס לאבטחת מידע? יש מי שבודק את הקוד לחולשות? איך התקשורת בין המתכנתים לאותם Pen Testers ? איך נושא אבטחת מידע משתלב בתהליך הפיתוח?

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

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

צעדים ראשונים עם jQuery

ספריית jQuery נוצרה כדי לתת לנו ממשק עבודה טוב יותר עם ה DOM. בתקופה ש jQuery התחילה כל דפדפן סיפק פונקציות שונות כדי לחבר בין קוד JavaScript לבין התוכן שאתם רואים על הדף. ג'ון רסיג כתב את jQuery ב 2005 בזמן שלמד בקולג' במטרה לתת למתכנתים (ולעצמו) כלים טובים יותר לגשת ל DOM ולחבר קוד טיפול באירועים בצורה שעובדת טוב בכל הדפדפנים.

בשנה הראשונה של jQuery היא היתה הספריה היחידה שהגיעה עם תיעוד מלא. כל שאר הספריות שלחו אתכם להסתכל בקוד המקור שלהן או להבין דברים לבד. מאפיין זה יחד עם ארכיטקטורת פלאגינים שבנויה לתוך הספריה הפכו אותה מ"עוד ספריה לגישה ל DOM" לספריה המרכזית שאנשים בוחרים בה ב 2006, ב-2012 וכן גם ב 2018.

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

המשך קריאה

חדש באתר: קורס git

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

תשע שנים אחרי ועדיין לא עבר לו, וגם אני כבר מזמן מכור.

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

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

מתכנתים רבים מגיעים ללמוד גיט ומחפשים איך לבצע בגיט את ה-3 פקודות שהם מכירים ממערכת ניהול הגירסאות הקודמת שלהם או דרך Tutorials של "למד את עצמך גיט בעשרים דקות". זה עובד אבל רק חלקית. כשאתם לומדים תוך כדי עבודה ומדלגים על הבסיס התיאורטי וה Best Practices יהיו דברים חשובים שתחמיצו ויהיו דברים שוליים שתקחו יותר מדי ללב.

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

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

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

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

https://www.tocode.co.il/bundles/git

נתראה שם, ינון

הזמנה לוובינר: פיתוח Web Application מאפס כולל צד שרת

הי חברים,

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

ביום חמישי (עוד יומיים) בשעה עשר בבוקר אעביר וובינר חינמי בו אציג פיתוח Web Application מלא מאפס באמצעות HTML/CSS/JavaScript בצד הלקוח שמתממשק עם שרת Firebase.

בוובינר נכתוב תוכנת ציור אונליין בה משתמשים רבים יכולים לצייר ולשתף את הציורים שלהם בזמן אמת בחדרי ציור שונים אותם ינהלו ויפתחו המשתמשים. במהלך הכתיבה נלמד:

  1. מהו המבנה המומלץ לפרויקט Web.

  2. איך לעצב ולבנות את המסכים עוד לפני החיבור לצד השרת.

  3. מהו Firebase ואיך הוא יכול לעזור לנו לבנות יישומים מהר יותר.

  4. איך לחבר את המסכים והקוד שבנינו לשרת Firebase כדי לאפשר עבודה שיתופית בזמן אמת.

  5. איך להגדיר חשבונות ולאפשר למשתמשים להתחבר למערכת ולשמור ציורים בחשבונות שלהם.

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

הוובינר יתקיים בשני חלקים וביום חמישי הקרוב יהיה החלק הראשון בו נכתוב את צד הלקוח ואת החיבור הבסיסי לשרת Firebase.

פרטים והרשמה בקישור: https://www.tocode.co.il/workshops/38

נתראה, ינון

איך לכתוב sleep ב JavaScript

שאלה שחוזרת אצל מתכנתים שמתחילים לעבוד עם JavaScript היא השאלה לגבי sleep. היינו שמחים לפעמים לכתוב טקסט על המסך, לחכות קצת ואז לכתוב עוד קצת טקסט. בתור שפה אסינכרונית ב JavaScript אי אפשר באמת לעצור את ריצת התוכנית בשביל לחכות. אבל גירסת ES8 של השפה הוסיפה תמיכה ב async/await איתם אפשר לבנות את sleep ואפילו די בקלות.

המשך קריאה

גם בריאקט: לא תמיד קל להגיד לילדים מה לעשות

שתי צורות של תקשורת בריאקט מאוד ברורות מהתיעוד: הראשונה היא העברת מידע מהורה לילד באמצעות Properties, והשניה היא שליחת פקודות מילד להורה באמצעות העברת Callback בתור Property. פוסט זה יעסוק בבעיה שלישית שפחות מדברים עליה: איך לשלוח פקודה מהורה לילד.

המשך קריאה

צרות עם שינויים באוביקטים

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

המשך קריאה

חדש באתר: קהילת מתכנתים

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

המשך קריאה