개발자란 무엇일까? 추상적으로 컴퓨터를 보며 일하는 사람으로 그려지기만 했지, 깊게 생각해 본 적이 없다. 그저 코딩만 잘하는 사람일까? 그건 아닌 것 같다. 그러면 개발자는 도대체 무엇일까?
개발자를 한 마디로 요약하면, 아래와 같다
세상의 추상적인 문제를, 코딩을 통해 프로그램으로 구현하여 구체적인 해결책을 찾는 사람
단순히 프로그래밍 언어를 구사한다고 해서 단순히 개발자라고 할 수는 없을 것이다. 코딩은 그저 사람과 컴퓨터가 알아 듣기 위한 중간 다리를 역할을 할 뿐이다. 따라서 개발자는 문제를 해결하려는 사고가 필요하다. 그 사고가 바로 컴퓨팅 사고(computational thinking)이다!
그렇다면 도대체 컴퓨팅 사고가 무엇일까? 이는 아래처럼 한 마디로 요약해 볼 수 있다.
컴퓨터의 효과적인 수행을 위해 문제를 정의하고 그에 대하여 기술하는 것
쉽게 말해, 컴퓨터의 입장에서 문제를 해결하는 능력이라 할 수 있다.
개발자는 결국 구체적인 프로그램을 만들어야 하고, 이는 컴퓨터를 통해 실현시킬 수 있다. 따라서 컴퓨터의 입장에서 사고를 해야 구체적인 해결책을 마련할 수 있다.
그렇다면 문제 해결 능력을 어떻게 할 수 있고, 어떻게 기를 수 있을까?
문제 해결 능력은 크게 3단계로 나뉠 수 있다.
문제를 이해한다
- 문제를 분해한다
- 각 문제를 어떻게 해결할지 고민한다
컴퓨터가 알아 듣도록 코딩으로 구현한다
는 과정이 추가될 것이다.학습량
: 우선 프로그래밍 언어나 컴퓨터 과학에 대한 기본적인 지식을 알아야 할 것이다. 이것은 다다익선이다.검색하기
: 모르는 게 있으면 구글과 같은 검색 엔진으로 검색해야 한다. 잘 검색하는 것도 배워야 할 대상이다.생각을 먼저하기
: 단순히 에디터에 코딩을 먼저 친다고 해서 문제가 해결 되지 않는다. 위와 같은 문제 해결 능력 3단계를 먼저 생각하면서 큰 틀을 그려 나가야 한다.컴퓨팅 사고를 인간의 입장에서 시각적으로 구현하는 것이 흐름도(flow chart, 이하 flow chart라 씀)이다.
아래는 인스타그램 홈페이지 로그인 화면이다. 홈페이지에 로그인 하려면 컴퓨터 입장에서 어떻게 해야 할까? 여기에 추가적인 조건을 넣어서 흐름도를 그려 보자.
(출처: instagram)
(브런치 by 심재우 에스비컨설팅 맘퀘스천 대표) 코딩 실력보다 컴퓨터적 사고 능력이 더 중요하다