Lifehacker יקר,
עם כל הבאזז על לימוד קוד, החלטתי לנסות את זה. הבעיה היא שאני לא בטוח מאיפה להתחיל. מהי שפת התכנות הטובה ביותר למתחילים כמוני?
חָתוּם,
יכול להיות קודן
יכול להיות יקר,
זו כנראה אחת השאלות הפופולריות ביותר של לומדים בפעם הראשונה, וזה משהו שגם מחנכים מתלבטים בו. העניין הוא שאתה יכול לשאול עשרה מתכנתים מהי השפה הטובה ביותר להרטיב איתה את הרגליים ואתה יכול לקבל עשר תשובות שונות - יש אלפי אפשרויות. עם זאת, באיזו שפה אתה מתחיל תלוי לא רק עד כמה היא ידידותית למתחילים, אלא גם בסוג הפרויקטים שאתה רוצה לעבוד עליהם, למה אתה מעוניין בקידוד מלכתחילה, ואולי גם אם אתה חושב לעשות זאת למחייתו. הנה כמה שיקולים והצעות שיעזרו לך להחליט.
למה אתה רוצה ללמוד קוד?
תלוי מה אתה רוצה לעשות או לעשות, ייתכן שהבחירה שלך כבר הושלמה בשבילך. כדי לבנות אתר או אפליקציה אינטרנט, למשל, כדאי ללמוד HTML ו-CSS, יחד עם JavaScript ואולי PHP לאינטראקטיביות. אם ההתמקדות שלך היא בעיקר/רק בבניית אפליקציה לנייד, אז אתה יכול לצלול ישר לתוךלימוד Objective-C עבור אפליקציות iOSאוֹאיך לתכנת עם Javaעבור אנדרואיד (ודברים אחרים).
אם אתה מחפש לחרוג מפרויקט או התמחות ספציפיים אחד, או רוצה ללמוד חבורה של שפות, עדיף להתחיל בלימוד המושגים הבסיסיים של תכנות וכיצד "לחשוב כמו קודן". כך, לא משנה מהי שפת התכנות הראשונה שלך, אתה יכול ליישם את המיומנויות הללו ללימוד שפת חדשה (אוליתוך 21 דקות בלבד). אֲפִילוּאפליקציות קידוד לילדיםיכול להיות שימושי מלכתחילה. לדוגמה, קורס התכנות הרשמי הראשון שלקחתי (טוב, מלבד BASIC בכיתה ד') היה ה-CS50 של הרווארד, אשראתה יכול לקחת בחינם. פרופסור מלאן מתחיל איתו את הקורסלְגַרֵד, סביבת תכנות גרור ושחרור שנבנתה לילדים שמלמדת יסודות קידוד והיגיון - תוך שהיא עוזרת לך ליצור משהו מגניב - ואז הוא ממשיך ללמד אותך C.
הצגנו עוד כמה משאבים מצוינים ללימוד קוד לאורך השנים, כמו קורס אינטראקטיביCodecademy, אבל גם עם אלה אתה עדיין צריך לבחור באיזו שפה להתחיל. אז בואו נסתכל על ההבדלים בין הפופולריים יותר והמומלצים ביותר כשפת התחלה.
שפות התכנות המומלצות ביותר למתחילים
רוב שפות התכנות "המיינסטרים" - כמו C, Java, C#, Perl, Ruby ו-Python - יכולות לעשות את אותן משימות - או כמעט אותו דבר - כמו האחרות. ג'אווה, למשל, פועלת בפלטפורמות שונות ומשמשת ליישומי אינטרנט ויישומי רשת, אך רובי יכול גם לעשות אפליקציות אינטרנט גדולות ואפליקציות Python לרוץ באופן דומה על לינוקס ו-Windows.SOA Worldמציין שבגלל ששפות רבות מעוצבות זו אחר זו, התחביר או המבנה של העבודה עליהן הוא לרוב כמעט זהה, ולכן לימוד אחת מסייעת לעתים קרובות בלימוד האחרות. לדוגמה, כדי להדפיס "Hello World", Java ו-C# דומים תחבירית בדיוק כפי ש-Perl ו-Python הם:
עם זאת, הם נבדלים בכמה קל להגדיר אותם ולהיכנס אליהם. SOA World ממשיך:
היי, אגב, אם הסתכלת מקרוב על הדוגמאות האלה, תבחין שחלקן פשוטות, אחרות מורכבות, וחלקן דורשות נקודה-פסיק בקצות השורות בעוד אחרות לא. אם אתה רק התחלת בתכנות, לפעמים עדיף לבחור שפות ללא כללים תחביריים (או לוגיים) רבים כי זה מאפשר לשפה "לצאת מדרכה". אם ניסית שפה אחת וממש נאבקת בה, נסה שפה פשוטה יותר!
להלן השוואה מהירה של שפות התכנות הפופולריות ביותר:
C: מאמן אותך לכתוב קוד יעיל
C הוא אחד מ,אם לא את, שפות התכנות הנפוצות ביותר. יש לכך כמה סיבות. כאמור המתכנת והסופר יואל ספולסקיאומר, C זה לתכנות כמו לימוד אנטומיה בסיסית זה לרופא רפואי. C היא שפה "ברמת מכונה", כך שתלמד כיצד תוכנית מקיימת אינטראקציה עם החומרה ותלמד את יסודות התכנות ברמת החומרה הנמוכה ביותר (C היא הבסיס ללינוקס/GNU). אתה לומד דברים כמו איתור באגים, ניהול זיכרון ואיך מחשבים עובדים שאתה לא מקבל משפות ברמה גבוהה יותר כמו ג'אווה - כל זאת תוך הכנה לקוד ביעילות עבור שפות אחרות. C הוא ה"סבא" של שפות רבות אחרות ברמה גבוהה יותר, כולל Java, C# ו-JavaScript.
עם זאת, הקידוד ב-C מחמיר יותר ובעל עקומת למידה תלולה יותר משפות אחרות, ואם אינך מתכנן לעבוד על תוכניות שמתממשקות עם החומרה (הקש על מנהלי התקנים, למשל, או הרחבות למערכת ההפעלה), למד C יוסיף לך זמן החינוך, אולי שלא לצורך. ל-Stack Overflow יש דיון טוב בנושאC מול Javaכשפה ראשונה, כאשר רוב האנשים מצביעים לכיוון C. עם זאת, באופן אישי, למרות שאני שמח שנחשפתי ל-C, אני לא חושב שזו שפה ידידותית במיוחד למתחילים. זה ילמד אותך משמעת, אבל תצטרך ללמוד הרבה לפני שתוכל לעשות משהו מועיל. כמו כן, בגלל שזה כל כך קפדני אתה עלול בסופו של דבר להיות מתוסכלכָּזֶה:
Java: אחת השפות המעשיות ביותר ללמוד
Java היא שפת התכנות השנייה הפופולרית ביותר, וזו השפה הנלמדת בשפה המפורסמת (והחינמית) של סטנפורדקורס מבוא לתכנות CS. Java אוכפת מוצקעקרונות מוכווני אובייקט(OOP) המשמשים בשפות מודרניות כולל C++, Perl, Python ו-PHP. לאחר שלמדת Java, תוכל ללמוד שפות OOP אחרות די בקלות.
לג'אווה יש יתרון של היסטוריה ארוכה של שימוש. יש המון דוגמאות של "בוילרפלייס", זה נלמד במשך עשרות שנים, והוא נמצא בשימוש נרחב למטרות רבות (כולל פיתוח אפליקציות לאנדרואיד), כך שזו שפה מאוד מעשית ללמידה. לא תקבל שליטה ברמת המכונה, כפי שהיית מקבל ב-C, אבל תוכל לגשת / לתפעל את חלקי המחשב החשובים ביותר כמו מערכת הקבצים, הגרפיקה והסאונד עבור כל תוכנה די מתוחכמת ומודרנית - שיכולה לפעול בכל מערכת הפעלה.
פייתון: כיף וקל ללמידה
אנשים רבים ממליצים על Python כשפת המתחילים הטובה ביותר בגלל הפשטות שלה אך עם היכולות הנהדרות. הקוד קל לקריאה ואוכף סגנון תכנות טוב (כמו הזחה), מבלי להקפיד על תחביר (דברים כמו לזכור להוסיף נקודה-פסיק בסוף כל שורה).פטריק ג'ורדן באריאל מחשובהשווה את הזמן שלוקח לכתיבת סקריפט פשוט בשפות שונות (BASIC, C, J, Java ו-Python) וקבע שאמנם אין להתעלם מהשפות האחרות, אבל Python:
דורש פחות זמן, פחות שורות קוד ופחות מושגים ללמד כדי להגיע למטרה נתונה. […] סוף סוף תכנות בפייתון זה כיף! הצלחה מהנה ותכופה מולידת ביטחון ועניין אצל התלמיד, אשר אז הוא במצב טוב יותר להמשיך ללמוד לתכנת.
SOA אומר ש-Python הוא חובה מוחלטת למתחילים שרוצים להרטיב את רגליהם עם לינוקס (או שכבר מכירים את לינוקס). הפופולריות של פייתון גם עולה במהירות היום הודות לאימוץ רחב באתרים פופולריים כמו פינטרסט ואינסטגרם.
JavaScript: לקפיצה ישר פנימה ולבניית אתרים
JavaScript (שיש קשר מועט ל-Java) דורש ההגדרה הקטנה ביותר כדי להתחיל איתה, מכיוון שהוא כבר מובנה בדפדפני אינטרנט.אוריילי מדיהממליץ לך להתחיל עם JavaScript כי יש לו תחביר סלחן יחסית (אפשר לקודד בצורה רופפת ב-JavaScript), אתה רואה תוצאות מיידיות מהקוד שלך, ואתה לא צריך הרבה כלים. אצלנולמד לקוד בית ספר לילהאנו משתמשים ב-JavaScript כדי להראות לך את היסודות כמו איך משתנים ופונקציות עובדים. אם אתה רוצה ליצור דברים אינטראקטיביים מגניבים לאינטרנט, JavaScript היא מיומנות חובה.
בחירת הנתיב שלך
שיקול אחרון הוא האם אולי תרצה לעבור מקידוד כתחביב לעשות זאת כקריירה.Dev/Code/Hackמפרק את תפקידי העבודה השונים ואת הכישורים שאתה צריך לאסוף עבורם:
מתכנת אחורי/צד שרת:
משתמש בדרך כלל באחד מהאפשרויות הבאות: Python, Ruby, PHP, Java או .Net. בעל ידע במסד נתונים. אולי יש קצת ידע במנהל מערכת.
מתכנת חזיתי/צד לקוח:
HTML, CSS, JavaScript. אולי בעל מיומנות עיצוב.
תוכניות לנייד:
Objective-C או Java (עבור אנדרואיד). HTML/CSS לאתרי אינטרנט לנייד. יש פוטנציאל ידע בצד השרת.
תוכניות תלת מימד/תוכניות משחק:
C/C++, OpenGL, אנימציה. אולי בעל מיומנות אומנותית טובה.
מתכנת בעל ביצועים גבוהים:
C/C++, Java. יכול להיות בעל רקע במתמטיקה או ניתוח כמותי.
בסופו של דבר, עם זאת, אין דרך אחת להתחיל ללמוד קוד. הדבר החשוב ביותר הוא ללמוד את היסודות באמצעות "לגרד את הגירוד שלך", כביכול, בעבודה על בעיות שאתה רוצה לפתור או משהו שאתה רוצה לבנות. בתור התכנות זה נוראהבלוג אומר:
סביר להניח ששפת התכנות הראשונה שתלמד תהיה הקשה ביותר ללמידה. בחירת משהו קטן ומהנה הופכת את זה לפחות אתגר ויותר להרפתקה. זה לא באמת משנה איפה אתה מתחיל כל עוד אתה ממשיך - תמשיך לכתוב קוד, תמשיך לקרוא קוד. אל תשכח גם לבדוק את זה. ברגע שיש לך שפה אחת שאתה מרוצה ממנה, לאסוף שפה חדשה זה פחות הישג, ואתה תרכוש מיומנויות חדשות בדרך.
לאחר שהחלטת,הזכיר בעבר את בנטויציע את המשאבים הדרושים לך ואת הקורסים לקחת לאחר שלמדת את השפה הראשונה שלך.
אַהֲבָה,
Lifehacker