Xevious7님 프로그래밍을 잘하려면 무엇을 해야합니까?

프로그래밍/프로그래밍 메모장 2007/11/01 11:38
Xevious7님 프로그래밍을 잘하려면 무엇을 해야합니까?

이런류의 질문은 학교를 다닐때 부터 후배나 동료 그리고 커뮤니티에서
이메일에서 또는 모임에서 수없이 들었던 질문이다.

반대로 물어보자. 정말 프로그래밍을 잘한다는 유능한 인재들은 어느회사로
갈까? 물론 작은 회사 또는 눈에 보이지 않는 곳에서 유능한 프로그래머들이
존재하고 있다. 내가 말하는 것은 일반적인 눈으로 보았을때 비율적으로
어디에 많이 존재할까? 라는 질문이다. 아마도 마이크로소프트와 구글이 아닐까 생각한다.

그럼 마이크로 소프트와 구글에서는 어떠한 사람들을 뽑을까?
물론 간단히 말하면 프로그래밍을 잘하는 유능한 사람이 될것이다.

그 첫번째 기준은 무엇일까?
바로 컴퓨터과학 또는 이와 상응하는 과정을 수료한자 이다.
( 기준은 일반적인 기준을 따르는 것이다. 즉 예외상황을 일단 접는다는 것이다.)

이것은 무엇을 의미할까?
적어도 나는 프로그래밍에서 가장 중요한 것은 바로 프로그래밍을 하고자 하는
시스템에 대한 올바르고 명확한 이해라고 생각한다.
시스템에 대한 이해 없이 좋은 프로그래밍을 하는 것은 매우 어려운 일이다.
그 시스템을 이해하기 위해서 배워야 할 것 들이 있다.

일반적으로 전산개론이라고 불리었던 , 컴퓨터의 지난 역사와 발전사를 이해해야 한다.
전산기구조 또는 컴퓨터 아키텍쳐라고 불리는 컴퓨터의 기존 구조을 이해해야 한다.
운영체제, 운영체체론 이라고 불리는 컴퓨터의 운영체제에 대한 이론과 원리를
이해해야한다.
컴파일러 , 컴파일러론 이라고 불리는 컴퓨터언어와 컴퓨터에 대한 기본을 이해해야한다.
데이타베이스, 데이타베이스론 이라고 불리는 데이타베이스의 이론과 원리를 이해해야한다.
알고리즘, 데이타구조 와 같은 컴퓨터를 만들고 컴퓨터의 운영체제를 만들고 컴파일러를
만들고 지금의 컴퓨팅 시대를 연 기본이 되는 알고리즘과 데이타구조를 이론과 원리를
이해해야 한다.

위의 과정들은 대부분의 전산계통 학과의 기본 커리큘럼이다.
그것이 중요하기 때문에 이것들을 배우는 것이다. 그러기 때문에 위에서 말한
첫번째 기준이 컴퓨터과학 또는 이와 상응하는 과정을 수료한자의 한 줄로
요약이 되는 것이다.

만약 비전공이면서 프로그래밍을 잘하려면 이러한 기본과정을 반드시 공부해라.
이런 기본을 모르면서 잘하는 사람처럼 되려고 하는 것 자체가 바로 날로 먹자라는
생각이다.
만약 전공자라면 지금 공부하는 전공과정을 열심히 공부해야 한다.

만약 누군가가 그 따위 다 필요없다 어차피 실제에선 그런것 하나도 안 써먹는다라고
말한다면 추구하고자 하는 것이 다르다라고 볼 수 있다.
다른말로 하자면 '프로그래밍을 잘한다' 라는 시각에 큰 차이가 있는 것이다.
그것에 대한 판단은 스스로에게 맡긴다.

90년 후반에 기존의 홈페이지에는 '그래픽스 프로그래밍 강좌' 라는 글을 올렸던적이
있다. 글이 오래되고 현재의 컴퓨팅환경에서 별로 어울리지 않다고 생각되어
홈페이지를 정리하면서 이곳 블로그에는 따로 올리지 않은 글이지만
이미 불펌되고 복사되여 인터넷 곳곳에 자료가 있는 글이 있는데 ..

내가 쓴글을 스스로 인용하는게 좀 그렇지만 , 그 글에 이런 글이 있다.
(이 글도 유명한 책의 유명한 글을 인용하여 설명하였다 =0=-)

-- 인용 --
컴퓨터 그래픽프로그래밍을 하기전에 우리들이 알아야 할것들이 있다. 그것은 그 대상인 하드웨어 시스템에 대한 것들이다. 종종 초보 프로그래머들이 간과하는 가장 중요한 오류는 시스템에 대한 이해의 중요성을 간과하는 것이다. 프로그램을 하는데 있어서 대상인 시스템에 대한 이해가 얼마나 중요한 것인가는 다음의 글에서도 잘 나타나있다.

  "An hour or so spent reading about the system in general can save many hours of programming that leads to a dead end! when the approach turns out be wrong."

- Xlib Programming Manual, Adrian Nye

일반적으로 시스템에 대해서 이해하는데 투자한 시간및 시스템에 대한 독서는 접근방법이 잘못된 것으로 판정되었을때 죽음으로 끝나는(!?) 수많은 프로그래밍시간을 절약한다
-- 인용끝--

프로그래밍을 잘하려면 시스템에 대한 이해가 중요하다.
시스템에 대한 이해를 하려면 컴퓨터과학이 만들어지게 된 기본이해가 중요하다.
여러분이 전공자라면 현재하는 과목이 쓸데없다고 생각하지 말라 정말 열심히 해라
그것이 기본이다.

여러분이 비전공자라면 위에서 말한 기본적인 부분들을 꾸준히 공부하기 바란다.
그것이 여러분의 실력에 가장 큰 도움이 되는 것들이다.

Go for it !!

top

◀ PREV : [1] : [2] : [3] : [4] : [5] : .. [6] : NEXT ▶