אז איזה שפת תכנות כדאי לנו ללמוד?
אז איזה שפת תכנות כדאי לנו ללמוד?

יומנו של מתכנת: איזה שפת תכנות כדאי ללמוד קודם?

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

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

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

סביבות פיתוח

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

HTML & CSS

HTML
HTML
CSS
CSS

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

 

אז מאיפה לומדים?: התשובה לשאלה תלויה בסוג הלימוד שאתם אוהבים – קריאה או סרטוני ווידאו. אתר מעולה לקריאה שממנו שווה ללמוד את כל הקשור בנושא תכנות ובניית אתרים הוא: http://www.w3schools.com/

לאלה שאוהבים מדריכי ווידאו אני אביא את הערוץ שאני חושב שהוא מספר אחד ביוטיוב ללימוד תכנות (כי לעזאזל עם הבנאדם הוא מלמד שם כל כך הרבה שפות) העונה לשם thenewboston. מוזמנים לבקר ברשימת הסרטונים שלו ללימוד html ו css כאן

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

 

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

Python

Python
Python

 

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

 

אז מאיפה לומדים?: לדעתי הדרך הכי טובה להתחיל ללמוד python היא מסרטון היוטיוב הבא העובר על כל הבסיס של python בצורה יסודית מאוד (11 שעות אז תהיו מוכנים חברימוס) העונה לשם From Zero to Hero with python. 

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

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

Java

 

 

java
java

 

 

Java. שפה יפה ופופולארית, עלולה להיות מוכרת לחלק מיוצאי הבגרות במחשבים מבין הקוראים. אך עם היותה פופולארית לוקח זמן ללמוד אותה בצורה טובה. יותר קשה מPython כמובן וגם מ c# שאותה נביא בהמשך. למי שרואה בעתידו תכנות לאנדרואיד, זוהי דרך המלך בשבילו. Java היא שפת התכנות הרשמית לאנדרואיד אשר בה מפתחים בכלי הפיתוח הרשמי לאנדרואיד – Android Studio. היתה שמועה שיבטלו את אפשרות הפיתוח באקליפס (סביבת פיתוח בג'אווה) אבל לא יצא לי לשמוע מה בסוף הוחלט. אם למישהו יש מושג נא לרשום בתגובות, אשמח לדעת. בנוגע לפיתוח לאנדרואיד בכללי בשפות אחרות אני אפתח את הנושא בפעם אחרת.

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

את המקור השני אפרסם בסוף הפוסט מכיוון שהוא מקור אוניברסלי להמון שפות תכנות ולא רק לג'אווה.

C#

 

C sharp
C sharp

הכירו את C# . המון אנשים קוראים לה האחות של ג'אווה, מכיוון שהיא די דומה לה, אך C# היא יותר ידידותית למשתמש. המון פעמים דברים בג'אווה שיקחו מספר מסויים של שורות יהיו יותר פשוטים לביצוע בסי שארפ עם פחות שורות. סי שארפ היא גם מקום טוב להתחיל בו. אחד היתרונות שאני רואה בה הוא שהיא שפת התכנות העיקרית שבה מפתחים משחקים במנוע המשחק Unity 3d, אך על מנועי משחק בכללי נדבר בפעם אחרת.

 

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

 

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

 

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

אודות יאיר משניות

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

9 תגובות

  1. היי תודה על הדברים , אני מתכננת להתחיל ללמוד תכנות. באיזו שפה כדאי לי להתחיל?

    • יאיר משניות

      שלום תמר! התשובה לכך היא שזה ממש תלוי במה את רוצה לעשות? לאיזה כיוון את מכוונת? אם את רוצה בניית אתרים אז דרך המלך היא html ואז css ואז javascript.

      אם מטרתך היא נניח פיתוח לאנדרואיד, אז Java היא שפת הבית לתחום.

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

  2. שלום אני רוצה להתחיל ללמוד תכנות ולהתקדם גם האלה אני בכיוון של תכנות כללי במחשבים וגם תכנות ופיתוח אפליקציות ומשחקים לאנדרואיד
    מה כדי לי להתחיל ללמוד קודם ולמה לעבור לאחר מכן מקודם קודם למה ?
    נגיד להתחיל ללמוד python ואז JAVA ואז C ואז C++ ואז C# ? זה סדר טוב
    תוכל להמליץ לי על סדר למידה טוב ?

    • יאיר משניות

      שלום דניאל! ההמלצה שלי לגבי שאלתך היא כזו:
      html
      css
      javascript
      שפת צד שרת כלשהי – לרוב עדיף php ומשם או להמשיך איתה או לעבור למשהו אחר.

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

      ולגבי השאלה הממוקדת לפיתוח לאנדרואיד – java is the king

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

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

      בהצלחה! 🙂

  3. אחלה כתבה. מתי אתה ממשיך לכתוב עוד כאלו?

    • יאיר משניות

      שלום לירון 🙂

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

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

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

    תודה

    • יאיר משניות

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

      לגבי שאלתך השניה, ממליץ לך להסתכל על תגובתי לדניאל(שתי תגובות למעלה), היא מפורטת מאוד 🙂

      תקציר של התגובה:

      html
      css
      javscript
      php
      התרחבות למה שאתה רואה לנכון

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

      בהצלחה!

  5. איך זה ש php זה רק לבניית אתרים ואילו pyton או java זה גם לבניית תוכנות? מה יש בכל אחת שאין בשניה

השאר\י תגובה