본문 바로가기

EXPERIENCE

비전공자가 JAVA 학원을 다니는 것

규칙적인 생활을 갖을 수 있어서 더 좋았다.

학원을 다니는게 늘 쉬웠던건 아니다.
다만 때마침 아침마다 수영을 배우러 다녔었다. 이게 공부와 함께 상승효과를 일으켜줘서 컨디션 관리에 많은 도움이 줬었다. 학원의 첫 수업은 9시 30분에 시작된다. 아침에 수영을 다니며, 신촌-당산까지 규칙적인 생활을 하니, 삶이 더 윤택해졌다. 물론, 처음 자바를 공부할때 내가 이해한게 맞는건지 아닌것인지 조차 제대로 구분되지 않아 허당처럼 허우적 거리긴 했다. 코딩을 공부하는 가장 적절한 방법은, 한번 배웠던 것들을 다시 내가 해보는 것. 마치 내가 배웠던 공부들을 뇌 속에서 다시 뇌 신경을 따라 전기 시냅스가 생성되도록 했던 것들을 다시끔 해보는게 가장 좋았던 것. 


손으로 따라쳐보는게 먼저

무슨 교사 출신이라며 거만을 떨었던게 사실이다. 나름대로 인지교육에 대해서 배웠으니 나름대로 잘 하겠지, 했지만 코딩교육이 쉬운게 아니었다.(최근들어 느끼는거지만, 뭔가 체하거나 에고가 강한 사람일 수록 팀이든 조직사회에서는 좋아하지 않는다.) 되려 내 자신이 얼마나 교만했고 어리석고 못났었는가를 제대로 다시 깨달을 수 있었던 계기였으니. 
코딩이라는 건 머릿속이 논리적으로 팍팍 돌아가는 사람들에게 더 쉽게 느껴진다.  그리고, 뭔가를 공부할 때, 수사학적으로 말을 파고들어 이게 무슨 뜻인지 이해하는게 먼저인 나의 접근 방법은 코딩에는 조금 맞지 않았다. 간략히 이해한 뒤, 일단 다른사람이 해본, 또는 일단 작동되는 코드들을 무작정 손으로 쳐보면서 이해하는 것이 코딩이었다. 그게 코딩을 이해하는 방식이었고, 그러다보면 자연스럽게 이 소프트웨어가 어떤 식으로 작동되는 건지 감이 잡히기 시작했다. 처음부터 감부터 잡고 접근하려하면 되려 어렵게 느껴지고 어떻게 해야할지 점점 미궁으로 빠지는 느낌? 물론 간략한 감을 잡기 위해 이해도가 이미 쌓인 사람의 견해를 듣거나 그런 글을 읽어보는 것은 도움이 됐지만, A-Z까지 통렬히 이해하기 위해 무작정 이론적으로 파고들어 섭렵하려고 했던 나의 스타일은 조금 맞지 않아서 처음에는 힘겨워했었다. 그런 어려움이 있었지만, 강사님이 '승진씨는 굉장히 학구적인 스타일'이라며 코딩은 일단 손으로 쳐보며 익숙해지고 감을 잡는 것이다. 이해는 나중에 해도 늦지 않다고 일러주셨다. 그 덕분에 조금 우직하지만 일단 선 모방 후 이해 하는 것이 좋다는 것을 알게되어 비전공자로서 개발을 따라갈 수 있지 않았나 싶다. 사실 개발을 처음배우는 많은 비전공자들이 중간에 너무 어려워 포기하거나 이해가 안되지만 뭐가 이해되는지 몰라 스스로 중도하차 하는 인원이 꽤 많은 편이다. 하지만 내가 뭘 모르는지 간략히 파악하고 이를 알려줄 수 있는 훌륭한 멘토를 만나, 조금 귀찮아하거나 힘들어하시더라고 체계적으로 끊임없이 꼬치꼬치 묻는 태도가 정말 도움이 많이 되려는지 모른다.
그 덕분에, 2주만에 배운 자바로, 누가 가르쳐주는 것 없이 혼자 WebCrawling을 만들었었다. 물론 지금 다시보면 코딩된 상태가 꽤나 괴랄하지만, 누구도 알려준 적 없는 크롤링을 혼자 라이브러리를 찾아내 혼자 구현해낸 비전공자는 조금 드문편에 속했다. 물론 성격 좋으신 강사님이 후하게 칭찬해준 점도 있지 않을까 하지만 ^^;


개발자의 자질?

그리고 일을 어렵게 하거나 난잡하게 만들지 않는 사람들에게는 매우 쉽고 재밌게 느껴질 수 있는 분야였다. 무슨일이든 '이를 쉽게 하려면 어떻게 하는게 좋을까' 를 고민하는 사람들은 정말 좋은 장점이 있는 듯. 특히 어떤 곤란한 문제를 맡닥드릴 때, 이를 조금 차분하게, 어디서부터 접근할 수 있을지 고민해보려하는 사람들에게는 일단 개발자로서의 자질을 갖추어있지 않나 싶다. 개발이란게 머릿속의 생각이 차분하고, 어렵지 않으며 복잡하지 않은 사람들이 코드를 잘 짜므로. 스스로도 논리적으로 체계있게 생각하기도 하므로. (물론 늘 맞는 이야기는 아니더라도)
나중에 더 이야기할지 모르겠지만, 글을 잘쓰고, 글 쓰기를 꾸준히 해온 사람에게는 코딩이 편할 수 있다. 결국 프로그램이 돌아가게 만들도록, 인간이 이해할 수 있는 언어로 쓴게 코딩이며, 이 코딩은 남들과 공유하며 다른 사람들에게 쉽게 이해되도록 컴퓨터 언어를 나열해나가는 것이다. 그렇기에 다른 사람들이 쉽게 이해할 수 있도록 편하고 읽기 쉽고 직관적으로 쓰는 사람이 더욱더 개발자로서 인정받기 쉽다.

추리력 + Default Networking + 잘 따라하기


그리고 문제를 맡닥드릴 때 이걸 어떻게 풀어나가야할지 단서를 잘  얻는 사람들, 쉽게 말해 추리력이 좋은 사람들이 좋다. 우리가 흔히 말하는 '머리가 좋다'라는 사람들이 잘한다고 볼 수 있지 않을까? 그리고 그냥 번뜩이는 이상과 머리가 아니라, 어떻게 하면 이 문제를 풀어낼 수 있을까 골돌히, 앉아서 생각할 수 있는 사람이 아니, 그런 뇌가 필요하다.
그러면서, 너무 오랫동안 골똘해 본인을 스트레스로 몰아넣는 것이 아니라, 적절한 순간에 머리를 비워 'Default Network' 상태로 뇌를 다른 주제로 바꾼 뒤, 번뜩이는 무의식 문제해결 뇌를 통해 문제를 해결하게 만드는 재치도 필요하다. 쉽게 말해 뇌가 어떻게 돌아가는지를 잘 이해하는 사람이 코딩도 잘한다고 볼 수 있다. 컴퓨터 자체도 뇌를 닮아 만들어져있으니, 뇌를 잘 이해하는 사람이 개발을 잘 할 수 밖에 없다.
뇌의 기억 저장소, 반복과 추리, 손가락 근육 기억력, Default Networking, 문제 해결력, 이성 등등 이 모든 것들을 이해하려면 평소 뇌에 대해 잘 알고 있는 것이 매우 유리하다 생각한다.
물론 개인적인 견해이고, 다른 사람들의 의견이 틀리다 라고 말하고 싶지 않다. 다만 내가 바라보는 개발이란 이런식이라는 것을 나름 나타내고 싶었다.

차분하고 진득하게 생각하는 사람이 코딩도 잘하더라

실제로, 이미 나보다 개발을 먼저 접해 옆자리에서 잘해내는 사람들을 보면, 차분히 인내심있게 한 문제에 골똘히 생각해보는 끈질긴 엉덩이를 가진 사람들이 많았다. 물론 이미 이 과제를 전에 접해본 적이 있는 수료생 이거나 뭔가 혼자서 해본적이 있는 사람이면 당연히 더 잘한다. 아무튼 되려 후반으로 갈 수록, 인내심이 부족하거나 도전정신이 부족한 친구들이 조금 더 겁을 내거나, 어려운 과제가 주어질 때 '아 이거 어떻게 해야하지' 하며 멘붕에 빠져 더 효율적으로 문제에 접근하거나 풀어내진 못했던 것 같다.

감정이 흔들리면, 아무것도 안써진다.

나 역시도 감정적으로 정리되지 못할 때, 그리고 다른 사람에 의해 기분이 상해있거나 감정적으로 흔들릴 때 코딩이 더욱 안됐다. 어떤 팀원과는 마음이 맞지 않고, 신경질 적인 태도에 기분이 상해 정작 내 코딩에 집중하지 못해 바람을 쐬러 갔다오거나 마음을 다시 잡기위해 꽤 많은 시간을 혼자 창가에 보내야만 했었다. 사실 이런점이, 현장에서 '인성이 좋은 신입'을 원하는 이유라는 점. 그리고 세계의 많은 개발자가 명상과 알아차림을 통해 스스로 감정 통제하는 훈련을 지속하는 이유이기도 하다. 인간의 뇌가 감정적으로 흔들리기 시작하면 이성적으로 사고를 하거나 추리하는 능력이 불가능해진다. 그렇기에 팀에서 일할 때 다른 사람과 트러블이 일어나지 않도록 만드는 것이 나와 팀, 그리고 모두를 위해 너무나 좋기에 불필요한 감정소모를 갖지 않는 곳에서 코딩을 할 수 있도록 해야한다. 학원을 다니면서 얻은 것은 단순히 코딩이 아니라, 이런 개발을 하는 환경에 대한 이해가 아닐까.
그렇기에 강사님에게도 이야기 했었지만, 참 이 학원이 학생들을 정말 제대로 가르치는 학원이라고 토로했었다.

대단한 학원

다른 사람들하고 감정이 휘말리지 않게 하는 훈련을 시키면서 동시에 개발지식을 가르치는 곳. 더구나 그 개발 훈련을 위해 주어지는 문제들 역시 호락호락 한 것들이 아니라 하나하나가 늘 도전적인 문제들이었던 것. 뇌를 쥐어짜서 내 최대한의 역량을 발휘해야 좀 풀릴 만한 그런 것들이었다는 것. 그래서 강사님께, 참 이 학원, 학생들을 강하게 가르치는 곳이라면서 이야기했었다. 아니 그럴 수밖에 없었다. 개발을 배우는 과정들 속에서 사실 여러 인간관계에 대해 되돌아보게 만드는 일들도 나타났었으니까.
이 부분에 대해서 자세히 쓰는게 좋은 건지 모르겠다.
하지만, 조금 정리를 해보는 차원에서 써보자면, 내 스스로 언제 감정이 무너지는지 스스로 파악할 수 있는 기회가 되었던 시간이다. 직장에 가서 다른 사람들과 어울릴 때 내 스스로 어떤 점에서 분노하고 괴로워하는 지를 파악해가면, 실제 현장에서 내가 그런 때를 피해 원활히 지낼 수 있는 시간들을 갖을 수 있도록 파악할 수 있기 때문에, 이같이 스스로 감정적으로 언제 무너지는지를 파악해내는 시간은 정말 중요했다는 것을 깨달았다.
물론 이런 저런 발품을 팔고, 진심으로 이러저러하게 고민을 해본 학원 선택이었기에 감사하는 건지도 모르지만,  또는 만족스러운 건지도 모르지만, 무엇보다 단지 개발자적인 지식이 아니라, 물론 개발자적인 지식, 자바에 대한 지식을 제대로 배우기 위해 노력했던 것도 사실이지만, 그리고 실제로 도움이 많이 되었던 것도 사실이지만, 인생에서 내 자신이 어떤 사람이고, 어떤 사람들과 더 잘어울리고 가장 좋은 퍼포먼스를 내는지 스스로 알아낼 수 있다는 기회의 장을 마련해주었다는 측면에서 매우 감사하고 있다. 사실상 그런 순간들이 없었다면 지금 이렇게 더 쉽게 감사하거나 감정적으로 흔들리는 내 모습으로부터 성장할 수 없었을테니까.

결국 나의 부족함 때문

때로는 감정적으로 힘들게 했던 이들을 미워하고 어려워했던 것도 사실이지만, 사실상 내가 부족하거나, 그냥 나와 맞지 않은 사람들이었다. 사람이 완벽한 사람들은 없고, 모든 사람과 잘맞는 사람은 없다고 본다. 되려 나와 맞는 사람들, 내가 소중하게 생각하는 가치와 동일한 가치를 갖거나, 생각하는 사고관이 비슷한 사람들과 함께하는 것이 중요하다는 것을 깨닫게 되는 중요한 순간들이었다. 그런 순간들이 있었기에 지금의 내가 존재할 수 있었던 것.
중요한건 그런 순간들 덕분에 앞으로는 내가 어느자리에, 어떤 사람들과 지내는 것이 좋을지 이해할 수 있게 만들었으므로 내게 이만한 좋은게 또 있을런지...

소통을 잘해야 개발도 잘한다.

실제로 현장에서는 많은 프로젝트들이 개인으로 이루어지는 경우는 프로토타입으로 이 프로젝트가 될지 안될지 맛보기로 만들어보는 때 말고는 없을 듯하다. 대신에 많은 프로젝트들이 서로 팀 작업에 의해 이루어지고, 내가 만들었던 코드 다음으로 다른 사람들이 이어받아 만들거나, 그들이 만들었던 코드에 내 코드들을 붙여서 만들어야했기에 다른 사람들과의 소통과 접촉은 절대적이다. 그러기에 이런 소프트스킬, 다른 사람들에게 나의 감정과 이야기를 말하고 어떤 식으로 해내길 원하는 지 매우 적절하게 소통해낼줄 아는 능력이 부족하다면 개발자로서 쉽게 커나가긴 어려울 듯하다. 그런 사람은 혼자서 일하는게 방법일 수 있으나, 혼자서 일을 하더라도 다른 사람의 수주를 받아 일을 하거나 협상을 해내야하는 프리랜서 개발자들을 보더라도, 남들과 소통하는 능력, 다른 사람과 어울리며 서로 긁힘없이 지내는 능력이 부족하다면 개발자로서는 조금 힘들지 않을까. 

학원을 다니는 건, 내 나름대로 여행자들과 허물없이 지낼 수 있는 능력에 자신감이 있었던 나로서, 내 한계를 느끼고, 일에서 지내는 것과 그냥 친구를 먹는 것은 다르다는 것을 깨닫는 것과 더불어, 내가 어떤 사람인지 조차 깨닫게 해주었으니 정말 감사하고 기쁜일이 아닐 수 없다. 내 자신이 진정으로 한발 더 성숙해질 수 있었던 계기니까.



'EXPERIENCE' 카테고리의 다른 글

여행하던 나는 왜 코딩을 배웠나  (0) 2018.12.30