เพื่อให้อุปกรณ์ทำงานได้ตามที่ผู้ใช้ต้องการ อุปกรณ์จะต้องได้รับการตั้งโปรแกรมอย่างถูกต้อง (เขียนโปรแกรมสำหรับคอมพิวเตอร์ พัฒนาวงจรลอจิกสำหรับ FPGA เขียนข้อมูลลง ROM เป็นต้น) การกระทำจำนวนมากสามารถเรียกได้ว่าการเขียนโปรแกรม แต่ในความหมายปกติคือการเขียนโปรแกรมคอมพิวเตอร์
ในความหมายที่แคบ การเขียนโปรแกรม (หรือการเข้ารหัส) หมายถึงการเขียนโปรแกรม (คำสั่งสำหรับคอมพิวเตอร์) ในภาษาการเขียนโปรแกรมเฉพาะตามอัลกอริธึมที่สร้างขึ้น โดยปกติ พวกมันจะมีไวยากรณ์ที่มนุษย์อ่านได้ ผู้ที่มีส่วนร่วมในการเขียนโปรแกรมเรียกว่าโปรแกรมเมอร์ (ผู้เขียนโค้ดหรือเพียงแค่ "ผู้เข้ารหัส") และผู้ที่สร้างอัลกอริทึมจะเรียกว่าอัลกอริธึม ในความหมายกว้างๆ การเขียนโปรแกรมควรเข้าใจว่าเป็นกิจกรรมทั้งหมดที่เกี่ยวข้องกับการสร้างและบำรุงรักษาผลิตภัณฑ์ซอฟต์แวร์ (ซอฟต์แวร์คอมพิวเตอร์) ในลำดับการทำงาน ที่ถูกต้องที่สุดคือคำศัพท์สมัยใหม่ - "วิศวกรรมซอฟต์แวร์" (หรือเพียงแค่ "วิศวกรรมซอฟต์แวร์") ผู้เชี่ยวชาญในสาขานี้มีส่วนร่วมในการตั้งค่า การออกแบบโปรแกรม การสร้างอัลกอริธึม การเขียนข้อความของโปรแกรม การทดสอบ การดีบัก การจัดทำเอกสาร และการบำรุงรักษา การเขียนโปรแกรมคอมพิวเตอร์ใด ๆ ขึ้นอยู่กับการใช้ภาษาโปรแกรม ในการรันโปรแกรมบนคอมพิวเตอร์ จำเป็นต้องใช้นักแปลที่จะแปลภาษาที่มนุษย์อ่านได้ (โปรแกรมเขียน) เป็นภาษาของคำสั่งเครื่อง นักแปลมีสองประเภท - ล่ามและคอมไพเลอร์ ความแตกต่างหลักระหว่างพวกเขาคืออันแรกรันโปรแกรมทันที ในขณะที่อันที่สองแปลเป็นภาษาของคำสั่งเครื่องโดยไม่ต้องดำเนินการเพิ่มเติม ในการรันโปรแกรม จะต้องคอมไพล์หรือตีความก่อน ก่อนหน้านี้ คุณต้องเขียนโปรแกรมแล้วคอมไพล์แยกกัน ซึ่งทำให้ขั้นตอนการทดสอบและการดีบักซับซ้อนขึ้น ปัจจุบันมีสภาพแวดล้อมการพัฒนาแบบบูรณาการที่หลากหลาย IDE ประกอบด้วยตัวแก้ไขสำหรับแก้ไขและป้อนข้อความของโปรแกรมและนักแปลต่างๆ จากภาษาต่างๆ นอกจากนี้ยังสามารถรวมรูทีนอื่นๆ ที่อำนวยความสะดวกในกระบวนการสร้าง ทดสอบ และบำรุงรักษาผลิตภัณฑ์ซอฟต์แวร์