폐쇄적인 성격의 개발자와 실력 좋은 프로그래머 기준?

폐쇄적인 성격의 개발자와 실력 좋은 프로그래머 기준?


프로그래머에게 잘한다는 기준은 무엇일까요?


1. 종종, 이 언어를 할 줄 알면 잘하는 거고, 그걸 못하면 실력 나쁜 거란 극단적인 비교를 하는 사람이 있습니다. 하지만, 언어마다 만들어진 용도가 달라서 단순히 이것을 할 줄 안다 모른다로 개발자의 능력을 가늠할 순 없습니다.


프로젝트를 진행할 때도 상황에 맞춰서 개발 환경을 구축합니다. 언어를 선택할 때도, 하나만 정해놓고 모든 프로젝트를 진행하려 하면 안 됩니다. 폐쇄적인 성격은 버려야 합니다.


2. 그리고 남의 소스를 가져다 쓰면 실력 없는 사람이라는 말도 있습니다. 근데 이것도 잘못된 소리죠. 남의 소스가 합리적이라면 그 소스를 분석하고 이해한 다음에 나에게 맞춰서 수정하는 것도 능력입니다.

일정에 맞춰 정해진 시간 안에 얼마나 빨리 산출물을 내놓느냐, 이것이 개발자의 능력을 가늠하는 척도라고도 할 수 있습니다. 하지만, 이 과정에서 남의 소스도 안 보고 맨날 사용하던 언어만 사용했다면, 과연 능력 좋은 프로그래머라 할 수 있을까요? 폐쇄적인 성격이 아니고요?


3. 오로지 힘들게 일해야만 가치가 있다고 착각하는 분들이 있습니다. 대게, 어려운 환경에서 혼자서 힘들게 일해온 분들이 이런 착각에 빠지기 쉬운데, 자신이 겪은 힘든 상황을 남에게 강요하면 안 됩니다. 본인이 재수가 없어서 그렇게 일했으면 남들이 그런 상황에서 일하지 않도록 돕는 게 어른이자 선배의 역할입니다.


자, 남이 작성한 코드로 일하는 걸 좋게 보지 않는 분들이 있어요. 그게 실력이냐며 따지죠. 남의 소스 수정해서 결과물 만드는 게 무슨 개발일까요? 개발자가 아니라 소스 사용자인가요? 아니면 소스를 읽는 코더일까요?


하지만, 남의 작성한 코드도 이해하지 못하면 못 쓰는 겁니다. 이 이야기의 이면엔 "남의 소스를 읽을 줄 아는 능력"이란 전제가 빠집니다. 혼자 일해온 사람들에게 약한 부분이죠.


프로그래머 삶 일과 노력 한국[실력 있는 Programmer] 한국 현실, 삶


평생을 혼자 일해와서 언어는 달랑 하나 밖에 못 쓰고, 남의 소스는 무조건 안 보려 하고, 소스는 100% 본인이 창작해야 하는 아주 기이한 사고방식을 가진 사람들이 보유한 "폐쇄적인 성격의 질병" 중 하나입니다.


자신이 남의 소스 볼 줄 모르니 남에게도 남의 소스 보지 말라고 지시하는 기이한 프로그래머 사고방식이죠. 그런 쓸데없는 사고방식은 버려야죠.


프로그램 개발이란, 그리고 소프트웨어 개발자란 상황에 맞춰 합리적인 언어와 툴을 선택하면 됩니다. 그리고 그 환경에서 결과물을 만들면 돼요. 객체지향의 장점 중 하나가 재사용성인데 남의 소스 재사용한다고 투덜댈 필요가 없다는 말입니다. 100% 창조는 없습니다.


조금씩 모방하며 기존 소스를 발전시키고 나도 실력이 성장하고 회사 소스도 성장하는 것이죠.

또한, 남의 소스를 보고 응용한다는 전제엔 "공부하려는 자세"도 있습니다. 공부하려고 남의 글과 예제 소스 보면서 응용하는 겁니다. 평생 남의 소스를 안 본 사람은 결코 취할 수 없는 자세입니다. 이건 아주 훌륭한 자세죠. 신입이 이렇게 공부한다면 칭찬해야 합니다.


훌륭한 관리자는 훌륭한 개발자를 알아볼 수 있습니다. 훌륭한 관리자는 합리적인 사고합니다. OS를 넘나들고 다양한 언어를 사용하고 최신 기술이 도입되는 상황을 접한다면, 실력 좋은 관리자는 모든 걸 종합해 가장 효율적인 언어와 개발 환경을 머릿속에 떠올리겠죠.


프로그래머 실력 폐쇄적인 성격[실력 있는 Programmer] 한국 현실, 삶


그리고 하나만 고집하려는 사람은 자연스레 머리속에서 배제될 겁니다. 왜냐면 그에게 다양한 개발 환경에서 일해본 경험이 없어 이 업무를 담당할 수 없으리라 생각할 겁니다. 폐쇄적인 성격이 진급을 막는 겁니다.


어렵게 일하면 안 됩니다. 쉽게 일해야 합니다. 쉽게 일하려면 남의 소스도 잘 볼 줄 알아야 하고 응용하는 능력이 좋아야 해요. 그리고 남의 의견을 듣고 처음 다뤄보는 툴에도 금방 익숙해져야 합니다. 이런 경험이 있어야 훌륭한 관리자의 눈에 띄는 겁니다.


관리자 입장에선 회사의 이윤이 중요해 상업적인 목적으로 일을 진행합니다. 여기에 폐쇄적인 성격의 개발자가 어렵게 일을 하려 한다면, 관리자로선 개방적인 프로그래머를 새로 데려오는 것을 선택할 겁니다. 폐쇄적인 개발자의 한계는 분명합니다.


다시 본론으로 돌아가겠습니다.


남의 소스를 가져다 수정해 사용하는 게 왜 나쁠까요? 실력 아닐까요? 그런 과정을 거치면서 개인은 발전합니다. 예전에 국비 지원 학원 출신들이 웹 프로그래머로 많이 퍼져나갔습니다.


폐쇄적인 성격 개발자 프로그래머 실력[실력 있는 Programmer] 한국 현실, 삶


당시 업계에서 나오던 불만은 주로 이겁니다.


1. PHP, ASP가 세상 전부라고 생각한다

2. 스크립트 몇 개만 복사해 붙여넣으면서 잘 안 되면 기계 탓을 한다

3. JSP를 써야 할 프로젝트인데 PHP를 고집하는 사람이 너무 많다 (이 경우 프로젝트 자체가 드랍...)

4. 눈에 결과가 보이니 자기가 잘난 줄 안다

5. 다른 언어 이야기하면 귀부터 닫고 학원에서 안 배워 못한다고 배짱 부린다


어떤 소스를 사용하더라도 원리를 이해하고 응용해야 하는데, 기초 지식이 부족하니 해당 소스에서 에러가 발생해도 해결을 못 합니다. 실력이 떨어진다는 겁니다.


이 역시 폐쇄적인 성격의 프로그래머 유형입니다. 개발자라기 보단 개발자의 탈을 쓴 타이퍼죠. 키보드만 두드릴 줄 아는 타이퍼.


새 길을 만들기보단 남이 만들어 놓은 길을 따라 더 빨리 이동할 생각을 해야 합니다. 언제까지 폐쇄적인 개발 환경에 갇혀 자신의 앞날을 불행하게 만들 건가요?


폐쇄적인 성격의 개발자와 실력 좋은 프로그래머 기준?


댓글

Designed by JB FACTORY