שפת מכונה היתה הדור הראשון של שפות התכנות. שפת מכונה היא שפה בינארית בה מבוטאות הוראות לפעולה בשפה ייחודית למעבד ספציפי. זוהי שפת תכנות המנצלת בצורה מיטבית את משאבי החומרה אך קשה מאוד ללימוד ולשימוש.
כל מה שנכתב בשפת מכונה מבוטא באמצעות סדרות של ספרות "0" ו-"1". כל הוראה הניתנת בשפת מכונה חייבת להיות מוכרת למחשב וניתנת לביצוע על ידו, כלומר, כלולה במערך הפעולות של המחשב (instructions set). מכאן, אין לצפות שתוכנית שכתובה בשפת מכונה למחשב מסוג אחד תוכל לפעול גם על מחשב מתוצרת אחרת.
יתרונה היחיד של שפת המכונה כשפת תכנות הוא בצמצום וביעילות הרבה הנובעים מן השימוש בה אך בגלל חוסר קריאות הקוד הכתוב - לא תתקל כמעט לעולם בקטעי קוד בשפת מכונה שנכתבו ע"י אדם.
שפות אסמבלי, הדור השני של שפות התכנות, החלו להתפתח בתחילת שנות החמישים. שפת אסמבלי היא שפת תכנות סמלית והיא ייחודית לכל מעבד. אסמבלי דומה לשפת מכונה בכל פרט לכך שהפקודות נכתבות בסמלים ול במספרים. היא בעצם "עוטפת" באותיות ובמלים מקוצרות את שפת המכונה. במקום 0 ו-1, שפת אסמבלי מאפשרת החלפה של ההוראות ושל הכתובות בביטוי "מילולי" אותו קל יותר לקרוא, לכתוב, להבין ולזכור. שפת אסמבלי מכילה סמלים המותאמים, אחד לאחד, להוראות שבוטאו קודם רק בצורה בינארית בשפת מכונה.
דוגמאות לפקודות בשפת אסמבלי:
השמה של הערך 2 לתוך האוגר EAX
MOV EAX, 2
חיסור הערך 4 מהאוגר EBX
SUB EBX, 4
שפות מן הדור השלישי של שפות תכנות נקראות שפות עיליות (higher level languages).
המפורסמות שבין השפות העיליות הן C, C++, Java, Pascal, Fortran, Cobol...
שפות תכנות עיליות עושות שימוש בפקודות הנראות דומות לשפת אנשים. שפות אלה עושות שימוש בביטויים מילוליים וגם מתמטיים הנכתבים באופן שיקל עלינו להבין את הקוד. למשל, נמצא בשפות אלו פקודות כמו Print, Sort, jump וכו'.קוד המקור (Source Code) נכתב בשפה העילית, עובר הידור (compilation) וכך נוצרת תכנית בשפת מכונה שמפעילה את המעבד.
כך למשל, אם נכתוב תכנית קצרה בשפה Java ונהדר אותה ("נקמפל"), נקבל תכנית בשפת מכונה המכילה מספר פקודות מכונה לייצוג וביצוע כל אחת מן הפקודות שבקוד המקור. (כמעט תמיד פקודה בשפה עילית תתורגם ליותר מפקודת מכונה אחת).
למשל, שורת הפקודה ב-++C:
phone_num = 031234567