티스토리 뷰

지껄이기

개발자.. 어떻게 시작할까?

알 수 없는 사용자 2008. 5. 5. 12:01
준은 마치 은행원의 타이핑과 같은 속도로 노트북을 타이핑하다가, 불현듯 F5키를 입력한다.

흡사 거북이가 지나가는듯한 속도의 진행표시기를 보며 지미 핸드릭스를 흥얼거린다.

얼마나 시간이 흘렀을까?

지저분한 노트북 LCD 화면에 윈도우가 하나둘 뜨기 시작한다.

준은 고양이가 쥐를 사냥하는듯한 눈빛으로 노트북을 응시한다.

노트북에는 완성된 프로그램이 우아한 자태를 뽐내고 있다.

그렇다. 준은 마침내 완성한 것이다.



















"Hello World"를..


..

상당히 많은 학생들이 개발자를 동경한다.

사실, 미화하면 위처럼 할수도 있는게 사실이다.

90년대, 프로그래머라는 직업은 상당히 미화되어 있었다.

지금은 아니다.....

내가 해주고 싶은 말은.. '가능하면' 개발자는 부업으로 하는게 좋다는 것이다.

공부해야 할것은 많은주제에 대우는 그리 좋지 않다.


컴퓨터 공학을 전공한 학생들은 한마디씩 들었을법한 이야기.

"컴공이 엑셀도 못해?"

자. 답변해주자.

"컴공은 엑셀을 만드는 법을 배우는거지 사용법을 배우는게 아냐."

하지만 (이것은 아주 당연하다) 사용법은 확실히 숙지해야 한다.

뭐가 어떻게 돌아가는지도 모르면서 만들수는 없지 않은가?


if / then만 알아도 프로그램을 작성할 수 있고, DirectX / WinAPI를 전부 머릿속에 집어넣고 있어도 한줄의 코드작성을 못하는 경우도 있다.

왜 그럴까?

프로그램이란건 디자인과 별반 다를게 없다.

"뭘 할 것인가?" / "뭘 그릴 것인가?"

사실 자기가 쓰는 컴터에 뭐가 필요한지도 모르면서 개발하려면 참 힘들다..


자동으로 컴터 꺼주는 프로그램이 필요하다고 치자.

어떻게 할까?

How-to는 널려있다.

그런데 나는 어떻게 이야기해줄것 같은가?

"그냥 있는거 다운받아 써라. 그것도 널려있다."


최신기술같은거 알면 좋지만 그것뿐이다.

MS-DOS 3.22라는 OS로 프로그램 개발해도 쓰는데 문제가 없으면 사실 상관없다.

Z80(재믹스에 쓰인 CPU)으로도 얼마든지 패킷분석기같은거 작성할 수 있다.

PXA계열(고성능 휴대폰에 많이 쓰임) CPU따위 몰라도 뭐든지 할수는 있다는 얘기다.

근데 좀 아닌것 같지 않은가?

그렇다. 유행이 되는 기술은 배우기 쉽다.

물흐르듯 알아가면 되는것이다.


프로그래머에게 가장 중요한 덕목은 무엇일까?

영타 분당800타의 빠른 타이핑 능력?

프로게이머와 같은 마우스 움직임?

독수리타법으로도 프로그래밍은 가능하다 :)

뭐 어쨌거나 가장 중요한건.. 수학이다.

갑자기 뭔 수학이냐고?

프로그래밍에서 수학은 여러 분야에 쓰인다.

물론, 학창시절에 배우는 "암기식"의 수학이 아니라.. 이해하는 수학이 필요하다는 얘기다..

실제 if / then의 논리연산 역시 2진법 수학이고, 화면출력에는 꼭 3D가 아니더라도 Sin, Cos, Tan의 개념을 알아야 한다.

깊이 들어가면 좋지만, 어쨌거나 알고있는것 정도는 무조건 필요하다.


그럼, 지금까지 겁줬으니 위의 프로그램을 작성해볼까?

Javascript로 해보자.
<script language="javascript">
alert("Hello, Fucking World");
</script>

c로 해볼까?
#include <stdio.h>
main()
{
printf("Hello, Fucking World");
}

c#은 어때?
MessageBox.Show("Hello, Fucking World");


이딴거 뭣하러 해보냐고?

그러게.. -_-;

뭐 어쨌거나, "뭘 해볼까?"만 정해지면 쉽다는거랄까?

그래서 UML이라는게 있다..

프로그래밍 언어를 배우려면 C나 java같은거 필요없고 "Flowchart"를 가장 먼저 배우기 바란다.

사실 프로그램을 배울때 항상 Flowchart를 먼저 배운다.

근데 신기한게.. 그게 제일 중요한데.. 학생들은 그냥 키보드부터 뚜닥뚜닥거린다..

뭐가 그리 급하누?

뭔가 처먹으면 똥으로 뭐가 나올지부터 결정하고 프로그램하는게 정석이지 않을까?

정석이라는 말이 참 거부감이 드는걸 모르는건 아니지만.. 정석이 디버깅을 줄여주잖아..?


그리고 요즘은 컴포넌트가 넘쳐나는 시대다.

많은 개발자들이 최신기술을 익혀놓는 이유는, 쉽게쉽게 프로그래밍하려는거다.

"저 씹새끼 프로그래머를 날로먹을라고!" 라고 말하라 ㅋ

그걸 즐겨야 한다.

괜히 작성할 필요 없는거 작성하는건 보고서에만 작성하라.

리눅스에 웹서버를 올린다고 치자.

난 컴파일보다 aptitude를 훨씬 선호한다.

#apt-get install apache2 mysql-server php5

이러면 올라가는 웹서버를 컴파일하고 지랄할 필요가 있는가?

그렇지만! 왜 컴파일하는지는 꼭 보자.

훑어보는걸로 충분하다.

나중에 찾기 쉽도록 말이지.

사용하기 쉬운건 항상 리스크를 동반한다.

하지만 이득이 훨씬 많다..

그래도 리스크 대비도 좀 하고..


오라클 기술지원팀이 아주 神적인 취급을 받고 있다고들 한다.

연봉도 神급이고..

왜 그럴까?

걔들은 수학 잘한다.

훌륭한 개발자가 되려면 수학을 잘해야 하나보다.


개발자는 하고싶은데 수학은 하기 싫다?

"개좆같은 이세상, 안녕하십니까?"만 줄창 만드세요. ㅇㅋ?


개발자가 되려면 수학부터 공부하라.

그럼 돈많고 수학못하는 애들한테서 돈을 받을수 있다.