איך כדאי ללמד אבטחת מידע
הוזמנתי להעביר בקרוב סדנא בפיתוח קוד מאובטח. אני מעביר סדנאות כאלה מפעם לפעם ובדרך כלל עיקר הסדנא הוא הדגמות של בעיות אבטחה בתוכנות ואיך אפשר היה להימנע מהן. התחלתי לחשוב על כיוון אחר אז משתף כאן ואשמח לשמוע גם דעות שלכם.
טיפים קצרים וחדשות למתכנתים
הוזמנתי להעביר בקרוב סדנא בפיתוח קוד מאובטח. אני מעביר סדנאות כאלה מפעם לפעם ובדרך כלל עיקר הסדנא הוא הדגמות של בעיות אבטחה בתוכנות ואיך אפשר היה להימנע מהן. התחלתי לחשוב על כיוון אחר אז משתף כאן ואשמח לשמוע גם דעות שלכם.
חבר שיתף השבוע מאמר מעניין של דני גוטווין בפייסבוק בו חיבר הכותב את תופעת אלאור אזריה לפערים חברתיים וחינוכיים בארץ. על הדרך העלה גוטווין את ההנחה שהחינוך החצי-פרטי שיש בארץ והאפשרות של בתי ספר לגבות תשלומי הורים מהווים גורם מרכזי לפערים בחינוך. ההצעה הפרקטית שלו היתה לבטל כל בחירה בחינוך ולשלוח את כולם לבתי ספר ציבוריים לפי בחירת המדינה.
חשוב לסתור הנחה זו ובמיוחד להזכיר שלמערכת החינוך הציבורית חלק מרכזי בבעיית הפערים. במצב העניינים היום, החינוך הציבורי הוא אחד המנגנונים שמקבעים מעמד חברתי ומונעים מוביליות חברתית. בואו נראה כיצד.
ללמוד טכנולוגיה חדשה? מה הבעיה? פותחים גוגל, קוראים מה שצריך ומתחילים לכתוב קוד. מה, אתה לא יודע לחפש בגוגל?
לו רק החיים היו כל כך פשוטים.
כשהתחלתי להקליט את מדריכי הוידאו לאתר הזה חיפשתי כמה שיותר חומר על איך להקליט מדריכי וידאו באיכות גבוהה. ניסיתי ללמוד כמה שיכולתי על סאונד, תסריט, אפקטים וכל מה שצריך בשביל שהקורסים יצאו מעניינים. אפילו קניתי מיקרופון ותוכנות יקרות. ועדיין התחושה היתה שמשהו לא עובד, אבל לא הצלחתי להבין מה בדיוק. עד שפגשתי את רוב.
ראש השנה הוא הזדמנות טובה להסתכל קדימה ולדמיין איך נראה בשנה הבאה, במקרה של ToCode איזה קורסים יהיו כאן עוד שנה. אלה התוכניות שלי, אשמח לשמוע מה דעתכם ואם יש קורסים נוספים שהייתם רוצים לראות שאינם ברשימה.
תחום התוכנה מחייב אותנו ללמוד טכנולוגיות חדשות כל הזמן. אם אתם מחליפים עבודה כל חמש שנים, סיכוי טוב שהידע אתו התקבלתם לעבודה הקודמת הוא לא זה שעליו תבחנו בראיון הבא. אם יש לכם מזל (ואתם בתחום הנכון) הספקתם במהלך העבודה להתקדם עם הטכנולוגיה. בהרבה מקרים זה לא ממש המצב.
קיימת גם תפיסה שגויה לפיה חייבים נסיון מעשי (קרי: בתור עובד) במשהו לפני שבאמת יודעים אותו. זה ברור שלנסיון יש חשיבות מכרעת, אבל היום מאוד קל לצבור נסיון איכותי גם מחוץ למשרד. וספר מקצועי טוב הוא הבסיס לצבירת נסיון כזו. אבל למה זה עובד?
מתכנני בתי הספר שלנו ראו לנגד עיניהם חברת מופת של פועלים, שבבוקר הולכים למפעל לייצר ואחר הצהריים חוזרים הביתה לזמן איכות עם המשפחה ושיחות פילוסופיות על החיים. שיטת הלימוד והתכנים נבחרו בקפידה כדי לייצר אנשים שירגישו בנוח בסגנון החיים הזה.
את החינוך לעבודה במפעל אנו רואים במתודה: חלוקת התלמידים לכיתות לימוד לפי גיל עם התקדמות בכל שנה לכיתה הבאה (בדומה לפס-ייצור). חלוקת זמן הלימוד לשעורים והפסקות עם השעון שעוזר להפריד ביניהם. וכמובן המבחנים האחידים שתפקידם למיין את התלמידים כשם שבוחנים איכות של תוצרים בפס הייצור.
את החינוך לערכים אנו רואים בתכני הלימוד עצמם: נסיון להקנות לכל ילד בסיס בלשון, היסטוריה, ספרות, תנ"ך וכמובן מקצועות הדגל אנגלית ומתמטיקה. הרעיון שקיים סט ידיעות שכל אדם בחברה צריך לדעת כדי שיוכל לתקשר ולדון עם חבריו על הנושאים החשובים באמת.
הבעיה הגדולה של בית הספר היא שהעולם כבר לא נראה כך. המדינות המודרניות מקיימות כלכלה בתר תעשייתית בה המפעל נדחק לשוליים ועיקר הייצור הוא בתעשיות עתירות ידע, פנאי, אומנות, חינוך ושירותים. אנו מגדלים דור של פועלים לעולם שאין בו יותר מפעלים, והגיע הזמן לעצור את זה.
מהפכת המידע ששינתה וממשיכה לשנות את העולם משפיעה על עתיד התעסוקה ואופן החיים של כל אחד ואחת מאתנו. לאור שינויים אלו, מקוממת במיוחד הבחירה הנמשכת של מערכת החינוך לשקוע בגעגועים לעולם של אתמול.
בתי הספר שלנו, לא רק שאינם מכינים את התלמידים לעולם המודרני, אלא הם מיועדים להרס בדיוק אותם הכישורים הדרושים להצלחה. במקום להציע תיקונים אני רוצה להציע מודל חלופי לחינוך הדור הבא, שייתן להם סיכוי אמיתי לקחת חלק בעולם התעסוקה העתידי.
בעולם התכנות המודרני הכולל גישה לאינטרנט מצד אחד וכלי פיתוח עם השלמה אוטומטית מצד שני, כתיבת קוד היא כבר לא בעיה כזו גדולה. ארגון קוד לעומת זאת זה סיפור אחר לגמרי. השאלות המעניינות הפכו להיות באיזה כלים להשתמש (PHP או node.js? בסיס נתונים טבלאי או NoSql? ובאיזה שפת תכנות?), איך לארגן את הקוד לקבצים ולמחלקות ואיך לכתוב קוד שיהיה קל לתחזוקה ולבדיקה.
את התשובות לשאלות אלו לא תמצאו ב Stack Overflow, מאחר ולכל פרויקט השיקולים שלו והמשאבים שלו. בתוכנה לאדם שמקבל החלטות כאלו קוראים ארכיטקט, או מעצב תוכנה. אבל האמת היא שמדובר בסולם שקצה אחד שלו הוא המתכנת המתחיל והקצה השני הוא הארכיטקט הבונה פתרונות מורכבים לארגון קוד במערכות גדולות.
אחד הצירים החשובים לפיתוח קריירה כמתכנתים הוא סולם הארכיטקטורה. הנה מספר טכניקות שעזרו לי להתקדם בציר זה.
למידה היא חלק חשוב מהעבודה שלנו ולמרות זאת נראה שאנחנו לא ממש טובים בזה. סטודנט ממוצע זוכר מעט מאוד מהחומר ששמע בהרצאה (מה שהופך את השאלה ״המורה, זה יהיה במבחן?״ לכל כך מפורסמת). לאחרונה התחלתי לחשוב על רעיונות לשפר את האפקטיביות של תהליך הלמידה ואני מרכז רעיונות אלו לפרויקט שנקרא ״8 שעות בשבוע״. אשמח לשמוע מה דעתכם.
קרה לכם שישבתם בשעור ו-5 דקות אחרי שהסתיים לא הצלחתם להזכר בדבר אחד שנלמד בו? מה לגבי יום או שבוע אחרי? או אולי עדיף לשאול: האם אתם יכולים להסביר או לחזור על דברים ששמעתם בהרצאה בשבוע שעבר?