최근 수정 시각 : 2025-09-13 00:15:45

프로그래밍


파일:하위 문서 아이콘.svg   하위 문서: 프로그래밍 패러다임
#!if 문서명2 != null
, [[]]
#!if 문서명3 != null
, [[]]
#!if 문서명4 != null
, [[]]
#!if 문서명5 != null
, [[]]
#!if 문서명6 != null
, [[]]
#!if 문서명7 != null
, [[]]

1. 컴퓨터 프로그램을 만드는 행위
1.1. 과정1.2. 코딩을 잘한다는 것
2. 고등학교 과목 중 하나3. 대학수학능력시험 직업탐구 영역의 과목 중 하나4. 본래 의미: 문제를 푸는 방법5. 관련 문서

1. 컴퓨터 프로그램을 만드는 행위

For a truly gifted programmer, writing code is a side effect of thought.
진정으로 능력있는 프로그래머에게 있어, 코드를 짜는 것은 사고의 부산물에 지나지 않는다.[1]
폴 포드(Paul Ford), 블룸버그 비즈니스위크에 기고한 특집기사에서
컴퓨터 프로그래밍(Computer Programming) 또는 코딩(Coding)은 컴퓨터가 작업을 수행하기 위해 따를 수 있는 프로그램이라는 명령어 순차 조합(sequences of instructions)을 구성하는 것이다. 여기에는 하나 이상의 프로그래밍 언어코드를 작성하여 알고리즘, 프로시저(procedure)의 단계별 사양(specification)을 설계하고 구현하는 것이 포함된다. 프로그래머는 일반적으로 중앙 처리 장치(CPU)에서 직접 실행되는 기계어(machine code)보다 사람이 더 쉽게 이해할 수 있는 고급 프로그래밍 언어를 사용한다. 숙련된 프로그래밍을 하려면 일반적으로 애플리케이션 도메인에 대한 지식, 프로그래밍 언어 및 일반 코드 라이브러리에 대한 세부 정보, 특수 알고리즘 및 형식논리학(formal logic)을 포함한 여러 다른 주제에 대한 전문 지식이 필요하다.

프로그래밍을 하는 도구를 "개발자도구" 또는 "개발환경"이라고 부르고 (IDE는 그 중 하나이다) 프로그래밍 언어는 프로그래밍을 하는 방식 또는 절차를 말하며 프로그래밍을 하는 사람이 프로그래머다. 개발자라고 해도 되지만 이건 범위가 너무 넓다. 컴퓨터 프로그래머 등 여러 분야에서의 프로그래머 직업이 넘쳐나기 때문이다.

프로그래밍의 프로그래밍인 메타프로그래밍[2]이 코드를 자동 생성하는 경우를 제외하면, 결국은 사람이 직접 손을 봐야 한다. 심지어 현재 구현된 메타프로그래밍도 결국은 사람이 직접 손을 봐야 하므로 프로그래밍은 곧 사람의 일이다. 프로그래밍이 완전히 프로그램만으로 돌아가려면 사람과 동등한 수준의 지능을 갖는 인공지능을 필요로 하지만 아직은 기술력과 연구가 부족하여 실현이 불가능하다. 그러나 이것이 가능해지는 때에는 기술적 특이점의 도래로 인해 프로그래머 뿐 아니라 모든 직업이 인공지능으로 대체될 것이다.

예전에는 사람이 수동으로 프로그래밍하던 어셈블리어를 이제는 컴파일러가 자동으로 만들어 준다. 그러나 사람이 할 일은 줄어들지 않았고 그저 능률만 늘었는데, 이는 구현보다 디자인에 더 집중할 수 있게 돼서 더 대규모의 소프트웨어 프로젝트가 가능해졌기 때문이다. 물론 디자인에만 몰두하고 구현은 무시해도 될 정도까지는 아니라 프로그래밍 언어의 세계는 호락호락하지 않은데, 디자인 패턴이라는 것들이 결국은 디자인을 구현으로 옮기는 표준적인 기교들을 소개하고 있다는 것부터가 이를 반증한다.

그리고 고차원 언어들의 강세에도 불구하고, 어셈블리어 프로그래밍은 특정 분야에서 계속 쓰이고 있는데, 보통은 성능상의 이유나 명령어 수준에서 본인이 의도한 정확한 동작이 필요할때 부분적으로 쓴다. 물론 이런 짓을 하면 해당언어와 어셈블리어의 간극을 채우기 위한 추가 노력이 들어가야 한다. 가령, C컴파일러는 컴파일 과정에서 나름 변수와 메모리주소의 사용정보를 트래킹하고있는데, 중간에 어셈블리어가 끼어서 멋대로 이를 바꿔놓으면 컴파일 과정의 정보가 훼손된다. 따라서 인라인 어셈블리를 쓸때는, 해당 어셈블리선언이 건드리는 데이터들을 정확히 명시해서 컴파일러정보가 훼손되지 않도록 막아야 하고, 이를 실수없이 해내는 건 오로지 프로그래머의 몫이다. 결국 안 해본 사람은 의외겠지만 생으로 어셈블리 프로그래밍을 하는 것보다 C언어에 일부 어셈블리 명령을 끼워넣는 게 훨씬 복잡하다. 그래서 보통은 가능하면 언어 수준에서 원하는 명령어가 나오도록 컴파일러의 작동을 잘 생각하면서 코드를 짜는 게 더 낫다. 하지만 어느 경우든 컴파일러 작동을 예측하는 지식이 필요한 건 변함이 없다. 그나마 이런 예측이 제일 쉬운 게 C언어이고, 그래서 C언어가 여전히 OS나 드라이버처럼 하드웨어와 밀접한 프로그램 작성에는 탁월한 선택이다.

가끔, 자신이 목표라 하는 시스템의 명령어집합구조(Instruction Set Architecture, ISA)에 대한 컴파일러지원이 구현되지않은 경우, 기계어나 어셈블리어로 프로그래밍 하는 수밖에 없다. 그러나 대부분의 회사라면 ISA를 새로 정의하면 컴파일러 부분도 본인들이 지원해준다. 이건 목표로 하는 시스템이 컴파일러를 돌리기에 벅찰 정도로 매우 저렴한 시스템이라도 마찬가지다. 이러한 경우, 다른 컴퓨터에서 컴파일작업을 수행하는 크로스 컴파일을 한다.

대부분의 프로그래밍은 컴퓨터의 사실상의 표준 문자 체계인 아스키 코드를 그 기반에 둔다. 가나나 한글, 한자 등으로 프로그래밍할 수 있는 도구는 스크래치처럼 교육용으로 많이쓰인다. 이 말은, 데이터를 뜻하는 게 아닌 코드를 뜻한다. 코드와 데이터는 서로 개념이 다르니 주의하자.
아폴로 계획 당시의 소프트웨어 제작 영상.

1.1. 과정

코딩이란 프로그래밍 코드를 어딘가에 적는 것을 말한다. 예를 들면 메모장을 켜고 평범한 글을 쓸 수도 있고 프로그램 코드를 쓸 수도 있는데, 후자를 하면 코딩이다. 보통은 코딩을 위한 전용 프로그램인 IDE를 사용하는데, 그 이유는 단지 메모장보다 더 편리하기 때문이다. 보통은 코딩을 할 때 컴퓨터를 이용하기에 키보드를 마구 두들겨 가며 코딩을 하겠지만, 종이나 화이트보드 위에 손으로 직접 코드를 써 가면서 코딩을 할 수도 있다.[3], 공학 전 분야, 특히 컴퓨터공학 전공자들이 많이 하는 행위이다.

구체적인 예를 들면 다음과 같다.

만약 우리가 게임을 만들고 싶다면 가장 처음에 해야할 게 뭘까? 어떤 게임을 만들지 정하는 것이다. 그 게임은 오버워치 같은 게임이 될 수도 있고 리그 오브 레전드 같은 게임이 될 수도 있고 클래시 오브 클랜이나 브롤스타즈, 배틀그라운드 같은 게임이 될 수도 있다. 어떤 게임이든 좋다. 정했다면 그 상상 속 게임의 내용을 어딘가에 적어두면 더 좋다. 생각만 하고 메모를 안 하면 나중에 필요할 때 까먹거나 헷갈릴 수도 있다.

어떤 게임을 만들게 될 지 정했으면, 그것에 대한 필요 기능에 대한 요구사항(requirements)을 제작하여 실제 게임으로 만들어 줄 수 있는 개발자에게 보내고 의뢰한다.

개발자는 우리가 쓴 게임에 대한 글을 읽고 이 게임이 어떤 게임인지, 완성되었다면 어떤 모습일지 산술적으로 필요한 계산 파트를 분할하여 파악한다. 기획서의 요구 사항을 컴퓨터가 (유저의 마우스 클릭 입력을 읽을 수 있고)/(데미지를 계산하여)/(적이 죽는 모습을 모니터 화면에 출력)/ 하는 일련의 계산식을 지닌 내용을 컴퓨터가 읽고 쓸 수 있도록 글을 바꿔 작성하는데, 이것이 개략적 개념에서의 코딩을 뜻한다.

우선 개발자는 메모장 같은 걸 켜고 거기에 해당 과정에 코드를 적고 저장한다. 만들어진 파일들은 당연히 평범한 텍스트 파일들이다. 여기까지가 코딩이다. 이렇게 저장된 파일들을 컴파일러 혹은 인터프리터라는 프로그램에 넣으면 알아서 컴퓨터 프로그램이나 스마트폰 애플리케이션 파일을 만들어준다.[4] 그리고 그렇게 만들어진 게임을 우리에게 보내주면 끝난다.
▲ 사람들의 상상 속 프로그래밍 VS 현실[5]
이렇듯 코딩이란 '단순히 코드를 적고 파일로 저장하는 것'이다. 메모장을 써도 되고 워드한글을 써도 된다. 그러기만 하면 그걸 알아서 프로그램으로 만들어주는 프로그램까지 있다.[6]

단, 프로그래밍 언어를 조금 이상하게 사용했을 경우 프로그램이 만들어지지 않거나, 만들어져도 쓰는 도중에 마음대로 꺼진다.[7] 또는 성능을 마구 잡아먹거나, 기능이 이상하게 돌아가거나, 해킹에 사용될 수 있는 약점이 만들어지기도 한다.[8][9] 이럴 때는 잘못된 부분을 고쳐주어야 한다.[10] 위의 유튜브 영상에서 갑자기 구글을 찾아보는 이유가 디버깅 때문이라고 할 수 있다.

1.2. 코딩을 잘한다는 것

"코딩을 잘한다"는 것은 어려운 문제를 더 간단하고 쉬운 개념을 이용하여 효율적으로 풀어나가는 것을 의미한다.

C급 개발자와 S급 개발자는 구현 방식이 달라지는 경우가 많은데, 가장 흔한 예시로 Python의 itertools나 regex의 활용을 들 수 있다. 보통 생각하기에는 Python에서 Function Call만 하면 끝나는 구문을 하나하나 다 구현하고 있다면, 이것이 C급 개발자일 것이라고 생각하기 쉽다.

그러나 코딩의 목적에 따라 이런 판단은 확연히 갈릴 수 있다. 만약 코딩 목적이 "최적화 된 Source Code의 완성"이라면 Function Call 만 하면 끝나는 Python 코딩이 가장 적합한 결과물이 될 수 있다. 그런데 목적이 "메모리 Usage의 최소화"라면 Function Call 이라는 메모리를 잡아먹는 방식보다는, C++로 동작 하나하나를 구현하여 메모리 사용량을 줄이는 것이 훨씬 효율적이다. 또한 만약 외주를 받아 "C++ Source Code"를 납품해야 하는 경우로 가정해도 Python의 Function을 C++로 일일이 구현하는 것이 맞는 결과물이 된다.

여기에서 알 수 있듯, "코딩을 잘한다"는 것은 목적에 부합하는 결과물을 빠르게 만들어내는 능력을 말한다. 극단적으로 이야기하면 알고리즘의 구현은 당연히 할 수 있어야 하고, 그것을 여러 가지 방법으로 할 수 있어야 한다. 이를 위해서는 다양한 프로그래밍 언어에 대한 숙달은 기본 조건이며, 각 언어별 특징을 파악하고 있어 현재 프로젝트에 어떤 언어가 필요할지 선택 가능해야 한다. 이때 퍼포먼스 측면도 중요하지만 앞서 언급했듯 "빠르게" 만들어야 하는 점도 굉장히 중요하다. 게다가 컴퓨터 프로그램이나 모바일 애플리케이션을 써보면 알겠지만, 코딩의 품질은 난데없이 등장하는 버그 및 에러가 있느냐 없느냐에 달려있다. 이것을 얼마나 구체적이고 세부적으로 대비하였는지 여부가 코드의 퀄리티를 보장하는데, 퍼포먼스와 납기를 맞추면서 고 퀄리티의 디버그 코드까지 넣는 것이 얼마나 어려운 일인지는 말이 필요 없을 것이다.

더불어 이것을 만드는 것이 한 사람이 아니라 여러 사람이라는 점도 주요한 점이다. 한 사람이 역전의 용사급 역량을 갖추고 있다고 해도, 팀 인원이 이 역량에 따라가지 못한다면 결과물은 저열한 물건이 나올 수밖에 없다.

종합하면, "코딩을 잘한다"는 것은 기본 코딩 능력 및 일정과 인원에 대한 관리 능력의 총합을 이야기하는 것이다. 단순하게 코드를 잘 구현하는 것과는 확연히 다르다는 이해가 필요하다. 물론 프론트엔드백엔드 간의 차이나 업무 환경의 차이 등을 모두 동등하게 평가할 수는 없을 것이므로 현실적으로는 치우치는 경우도 있음은 고려해야 할 것이다.

S급 개발자가 목표라면 관련 이야기가 좀 더 확장될 수 있다. 여러 코드에 대해 지식이 있다고 해도 주 종목 하나를 프로페셔널하게 잘 할 필요가 있고, 알고리즘에 대해서도 보다 심화된 지식을 지닐 필요가 있다. 다만 일반론적으로 따진다면 S급 개발자는 희귀종 수준이므로 참고로만 해두는 게 좋다. 박사 학위를 받은 개발자라도 3분의 1 만이 S급으로 분류되는 업계 현황을 고려한다면 더더욱 그렇다.

#!if version2 == null
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 프로그래밍의 내용 중 전체 또는 일부는 {{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/코딩|코딩]]}}}{{{#!if external != "o"
[[코딩]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/코딩?uuid=658f10d0-a280-4c61-bd50-771902663698|r320]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/코딩?uuid=658f10d0-a280-4c61-bd50-771902663698#s-1|1번 문단]]}}}에서 가져왔습니다. [[https://namu.wiki/history/코딩?from=320|이전 역사 보러 가기]]}}}
#!if version2 != null
{{{#!wiki style="display: block;"
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 프로그래밍의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
{{{#!wiki style="text-align: center"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="text-align: left; padding: 0px 10px"
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/코딩|코딩]]}}}{{{#!if external != "o"
[[코딩]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/코딩?uuid=658f10d0-a280-4c61-bd50-771902663698|r320]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/코딩?uuid=658f10d0-a280-4c61-bd50-771902663698#s-1|1번 문단]]}}} ([[https://namu.wiki/history/코딩?from=320|이전 역사]])
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid2 == null
'''uuid2 not found'''}}}{{{#!if uuid2 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph2 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]]){{{#!if version3 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid3 == null
'''uuid3 not found'''}}}{{{#!if uuid3 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph3 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version4 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid4 == null
'''uuid4 not found'''}}}{{{#!if uuid4 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph4 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version5 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid5 == null
'''uuid5 not found'''}}}{{{#!if uuid5 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph5 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version6 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid6 == null
'''uuid6 not found'''}}}{{{#!if uuid6 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph6 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version7 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid7 == null
'''uuid7 not found'''}}}{{{#!if uuid7 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph7 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version8 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid8 == null
'''uuid8 not found'''}}}{{{#!if uuid8 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph8 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version9 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid9 == null
'''uuid9 not found'''}}}{{{#!if uuid9 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph9 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version10 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid10 == null
'''uuid10 not found'''}}}{{{#!if uuid10 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph10 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version11 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid11 == null
'''uuid11 not found'''}}}{{{#!if uuid11 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph11 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version12 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid12 == null
'''uuid12 not found'''}}}{{{#!if uuid12 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph12 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version13 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid13 == null
'''uuid13 not found'''}}}{{{#!if uuid13 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph13 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version14 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid14 == null
'''uuid14 not found'''}}}{{{#!if uuid14 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph14 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version15 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid15 == null
'''uuid15 not found'''}}}{{{#!if uuid15 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph15 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version16 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid16 == null
'''uuid16 not found'''}}}{{{#!if uuid16 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph16 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version17 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid17 == null
'''uuid17 not found'''}}}{{{#!if uuid17 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph17 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version18 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid18 == null
'''uuid18 not found'''}}}{{{#!if uuid18 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph18 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version19 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid19 == null
'''uuid19 not found'''}}}{{{#!if uuid19 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph19 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version20 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid20 == null
'''uuid20 not found'''}}}{{{#!if uuid20 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph20 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version21 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid21 == null
'''uuid21 not found'''}}}{{{#!if uuid21 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph21 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version22 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid22 == null
'''uuid22 not found'''}}}{{{#!if uuid22 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph22 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version23 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid23 == null
'''uuid23 not found'''}}}{{{#!if uuid23 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph23 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version24 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid24 == null
'''uuid24 not found'''}}}{{{#!if uuid24 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph24 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version25 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid25 == null
'''uuid25 not found'''}}}{{{#!if uuid25 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph25 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version26 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid26 == null
'''uuid26 not found'''}}}{{{#!if uuid26 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph26 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version27 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid27 == null
'''uuid27 not found'''}}}{{{#!if uuid27 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph27 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version28 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid28 == null
'''uuid28 not found'''}}}{{{#!if uuid28 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph28 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version29 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid29 == null
'''uuid29 not found'''}}}{{{#!if uuid29 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph29 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version30 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid30 == null
'''uuid30 not found'''}}}{{{#!if uuid30 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph30 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version31 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid31 == null
'''uuid31 not found'''}}}{{{#!if uuid31 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph31 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version32 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid32 == null
'''uuid32 not found'''}}}{{{#!if uuid32 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph32 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version33 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid33 == null
'''uuid33 not found'''}}}{{{#!if uuid33 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph33 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version34 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid34 == null
'''uuid34 not found'''}}}{{{#!if uuid34 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph34 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version35 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid35 == null
'''uuid35 not found'''}}}{{{#!if uuid35 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph35 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version36 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid36 == null
'''uuid36 not found'''}}}{{{#!if uuid36 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph36 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version37 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid37 == null
'''uuid37 not found'''}}}{{{#!if uuid37 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph37 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version38 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid38 == null
'''uuid38 not found'''}}}{{{#!if uuid38 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph38 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version39 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid39 == null
'''uuid39 not found'''}}}{{{#!if uuid39 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph39 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version40 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid40 == null
'''uuid40 not found'''}}}{{{#!if uuid40 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph40 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version41 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid41 == null
'''uuid41 not found'''}}}{{{#!if uuid41 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph41 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version42 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid42 == null
'''uuid42 not found'''}}}{{{#!if uuid42 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph42 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version43 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid43 == null
'''uuid43 not found'''}}}{{{#!if uuid43 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph43 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version44 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid44 == null
'''uuid44 not found'''}}}{{{#!if uuid44 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph44 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version45 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid45 == null
'''uuid45 not found'''}}}{{{#!if uuid45 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph45 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version46 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid46 == null
'''uuid46 not found'''}}}{{{#!if uuid46 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph46 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version47 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid47 == null
'''uuid47 not found'''}}}{{{#!if uuid47 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph47 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version48 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid48 == null
'''uuid48 not found'''}}}{{{#!if uuid48 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph48 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version49 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid49 == null
'''uuid49 not found'''}}}{{{#!if uuid49 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph49 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version50 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid50 == null
'''uuid50 not found'''}}}{{{#!if uuid50 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph50 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}}}}}}}}}}}}}}}}

2. 고등학교 과목 중 하나

프로그램을 개발하는 것을 익히는 과목이라고 보면 된다. 위의 첫번째 문단 참조. 주로 전문계, 소프트웨어 마이스터고등학교에서 배우나, 일부 전문계 고등학교에선 교재 내용의 난이도를 이유로 일부러 빼기도 한다. 과학고나 영재고에서도 하고 일반고에서도 2학년 혹은 3학년 때 진로 선택 과목에 있다.[11]

2000년대 초반까지는 '정보산업'이라는 과목으로 BASIC언어가 커리큘럼의 주를 이뤘고, 다른 언어들은 차차 맛보기 수준으로 추가되는 수순을 밟았다. 당시에도 사실상 거의 의미가 없어져서 유명무실화된 단원. 제6차 교육과정까지는 프로그래밍 과목 교과서에서 코볼(!) 단원이 남아있었다. 물론 나중에 가면 어느 학교에서도 전혀 가르치지 않았다. '그냥 이런 언어가 있다'는 정도로만 알려줄 뿐.

내용은 C언어가 나오고, 마지막에 C++가 잠깐 나온다.[12] 여기서 만드는 프로그램(예제)들은 그렇게 어렵지 않은 간단한 프로그램이지만, 시중에 나오는 C언어 관련한 책에서 나오는 것과 다르게 내용이 다른 교과서처럼 난해하게 쓰여져 있어, 선생님의 도움을 받지 않는 이상은 극소수를 제외한 대부분은 거의 읽지 못한다. 아니 교과서를 한 번 읽어봐도 어떤 내용인지 감이 잡히지 않는 경우가 대부분이다.[13] 어떤곳은 비주얼 베이직을 배우기도 한다.

여기서 주로 사용하는 프로그램은 Turbo C. 그렇다, 도스시절에 쓰던 구닥다리 16비트 C 컴파일러이다. 워낙 프로그램이 오래된 구식이다보니, 윈도 XP에서 구동하는 방법까지 친절하게 책에 언급되어있다. 사실 우리가 쓰는 컴퓨터들이 CPU의 발전에 따라 32비트이나 64비트 환경으로 바뀌었고 이제 주 개발환경은 64비트와 멀티 코어 및 멀티 스레드가 되었지만, 교과서에선 아직도 16비트 컴파일러를 고집하는 것은 컴파일러와 CPU의 종류에 구애받지 않는 프로그래머를 육성하려는 교육과학기술부(교육과정 수립 당시에는 교육인적자원부)의 의지가 있기 때문인 듯하다. 실은 가장 기초적인 것이고 국내를 제외하면 어디나라든 갈수 있다는 장점하에 어떤 컴퓨터를 사용할지 모르니 그점을 염두에 둔 것이라고... 명분은 있다.

2015 개정 교육과정부터 SW교육 강화라는 명목으로 코딩이 필수로 배워야 하는 정보과목에 포함된다고 하는데 인프라의 부족으로 인해 제대로 자리잡을지는 미지수다.

소프트웨어 마이스터고등학교[14] 에서는 소프트웨어 개발자를 양성한다는 것을 목표로 프로그래밍을 전문적으로 강의하고 있다.

주로 C언어, Java, PHP, HTML 등 여러 가지 웹 프로그래밍, C# 등 윈도우 프로그래밍, 안드로이드 스튜디오를 이용한 안드로이드 어플리케이션 개발 등 개발자가 되기 위한 여러 가지 과정을 운영하고 있다.

3. 대학수학능력시험 직업탐구 영역의 과목 중 하나

2의 과목으로 출제되었던 수능 시험이다. 2013학년도 수능을 마지막으로 식품과 영양, 정보 기술 기초, 디자인 일반과 함께 폐지되어 2020 수능 기준 컴퓨터 관련 직탐 과목은 없다.

응시생이 별로 없었고, 기본적인 문제들은 프로그래밍을 실전으로 해본 학생들이라면 아주 쉽게 풀 수 있었다. 물론 프로그래밍을 처음 접하는 학생들에게는 매우 어려웠다. 더군다나 응시 인원도 매우 처참한 수준이니 코딩알못 학생이 이 과목을 응시한다는 것은 그냥 등급 발판이 되겠다는 말이었다. 실제로 1~2문제만 틀려도 2등급이 나올 정도로 쉬운 사람에게는 한없이 쉬운 영역이었다.

4. 본래 의미: 문제를 푸는 방법

컴퓨터 프로그램이 생겨나기 전에, 프로그램이라는 단어는 알고리즘과 비슷하게 문제를 푸는 방법이라는 의미였다. 대표적인 예가 경제학무차별곡선 등에서 사용되는 리니어 프로그래밍(선형 계획법).

NYPC 등 몇몇의 프로그래밍 대회에는 수학적 사고 등의 논리를 요구하는 문제들이 있다.

5. 관련 문서



[1] 실력있고 경험 많은 프로그래머는 "어떻게 프로그래밍을 할까?"보다 "어떤 프로그램을 만들지?"를 더 많이 생각한다는 뜻. 코딩은 어디까지나 기능을 만들기 위한 과정에 불과하기 때문에 코딩은 개발자의 기본 중의 기본기이다. 애초에 코딩 습관을 잘못 들이면 사후관리는 커녕 읽기조차 어려워져서 개발자들이 반드시 해야하는 공부가 남의 잘 짠 코딩 방식을 많이 보면서 학습하는 것이다.[2] 대표적으로 컴파일러 자체의 프로그래밍, C 매크로 작성, C++ 템플릿 작성[3] 이런 것을 손코딩이라고 부른다. 굉장히 무식한(?) 노가다 같아 보이지만, 2020년 전면 개정 정보처리기사 시험이나 개발자로서의 구직 면접을 본다면 손코딩을 이가 갈리도록 반복해야 할지도 모른다. 손코딩 '면접' 정도 되면 거의 이공계 지망 대학(원)입시 수험생들이 치르던 구술 면접과도 비슷해진다. 이 손코딩이라는 것에 있어서도 교육자, 학습자, 현업 프로그래머 등의 취향이 갈리는데, 코딩 교육에 있어 전공자들의 입장에서야 귀찮아 보일지 몰라도 기초부터 가르칠 때에는 수학 시간에 공리, 정의, 정리, 증명을 손으로 써 가듯 컴퓨터 없이 손으로만 써가며 사고력을 키우는 것이 중요하다고 보는 사람이 있는가 하면, 모티베이션 고갈을 우려하여 오히려 기초과정일수록 적당한 교육용 프로그램에다 해야 한다는 사람도 있다.[4] 이 과정을 컴파일(compile)이라고 한다. 단순한 텍스트 파일을 프로그램으로 바꾸어 주는 과정이다.[5] 마치 해킹을 하는 것 같다만 실상은 해당 언어 프로그램에 맞는 코드를 쓰고 디버깅을 하고 오류 문구가 뜨자 그걸 검색하는(...) 내용이다.[6] 실제로 한 웹툰에서 소스 코드라는 바탕이 되어주는 코드를 쓰는데 대학교 과제와 달리 보통 소스코드는 CTRL+C/V인 경우가 많다고 하기도 했다.[7] 이것들을 오류, 혹은 에러(Error)라고 부른다. 전자는 에러 중에서도 특별히 컴파일 에러(compile error)라고 부르고, 후자는 런타임 에러(runtime error)라고 부른다. 컴파일 중에 에러가 발생하는지, 실행 중에 에러가 발생하는 지에 따라 달라진다.[8] 실제로 이에 관해 많은 고통의 영상들이 많은데, 예를 들자면 유투버 전과자에서 밥을 먹기 하려 했더니 숟가락으로 그릇을 밀어버린다던지, 우유를 컵에 따르라고 하니 쏟아버리는 둥.. 댓글도 천차만별. 숟가락을 먼저 정의부터 해야한다, 실제로 저렇게 손이 그릇을 뚫고 들어간다 등..[9] 이것을 버그(bug)라고 부른다.[10] 이 과정을 디버깅(debugging)이라고 부른다.[11] 일반고에서 배우는 프로그래밍은 주로 JAVA 혹은 C++이다.[12] 프로그래밍을 처음 하는 학생이 대부분일텐데 파이썬을 안한다(...)[13] 심지어 쓸모없는 내용도 많아서 C언어를 제대로 배우고 싶다면 시중에 판매하는 책을 사자.[14] 소프트웨어 마이스터고등학교는 대구소프트웨어마이스터고등학교, 대덕소프트웨어마이스터고등학교, 광주소프트웨어마이스터고등학교 가 있다.