초기의 프로그래밍 과정은 프로그래머가 컴퓨터에게 지시할 명령을 기계어(machine language)로 직접 표현하는 방식이었다. 기계어란 0과 1로 표현되는 프로그래밍 언어로서 컴퓨터가 직접 이해할 수 있는 유일한 언어이다. 기계어는 연산 코드(operation code)와 피연산자(operand)로 구성된다. 연산 코드는 메모리나 레지스터에 데이터를 저장하거나 산술 연산 등을 수행하는 연산자에 해당한느 코드이다. 피연산자는 메모리 주소나 레지스터 번호 등을 나타낸다. 기계어는 컴퓨터 하드웨어에 대한 강력한 통제가 가능하다는 장점이 있다. 그러나 0과 1로만 구성된 기계 중심의 언어이기 때문에 전문가라 하더라도 프로그래밍하기가 매우 어렵다는 단점이 있다.