יש לךלמד לקוד, אבל עכשיו מה? אולי יש לך כמה כישורים בסיסיים, אבל אתה לא בטוח מה לעשות איתם. הנה איך לבחור ולהתחיל בפרויקט האמיתי הראשון שלך.
בחירת הפרויקט הראשון שלך: התחל בפשטות
רוב הסיכויים שלמדת לקודד כי היו לך כמה רעיונות לדברים שרצית להשיג, אז הגיע הזמן להעלות את הרשימה הזו של חלומות פיתוח ולראות מה עשוי להיות אפשרי. אמנם אתה יכול לקחת על עצמך פרויקט די מורכב וגוזל זמן לראשון שלך - ובהחלט תלמד הרבה - כנראה שאין לך הרבה זמן להקדיש ואתה עלול למצוא את עצמך מוותר מתסכול בקלות רבה מדי. אני מרגיש שהדבר הטוב ביותר להתחיל איתו, כשאתה בשלב הלמידה, הוא משהו שאתה באמת רוצה לעשות שאתה יכול להשיג די מהר. כך אתה מתוגמל עם משהו שהכנת שבאמת עובד כמו שתמיד קיווית בפרק זמן קצר מאוד. אתה יכול להשתמש בניצחון הזה כמוטיבציה לפרויקט הבא, שיכול להיות הרבה יותר גדול.
להבין מה פשוט ומה לא
מה שאתה צריך לעשות עם כל אחד מהרעיונות שלך הוא לפרק אותם לכמה שיותר חתיכות קטנות. ברוב המקרים, כאשר חברות מפתחות פיסות תוכנה גדולות, הן עדיין מפרקות את משימות הפיתוח לנתחים זעירים לעיכול ומקצות אותם לחברים שונים בצוות. חברי הצוות האלה כותבים את הקוד הספציפי הזה ועוברים למשימה הבאה עד שהם יסיימו. נוצרים חתיכות קטנות עד ליצירת התוכנה. זוהי תמונה פשטנית ברמה גבוהה של איך דברים עובדים, אבל היא לא שונה מהגישה שאתה צריך לנקוט בפרויקטים הראשונים והאחרים שלך. אין לך צוות פיתוח שלם, אבל עדיין תצטרך להתמודד עם חלקים וחלקים כדי ליצור את המכלול.משימות גדולות וסוחפות לא עובדות בשום מצבובמיוחד לא עם פיתוח תוכנה. פירוק הכל לשלבים פשוטים הוא מה שיגיד לך אם פרויקט גדול מדי או קטן מדי כדי להתחיל איתו. זה יראה לך מה אתה צריך ללמוד כדי להשיג את זה ואת פיסות הקוד שבאמת תצטרך לכתוב. בואו נסתכל על כמה דוגמאות.
נניח שאתה מעוניין ביישום יומן והדרישות הן להצגת יום, שבוע וחודש וכן להוסיף, לערוך ולהסיר פריטים ספציפיים. למרות שזה לא בדיוק פרויקט קשה בסדרה הגדולה של הדברים, הוא מורכב יותר ממה שזה נשמע. בתצוגת חודש בלבד, תצטרך לחשב אילו תיבות יום הן חלק מהחודש הנוכחי המוצגות ואילו תיבות באפור מכיוון שהן חלק מהחודש הקודם או הבא. תצטרכו גם להבין איך ייראו פריטי תאריכים שונים, למדוד כמה זמן כל פריט הוא, לקטוע את השם אם הוא ארוך מדי כדי להכנס לקופסה, וכן הלאה. מה שעשוי להיראות פשוט יכול למעשה לדרוש לא מעט היגיון ולכן חשוב לפרק כל שלב ושלב שאתה יכול לחשוב עליו כדי שתוכל להחליט אם זה אפשרי עבורך או לא.
אותו דבר לגבי משחק כמו פונג. אם כישורי המתמטיקה שלך טובים למדי, אתה יכולליצור משחק פונגדי בקלות תוך כ-30 דקות או פחות. הפרויקט שאתה בוחר צריך להיות קל מספיק כדי שלא ידרוש ממך להשקיע המון זמן כדי לסיים אותו, אלא גם ישחק את החוזקות שלך. (כדאי גם להימנע מליצור דברים כמו פונג וליצור משהו חדש וייחודי מכיוון שבדרך כלל זה יותר מתגמל ומעורר מוטיבציה כשהכל נאמר ונעשה).
השלמת הפרויקט הראשון שלך: לעולם אל תפסיק ללמוד
להיות מפתח פירושו שאתה תמיד לומד. פרויקטים חדשים פירושם לימוד מיומנויות חדשות, או לפחות דרכים טובות יותר לביצוע משימות שכבר הבנתם בעבר. הפרויקט הראשון שלך הוא תמיד הכי מרתיע כי אתה מתחיל עם הכי מעט ידע שיהיה לך, אבל ככל שתמשיך עם הפרויקטים הבאים, תלמד שכמעט כל מה שאתה עושה כרוך ביציאה החוצה. הלא נודע. זה דבר טוב, אבל זה עשוי לקחת קצת הסתגלות.
שמור את חומרי העזר שלך מוכנים
אם אתה מרגיש המום אפילו מפרויקט קטן, קח את המשימה הראשונה שלך ותבין מה אתה צריך ללמוד. זה אמור לתת לך מושג על סוג חומרי ההתייחסות שתרצה לשמור בהישג יד כשאתה עובד על כל הפרויקט. מה שאתה צריך ישתנה, אבל זה מאוד נפוץ שלסביבות פיתוח משולבות (IDEs) יש הפניה מובנית שאתה יכול לבדוק. זה המקרה עבור תוכנות כמופאניק קודה(שזו אופציה ממש מדהימה ב-Mac, אגב),Adobe Dreamweaver, ואפילואפל Xcode. עם זאת, אם אין לך הפניה מובנית, בדרך כלל תוכל למצוא משאבים מקוונים המפרטים כל מחלקה, פונקציה, שיטה ועוד עבור השפה הנתונה שלך. המדריך PHPהוא דוגמה מצוינת אחת.
סוג זה של חומרי עזר יהיה צורך בהתאם לרמת המיומנות שלך, מדי. מדריכי הקוד המקוונים שתמצא הם בדרך כלל די צפופים, ואם עדיין יש לך מיומנויות בסיסיות יותר שאתה צריך ללמוד כדי להשלים את הפרויקט שבחרת, סביר להניח שתרצה להחזיק גם ספרים ומדריכים מוכנים. אם עדיין אין לך משאבים כלשהם, שקול את הפרויקט שאתה עושה. התמקדות יכולה לעזור לך לקבל ספר טוב יותר, ערכת שיעורי וידאו או כל מה שאתה צריך. לדוגמה, אם אתה יוצר אפליקציית Adobe AIR עתירת אנימציה באמצעות ActionScript 3, תרצה ספר עלאנימציה עם ActionScript. אם אתה עושה משחק לאייפון שלך, קבל ספר עלמפתחים את המשחק הראשון שלך. זה כנראה נראה די ברור, אבל זה יכול להיות קל לבחור ספר כללי יותר על שפה או משימה מסוימת שלא יכלול מספיק ממה שאתה רוצה. זה לא רע שיש גם ספר כזה, אבל כשאתה לומד אתה תרצה כמה דוגמאות והסברים ספציפיים שאתה יכול להשיג.
הימנע מתסכול על ידי קח את זה לאט וקבל עזרה
אם אתה לא רגיל לחשוב כמו מפתח - ורוב הסיכויים שלא אם אתה קורא את זה - אתה כנראה הולך להיות מתוסכל יותר מכמה פעמים בזמן קידוד הפרויקט הראשון שלך. זה בסדר, וזה קורה, אבל אתה לא רוצה להגיע למצב שבו מתחשק לך לוותר כי זה קשה מדי. ודא שאתה נותן לעצמך לוח זמנים ריאלי. שעה ביום היא פרק זמן טוב לעשות לא מעט. זה אולי מרגיש כאילו דברים מתרחשים לאט, אבל זה בעיקר המקרה בהתחלה. ברגע שאתה רואה דברים מתאחדים ומתחילים להיראות כמו אפליקציה (אינטרנט), ההתרגשות שלך תוביל אותך להמשך הדרך.
התסכול הגדול ביותר בתהליך הפיתוח, לעומת זאת, הוא תיקון באגים. לא משנה כמה תהיו זהירים, אתם תבזבזו לא מעט פעמים ותציגו באגים באפליקציה שלכם. תיקון אלה מיד הוא בדרך כלל אידיאלי, אבל לפעמים תצטרך להתרחק מהמחשב ופשוט להסתכל על הקוד מחר. נקודת מבט רעננה יכולה לעשות את ההבדל. עם זאת, אפשרות נוספת היא שיש חבר קוד. חבר הקוד שלך לא בהכרח צריך לעבוד איתך על הפרוייקט, אבל באופן אידיאלי הם יידעו איך לקודד כמוך ולא יתנגד לבלות מדי פעם בזמן שאתה עובד. כשיש לך באג אתה יכול פשוט לבקש מהם להסתכל על מה שעשית ולראות אם משהו נראה להם מוזר. פעמים רבות זו רק שגיאת הקלדה שאתה לא רואה אבל הם יראו ברגע. אם אין לך חבר שיודע לקודד לעומת זאת, האלטרנטיבה היא להתקשר לכל חבר בכלל ולהסביר לו את הבעיה. הסבירו להם מה אתם מנסים לעשות במונחים שהם יבינו, ונסו להעביר את הבעיה שבה נתקלתם בצורה פשוטה לא פחות. עודדו אותם להציע הצעות למרות שהם יתעקשו שהם לא יכלו לדעת. תהליך זה יכול לעתים קרובות להצית משהו בראש שלך ולעזור לך להבין מה אתה עושה לא בסדר.
בסך הכל אתה רק צריך להישאר חרוץ, לקרוא מה אתה רוצה לעשות, ולהיכשל הרבה עד שתלמד את המיומנויות שאתה צריך כדי לסיים את הפרויקט שלך. פיתוח תוכנה יכול להיות קשה כשאתה מתחיל, אבל ברגע שתבין את זה תמצא שזה מהנה ומתגמל. הפרויקט הראשון יכול להיות הקשה ביותר, אבל אם תנקוט באמצעים כדי לפשט הכל ותשמור על עצמך במשימה, תסיים לפני שאתה יודע זאת.