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

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

איך לכתוב פרויקטים טובים לפורטפוליו

07/08/2018

יש כמה אופציות כדי לכתוב פרויקטים טובים לפורטפוליו:

  1. אפשר לבחור פרויקט שיראה שאתם מבינים ממש טוב טכנולוגיה מסוימת, עדיף טכנולוגיה קשה. במצב כזה הדבר הכי חשוב זה שהקוד יהיה מתועד ויהיה קובץ README טוב שיסביר איך כל דבר בנוי ולמה. קית' קלארק למשל כתב דף שמראה איך לבנות Parallax ב CSS:

https://keithclark.co.uk/articles/pure-css-parallax-websites/demo3/

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

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

http://inbalgeffen.com

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

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

http://www.hasadna.org.il

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

רעיונות נוספים? מוזמנים לשתף בתגובות.

שני המרכיבים של מוטיבציה

06/08/2018

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

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

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

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

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

תבניות מחזור חיים של פקד ב React 16

05/08/2018

פקדי React הכוללים מצב פנימי (State) צריכים הרבה פעמים דרך לסנכרן בין המצב הפנימי לבין העולם החיצוני. הפונקציה render מהווה דוגמא למנגנון שהופך את המצב הפנימי למשהו שרואים על המסך. פונקציות מחזור חיים מציעות מנגנוני סינכרון בין המצב הפנימי לעולם החיצוני במצבים נוספים שאתם עשויים להיתקל בהם.

המשך קריאה

לא חשבתי על זה

03/08/2018

לא חשבתי על זה שאני יכולה להתפרנס מכתיבה

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

לא חשבתי שאני יכולה לכתוב מערכת שלמה לבד.

לא חשבתי שאני יכול לעבוד למצוא עבודה בתכנות מהבית.

לא חשבתי שאני אי פעם אצליח להבין מהי רשת נוירונים.

אז לא ניסיתי...

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

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

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

שתי מחשבות אחרי שלוש שעות בלי אימייל

02/08/2018

פסטמייל נפל היום ל-3 שעות. אם השם לא נשמע לכם מוכר זה לא מפתיע - מדובר בחברה אוסטרלית שמתחרה בג'ימייל ומציעה שירותי אימייל. בתשלום. נדמה לי שאני המנוי היחיד שלהם בארץ, אבל אומרים שבעולם הולך להם די בסדר (יחסית לחברה שמתחרה בג'ימייל וכו').

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

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

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

צעדים ראשונים עם Ruby On Rails

31/07/2018

ביום חמישי בבוקר אעביר וובינר של שעה על הספריה Ruby On Rails: ספריה לפיתוח יישומי Web מלאים. בשעה אני מתכנן לכתוב אתכם Web Application מלא בו משתמשים יוכלו לפרסם לינקים לדברים שאהבו ומשתמשים אחרים יוכלו לעשות "לייק" על הלינקים.

רוצים לבוא? זה קישור להרשמה:

https://www.tocode.co.il/workshops/44

המשך קריאה

יישור תיבת טקסט מימין לשמאל

30/07/2018

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

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

ככה זה נראה בקודפן עם תיבה לשם ותיבה נוספת לאימייל:

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

הנה אותה הדוגמא הפעם עם פלייסהולדר בלבד:

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

במצבים כאלה נרצה להבדיל בין יישור ה Placeholder ליישור הטקסט עצמו. הפיתרון הפשוט ביותר הוא עיצוב ה placeholder:

שעובד בכל הדפדפנים מלבד IE ו IE Edge.

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

לזרוק את קורות החיים

29/07/2018

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

וככל שאני חושב על זה יותר אני מרגיש שיש מעט מאוד כאלה (ואם מורידים את הצבא מהמשוואה לדעתי אין בכלל).

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

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

כמה זמן ייקח לך ללמוד לרכב על אופניים?

28/07/2018

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

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

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

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

https://www.tocode.co.il/workshops/44