brunch

You can make anything
by writing

C.S.Lewis

by 개발자입니다윤 Jan 30. 2019

나는 개발자라는 직업이 적성에 맞는가? (1)

개발자 적성에 관한 첫번째 이야기

개발자라면 누구나 한 번쯤 고민해본 적이 있을 것이다.

"나는 개발자라는 직업이 적성에 맞나?"

컴퓨터 언어를 처음 학습할 때도, 슬럼프가 올 때도 회사 일을 하다가 극심한 스트레스를 받을 때 문득 찾아오는 내면의 소리이다. (이 물음이 한 번도 오지 않았다면 당신은 개발자로 쭉 살아가도 될 것...)

이 질문에 대한 답을 지극히 내 주관적인 생각으로 고민을 해보았다.




"응 개발자는 나의 길이 아니야"라고 이미 눈길조차 주지 않는 사람들은 생각해보지 않아도 될 이야기라고 생각하고, 이미 개발자 또는 "한번 코딩을 공부해볼까?" 생각했던 사람들에겐 읽어보면 좋을 것 같다. 

사실 대부분의 코딩이 적성에 안 맞는다고 생각한 사람들은 어디선가 코딩 관련 수업을 들었다면 이미 자신에 코딩 적성에 대해 알았을 것이다.

코딩과 적성이 안 맞는 대다수는 "hello world!"를 화면에 표시하는 것에서 이것을 왜 해야 하나라는 의문이 들면서 코딩과는 친하지 않다는 것을 눈치채게 된다.

기타로 치자면 크로매틱 손가락 연습을 하다가 그만두는 것이랑 같다.


만일 "안녕 세상아"를 무사히 넘었다면 다음에 오는 친구들인 for문 while문과 같은 기본적이 문법에서 응? 응? 응?? 이란 물음을 자주 하게 되고, 이것을 가지고 어떻게 하라는 거야라면 포기를 하는 경우를 몇몇 봤다.

이것도 기타를 배우는 것에 비유를 하자면 C, Am, Em, G정도의 코드를 치다가 손가락 아프고 소리도 제대로 안 난다고 그만둔다라고나 할까...


이후에 그만두는 단계는 함수 또는 연결 파일을 만들어 볼 때다. 괄호 하나 안에서만 작성하는 코드 또는 파일 하나의 코드가 아닌, 함수 또는 다른 파일을 만들어 메인 코드에서 다른 코드들을 불러 사용하는 방법을 접했을 때쯤이지 않을까 한다. 기본 문법까지는 왔지만 코딩과 안 맞는 사람들은 여기쯤에서 복잡함을 느끼고 아... 이 길은 내 길이 아니구나라고 생각하는 것 같다. 

개인적으로는 기타 학습으로 비유하자면, 코드로 치면 F코드쯤...? 에서 좌절감을 느끼고 새로 산 기타가 장식품이 되는 순간과 비슷하지 않을까... (기타를 배워본 사람들은 어느 정도 감이 올..)


여기까지 통과해서 위에 것들을 어느 정도 다룰 수 있다고 하면 기본은 통과했고 코딩이라는 친구랑 친구를 맺을 수 있는 단계가 되었다고 생각한다. (나중에 언팔로우를 하기도 한다)




오늘 얘기하고자 하는 방향은 능력의 관점에서의 적성에 대해 다뤄볼까 한다.

코딩이 재밌어 그런데 나는 왠지 다른 사람들에 비해 코딩을 잘 못 하는 것 같아. 무엇이 부족할까? 적성에 안 맞는 것일까라고 고민하는 시점에 있는 사람(나를 포함..)들의 이야기를 다뤄볼까 한다.


기본적으로 사람은 자신이 잘하는 분야를 좋아한다. 게임도 매번 이기는 사람이 게임을 주로 좋아하고, 체격이나 운동 신경이 좋아 어떤 운동을 해도 조금 더 수월하게 우위를 점한다고 하면 조금 더 쉽게 관련 일을 하거나 시간을 많이 투자하는 것 같다.


가끔 정말 게임을 정말 못 해서 매번 지는데 끊임없이 그 게임을 한다던가, 노래를 못 하는데 매번 노래방에 신나게 간다던가 하는 사람도 있긴 하다. 그건 개인적으로는 좋아한다보다 조금 더 높은 표현인 사랑한다는 정도로 생각... 하지만 주변에 봤을 때 계속 늘지 않는 코딩을 하면서 코딩을 사랑하는 사람까지는 못 본 것 같다. (다른 배움에 비해 들이는 시간만큼 성과가 잘 나오는 능력 중 하나라고 생각)




코딩을 잘하는 개발자의 능력(관리자의 관점 말고 순수 개발 능력)으로 구분할만한 요소들을 알면 내가 잘하고 있구나(=적성에 맞을 확률이 높구나)를 예측할 수 있을 것 같으니 그 기본 요소를 생각해보았다. 또한 기본 요소와 별개로 주변 사람들보다 잘하는 개발 스킬을 가진 분들이 있다고 생각한다. 그럼 그 요소와 스킬에는 어떤 것들이 있을지 알아보자. (내 맘대로 가즈아...!)




논리력

현상이나 동작 원리에 대해 논리적으로 잘 이해하는 능력사람의 생각을 컴퓨터의 언어로 얼마나 잘 표현할 수 있는 능력이 해당되지 않을까 한다. 개인적으로는 가장 중요한 능력 중 하나라고 생각한다.

집중력

보통 잘하는 개발자들은 집중력이 뛰어나다. 한 가지를 맘 잡으면 푹 빠져서 다른 일에 신경 쓰는 것을 줄이고 계속 생각하고 또 생각하며 개발한다.

인내력

될 때까지 포기하지 않고 끝까지 결과물을 만들어 내는 능력, 여기에는 체력도 포함이 될 것 같다. (나이 들면 체력이 부족해 늦게까지 일하기 힘들..) 세상에 안 되는 개발은 없다. 시간과 개발비용이 (매우 많이) 있다면 무엇이든 만들 수 있다고 생각한다.

창의력

코딩을 잘 하긴 하지만 남들과 비슷한 코드로만 짜는 사람들이 많다. (협업할 때는 이게 좋은 경우가 있지만..) 가끔 신선한 방법으로 더 효율적인 구조 또는 신기술로 만들어 오는 신과 같은 능력을 가진 분들이 있다.

검색력

모든 해답은 구글이 들고 있다고 생각할 정도로 많은 수의 답은 구글에서 얻어낼 수 있다. 내가 못 해내면 구글신 또는 다른 사람의 도움을 받아 빨리 필요한 것을 얻어내는 능력도 매우 중요하다고 생각한다. 

꼼꼼함

개발로 제품 또는 서비스를 만들어 내는 속도와 꼼꼼하게 안정적으로 만들어 내는 것은 어느 정도 트레이드오프 관계에 있지만, 꼼꼼하게 오류가 적게 만드는 것도 사람의 성향이 영향을 미친다고 생각한다.

협업력

개발 능력으로 평가하기엔 적절하지 않을 수도 있지만, 이 능력에 따라 개발 경험이 바뀔 것이라 생각하니 (내 맘대로) 추가한다. 커뮤니케이션 능력이라고도 볼 수 있는데(인성도 그냥 같이 구겨 넣자), 혼자서 모든 것을 개발하는 것은 쉬운 일이 아니다. 일반적으로 함께 만들어가야 하기 때문에 협업력이 부족하면 할 수 있는 프로젝트 또는 일의 범위가 제한될 수 있다. (천재는 제외)


개인적으로는 위의 7가지 능력을 각 100점 만점으로 했을 때,

각 점수가 최소 20점은 안 넘거나 

전체 평균이 50점보다 낮다고 생각이 되면

개발자로서 일을 하는데 고생을 많이 하지 않을까 생각한다. (점수야 뭐 평가하기 나름이지만..)




코딩을 잘하는 스킬에는 여러 종류가 있다고 생각한다. 기본 요소를 매우 잘해서 얻는 스킬도 있겠지만 잘하는 기본 요소의 조합으로 얻는 스킬, 그리고 별개의 센스로 된 스킬도 있다. (지극히 주관적)


머릿속에 논리구조를 빠르게 잘 만들어 내는 사람 (논리력 관점)

내 머릿속에 있는 생각을 컴퓨터 언어로 빠르게 변환이 되는 사람 (속도 관점)

남들과는 다른 생각으로 독특한 언어, 구조로 표현으로 코딩하는 사람

이미 나와있는 오픈 소스나 라이브러리를 빠르게 적용을 잘하는 사람

끊임없이 새로운 것을 배우면서 최신 트렌드에 밝은 사람

깊이 해당 기술을 파서 구글에서 찾아도 안 나올만한 방법까지 자신이 터득하면서 배우고 전파하는 사람

치밀하게 예외 케이스를 꼼꼼하게 고려해서 오류가 적게 개발하는 사람

디버깅(오류가 난 곳의 원인과 해결법을 찾는 일)이 빠른 사람

다른 사람에게 자신이 만든 코드를 알기 쉽게 잘 설명하는 사람

코드 자체가 깔끔하게 한눈에 알기 쉽게 쓰는 사람


이런 것들이 개발자로 살아가면서 특별한 능력 중에 하나인 스킬이라고 생각한다. 이런 스킬들은 자라오면서 배워왔던 것들과 지속적인 시간 투자로 나이가 들어 얻어지는 사람도 있고, 태어날 때 또는 어릴 때 배우는 과정에서 사람의 성격으로 얻어지는 경우도 있다고 생각한다. 예를 들면 호기심이 많아 하나를 알려주면 이것저것 시도하면서 새로운 것을 찾아간다거나, 시작을 하면 끝을 보는 성향이거나, 무엇이든 돌아가는 원리를 이해하고 가는 성격과 같이 개발자에 맞는 성격이 있으면 위의 스킬을 가진 경우가 있다.


적어도 내가 짧으면 짧은 기간이지만 7년 동안 4개의 직장에서 같이 일해 오면서 만난 사람들 중에 위 특기 중에 세 개 이상을 가지고 있는 개발자를 만났을 때 꽤 매력이 있다고 생각했었던 것 같다. (같이 일하고 싶더라!)


만일 내가 아직 위의 스킬 중 하나도 없다 하면, 최소 한 가지 정도는 스킬을 획득하는 것을 추천한다. 위의 스킬들은 개발자로서의 삶의 미래에 도움이 될 것이라 확신한다.




내가 개발을 잘하고 있는 게 맞는 것인가 적성에 맞나라는 생각이 들 때 객관적으로 나를 보면서 위에 항목들을 한 번쯤 나를 평가해보는 것도 좋다고 생각한다. 혹시나 개발자가 되고 싶은 사람이라면 위의 요소들을 중심으로 내가 어느 정도 점수를 줄 수 있을까, 잘 모르겠다면 얼마나 잘 해낼 수 있을 것 같은지 고민을 해보면 개발자란 직업을 선택하는 데 있어서 (조금이라도) 도움은 될 것 같다.


사실 위의 요소나 스킬은 선천적인 부분도 있겠지만 후천적으로도 얻기 어려운 것은 아니기 때문에 노력을 한다면 시간이 지나면서 어느 정도 얻을 수 있다고 생각한다. 이미 코딩을 친구로 맺은 사람이라면 계속 노력한다면 능력은 올라갈 것이며, 나의 자질에 대한 생각도 바뀔 수 있을 거라 생각한다. 모든 개발자 파이팅! 나도 파이팅!




매거진의 이전글 스타트업에 처음 도전하는 개발자들에게 드리는 이야기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari