코린이들은 모를 수 밖에 없는 개발자 되는 법, 부트캠프X
솔직히 말씀 드릴께요. 제가 처음 개발자가 되고 싶었던건 다른건 아니고 그냥 멋있어 보여서였어요. 그때 회사에서 기획자로 일을 하면서 개발자들과 이야기 할 시간이 많았는데 그냥 내가 모르는 화면을 보면서 키보드를 두드리는게 그냥 신기한 정도였거든요? 근데 어느날 카페를 가니까 이렇게 일을 하는 사람이 있는거에요. 그때 처음 머릿속에 떠오르는 단어는 딱 하나였어요. 자유로움. 나는 맨날 지옥철 타고 출근해서 만나기 싫은 상사 만나고 침침한 형광등 밑에서 엑셀이라는 밭에 글자랑 숫자를 심는데 개발자는 일하고 싶은 곳에서 일하고 만나기 싫은 상사 안만나도 되고 내가 모르는 뭔가를 이해하고 창조적인 결과물을 만들어낸다는 것에 가장 큰 매력을 느꼈어요. 근데 나의 현실은… 개발 1도 모르는 상황. 나이도 있는 상태라서 뭔가 도전하기가 쉽지 않았어요. 나이가 좀 있는 분이라면 잘 이해하실 거에요. 나이가 좀 있는 상황에서 생계를 위해 모르는 무언가를 도전하는 것은 그 자체가 리스크로 다가온다는 것을요. 그래도 지금 아니면 기회가 없을 수도 있다는 생각에 시작하기도 했지만 어떻게 해야 개발자가 되는지 모르겠더라구요. 이때 많은 사람들이 먼저 든 생각이 바로 학원을 다니자! 에요. 우리가 학교를 다니면 학생이라는 신분이 되듯이 학원 같은데를 다니면 자연스럽게 개발자가 되는줄 알았어요. 그리고 무슨 자격증 같은게 있다면 자격증을 따면 개발자가 되는 줄 알았어요. 제가 몰라도 너무 몰랐죠… 근데 제가 몰랐던 이유가 있어요. 바로 알려주는 사람이 없었기 때문이에요. 여러분 부의 되물림이라는 말 들어보신적 있죠? 지식의 되물림이라는 말도 있어요. 당시 저는 지식을 되물려 줄 사람이 주변에 없었거든요. 물론 핑계일 수도 있지만 지식을 되물려 줄 사람이 주변에 한사람이라도 있었다면 적더도 개발자가 되겠다고 헛수고한 시간은 줄일 수 있었다고 생각해요.
지금와서 제가 알게된건 개발자는 그렇게 되는게 아니라는 거에요. 그럼 어떻게 해야할까요? 첫번째로 개발자는 코드를 사용해서 문제를 해결한다는 것을 먼저 이해해야해요. 제가 지금 지어낸 말이지만 이 문장을 설명하는데 정말로 할말이 많아요. 그만큼 중요하다는 것을 말씀 드리고 싶어요. 다시한번 더 말씀드리지만 개발자는 코드를 사용해서 문제를 해결하는 사람이에요. 즉 개발자가 되려면 먼저 코드를 알아야 하고 많은 문제를 접해야 합니다. 코드 하나만 알아서도 안되고 많은 문제를 만나서도 안되요. 이 두가지를 모두 알고 경험해야하고 마지막으로 해결할 수 있어야 해요. 많은 사람들이 코린이들이 개발자가 되기 위해서 코딩공부를 해요. 그게 나쁘다는 것이 아니에요. 필요하죠. 백준 열심히 공부해야죠. 근데 개발자는 그게 다가 아니에요. 그걸로 뭘 할 수 있는지를 생각해야해요. 여러분들이 열심히 알고리즘 공부를 해서 개구리가 A지점에서 B지점까지 몇번 뛰었는지 효율적으로 알수있는 방법을 알아냈다고 하더라도 그 지식으로 실질적인 문제를 해결할 수 있어야 해요. 그러기 위해서 여러분, 특히 코린이들이 해야할 것은 1: 일단 지금 하고 있는 코딩공부를 단시간에 집중해서 공부한다. 2: 최대한 많은 에러를 만난다. 3: 최대한 많은 문제를 만난다. 4: 그 에러와 문제를 어떡해든 해결한다. 입니다.
먼저 지금 하고 있는 코딩공부를 단시간에 집중하라는 뜻을 설명하자면 공부는 너무 길게하면 먼저 배운 것들을 잊게 되기 때문이에요. 그럼 먼저 배웠던 것들을 다시 복습해야하거든요. 그럼 배우는 시간이 또 필요해요. 그럼 나중에 배웠던 것들이 점점 잊혀지게 되요. 물론 이 과정이 필요해요. 이러면서 성장하니까요. 근데 문제는 이렇게 공부하는데 시간이 점점 길어지면 내가 왜 코딩공부를 하는지 목적을 잊게 되요. 우리 수능보는거 아니잖아요. 앞서 말씀드렸지만 문제를 해결하는게 최종 목표에요. 때문에 집중해서 단시간에 숲을 먼저 보고 나무를 이해하는 방법이 가장 효율적이에요.
두번째로 최대한 많은 에러를 만나라는 뜻은 개발자가 되기 위한 첫번째 관문같은거라고 생각하면 되요. 에러가 생겼다는 것은 내가 뭔가를 잘못 했다는 뜻이에요. 에러를 일으킨 주범은 “나”이고 내가 문제를 일으켰으니 내가 해결해야한다는 말이에요. 숙련된 개발자라고 하더라도 에러는 일으켜요. 단지 코린이와 다른점은 숙련된 사람들은 에러를 덜 일으킨다기보다 에러의 내용을 정확히 이해하고 해결할 방법을 이미 알거나 툴이나 검색 능력이 높다는 점이에요. 코린이들은 경험이 부족하니 이 부분이 많이 약하죠. 아마 처음 개발을 접하는 분들이 개발을 하다가 에러가 발생하면 많이 당황할 거에요. 부끄러운 이야기지만 저는 개발하고 4년차까지 에러가 발생하면 정말로 패닉 상태에 빠졌어요. 뭐가 어떻게 되고 어떻게 해야할지 몰라서요. 하지만 앞서 말씀드렸듯이 에러는 내가 뭔가를 잘못해서 컴퓨터가 수정하라고 알려주는 거에요. 그리고 컴퓨터는 어디가 문제인지 친절하게 다 알려줍니다. 단지 코린이가 이해하기 쉽게는 설명을 안해주지만 그러기 때문에 많이 에러를 만나고 익숙해지고 해결을 해야합니다.
세번째로 최대한 많은 문제를 만나라는 뜻은 나를 포함한 남이 생각하는 문제를 많이 만나라는 뜻이에요. 예를들면 회사의 수익화를 위해서 결제기능을 붙인다던가 UX에 문제가 있으니 UI를 개선한다던가…등등 여러가지가 있겠죠. 이건 내가 직접 이런 문제를 직면할 수도 있지만 남이 직면할 수도 있어요. 중요한건 이러한 문제를 최대한 많이 만나는 거예요. 그러면 사회가 가지고 있는 문제, 회사가 가지고 있는 문제, 시스템이 가지고 있는 문제, 유저가 가지고 있는 문제, 내가 가지고 있는 문제로 나눌 수 있어요. 우리가 수능볼때 그랬잖아요. 많은 예문을 풀다보면 비슷한 유형의 문제가 나왔을 때 이전보다 더 쉽게 문제를 풀수 있었잖아요. 그와 비슷한거에요. 개발을 하다가 나와 남이 생각하는 문제를 많이 만나면 만날 수록 나의 실력을 높일 수 있는 확률이 높아져요.
그리고 마지막으로는 이렇게 많은 에러와 문제를 코드를 사용해서 해결할 수 있어야 해요. 조금더 메니지먼트적인 관점에서 생각을 하자면 코드를 사용 안하고도 해결할수 있는 능력도 필요한데 일단 지금은 그부분은 생각하지 않고 말씀드릴께요. 암튼 이렇게 많은 에러와 문제를 코드를 사용해서 해결할 수 있다면 여러분은 “이미” 개발자가 된거에요. 제가 이 포스팅에서 정말 하고 싶었던 말이 바로 이거에요. 이 포스팅을 준비하면서 솔직히 제가 언제부터 개발자가 되었는지를 다시한번 더 생각하게 되었는데요. 솔직히 잘 모르겠더라구요. 개발 공부를 한 시점부터인지… 아니면 실제 개발자라는 직업을 가지게 된 시점부터인지… 아니면 남들이 개발자라고 불러줄때부터 인지… 모르겠더라구요. 사실 생각해 본 적이 없다고 표현하는게 더 정확한데 그도 그럴것이 저는 어떻게든 개발자로 취업을 하고 싶었기 때문에 언제부터가 개발자인지 생각을 해본 적이 없더라구요. 그래서 이번 포스팅을 준비하면서 정의를 한 것이 바로 제가 서두에 말씀드렸던 코드를 사용해서 문제를 해결하는 사람이 개발자이고 저 스스로가 이게 가능했던게 언제부터인지를 생각하게 되었어요. 사실 맘 같아서는 코드를 사용해서 문제를 해결하고 수입화가 가능한 사람이라고 말하고 싶은데 취미로 개발을 하는 분들도 계시니 수입화라는 표현은 뺐습니다.
이렇게 코딩공부를 하고 많은 에러를 만나고 문제를 만나고 이 모두를 해결하는 과정이 쉽지만은 않아요. 아마 대다수의 코린이들이 에러를 만나는 과정에서 반은 포기하게 될 거에요. 이때 우리에게 필요한건 멘탈이에요. 요즘은 AI의 힘을 빌리면 사실 그렇게까지 멘탈에 데미지는 없을텐데 이때 제가 자주하는 건 해결못할 에러는 없다라고 생각하는 거에요. 이 세상에 개발자가 세보지는 않았지만 수억명 있을 텐데 누군가는 나와 같은 문제를 경험했고 해결했겠지 하고 생각을 해요. 그리고 개발자는 공유하는거 좋아하니깐 본인들이 해결한거 자랑하려고 스택오버플로나 블로그 같은데 올려놓거든요. 그럼 저는 그런거 찾아보면 해결할 수 있게 되요. 물론 AI의 힘을 빌려도 되고요. AI의 힘을 빌리는게 저는 나쁘다고 생각안하는 편이에요. 제가 1년 넘게 코파일럿을 써봤는데 솔직히 너무 편하더라구요. 조금 과장되게 표현해서 타이핑 할 일이 반 이상 줄어든거 같더라구요. 모르는 에러도 빨리 해결할 수 있었구요. 그렇다고 해서 멘탈 관리가 덜 중요하다는 것이 아니에요. 문제라는게 언제 어떤 일이 생길지 모르니깐 문제잖아요. 아무리 AI가 좋다고는 하지만 현업에서 일하다보면 AI가 만능은 아닐 때도 많았어요. 그러니 에러나 문제를 만나게 되면 “반드시 길은 있다”는 생각을 하고 긍정의 마인드를 가지셔야합니다.
또 개발자가 되기 위해서 뭐부터 시작해야하는지 궁금해하는 분들이 계시는데 대부분의 선배 개발자들이 python을 추천하더라구요. 이유로는 쉽고 인터넷에 자료도 많고 커뮤니티도 많아서인데 사실 저도 이런 이유도 있어서 python을 저의 첫 개발언어로 선택했어요. 그럼 지금도 그렇게 생각하냐…라고 물으신다면 저는 python을 추천하지 않을 거 같아요. 이건 개인의 성향과 목적, 목표에 따라서 조금씩 달라질 수도 있기 때문에 조심스러운 부분인데요. 저는 취업이 잘 되는지 안되는지를 중요시하는 성격이기도 하고 내가 만든 로직이 동작되는 것이 바로바로 눈으로 보여야 이해가 잘 되는 성격이라서 더 그런거일 수 있는데 그래서 제가 추천하는건 TypeScript와 JavaScript입니다. 2023년 기준 일본에서 가장 많이 사용되고 있는 언어는 TypeScript와 JavaScript로써 각각 29.6%와 41.8%입니다. 많이 사용되고 있다는 것은 그만큼 수요가 있다는 뜻이고 수요가 많다는 뜻이죠. 아무리 내가 개발을 잘 해도 내가 사용하는 언어가 사회에서 잘 안쓰이거나 취업문이 좁은 언어라면 지식만 갖춘 백수잖아요. 그런 의미에서 브라우저에서 로직의 움직임을 바로바로 알 수 있고 취업도 잘 되는 TypeScript와 JavaScript가 일본에서 살고 있는 저에게는 가장 좋은 언어였어요. 한국은 아직 조사를 못했는데 개발공부를 이제 막 시작하실때 어떤 언어를 선택해야하는지 모르신다면 저와 같은 기준을 잡는것도 나쁘지 않다고 생각해요. 개발자가 됬다고 하더라도 일단 돈을 벌어야 추석때 가족에게 용돈이라도 줄수 있잖아요. 참고로 일본에서 연봉이 높은 언어는 사실 Go나 Python입니다. 단, Python은 인공지능 분야에 한합니다.
여기서 잠깐 광고를 하자면 제가 “일본 개발자 취업백서”라는 전자책을 판매하고 있는데 디럭스 옵션을 선택하면 일본에서 인기가 많은 언어라던가 연봉이 높은 언어, 프레임워크, 연봉과 취업에 관한 각종 조사를 한 2023년 일본의 취업시장 조사 자료를 드리고 있습니다. 아까 보신 자료도 그 조사자료에 포함되어있는 내용이니 일본 취업에 관심이 있으시면 꼭 구매해서 읽어 보시길 바랍니다. 디럭스를 구매하시면 추가로 일본 이력서 샘플과 직무경력서 샘플을 드리고 있으니 이 기회 놓치지 마시고 꼭 구매해보세요. 구매 링크는 youtube 영상 설명란에 달아놓을테니 참고해주세요.
제가 그랬지만 코린이들이 오해하는게 하나 있는데 어디 부트캠프를 마치거나 자격증을 따면 개발자가 된다는 환상을 가지는 거에요. 이건 마치 초등학교 6년을 마치면 자연스럽게 중학생이 되고 중학교 3년을 마치면 자연스럽게 고등학생이 되는 것 처럼 이해하시는데 전혀 그렇지 않아요. 개발자는 시간이 지나면 자연스럽게 개발자가 되는게 아니라 내가 노력을 해야 이루어지는 거에요. 어느 직업이든 마찬가지이겠지만 개발자도 스스로 어느정도 노력을 해야 인정도 받고 돈도 벌수 있어요. 그리고 경우에 따라서 그 노력에는 많은 고통이 있을 수도 있어요. 맨탈이 깨진다던가 상사한테 깨질수도 있겠죠. 하지만 그 모든 것들이 병아리가 되기 위해 알에서 성장통을 겪는 과정이라고 생각하고 조금만 희망을 가지고 하나씩 문제를 해결해 나간다면 제가 그랬든 어느순간 개발자가 되어있을 거에요. 꿈은 미래에 내가 경험할 사건이지만 그 꿈이 이루어질 때는 사실 느끼지 못해요. 하지만 어느순간 문득 뒤돌아봤을 때 그 꿈은 행복이라는 그림자를 남겨놓아요. 여러분도 그 행복을 느끼셨으면 합니다. 제가 준비한 포스팅dms 여기까지 입니다. 이 포스팅이 도움이 되셨다면 좋아요과 구독을 눌러주시고 저는 더 좋은 포스팅으로 여러분들을 다시 찾아뵙겠습니다.