본문 바로가기

취업이야기

개발자 하고 싶은데 어떻게 하면 될까요?

Road map from unsplash.com

개발에 왕도는 없다

개발자는 하고 싶은데 뭘 해야 하나요?

자주 받는 질문이기도 하고 대답하기 어려운 질문이기도 합니다. 마치 공부를 잘하려면 어떻게 해야 하나요? 와 같은 질문이죠. 방법은 많지만 왕도는 없습니다.

 

개발에 대한 정보가 매우 적었던 저에게는 어떤 방법이 잘못됐다 라며 가르쳐줄 사람이 없었습니다. 소극적인 탓에 누구에게 물어보는 것은 창피스러운 일이라 생각해서 이것저것 시도하고 실패하며 프로그래머가 되려면 어떻게 해야 하는지 알아내는 시간도 길었던 것 같습니다.

 

처음에는 유튜브에서 동영상을 많이 찾아보았습니다. 생활코딩의 강의도 동영상이니 저에게 잘 맞을 것이고, 유튜브에는 모든 게 있을 거라는 생각으로 찾아본 것 같습니다. 하지만 검색의 범위가 너무 넓었던 게 큰 실수였던 것 같습니다. 제가 본 동영상들은 전부다 각기 다른 이야기를 하고 있어서 파고들수록 더욱 알쏭달쏭하고 이해하기 어려웠습니다. 그리고 그 당시에는 개발을 주제로 하는 국내 유튜버가 많지 않았고 대부분 인도나 미국 또는 유럽의 이야기들이 주류였습니다. 사실상 한국에서 고졸 백수가 어떻게 개발자가 될 수 있는지에 관한 내용은 없었습니다. 그래도 공통적으로 하는 이야기는 개발에는 실력이 중요하기 때문에 다른 직업보다는 문턱이 낮다는 내용이었습니다. 저에게는 그나마 안도가 되는 내용이었죠. 다만 저런 말을 하신 분들은 학위가 다 있으셨다는 게 함정입니다.

 

자바 개발하면 굶어 죽진 않는다

는 말을 어디선가 우연히 들은 것 같습니다. 아마 한국에서는 자바언어 비중이 다른 나라에 비해 월등히 높아서 그렇지 않았나 싶습니다. 지금은(2022년) 다양한 스타트업들과 네이버나 카카오 같은 대기업들도 내부적으로 조금씩 다른 언어들을 사용한다고 알고 있지만 그 당시에 어떤 솔루션을 만든다고 한다면 자바가 보통 쓰였습니다. 대기업들이 아니더라도 대부분의 SI업체들은 규격화된 방식에 맞추어 개발해야 했기 때문에 이미 정해진 자바를 썼어야 했습니다. 어차피 제 목표는 개발자로서 어떻게든 취업을 해보는 게 목적이었기에 다른 변수가 많은 언어들을 공부하기보단 보편적인 자바 개발자가 되기로 하고 개발 로드맵을 찾아봤습니다.

자바(Java): 프로그래밍 개발언어 중 하나. 다른 언어로는 파이썬, C 등등이 있다.

자바 개발자 로드맵

 

자바 개발자 로드맵을 따라 저는 닥치는 대로 책을 읽기 시작했습니다. 다행히도(?) 백수였기 때문에 책 읽을 시간은 충분했던 것 같습니다. 무슨 말인지 모르는 책들을 하루 200페이지씩은 읽었던 것 같습니다. 지금은 이해가 안 가도 비슷한 책을 계속 읽다 보면 언젠간 이해가 되겠지 싶었습니다. 이게 좋은 방법인지는 잘 모르겠습니다. 책을 고르는 눈이 없었기 때문에 지금 생각해보면 별로인 책들도 많았고, 모르더라도 꼭 알고 갔어야 하는 부분들도 있었는데 그냥 지나쳤으니까요. 물론 아무것도 안 하는 것보단 비교도 안되게 좋습니다.

그렇게 한 달 정도 읽고 나니 일단 많이 읽었다는 뿌듯함이 좋았고, 뭔가 조금 알아간다는 느낌에 행복했습니다. 몇 줄 안되지만 키보드로 직접 구현해보는 것도 재미있었습니다.

 

지금 회고해보면 자바를 공부한 게 유효한 전략은 아니었던 것 같습니다. 저보다 좋은 조건의 사람들이 시장에 무수히 많았을 것이기 때문에 회사가 저를 채용할 이유가 없었죠. 여러분은 저처럼 다른 사람을 따라 하기보단 자신만의 엣지를 살려보세요. 자신만의 엣지를 살린다는게 말처럼 쉬운 일이 아니라는걸 잘 알고있습니다. 하지만 한번 만들어 놓으면 두고두고 효자노릇을 합니다. 저는 현재 남들이 잘 안 쓰는 언어를 쓰기 때문에 이직에 많은 도움을 받고 있습니다.

 

문맥이 끊기는 걸 감안하더라도 여기서 잠깐 책들을 조금 추천을 하자면

  1. 후니에 쉽게 쓴 네트워킹
  2. 운영체제 공룡 책 이 있습니다.

제가 읽은 후니에 쉽게 쓴 네트워킹 책은 2번째 에디션이었는데, 요즘 버전들을 잘 모르기 때문에 리뷰나 생활코딩 페이스북 페이지에 질문하시는 게 좋을 것 같습니다.

운영체제 공룡 책은 영어 원문으로 보았었는데, 어려운 영어는 나오지 않아서 아마 쉽게 읽으실 수 있을 거예요. 한국어 버전은 안 읽어봐서 어떤지 모르겠지만 저는 영문 브라키오 사우르스 표지의 버전을 읽었었는데 이해 쏙쏙 갔습니다.

네트워킹과 운영체제는 개발자로 살아가면서 평생 써먹을 내용들이기 때문에 필독이라고 해도 지나치지 않겠고, 특정 언어에만 해당되는 게 아니기 때문에 개발하고 싶으신 분들은 모두 추천입니다.

뭘 모르는지 알아가는 법

책만 한 달 읽다 보니 이제 뭐 좀 안다는 식으로 거만해지기 시작했습니다. 인터넷 게시판 만들 줄 알면 개발자다 생각하고 까불던 시절입니다. 이불 킥 각이죠.

 

이 시기 부터는 통장의 잔고가 다 떨어지기 시작하며 생업의 압박에 시달리게 됩니다. 포트폴리오를 준비해보려고 했지만 아직 그 정도의 시간은 없었고, 부모님 집에 얹혀살았기 때문에 생활비를 벌기 위해 친구들이 일하던 거제도 조선소에서 보조공 일을 시작하게 되었습니다. 아침 6시에 일어나서 11시에 잠들 수 있는 스케줄이었습니다. 하루 종일 추위에 떨면서 일한 후 집에 들어와서 시간을 쪼개서 프로그래밍을 한다는 건 저에게 불가능했습니다. 책만 읽으며 개발자 실력이 된다고 우쭐하던 시간에 보약이었습니다. 키보드에 손을 올리진 못했지만 쉬는 시간을 사용해서 개발에 관련된 내용들을 계속 읽어보며 시간을 보내다 보니 점점 내가 모르는 것들이 눈에 들어오기 시작했습니다.

 

개발을 해볼 수 없고 인터넷에서 모르는 내용들만 읽다 보니 자신감이 많이 떨어졌습니다. 이러다가 개발자 할 수 있을지에 대해 고민도 하게 되었습니다. 이렇게 하다간 답이 없을 것 같아서 3개월 만에 거제도 생활을 청산하고 다시 부모님 집으로 돌아와서 개발자 포트폴리오를 만들기로 했습니다. 착실히 친구들에게 얻어먹은 덕택에 몇 달간 생명은 연명 가능해 보였습니다.

 

포트폴리오를 만들다보니 역시 책 예제를 따라 하는 것과 백지에서 뭔가를 만든다는 건 확실히 다른 영역이었습니다. 화면에 나타나는 빨간 에러 메세지들도 도통 무슨 내용인지 모르겠고, 에러 내용을 복사해서 구글링 해보아도 도통 알 수 없는 답변들만 나와있었습니다. 지금 생각해보면 에러 내용이 상세하지 않고 너무 Broad 해서 그랬던 것 같습니다.

 

제 첫번째 포트폴리오는 영단어 추천 프로그램이었습니다. 책만 보며 공부할 때는 Applet 같은 자바의 옛날 기술들을 사용했던 지라 실제로 개발하기엔 어려웠습니다. 자바 Swing이라는 새로운 것을 사용해 어떻게 화면을 그리는지 다시 공부해야 했습니다. 자바는 분명 자바 Runtime이라는 베이스 프로그램을 통해 윈도우와 맥OS 에서 동일하게 작동할거라 생각했었는데 꼭 그렇지만도 않았습니다. 맥북에서 열심히 코딩후 윈도우 컴퓨터에서 실행해보면 화면이 이상하게 나오거나 제목이 다르게 나오곤 했습니다. 에러에 계속 부딛히고, 구글링으로 찾을 수 없는 것들이 계속 나오자 스트레스를 많이 받았습니다.

 

아 내 실력이 이 정도인가?

 

 

두번째 포트폴리오는 영단어 프로그램을 안드로이드 앱으로 만드는 것이었습니다. 똑같은 자바언어를 사용하니까 서버 개발자와 안드로이드 개발자 두 개다 지원해 보자 라는 생각이었습니다. 개발을 해본 분들이라면 예상하시겠지만 안드로이드 앱 개발은 서버 개발과는 또다른 영역입니다. 자바라는 프로그래밍 언어로 공통적으로 개발은 가능하지만 안드로이드 운영체제에서 어떻게 어플리케이션이 작동하는지나 Life Cycle 이 다르기 때문입니다.

 

마치 똑같은 밀가루를 사용해서 빵을 만들 수도 있지만 냉면을 만들수도 있는 것처럼요.

 

책만 보다가 실제로 구현해보면 자신의 레벨을 알게 됩니다.

내가 뭘 모르는지에 대해 아는 건 정말 중요합니다

그래야 적절한 자기 계발을 할 수 있기 때문이죠. 개발자라는 직업은 끊임없이 공부해야 하는 직업입니다. 공부라고 하면 자치 어려운 것처럼 들릴 수 있습니다. 전 공부라는 단어를 들으면 고등학교 때 공부를 그렇게 많이 했는데 또 해야 돼?라는 느낌이 드니까요. 하지만 꼭 책을 펴놓고 읽는 게 아니고, 새로운 기술이 나오거나 흥미로운 걸 발견하면 그걸 코드로 구현해보거나 다른 사람들과 이야기해보며 지식을 넓혀가는 게 개발에서의 공부입니다. 그냥 본인에게 맞는 방법으로 하면 됩니다. 굳이 책과 연필을 들 필요가 전혀 없습니다. 그래서 저처럼 머리 나쁜 사람도 개발자를 할 수 있는 거예요.

 

모르는 걸 아는 사람만 스펙트럼을 넓힐 수 있습니다. 매일 하던 것만 하다 보면 발전이 없어서 도태되기 쉽습니다. 기술은 발전하고 좋은 개발 도구들은 끊임없이 나옵니다. 그리고 더 중요한 건 시스템에 취약점이 발견되면 버전 업그레이드를 해야 하거나 새로운 도구를 찾을 수밖에 없습니다. 하지만 내가 모르는 영역이라면 팀원들에게 점점 뒤처지다가 영영 따라잡을 수 없을 수도 있습니다.

 

새로운 기술의 양면은, 새로 진입하는 사람들에게도 기회를 제공한다는 장점이 있지만 새로운 기술을 거부하다 보면 결국 시장에서 쫓겨난다는 단점이 있습니다. 어른들이 기술 배워라 하는 말씀이 틀린 말은 아니지만 개발 세계에선 기술 “꾸준히" 배워라 라는 말씀이 더 정확하겠습니다.

 

생각해보면 개발업계뿐만 아니라 여러분이 종사하는 모든 업종이 그렇지 않을까 싶습니다. 자동차 업계에서도 디젤엔진을 버리고 전기차로 변하는 추세이고, 가장 오래된 농업도 스마트팜이 생기면서 변화하는 추세니까요. 개발업계는 그저 조금 더 빠를 뿐입니다.

 

글이 생각보다 길어졌네요. 자 이제 포트폴리오도 준비됐으니 취업을 해봐야겠죠?

 

개발에 관심을 갖게된 사연 <- Previous

Next -> 개발자 취업