שישה שיעורי חיים שלמדתי מתכנות


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

פוסט זה הופיע במקור בMakeUseOf.

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

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

תרשימי זרימה מפשטים הכל

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

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

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

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

לכל דבר יש את מקומו

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

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

השתמש מחדש במודולי תוכנית כדי לחסוך זמן

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

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

תעד הכל

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

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

השאירו לעצמכם תמיד נתיב מילוט

אחת הטעויות הנפוצות ביותר של מתכנת חובב היא הלולאה האינסופית. זה מצב שבו המצב הדרוש כדי לצאת מהלולאה אף פעם לא מתרחש בפועל, אז התוכנית נשארת בלולאה הזו ולעולם לא מסתיימת - זה צורך 100% ממעבד ה-PC וכמעט נועל את המחשב לתמיד עד שתהרוג את תַהֲלִיך.

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

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

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

פנה זיכרון כשתסיים

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

לדוגמה, באפליקציית VB פשוטה, היית מנקה מערך כך:

מחק את ArrayDin

או סגור זרם קבצים כך:

קובץ סגור(1)

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

שורה תחתונה

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

6 הרגלי חיים שתכנות יכול ללמד אותך היום| במקום קניות


Ryan Dube הוא סופר עצמאי ומהנדס חשמל ומומחה לקידום אתרים. כתיבתו מתמקדת בחקירות מדע וטכנולוגיה. בקרו אותו בTopSecretWriters.comאו עלגוגל פלוס.

רוצה לראות את העבודה שלך על Lifehacker? אֶלֶקטרוֹנִיטסה.

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe Now & Never Miss The Latest Tech Updates!

Enter your e-mail address and click the Subscribe button to receive great content and coupon codes for amazing discounts.

Don't Miss Out. Complete the subscription Now.