תכנות: הפסיכולוגיה של מחשבים

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

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

אני אתקוף את הנקודה הפשוטה מכולם לפני שאעבור לפרטים.

מדוע אני לא מתכוון לבצע הודעה טכנית?

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

חשמל חשוב

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

הבעיה

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

מעבדים

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

רושם

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

Binario

מעבדים עובדים ברמה הבינארית, זה אומר שהם רק מבינים 0סאי 1כן 🙂. עובדה מוזרה כאן 😀זוכר את הרשאות GNU / Linux? נו, האם תהית אי פעם כיצד המעבד מכיר בפועל בהרשאות אלה? פשוט 🙂 בינארי. ברמה הנמוכה ביותר, מעבד יבין את ההרשאות כרצף של 0 ו -1 וזו הסיבה לכך שהאוקטל שאנחנו יוצרים יש את הערכים לביצוע, 2 לקריאה ו -4 לכתיבה. למי שיכול לקרוא בינארי, הם יבינו ש:

111100101111

הם מכניסים את ההרשאות לקריאה, כתיבה ומבצעים לקבוצה otros תוך כדי ביצוע ביצועים וקריאה לקבוצה קבוצה ולקרוא רק עבור בעל הקובץ. עבור הסקרנים ביותר, שלוש האחרונות האחרונות מפעילות את setguid, setuid ו - sticky bit. אם אתה לא יודע מה זה בינארי זה, אני יכול להסביר את זה בפוסט אחר, אם אתה לא יודע את זה על setuid, setgid והדביק, אני אשאיר לך את זה 😉 אבל אני יכול גם להסביר את זה במקום אחר במידת הצורך.

כשסקרנות קוראת ...

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

פְּסִיכוֹלוֹגִיָה

תכנות הוא אומנות הלימוד לקרוא מחשבות 🙂 אני רוצה להתחיל את החלק הזה בציטוט שקראתי לפני זמן רב, אמר אדסגר דייקסטרה:

אם ניפוי באגים הוא תהליך ניפוי באגים, אז התכנות חייב להיות תהליך הכנסתם

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

מחשבים לא טועים

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

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

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

הכל פסיכולוגיה

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

עשו דבר אחד, ועשו זאת טוב מאוד.

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

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

למד לקרוא מחשבות

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

להיות עקבי

מתכנתים ומומחים רבים אומרים שעלינו לצאת מכוחנו אזור נוחות, ולמרות שזה נכון, זה גם יותר ממה שצריך לשמור על תהליכים ופורמטים מסוימים. זה פשוט להסבר, מוחנו חוזר על עצמו ומכבד מבנים, אם אתה כותב קוד באותה צורה בכל יום, תוך זמן קצר תפסיק לחשוב על הטופס ותוכל להתרכז בו. Fondo. זה מאפשר לך לראות את היגיון של התוכנית במקום של תחביר שפה. וזו הסיבה שבגללה אני חושב שלמידה של מושגים תמיד יהיה חשוב יותר מלימוד הטפסים. זו דעה אישית, אבל אני מקווה שלאחר קריאת כל זה תוכלו להבין מדוע אני מחשיב זאת כך - גם מישהו שנאלץ לתכנת ב- C, Java, Javascript, Python, Ruby, PHP, ואחרים אומר להם 🙂 מושגים מקל על כתיבת קוד.

בקיצור

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


5 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   חוויאר ג 'דלגאדו דיג'ו

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

    1.    ChrisADR דיג'ו

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

  2.   בלואה דיג'ו

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

  3.   ChrisADR דיג'ו

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

  4.   אנדרס דיג'ו

    פנינה של מאמר! אני מקווה שהבא ...