על התפתחות אישית בהיי-טק וקורסים בחינם

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

כל מי שחיפש לעצמו ספרות בנושא לימוד שפות תכנות יכול לאמר לכם שמציאת ספר טוב היא כמו מציאת מחט בערימת שחט. סתם דוגמא: לפני מספר שנים כשחיפשתי ספר ללמוד שפת פייתון, מצאתי ספר שחבר המליץ עליו. התחלתי לקרוא אותו ואחרי כמה רגעים הרמתי גבה: העמודים הראשונים מדברים על Python Eggs ועל עוד כמה מושגים שבתחילה היו נשמעים לי מוזרים. חיפוש קצר בגוגל הביא לי דף שהסביר לי את המושגים כולם בדף אחד בקיצור ואז עוד יותר תהיתי – מדוע לכל הרוחות כותב הספר מתחיל בהתחלה לדבר על eggs עוד לפני שהתחלנו ללמוד איך להדפיס (print) על המסך? בוא נעובר משתנים, פונקציות, if/else/elif, קצת מכות בוליאניות ובהמשך בחלק היותר מתקדם נדבר על ביצים, ביצי משק וכו'. 

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

כיום אנחנו חיים בעידן ה-Constant online ולאמזון יש את ה-Kindle כך שחובבי ספרות יכולים תוך שניות לרכוש ספרים ולקבל אותם לסמארפון/טאבלט/קינדל ולא חשוב מאיזו ארץ אתה מזמין (בניגוד למתחרים כמו B&N או אפילו Google שברגע שרואים שאתה מחוץ לארה"ב – שכח מהזמנה, ולך תעבוד עליהם עם Buy2USA ועוד חברות שנותנות לך כתובת בארה"ב), אך עדיין – קשה למצוא ספרות טובה שיכולה להתאים לרוב האנשים וגם כשמוצאים, צריך למצוא זמן ללמוד, לתרגל את החומר, להמציא תרגילים וכו'.

עוד דרך ללמוד היא דרך הוידאו, חברות כמו Lynda, Plural Sight ואחרות מוכרות תקליטורים ושידורי און ליין של הדרכות בשפות תכנות שונות, אפליקציות שונות וכו', אך הבעיה העיקרית איתם זה שאינך יכול לרכוש קורס אחד ולגמור עניין, כי הם מפצלים זאת ל-Essentials, Advanced ועוד שמות, ומה לעשות ששפת תכנות לא לומדים ב-3 ימים (אחרת חודשיים אחרי זה כשלא תתרגל, סביר להניח שתשכח חלק מהחומר), אלא לאורך זמן. אותן חברות בדיוק בונות על זה ומציעות לך מנויים חודשיים, כך שאתה תשלם כמה חודשים בשביל ללמוד לעומק את השפה שתרצה.

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

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

לאתר קוראים: Codeacademy

מבחינת הקורסים שהוא מציע, כפי שציינתי, אין כמות כרגע, אבל יש בהחלט תחומים מעניינים והם: Python, Ruby, HTML&CSS, jQuery,Javascript, PHP

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

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

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

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

בהצלחה

וידאו עם HTML-5 מול Flash

בימים האחרונים עולה ברשת שוב הויכוח האם HTML-5 יכול "להרוג" את פלאש מבחינת וידאו.  גם גוגל וגם חברות אחרות נמצאות בתוך הקלחת הזו, אז חשבתי לתרום קצת מנסיוני בתחום הוידאו ולהסביר מס' דברים. במאמר הפעם אני לא אכנס לעניין המקודדים (Codecs)..

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

השיטה הפשוטה היא השיטה שידועה לכולם: לוקחים קובץ וידאו, זורקים אותו לתוך שרת ה-WEB (בין אם זה Apache או IIS), בדף עצמו מטמיעים תוכנת נגן כלשהי (נגן פלאש, Quicktime או Windows Media Player) וכשהמשתמש לוחץ על Play, הנגן מבקש דרך HTTP את קובץ המדיה, הוא מאחסן כמה שניות ומתחיל לפרוס את הקובץ ולנגן אותו תוך כדי שהוא אוגר עוד ועוד וידאו ומנגן אותו. בשיטה זו אתרים פשוטים רבים עובדים (רוב אתרי הפורנו לדוגמא). החסרון בשיטה זו שאם יש איטיות בתקשורת בין שרת ה-WEB לדפדפן שלך, אתה תקבל הרבה הודעות Buffering, והוידאו "יתקע" למשך מס' שניות עד שהנגן יאגור עוד תוכן ורק אז ינגן אותו. חסרון נוסף הוא שאין גמישות מבחינת הקידוד (תיכף ארחיב על כך) והחסרון המשמעותי ביותר: קשה לקבל מידע מפורט כמה זמן משהו נוגן, היכן המשתמש עצר את הוידאו וכו'. היתרון, לעומת זאת, הוא שאין צורך בשרת מיוחד כדי לנגן את הוידאו וכל שרת WEB יוכל להעביר את הוידאו לנגן.

השיטה המתוחכמת היא שיטה שבה משתמשים בשרת מדיה יעודי (כמו Quicktime Server, או Flash Media Server, או Windows Media Services וישנם עוד כמה שרתים כאלו). בשיטה זו לא משתמשים בשרת ה-Web הרגיל אלא משתמשים בשרת מיוחד ובפרוטוקול נפרד (MMS במיקרוסופט, RTSP אצל אפל, Real Network, או RTMP ב-Flash). השימוש בפרוטוקול ובשרת נותנים גמישות רבה יותר. אפשרות לשלוח Bitstream יותר גבוה או נמוך בהתאם למהירות התקשורת של הצד הצופה. אם לדוגמא התקשורת בין שרת המדיה ללקוח גבוהה, אפשר לשדר גירסה עם קידוד ביטים יותר גבוה, ואם מהירות התקשורת באמצע השידור נוחתת, אפשר לשנות מיידית את השידור לגירסה שמתאימה יותר למהירות הנוכחית. אפשר לשלב פרסומת דינמית מותאמת או כל אלמנט טכני אחר באמצע השידור (לדוגמא, החלפת תוכן הדף). אפשר לקבל סטטיסטיקות הרבה יותר מפולחות ומדויקות מי צפה במה וכמה זמן, איך היתה איכות השידור, כמה פעמים הוידאו עצר ועוד ועוד.

סטיב ג'ובס הוא "אנטי" פלאש בגלל כל מיני סיבות והוא דוחף את HTML-5 כתחליף לפלאש, אך התחליף האמיתי בכל הנוגע לוידאו מבחינתו של ג'ובס הוא Quicktime וללקוחות מעוניינים: Quicktime Server (שהמקודדים היוקרתיים שלו עולים כסף), כך שמבחינת אפל, הרווח פשוט יותר גדול כי כך אפשר לעקוף מתחרה ולהרוויח פלח שוק ורווח פיננסי כמובן, אך HTML-5 ותמיכת הוידאו שלו לא עוקפת את מה שיש לפלאש להציע. HTML-5 לא תומך ב-Stream עם מהירות ביטים משתנה, הוא לא תומך בתוכן מוגן, הוא לא תומך בפידבק בחזרה למקרין התוכן ואין בו הרבה דברים למה שפלאש מציע בתחום ניגון הוידאו (ועוד לא הזכרתי את עניין ה-HD). זו הסיבה לדוגמא שיוטיוב לא הולכים מחר לזרוק את Flash לטובת HTML-5. הם יאפשרו ניגון בפורמט HTML-5 אך עדיין ברירת המחדל תהיה פלאש וגוגל מכירים בכך ש-HTML-5 לא יהרוג את פלאש.

לסיכום: HTML-5 בהחלט יכול לעזור בניגון קבצי וידאו פשוטים משרת WEB דרך הדפדפן, אך בשלב זה ל-HTML-5 אין פתרון שמתאים לגופי שידור אינטרנט גדולים כמו Cast-up בארץ, או HULU בחו"ל. פלאש ישאר איתנו זמן רב, גם אם סטיב ג'ובס מתנגד לו.