डिवाइस को उपयोगकर्ता की आवश्यकता के अनुसार काम करने के लिए, इसे सही ढंग से प्रोग्राम किया जाना चाहिए (कंप्यूटर के लिए एक प्रोग्राम लिखें, एक FPGA के लिए एक लॉजिक सर्किट विकसित करें, ROM को जानकारी लिखें, आदि)। बड़ी संख्या में क्रियाओं को प्रोग्रामिंग कहा जा सकता है, लेकिन सामान्य अर्थों में यह कंप्यूटर प्रोग्राम लिख रहा है।
एक संकीर्ण अर्थ में, प्रोग्रामिंग (या कोडिंग) का अर्थ है एक विशिष्ट प्रोग्रामिंग भाषा में एक निर्मित एल्गोरिथम के अनुसार प्रोग्राम (कंप्यूटर के लिए निर्देश) लिखना। आमतौर पर, उनके पास मानव-पठनीय वाक्यविन्यास होता है। प्रोग्रामिंग में लगे लोगों को प्रोग्रामर (कोडर या बस "कोडर") कहा जाता है, और जो लोग एल्गोरिदम बनाते हैं उन्हें एल्गोरिदम कहा जाता है। व्यापक अर्थों में, प्रोग्रामिंग को उन गतिविधियों की पूरी श्रृंखला के रूप में समझा जाना चाहिए जो कार्य क्रम में सॉफ़्टवेयर उत्पादों (कंप्यूटर सॉफ़्टवेयर) के निर्माण और रखरखाव से जुड़ी हैं। सबसे सटीक आधुनिक शब्द है - "सॉफ़्टवेयर इंजीनियरिंग" (या बस "सॉफ़्टवेयर इंजीनियरिंग")। इस क्षेत्र के विशेषज्ञ कार्य निर्धारित करने, प्रोग्राम डिजाइन करने, एल्गोरिदम बनाने, प्रोग्राम टेक्स्ट लिखने, परीक्षण, डिबगिंग, दस्तावेज़ीकरण और रखरखाव में लगे हुए हैं। कोई भी कंप्यूटर प्रोग्रामिंग प्रोग्रामिंग भाषाओं के उपयोग पर आधारित है। कंप्यूटर पर प्रोग्राम चलाने के लिए, अनुवादकों का उपयोग करना आवश्यक है जो मानव-पठनीय भाषा (एक लिखित कार्यक्रम) का मशीन निर्देशों की भाषा में अनुवाद करेंगे। अनुवादक दो प्रकार के होते हैं - दुभाषिए और संकलक। उनके बीच मुख्य अंतर यह है कि पहला प्रोग्राम को तुरंत निष्पादित करता है, जबकि दूसरा इसे बिना आगे निष्पादित किए मशीन निर्देशों की भाषा में अनुवाद करता है। किसी प्रोग्राम को चलाने के लिए, इसे पहले संकलित या व्याख्यायित किया जाना चाहिए। पहले, आपको प्रोग्राम लिखना था और फिर उन्हें अलग से संकलित करना था, जो परीक्षण और डिबगिंग प्रक्रिया को जटिल करता था। वर्तमान में, विभिन्न एकीकृत विकास पर्यावरण हैं। आईडीई में विभिन्न भाषाओं के प्रोग्राम टेक्स्ट और विभिन्न अनुवादकों को संपादित करने और दर्ज करने के लिए संपादक शामिल हैं। इसके अलावा, वे कई अन्य रूटीन शामिल कर सकते हैं जो सॉफ़्टवेयर उत्पादों को बनाने, परीक्षण करने और बनाए रखने की प्रक्रिया को सुविधाजनक बनाते हैं।