1 min. read

הקדמה

תחום התוכנה הוא תחום צעיר יחסית, התחיל בשנות ה-40, קיבל קפיצת מדרגה רק אחרי שנות ה-60 וה-70,
נעשה פופולרי אחרי שנות ה-2000.
כיום יש אינספור אתרים, מחשבים, בקרים, מחשבי-על, לווינים, מכונות, מכוניות, ציוד רפואי ועוד ועוד ועוד…
כל אלו מופעלים בעזרת חומרה ונשלטים בעזרת - התוכנה.

אין פלא ששמעתם על התחום הזה ותהיתם לעצמם - איך אני יכול? והאם כדאי לי.

שימו ❤:
בפוסט הזה אכתוב על התחום וחלק ממה שאכתוב הוא דעתי בלבד.

מהו תכנות?

לתכנת - משמע ליצור/לכתוב תכנית.
כתיבת תכנית או תוכנה במחשב נקרא “לקודד” או במילים פשוטות יותר - לכתוב קוד.

מהו קוד?

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

למשל קוד בסיסי להדפסה למסך ולקבלת מידע מהמשתמש:

1
2
3
print("Hello World")

userInput = input("What is your name? ")

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

תהליך הפיכת קוד לשפת מכונה נקרא “הידור”.
התוכנה נקראת “מהדר” או קומפיילר - Compiler.

מתכנתים

אנשים שכותבים קוד נקראים מתכנתים.

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

מתכנתים בתפקידים שונים

מוצר תוכנתי יכול להיות כמעט כל דבר - אפליקציה, משחק מחשב, אתר אינטרנט וכדו’…
השקת מוצר שהוא תוכנה מורכב מתהליך ארוך:

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

בכל צעד יש בעיות שונות ולפי הבעיות האלו יש גם תפקידים שונים:

  • QA ובדיקת תוכנה
  • מתכנת אלגוריתמים
  • מתכנת מערכות הפעלה
  • בודק אבטחה
  • מפתח אתרים
  • מפתח שרתים
  • מפתח משחקים
  • תכנות Embedded.
  • מפתח ביצועים
  • תחזוקה ותמיכה
    ועוד ועוד ועוד…

מגוון תחומים רחב

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

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

פיתוח תוכנה

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

דוגמאות:

  • Windows
  • Microsoft Word
  • Microsoft PowerPoint
  • Gmail
  • Instagram
  • Netflix
  • Torrent

כשאתם שואלים את עצמכם “האם תכנות מתאים לי” תחשבו על זה ככה -
האם הייתם רואים את עצמכם בונים את ה-Gmail הבא?
האם הייתם רואים את עצמכם בונים מערכות תעופה או רפואה?
או אפילו משחק מחשב?

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

יתרונות חסרונות לעבודה בתחום התוכנה

יתרונות

מפתח יכולות מועילות

חשיבה על תוכנה וכתיבת קוד נותנת לנו יכולות שונות,

  • פתרון בעיות
  • הגיון
  • יכולות מתמטיות
  • יכולות זיכרון
  • ידע על הדומיין
  • ידע על חומרה והמחשב
  • כתיבת מהירה במקלדת

סביבת עבודה נוחה

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

למידה מתמדת

ניתן לראות זאת גם כחסרון וגם כיתרון - אני בברור רואה זאת כיתרון.
תכנות זה תחום שדורש למידה - תמיד.
טכנולוגיות חדשות, יכולות חדשות, ללמוד ללמוד וללמוד!

תעשייה משגשגת

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

חסרונות

לכל תחום יש חסרונות וגם בתוכנה יש חסרונות.

ישיבה מרובה ובעיות עיניים

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


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

תחרותיות ואגו

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

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

שעות מרובות ולחץ

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


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

עבודה מול אנשים ומול מחשב

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

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

תתקן לי בבקשה את המחשב…

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

האם זה מתאים לי?

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


לתכנת דורש סבלנות לשבת מול מחשב - אם נוח לכם לשבת במחשב ואתם רוצים אפילו יותר זה יתאים לכם!


אם אתם חזקים בהגיון, יתאים לכם לתכנת!


אם אתם אוהבים מתמטיקה או מדעים ללמוד לתכנת ייעזור לכם!


אם בא לכם ליצור ולבנות עולמות משלכם, כנראה יתאים לכם לתכנת!


אם בא לכם לעזור לעולם ולקדם טכנולוגיה, יכול להיות שיתאים לכם!


אם התעניינתם כמה זמן ואתם ממש חושבים על ללמוד את זה - יכול להיות שיתאים לכם!

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

החלטתי שאני רוצה לתכנת, מה עכשיו?

להתנסות!
בעזרת ספר, וידאו, קורס או חבר שיודע לתכנת!

ב-SimplyCode תוכלו ללמוד פייתון בקלות.

לימוד פייתון

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

מה צריך ללמוד

שפת תכנות ראשונה

הטכנולוגיה ושפת התכנות הראשונה היא בחירה חשובה, משהו שילווה אתכם החל שתתחילו ללמוד ועד הסוף!

ממה כדאי להתחיל?

  • C# או Python
    לאנשים שרוצים לתכנת בשפה יחסית פשוטה - מומלץ כשפה ראשונה.
  • R או Matlab
    אנשים שמתעניינים יותר בפתירת בעיות מתמטיות.
  • C או C++
    לאנשים שמחפשים אתגר עם שפה מורכבת ללמידה אך עוצמתית.
  • Assembly
    לאנשים שממש מחפשים אתגר ורוצים לתכנת ברמה הכי נמוכה במחשב.

איך ללמוד

מורה/ קורס/ תואר או למידה עצמית?

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

בחרו מה שנוח עבורכם!

קורס או תואר?

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


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


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

הדבר הכי חשוב עבור תכנות

זה להתנסות.
כל דבר שאתם לומדים אל תשאירו אותו כידע תאורטי בלבד - תנסו לכתוב קוד ולקרוא קוד כך שאתם תתעסקו כמה שיותר עם קוד.

למה? כי קוד לא טועה.


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

תודה על הקריאה :)


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