CodeGym /בלוג Java /Random-HE /איך זה היה? או הפרויקט הראשון שלי
John Squirrels
רָמָה
San Francisco

איך זה היה? או הפרויקט הראשון שלי

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

מבוא

קצת על איך הגעתי לתכנות. אני מורה ופסיכולוג בהכשרתי, וכבר 5 שנים אני עוסק במקצועי בהצלחה. אבל מסיבות שונות, אני יותר ויותר חושב על מעבר למדינה אחרת. ומכיוון שהשפה והתקנות שונות במדינות אחרות, לא יכולתי להפוך לאותו סוג של איש מקצוע בלי הסבה מקצועית רצינית. אז התחלתי לחפש דרכים פשוטות ומעניינות יותר לנוע ולהצליח. איך זה היה?  או הפרויקט הראשון שלי - 1ניסיתי את כוחי כאמן קעקועים (זה לא דורש בעצם ידע בשפה), אבל זה סיפור ליום אחר. ואז חבר שלי לעבודה הכיר לי את CodeGym. בהתחלה הייתי סקפטי לגבי ההבטחות להפוך אותי למתכנת מן המניין על ידי משחק במשחק ובמחיר כל כך צנוע. אבל אז קיבלתי קצת כסף ליום הולדת (לא חייב ב"מס משפחה"), ועמדתי בפני הבחירה בין WoW ל-CodeGym... ובכן, הודות להנחה בזמן, הכף נוטה לכיוון הנכון, והנה אני כאן. כפי שכולנו כבר צריכים לדעת, CodeGym הוא 90% תרגול טהור. אתה לומד לפתור משימות. אתה לומד למצוא את הידע שחסר לך באינטרנט. כל זה טוב, אבל במשך 15 רמות לא יכולתי להשתחרר מהתחושה שחסר לי משהו שישלים לי את התמונה. חשבתי להצטרף ל-GeekBrains, אבל (כנראה למרבה המזל) אותו חבר עצר אותי בזמן והכיר לי את Udemy. כשפתחתי את מאגר הידע הזה, הלכתי עם הפניות: " פססט, חבר. האם אתה חדש?" יש הנחה בשבילך... ל-3 ימים בלבד - אל תפספסו את ההזדמנות הזו! "מאוחר יותר התברר שתמיד יש הנחות, אבל זה לא העניין. מיד רכשתי חבילה עם שני קורסים: Java מ-0 ל-Pro ומשהו דומה לאנדרואיד. וכאן מתחיל הסיפור שלנו.

הצלחה או כישלון?

כשעבדתי בקורס אנדרואיד, קיבלתי שיעורי בית להכין פרויקט על סמך הידע החדש שלי. אני מסוג האנשים שמאמינים שלעשות משהו בצורה פשוטה או רגילה זה כמו לא לעשות את זה בכלל. אז, מיד התחלתי לסבך את חיי. פניתי לאדם שאני מכיר שיש לו את הדמיון המפותח והחי ביותר. זו אשתי היקרה (כן, היא גם תקרא את המאמר הזה). היא הציעה ליצור אפליקציה עם תמונות של חיות, שמשמיעות קולות של בעלי חיים מתאימים כשלוחצים עליהן. זה היה רעיון נהדר, אבל עדיין די פשוט. בהתייחס להצעה זו כבסיס, התחלתי לנמק:
  • האפליקציה הזו חייבת להיות יותר ממוך (משהו לצחוק ולשכוח ממנו). אני רוצה שיהיה לזה ערך. למשל, על ידי לימוד משהו.
  • תן לזה להיות האלפבית עם חיות. אבל לא סתם אלפבית, אלא האלפבית האנגלי!
  • ולא רק חיות, אלא חיות נדירות שמעטים מכירים, כדי להרחיב את אופקיהם!
  • וצריך להיות אנימציה, שכפול אודיו של שמות האותיות ושמות בעלי חיים באנגלית וברוסית!
עכשיו זה מה שאני קוראת שיעורי בית (שכחתי לציין שלפני CodeGym בעצם לא הכרתי את התכנות. ופחות מ-3-4 חודשים עברו מהרגע שהתחלתי להשתמש באופן פעיל באתר ועד לרגע שהתחלתי את הפרויקט. אז, אם אתה אני ותיק בתחום הזה ואתה חושב, " פףף... משהו השתנה מהגרסה המקורית? ", אני מבטיח לך, כן, זה השתנה)! הקושי הראשון שנתקלתי בו היה , באופן מוזר, להתחיל את הפרויקט. מסתבר שכותבים הם לא היחידים שחווים "חסימה של סופרים"... אבל בגלל שאני פסיכולוג, ידעתי את הפתרון לבעיה שלי. אתה רק צריך להתחיל לעשות משהו. קח לפחות צעד קטן, ואז פשוט אל תפסיק. אז התחלתי בשיעור אותיות מופשט . לכיתה הזו היו כמה תחומים, ובהמשך היו צריכים להיות להם שיטות שונות. במציאות, לא היה לי מושג מה אעשה עם זה, אבל הייתי חייב לעשות משהו. לאחר מכן, יצרתי מחלקות לכל אות, מה שגרם להם לרשת את המחלקה המופשטת. זה לקח הרבה זמן, ובזה יום העבודה הראשון שלי הגיע לסיומו. למחרת מחקתי את הפרויקט והתחלתי מחדש. זה עתה פתחתי את הפרויקט כדי לזכור מה השתנה מאז הרגע שתיארתי למעלה. ואני רוצה לומר שהכל נראה טוב יותר כשסיימתי, אבל לא. באמת עדיין יש שיעורים לכל אות... זה נבע במיוחד מהעובדה שקיבלתי את שיעורי הבית האלה כמעט בתחילת קורס האנדרואיד, ובעצמי נאלצתי להבין את נבכי הקשר בין פעילות (החלון הפעיל, או משהו כזה) עם כיתה. ולא מצאתי ולא חשבתי על שום דבר מלבד הדרך המגושמת הזו לשייך כיתה ספציפית לפעילות ספציפית. בכל מקרה, אחד מעקרונות התכנות (הימנע מחזרות) הופר 26 פעמים. ראשית, יישמתי לחלוטין (נראה לי) את שתי האותיות הראשונות, הכנתי ממשק משתמש גס המורכב משני תפריטים (תפריט כללי שעשוי להיות נחוץ בעת הרחבת הפונקציונליות, ותוכן עניינים, ממנו ניתן היה לקפוץ לכל של המכתבים). לא ממש נתקלתי בקושי רב בתכנות. תוך כדי הטמעת הפרויקט העצמאי שלי, דברים רבים, כמו הקשרים בין מחלקות, שיטות וכו', התבררו והפרויקט עצמו הפך לתרגול מצוין לאיחוד כל הידע שצברתי לא רק על אנדרואיד, אלא גם על ג'אווה. הקושי השני היהשהאות התחלפה באותו זמן ששמו נשמע. המעבר החלק (הצללה) גרם לזה להיראות כאילו הסאונד קדם לתמונה. אבל כאשר שמתי השהייה על הסאונד, כל החוט קפא - המעבר פשוט נדחה על ידי כמות ההשהיה, מה שיוצר את אותו אפקט לא רצוי, רק מאוחר יותר. ואז קיבלתי את ההחלטה הנועזת להפוך את התוכנית שלי למרובת הליכים! העברתי את השמעת הסאונד לשרשור נפרד, עם השהיה שהיה מספיק ארוך כדי שהתמונה תיטען. זה היה באשר לריבוי ההליכים, אבל הייתי גאה לומר שכתבתי אפליקציה מרובה הליכי. הקושי האחרון היה בחירת חומרים מתאימים. חשבתם שלאנגלית אין חיה לאות X (מסתבר שכן)? הייתי צריך לזהות 26 בעלי חיים ולמצוא את התמונות והצלילים שלהם, ולהקליט שמות של 26 אותיות ו-26 חיות. אם הייתי עובד בצוות, ברור שהייתי משאיר את החלק הזה של העבודה למישהו אחר. רגעים מונוטוניים כאלה הורגים את הרצון לעבוד, וכשאין חשק, יש תירוצים. בכל מקרה, השלב הזה לקח בערך שבועיים (עשיתי את הפרויקט בזמני הפנוי וכשלא היו לי תירוצים). הפרויקט הוכרז כשלם כ-3-4 שבועות לאחר תחילתו.

האם כדאי להמשיך ללמוד תכנות?

התפכחות באה בעקבותיה. ראשית, אסור היה לי לפרסם את שיעורי הבית שלי בקורס. עשיתי את העבודה והשקעתי המון מאמץ להשוויץ, אבל אסור היה לי. שנית, האפליקציה שלי עבדה בצורה מושלמת באמולטור ובטלפון שלי. ממה שתכננתי לעשות, לא יישמתי אנימציה, כי ירקתי והחלטתי שאסיים את זה לאחר שעברתי את השיעורים הרלוונטיים בקורס. אבל כשהתחלתי לחשוב על הפצת האפליקציה, נתקלתי בבעיה מעניינת. לאחר שהשתמשתי בטלפון אחר ובטאבלט כדי לבדוק אם האפליקציה שלי עשתה אופטימיזציה עבור מסכים שונים וגרסאות שונות של אנדרואיד, נתקלתי בשגיאה לא ידועה. התוכנית פשוט נסגרת בעת מעבר לאות. ניסיתי למצוא את שורש הבעיה, סקרתי את היומנים, שבהשוואה לחריגות ג'אווה תמציתית, נראו אפילו יותר כמו הוקוס פוקוס. האינטרנט לא עזר לי. מצד אחד הכנתי אפליקציה עובדת שהילדים שלי אוהבים לשחק בה. מצד שני, זה עובד רק בטלפון שלי. זה מצחיק אותי. כמובן, הייתי מוטרד, אבל בהתחשב בכך, הגעתי למסקנה שהרווחתי יותר ממה שהפסדתי:
  • השתפרתי בהתמודדות עם ביקורת על העבודה שלי.
  • הבנתי את הערך של ידע וניסיון בעיצוב תוכנה.
  • הגברתי את ההערכה העצמית שלי לתכנות.
  • הבנתי את הצורך ללמוד דפוסי עיצוב ואת היסודות של ריפקטורינג.
  • וכמו שאמרתי, עכשיו יש לי אפליקציה משלי, שלאף אחד אחר אין וכנראה לעולם לא תהיה לה. =)
"אני יודע שאני לא יודע כלום". על ידי יישום פרויקטים חינוכיים כמו זה, יש לך הזדמנות מצוינת לנתח את מה שאתה יודע איפה יש לך פערים בידע שלך, ולזהות דרכים להתקדם הלאה. האם כדאי להמשיך ללמוד תכנות אם אתה מבין שכל המאמצים שלך לאורך שלב ארוך בחייך העבירו אותך מ-0 ל-+0.001? מבחינתי, התשובה הייתה חיובית. מה איתך?
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION