כללי המשחק

מצד אחד…

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

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

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

מצד שני…

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

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

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

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

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

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

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

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

יעוץ נוסף בתחום

מבחן התאמה

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

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

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

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

בקורסים:
Python Programming
Front End Development
Software Engineering in PHP
Node.js Fundamentals
ציון המעבר הוא 60.

בקורסים:
Angular Fundamentals
Java Programming
Scala Fundamentals
Kotlin Fundamentals
Android Java Applications Development
C# Fundamentals
Swift Fundamentals
Go Programming
C++ Programming
ציון המעבר הוא 80.

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

למרות שכדי להרשם לקורס Node.js Fundamentals די במעבר בהצלחה של מבחן ההתאמה בציון 60 לפחות, ההמלצה שלנו היא להימנע מלהרשם לקורס זה במידה שאין למועמד ידע מוקדם בתכנות ב-JavaScript ובתכנות מונחה עצמים באופן כללי.

לחסרי רקע בתכנות אשר עושים את צעדיהם הראשונים בתחום אנו ממליצים להתחיל באחד משלושת הקורסים הבאים:
Front End Development
Software Engineering in PHP
Python Programming

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

ניתן ללמוד תכנות ברמה בסיסית ב-JavaScript באמצעות הוידאו קליפים ברשימת ההשמעה
https://www.youtube.com/playlist?list=PLXbb_VgMNspJIqzPFdxmM7GWVcu-uUc51

ניתן ללמוד תכנות ברמה בסיסית ב-PHP באמצעות הוידאו קליפים שצולמו בשלושת המפגשים הראשונים של הקורס Software Engineering in PHP
http://php.course.lifemichael.com/?p=112

Node.js Crash Course בחינם

ב-3 באוקטובר אנחנו נעביר את ה-Node.js Crash Course. מדובר במפגש אחד בהיקף של כ-3 שעות, שבמסגרתו נלמד, נדגים ונתרגל (מעט) ביחד עם המשתתפים את הנושאים הבסיסיים ביותר בפיתוח צד השרת של web applications באמצעות Node.js.

פרטים נוספים ורישום מראש בקישור
https://www.meetup.com/life-michael/events/250889121

ההשתתפות בחינם. מספר המקומות מוגבל. יש להירשם מראש.

PHP Crash Course בחינם

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

פרטים נוספים ורישום מראש בקישור
https://www.meetup.com/life-michael/events/250840901

ההשתתפות בחינם. מספר המקומות מוגבל. יש להירשם מראש.

Scala Crash Course בחינם

ב-28 בנובמבר אנחנו נעביר את ה-Scala Crash Course. מדובר במפגש אחד בהיקף של כ-3 שעות, שבמסגרתו נלמד, נדגים ונתרגל (מעט) ביחד עם המשתתפים את הנושאים הבסיסיים ביותר בפיתוח תוכנה באמצעות שפת התכנות Scala.

פרטים נוספים ורישום מראש בקישור:

Scala Crash Course

Wednesday, Nov 28, 2018, 5:30 PM

Wework Herzelia
1 Shenkar Herzelia, IL

91 Members Attending

This crash course overviews some of the basic topics in Scala, and sets the foundation for additional self-learning. Topics: Introduction to Scala OOP in Scala Functions in Scala Patterns Matching Collections in Scala Timetable:[masked] Mingling[masked] Part[masked] Break[masked] Part[masked] Kahoot! This crash course will be delivered…

Check out this Meetup →

ההשתתפות בחינם. מספר המקומות מוגבל. יש להירשם מראש.

Fullstack Developer

מפתחי תוכנה אשר ידועים כ-Fullstack Developers הם מפתחי תוכנה בעלי הידע והיכולת לפתח מערכות web אשר כוללות גם קוד אשר רץ בצד הלקוח, בין אם מדובר בדפדפן או בקוד שרץ כחלק מאפליקציה היברידית, (קוד אשר כולל בין היתר שימוש ב-HTML, CSS וב-JavaScript), גם קוד אשר רץ בצד השרת (בין אם מדובר בקוד ב-PHP, קוד ב-JS תוך שימוש ב-Node.js, קוד בפייתון, קוד בג'אווה או קוד בכל שפה אחרת אשר מאפשרת פיתוח מערכות שרצות בצד השרת) וגם קוד אשר רץ על מכשיר הטלפון הנייד. אלה הם שלושת ה-stacks (השכבות) של רוב מערכות התוכנה כיום. במקרים רבים, גם אם מפתח התוכנה לא יודע כיצד לפתח אפליקציות למכשירי טלפון נייידים אך הוא יודע כיצד לפתח גם את צד השרת וגם את צד הלקוח של מערכות web הוא עדיין ייחשב בעיני רבים ל-Fullstack Developer.

בקורס Front End Development אנו מתמקדים אך ורק בפיתוח הקוד שרץ בצד הלקוח (בין אם מדובר ב-JS, HTML או ב-CSS). כדי להשלים את הידע הדרוש כחלק מההתפתחות בכיוון של Fullstack Developer אנו ממליצים לעשות גם את אחד הקורסים הבאים:
Software Engineering in PHP
Node.js Fundamentals

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

לימדו JavaScript בחינם!

רוב שעות ההדרכה בקורס Front End Development מוקדשות ללימוד JavaScript וללימוד הנושאים הקשורים לנושא זה.

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

בקורס אנחנו מרחיבים בנושאים אלה, ומכסים נושאים רבים נוספים בשפת התכנות JavaScript.

לימדו CSS בחינם!

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

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

לימוד HTML בחינם!

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

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