반응형

안드로이드는 책으로 시작했다.

1300쪽짜리 두꺼운 책을 사서 읽었는데 

이해가 잘 되지 않았다.

 

원래 개발은 잘 이해가 되지 않은 것이란

생각이 있었기에 그냥 참고 읽었다. 

 

돌이켜보면 나의 학습 방법이 문제였다. 

 

안드로이드는 그래픽 위주 프로그래밍이다. 

책을 차근차근 따라가는 것보다는 '영상'을 따라하는 게 훨씬 유리하다. 

 

각종 UI를 책을 보면서 열심히 타이핑하고 

책이랑 틀린지 확인하고, 나중에 실행을 해야한다. 

 

또한 개발 툴에서 어디를 눌러야할지도 모르기에 열심히 찾아야한다. 

이 과정에서 오타도 나기 마련이며, 엉뚱한 부분을 누르기도 한다. 

 

이에 반해 영상은 어디에 UI를 배치할지, 

어떤식으로 개발 툴을 다루면 될지 알려준다. 

 

생각없이 따라하기만 하면 되는 것이다. 

 

 

그래픽 관련 프로그래밍은

영상으로 배우는 게 책으로 배우는 거에 비해 5~10배는 쉽다. 

 

다만 영상은 휘발성이 강해 

꼭 복습을 해야한다

 

이걸 아무도 알려준 적이 없었기에 

나는 이해가 안 되는 책을 끙끙거리면서 읽었다. 

 

게다가 고른 책도 문제였다. 안드로이드 기능(API) 위주로 설명이 되어 있었기에 

책을 다 보더라도 앱을 하나 만들 수 없었다. 지금이라면 프로젝트 위주의 책을 골랐을 것이다. 

 

어쨌든 대학 수업에 별 흥미가 없었기에 

뒷자리에 앉아서 안드로이드 책을 열심히 따라했다. 

 

만약 원래 전공에서 성적이 좋은 편이었다면 

수업을 열심히 들었을 거 같다.

 

하지만 나는 학점이 안 높아

중간만 가자는 심정으로 딴짓을 했다. 

 

낮은 학점이 포기하지 않은 원동력이 된 것이다. 

 

그럭저럭 안드로이드 책을 다 따라하고 나니

6월말이 되었다. 

 

안드로이드 책을 1번 다 따라하기는 했지만

이해도는 매우 낮은 상태였다. 

 

내가 원하는 앱을 만들기는 커녕 

책에 있는 내용도 기억이 잘 나지 않았다. 

 

당시에 고민을 많이 했다. 

내 주변 친구들은 취업준비를 하거나 

인턴을 하고 있었다. 

 

어디에 자기 소개서를 썼고, 면접을 보았는지 이야기를 많이 했다. 

 

나는 사실 인턴도 거의 쓰지 않았는데 

아직 뭘 할지 확신이 서지 않았기 때문이다. 

 

지금 생각해도 믿을 수 없는 배짱이다. 

 

좀 더 개발 공부를 해볼까, 원래 전공을 살려볼까 고민을 많이 했다. 

친구들에게도 물어보았는데 대답은 한결같았다. 

 

"컴퓨터 공학 전공을 한 사람도 있는데, 굳이 너를 쓸 이유가 있을까? 정신 차리고 전공을 택해" 

 

이런 이야기를 많이 들었지만 천성적으로 반항을 잘하고 

원래 전공을 안 좋아했기에 고민했다.  

 

경영학 전공을 살리면, 마케팅이나 경영관리를 해야되는데 다 싫었다. 

 

결국 나는 개발 공부를 좀 더 하기로 결정했다. 

스터디만으로는 한계가 있는 듯해서 학원도 알아보았다. 

 

7월 초부터 학원에 등록해서 다니기 시작했다. 

역시나 친구들은 말렸지만, 초기 학원 생활은 나에게 큰 도움이 되었다. 

 

지금 와서 보면 친구들도 무얼 모르는 상태에서 조언을 한 셈이었다. 

실제 컴퓨터 공학과를 나온 사람중에서도 개발자가 되는 비중은 30% 정도 밖에 안된다. 

 

친구들은 자신의 세계관을 바탕으로 대답을 했고

나는 우연히 맞아 떨어지는 선택을 한 것뿐이었다. 

 

만약 공학 학위가 중요한 기계, 화학 분야의 일을 하려고 했다면 기회조차 얻지 못했을 것이다. 

 

학원은 5개월간 다녔다. 

 

지금이라면 유료 학원을 택했을 것 같지만

당시에는 거의 대부분이 국비 지원 학원이었다. 

유료 학원 자체가 없었다. 

 

그래서 개강일이 가까운 곳으로 골랐다. 

아무 생각없이 골랐는데 상당히 운이 좋았다. 

 

탁월한 선생님을 만난 것이다. 

50대 중반이었던 걸로 기억하는데 

30년동안 개발을 하고, 창업을 중간에 3번했다 실패한 분이었다. 

 

신기술이 나오면 먼저 찾아보는 스타일이었고 

책도 없던 2010년에 안드로이드를 배워서 가르치고, 

스프링도 독학해서 은행권에 강의를 나가는 분이셨다. 

 

지금 생각해도 믿을 수 없을만큼 열정을 지닌 분이었다. 

학원에서 제일 늦게 가는 사람은 선생님이었다. 

9시에 시작하는 학원인데, 9시 넘게 공부하고 계셨다. 

 

사실 이런 선생님 앞에서

대부분의 것들은 핑계로 보였다. 

 

사람은 자기 주변 사람을 닮아간다. 

열정적인 선생님을 만날 수 있었던 건 행운이었다.

 

늦게라도 감사의 말을 드리고 싶다. 

 

학원은 진도가 빠른 편이었다. 

 

학원은 2주 만에 자바를 떼고, 2주 뒤에 데이터베이스를 익히고 

2개월차에는 웹을 만들고 4~5개원에는 모바일을 하는 초스피드 압축 과정이었다. 

 

첫주에 스레드를 배우고,

2주차에는 2D 슈팅 게임을  만드는 

정신 나간 일정이었다. 

 

아마 개발을 처음 배운 사람은 상당히 힘들어 했을 것이다. 

 

다행히도 나는 미리 6개월 넘게 예습을 한 상태였고,

직접 개발하는 것을 옆에서 보니 이해가 더욱 빠르게 되었다. 

 

선생님이 개발하는 것을 하나하나 따라하면서 몰랐던 개념을 익혀갔다. 

 

객체지향이나 클래스 개념도 좀 모호한 상태였는데 

선생님 설명을 듣고, 추천해주신 책을 읽으면서 

정리를 확실히 할 수 있었다. 

 

남들이 4년동안 하는 걸 1년내에 끝내야겠다는 생각을 했다. 

 

학원은 9시에서 6시까지였지만, 끝나고도 계속 공부를 했다. 

 

내가 공부한 건 주로 컴퓨터 공학과에서 배우는 과목들이었다. 

 

개발을 잘하려면 대학에서 배우는 걸 배워두면 좋겠다는 생각을 막연히 했다. 

이때 공부해 둔 게 구글링 할 수 없는 문제를 만났을때, 해결하는데 도움이 많이 되었다. 

하지만 그건 3년 뒤의 일이었다.

 

컴퓨터 과목 중에서 알고리즘이 중요하다는 이야기도 들어서 

알고리즘을 공부하려고 했다..

 

그런데 어려움이 있었다. 

알고리즘과 자료구조 책이 죄다 C 였던 것이다. 

 

자바로 된 책이 있었으면 좋았겠지만

도서관을 아무리 뒤져도 없었다. 

 

어쩔 수 없이 C언어를 한달정도 공부한뒤에 알고리즘을 공부했다. 

알고리즘을 처음 접한 건 7월 경이었다.  

 

고른 책은 '뇌를 자극하는 알고리즘'이었다. 

분명 뇌를 자극한다고 했는데, 머리가 터질 것 같았다. 

 

아니, 다른 의미로 자극을 하는 것이었나. 

터지는 것도 뇌에 자극이 되기는 하는 것이니..

 

아침에 밥 먹으면서 알고리즘 책을 읽고 

지하철 타고 가서면서도 읽고 

집에 와는 책을 타이핑도 하고, 알고리즘 문제도 찾아서 조금씩 풀었다. 

 

여전히 이해가 안되었다. 

 

책만으로는 안될 것 같아서 코세라의 '알고리즘' 강의도 같이 들었다. 

영어라 이해가 안될 것 같았는데 3번 정도 들으면 들을만 했다. 

 

알고리즘 책을 읽다가 이해가 안되면 처음으로 되돌아가서 읽었다. 

그러면 예전보다 좀 더 이해가 되었다. 

 

책을 처음으로 다 읽은 건 '추석연휴'였다. 

마지막 챕터의 코드를 다 타이핑하고 

정상적으로 돌아가는 걸 확인하니 

강한 희열이 몰려왔다. 

 

뭔가 내가 해냈구나 하는 뿌듯함이 있었다. 

그 뒤로 책을 한번 더 보았는데 예전보다 훨씬 쉽게 느껴졌고 기억에도 남았다. 

 

나의 개인적인 공부와는 별개로 학원 수업은 계속 진행되었다. 

1시간 정도 수업을 하고 나면은 꼭 문제풀이 시간을 가졌는데 

도움이 많이 되었다. 

 

수업을 들으며 따라하다보면 

내가 이해를 다 한것처럼 느껴진다. 

 

하지만 나 혼자 해보려 하면은 

잘 안된다. 지식의 공백이 있는 것이다. 

 

문제를 푸는 건 공백을 메우는 아주 좋은 방법이다. 

내가 아는 부분과 모르는 부분을 정확히 알 수 있다. 

 

우리의 기억은 뭔가를 더 배울때보다

뭔가를 끄집어 낼때 더 강화된다. 

 

무언가를 꺼내려고 노력하면

뇌는 중요한 정보라고 생각해서 

더 깊게 기억하기 때문이다. 

 

이를 '인출효과'라고도 하는데, 단순히 여러번 수업을 듣는 것보다 

시험을 여러번 치는 게 훨씬 낫다는 이야기다. 

 

인출효과는 과학적으로도 효과가 있는 게 증명되었다. 

(  학습법에 대해서 알아보고 싶다면 책 '어떻게 공부할 것인가'를 읽어보기를 권한다.  )

 

 

내가 혼자 공부하거나, 스터디를 할 때는 

문제 풀이를 많이 하지 않았다. 

 

반면 학원을 다닐때는 하나의 개념을 배우더라도 

문제를 꼭 풀었다. 당시에는 왜 늘었는지 이해를 못했지만 

나중에 인지 심리학 책을 보면서 알았다. 

 

개발 실력을 올리려면 무조건 문제를 많이 풀어보기를 권한다

 

당장 풀어야할 문제가 생각이 안난다면

남들이 공개한 문제를 풀어보거나 

이미 있는 소프트웨어를 모방해 보기를 권한다. 

 

모방하는 과정이 하나의 문제 덩어리이기 때문이다. 

 

어쩄든 학원 생활은 전반적으로 좋았다. 

초반에는 벅찼던 문제풀이도 시간이 갈수록 쉬워졌고 

1,2등으로 푸는 경우도 종종 생겼다. 

 

이건 실력이 좋아서라기 보다는 

무료 학원의 특성이 컸다. 

 

무료 학원은 들어오는 사람들은 큰 투자를 안 하는 편이다. 

사람들은 투자를 적게 할수록, 가치를 적게 느낀다. 

 

그래서 조금 하다가 어려우면은 포기하는 경우도 많다. 

 

학원에는 나오지만 다른 진로를 찾는 사람도 꽤 있다. 

컴퓨터 공학과 학생들의 경우 다 아는 것이라고 '롤'을 하고 있는 경우도 있었다. 

 

20명 정도가 있다면 10명 정도가 실제로 수업을 들었다. 

 

상황이 이렇다 보니 열정적인 선생님도 

열정이 조금씩 식어갔다. 

 

3개월이 넘어가자 8시간 진행하던 수업도 

5시간 진행하고 자습을 하고는 했다. 

 

자습 시간에는 다양한 개발 공부를 했다. 

C++의 창시자가 쓴 책도 읽어보고

네트워크 책도 읽어보고, 미적분도 공부해봤다. 

 

실제 프로젝트 보다는 이론쪽을 많이 판 셈이다. 

 

학원에서 배우게 되면 장단점이 있는데 

장점은 바로 써먹을만한 기술을 속성으로 배울 수 있단 점이다.

 

단점은 학원에서 알려준 지름길 외에

다른 상황에 처하면

대처를 잘 못한다는 것이다. 

 

나는 그 사실을 몰랐다. 

 

개발 레벨이 99까지 있다면

나는 레벨이 2~3이었는데 나중에야 알았다. 

 

학원이 끝날 때 즈음에 

난 자신감이 상당했다. 

 

학원에서 누가 질문을 하더라도 

잘 대답을 할 수 있었다. 

 

문제 풀이도 매우 빨리 하는 편이었기 때문이다. 

게다가 주말까지 공부하는 사람은 많지 않았다. 

 

당시에는 나도 모르게 거만 했던 것 같다. 

 

하지만 나의 자신감이 산산조각 나는 데는 그리 오랜 시간이 걸리지 않았다. 

 

산골짜기에서 우수했던 학생이 

도시의 명문 학교로 전학온 느낌이랄까.

 

찬란한 미래가 올 것이라 생각했지만

그렇지 않았다.

 

개발의 배우는 것과는 다른 차원의 어려움이 있었다. 

 

나의 29살은 상당히 어두웠다. 

 

아마도 '그것'이 없었다면 암울했던 1년을 버티지 못했을 것이다. 

다른 분야에서 넘어와 개발자가 된 사람은 결국 '그것'을 가졌던 사람들이었다.

 

나 또한 '그것'이 있었다

반응형

+ Recent posts