비전공이지만 개발자로 먹고삽니다_반병현x이효석
개발자는 도대체 무슨 일을 하는 사람인가요?
개발자는 여러분이 사용하는 프로그램들을 설계하고, 설계도를 실제 작동하는 제품으로 구현해내는 사람들입니다.
컴퓨터로 문제를 해결하기 위한 논리적인 해법을 제시하고, 이를 설계하고 실제로 시험해보기도 합니다.
프로그래밍 언어를 통해 사람과 기계가 소통할 수 있게 해주는 통역사이자,
뜻대로 컴퓨터를 움직일 수 있게 하는 설계자이기도 하고,
이 전체 과정을 조율하는 관리자이기도 합니다.
개발자의 특성
비슷한 맥락에서 성취감에 자주 노출될수록 개발자의 퍼포먼스가 좋아지는 편입니다.
만약 개발자 동료와 함께 일해야 하는 상황이라면 프로젝트의 목표를 잘게 쪼개어 하나씩 각개격파해 나가는 형태로 협업하면 좋은 성과가 나올 것입니다.
개발자는 항상 공부해야만 살아남을 수 있는 직업입니다.
취업시장에서의 경쟁력을 위해 요구되는 성장이 아니라, 제자리에 머무르기 위해서도 꾸준한 성장이 요구되는 직종입니다.
스택 오버플로Stack Overflow나 깃허브GitHub와 같이 개발자들이 많이 사용하는 커뮤니티에서는 내가 공개한 자료가 얼마나 많은 사람의 주목을 받았는지를 정량적인 지표로 알려줍니다. 어찌 보면 나의 경쟁력을 숫자로 바로 알려 주는 것이나 다름없지요.
이런 점에서 개발자들은 커리어 성장을 위해, 명예를 쌓기 위해서 더더욱 열심히 자기만의 노하우를 남들에게 알려주려 노력하는 사람들입니다. 이러니 IT 분야의 발전 속도가 다른 산업과는 비교할 수 없을 정도로 빠를 수밖에요.
여러분이 개발자가 되어야 하는 이유
그나마 개발자라는 직종은 이런 고민과 거리가 먼 사람들입니다. 상용화가 완료되고 뉴스에서 뒤늦게 이슈가 되는 기술 대부분은 개발자 커뮤니티에서 최소 5년 전에 이미 이슈가 되었던 것들입니다. 바꿔 말하자면 동종업계 사람들의 이야기에 귀만 기울이고 있어도 5년은 앞서나갈 수 있다는 이야기입니다.
무엇을 공부해야 할까요?
단순히 자바스크립트를 공부하는 것도 좋습니다만 최대한 많은 웹 페이지를 직접 제작해 보고, 인기 있는 웹 페이지를 그대로 흉내 내어 만들면서 많은 연습을 하는 것이 중요합니다.
빅데이터 분석이나 인공지능 같은 서비스 개발보다 연구개발 R&D 관련 분야로 진출하려면 파이썬으로 입문하는 것을 더욱 추천합니다. 현재 전 세계에서 통용되는 빅데이터 분석 도구와 인공지능 제작 도구가 모두 파이썬과 호환되도록 제작되고 있기 때문입니다.
또한 파이썬으로 입문하는 분들은 빠르게 시제품을 구현하는 방식으로 훈련하기보다는 책 한 권을 붙들고 끝까지 진도를 나가면서, 책에서 소개하는 기초적인 컴퓨터공학 지식을 함께 습득하는 편이 더 좋습니다. 파이썬을 익혀 일하게 된다면 웹 프론트엔드 개발보다는 조금 더 어려운 작업을 수행해야 할 가능성이 크기 때문입니다. 한번 튼튼하게 쌓아둔 기초는 오랫동안 든든한 자산이 되어줄 것입니다.
C언어의 장점은 굉장히 빠르게 실행된다는 점입니다. 파이썬이나 자바스크립트는 개발자가 편리하게 코딩할 수 있도록 다양한 부분을 배려하다 보니, 동작 속도에서 그만큼 손해를 보게 되어있습니다. 반면 C는 속도가 빨라서 많은 개발자가 C언어가 가진 특유의 불편함을 감수하면서까지 활용하는 언어입니다.
원하는 취업 분야가 있다면 그 회사에서 자주 사용하는 프레임워크를 따로 공부하는 것도 훌륭한 전략입니다. 해당 회사의 예전 채용공고를 참고하면 어떤 프레임워크를 사용하는지 알 수 있습니다. 체계가 잡힌 개발팀에서 올린 채용공고에는 주로 사용하는 프로그래밍 언어는 물론 프레임워크에 대한 요구사항도 굉장히 구체적으로 명시되어 있기 때문입니다.
공부의 검증 문제은행 박살내기!
접근성 좋고 난이도도 자유롭게 조절할 수 있는 문제은행 웹사이트를 사용하는 것을 추천합니다.
CSS Diner
일반적인 문제은행과는 달리 시각적으로 본인의 정답과 오답을 확인할 수 있는 사이트입니다. CSS만 다루고, CSS 코드 전반이 아니라 선택자selector에 대한 문제만 제공합니다. 충분히 생각해볼 만한 문제들을 제공하고 있으며, 왜 오답인지 좀 더 직관적으로 파악할 수 있다는 장점이 있습니다.
방대한 지식의 바다에서 헤엄치기: 구글링
반드시 결과에 포함되어야 하는 단어가 있다면 "ㅇㅇㅇ" 같이 큰따옴표로 감싸주거나, 키워드를 추가하거나 제외할 때 + 또는 - 기호를 사용하거나, 잘 모르는 부분을 검색할 때 별표(*, asterisk)로 대체해서 검색하는 등의 방법이 있습니다.
전 세계 개발자들의 아고라 : 커뮤니티 / 콘퍼런스
생활코딩, 코딩이랑 무관합니다만, TensorFlow KR 같은 커뮤니티에는 수만 명에서, 많게는 10만 명 이상의 한국인 개발자들이 가입하여 활동하고 있습니다.
저자는 개발자 커뮤니티의 기능을 집단지성의 형성을 통한 지식의 공유와, 함께하는 빠른 성장으로 정리하고 싶습니다. 커뮤니티를 적극적으로 활용하면서 여러분의 성장을 꾀하기도 하고, 다른 사람들의 성장을 도와주기도 하며 명성을 쌓아가는 것이 현대 개발자 사회에서는 무척이나 중요한 일입니다.
여러분이 관심 있는 분야의 채용 담당자에게 이렇게 물어보세요.
이 회사에서는 어떤 기술을 공부한 개발자를 원하시나요? 저는 아직 공부 중인데 이 회사에 꼭 입사하고 싶어요. 이런 질문을 하면 아마 여러분이 공부해야 할 내용부터 순서, 그리고 최신 트렌드까지 모든 정보를 한 자리에서 얻어올 수 있을 것입니다.
개발자의 직업병 : 타인의 결과물 참고하기
대부분 코딩 교육에서 에셋asset이나 코드 대부분을 채운 키트kit를 미리 제공하는 이유가 여기에 있습니다. 숙련된 개발자의 의도대로 기획되고 작성된, 검증받은 프로그램을 다시 작성하고 수정하는 과정을 거치면서 작게는 변수의 생성이나 주석처리 등의 내부적인 규율, 크게는 코드의 구조와 구성, 프로젝트의 유지보수 등 거시적인 흐름을 자연스럽게 체득하는 것이지요.
지금 알았던 걸 그때도 알았더라면
기능을 만들어내는 것도 물론 중요합니다. 하지만 더 좋은 프로그래머가 되려면 목표에 도달하는 과정도 중요하게 여겨야 합니다.
같은 동작을 어떻게 하면 더 깔끔하고 간결하게 구현할 수 있을지를 고민하는 것이 한 뼘 더 성장할 수 있는 길인 것 같습니다.
혼자 공부하며 작성한 코드는 별생각 없이 삭제하거나 폐기하는 경우가 많습니다. 딱히 경제적 가치도 없고, 남들에게 자랑할 만한 수준도 아니기 때문입니다. 하지만 이런 코드도 절대 삭제하지 말고 차곡차곡 모아두는 것을 강력하게 추천합니다.
이건 왜 안 해봤을까?
유사한 언어를 배우면 여러 언어를 좀 더 쉽게 확장할 수 있다는 장점도 있지만, 두 언어가 왜 유사한지 좀 더 직관적으로 생각할 수 있습니다. 같은 언어 기반인지, 왜 이런 구조를 가지게 되었는지 등 근간을 파고드는 게 좀 더 유리하다는 의미입니다.
당장 취업할 생각이 없더라도 기업 부스를 둘러보는 것은 무척 가치 있는 일입니다. 관심 있는 기업의 부스에 방문하여 그 기업이 선호하는 프로그래밍 언어는 무엇인지, 어떤 방향으로 포트폴리오를 준비하면 될지 문의하고 답변까지 들을 수도 있거든요.
그런 짓을 하지 말았어야 했는데
안타깝게도 우리의 시간은 무한하지 않습니다. 따라서 개발자는 한정된 자원을 효율적으로 사용할 줄 아는 능력도 있어야 합니다. 한 문제에 꽂혀서 하염없이 시간을 낭비하며 에너지를 소비하지 말고, 고민이 너무 길어진다면 선배 개발자나 포럼에 물어보는 것이 훨씬 현명합니다.
앞서 말했듯 개발자의 시간과 체력은 유한하지 않습니다.
따라서 이슈가 생겼을 때 당장 필요한 정보가 무엇인지 명확히 하고, 답을 찾았다면 그 지식의 조각만으로 만족하고 넘어가야 합니다. 나중에 해당 주제에 대해 더 알아보고 싶다면 기억할 수 있도록 코멘트에 링크를 달아두는 것으로 충분합니다.
즉, 개발자는 끊임없이 공부할 수밖에 없는 운명이라는 것입니다. 학창 시절에 배운 것으로 먹고살 수 있는 직종도 아니지만, 시대의 요구에 따라 언어나 기술을 새로 익히거나 심지어는 직종까지 전환해야 할 정도로 트렌드에 민감할 수밖에 없습니다. 그만큼 개발자에게 새로운 시도는 지극히 일상적인 것입니다.
개발자의 사업 밑천은 바로 뇌입니다.
그런데 수면 부족은 뇌 기능 유지에 치명적입니다. 하룻밤을 새우면 다음 날 컨디션이 눈에 띄게 떨어지고, 회복하는 데 며칠이 걸릴 수 있습니다.
개발자는 평생 퍼즐을 풀며 돈을 버는 사람이라 생각해도 좋습니다. 알쏭달쏭한 상황을 분석하고 해결하며, 솔루션을 코드로 옮기는 사람이지요. 항상 최선의 솔루션에 도달해야만 하는 사람들입니다.
따라서 개발자의 퍼포먼스는 본인의 뇌가 가진 역량을 뛰어넘을 수 없습니다. 피곤한 뇌는 여러분의 작업 결과물을 망칠 수 있습니다. 개발자는 오늘 하루만 코딩하고 그만둘 것이 아니라 앞으로 평생 코딩하며 살아가야 합니다. 단거리 질주가 아니라 마라톤이지요. 따라서 항상 체력 관리에 신경 써야 하며, 충분히 수면을 취해야 멀리 갈 수 있습니다. 빠르게 짠 코드보다는 잘 짠 코드가 더 좋습니다.
세상이 발전하며 개발자에게 필요한 역량도 점차 바뀌고 있습니다. 검색을 통해 해결할 수 있는 문제는 검색으로 해결하고, 오픈 소스로 처리할 수 있는 부분은 오픈 소스를 적극적으로 활용하는 것이 현대의 실력 있는 개발자에게 요구되는 역량인 것 같아요. 이런 훈련도 열심히 해보는 것을 권장합니다.
이건 여러분도 꼭 해보길 바라요
아이작 뉴턴의 말 중에 거인의 어깨에 올라서서 더 넓은 세상을 바라보라.라는 말이 있습니다. 뉴턴의 겸손을 나타내는 명언이지만, 결론적으로는 타인의 노력이 있었기에 빠르게 결과에 도달할 수 있었다는 뜻이지요.
타인의 프로젝트를 참고하는 것은, 온전히는 아니더라도 다른 사람의 시행착오를 건너뛰고 경험치만 내 것으로 만드는 방법입니다. 깃허브, 개발자가 이용하는 툴의 에셋 스토어, 개발자들의 개인 블로그에는 프로젝트의 진행과 경과, 겪기 쉬운 시행착오, 정제된 결론이 공유되어 있습니다. 보란 듯이 공개해놓은 타인의 경험과 실패를 보며 내 실력을 향상시킬 수 있습니다.
공부하는 데 있어 가장 중요한 부분은 동기라고 생각합니다. 진도가 더디거나 당장 이해되지 않아서 어렵게 느껴지는 부분이 있다 하더라도 일시적인 문제일 뿐, 언젠가는 해결되는 문제입니다. 하지만 이 모든 행위가 무의미해지고 공부에 흥미를 잃는 순간이 오면 앞으로 한 발짝도 나갈 수 없게 됩니다.
코드는 무조건 많이 만들어 보는 것이 최고인 것 같습니다. 예체능 분야와 어느 정도 일맥상통하는 부분이 있는데요, 머리로만 알고 있어서는 한계가 있습니다. 많은 훈련을 통해 몸이 기억하는 습관처럼 만들어서 무의식중에도 고민 없이 솔루션을 척척 내놓을 수 있어야 합니다.
저는 어떻게든 일상에서 사용할 수 있는 프로그램을 만들어 보려고 애썼습니다. 쓸데없이 가계부도 코드로 짜 보고, 스마트폰의 GPS 기록을 불러와 지도 위에 제가 돌아다녔던 경로를 빨간색 선으로 표시해 보기도 했고요. 실용성이 있든 없든 무엇이든지 많이 만들어 보며 제가 할 수 있는 영역을 넓혀 나가려 했습니다.
그때의 경험이 지금 무척이나 큰 자산이 되었습니다. 겪어본 적 없는 문제, 만들어 본 적 없는 기능이라는 숙제를 만나더라도 구글 검색만 조금 하면 얼마든지 해결할 수 있을 거라는 자신이 있거든요.
어차피 개발자는 평생 새로운 기술을 습득하고 구사해 나가야 하는 직업입니다. 다양한 방법으로 코딩 경험을 쌓는 것은 기술 습득력 자체를 성장시킬 수 있는 거의 유일한 방법이 아닐까 생각합니다.
조금씩이라도 좋으니 매일 꾸준히 코딩 연습을 한다면 같은 시간 동안 작성할 수 있는 코드의 길이가 거의 두 세배 껑충 뛸 것입니다. 굉장히 직관적인 실력 향상의 증거물이죠.
책을 보고 연습하는 건 재미도 없고 별다른 효용성도 없으므로, 사이드 프로젝트를 수행하는 것을 추천합니다. 예를 들면, 저는 최근에 퇴근 후 암호화폐 자동 거래 시스템과 NFT 자동 생성 시스템을 만들어 봤습니다. 통신이나 알고리즘 트레이딩 분야는 물론, 윈도와 맥OS에서 동
작하는 애플리케이션 제작까지 경험하면서 다양한 분야의 기술을 체험했습니다. 원래 알던 분야의 감각도 유지하고 몰랐던 분야의 경험까지 쌓으며 실력이 많이 늘었다고 자신합니다.
어떤 언어로 공부를 시작하면 좋을까요?
저자가 판단하기에, 비전공자가 개발을 공부해서 가장 빠르게 연봉 5천만 원을 달성하는 방법은 우선 TypeScript 까지만 공부하고 취업한 뒤, React.js, Vue.js 등의 웹 프레임워크를 연습하여 이직하는 것입니다.
학벌의 벽을 넘을 수 있을까요? 전문분야잖아요
하지만 이외의 영역이라면 석사 이상의 학위가 필수는 아닙니다. 개발은 절대적으로 경험치 싸움입니다. 누가 더 많은 코드를 읽어봤는가, 누가 더 시대를 앞서 나가는가, 누가 더 좋은 코드를 많이 작성했는가가 훨씬 중요한 경쟁력입니다. 이런 능력은 학벌만 좋다고 갑자기 생기는 게 아니라 본인의 시간과 노력을 투자해야 얻을 수 있습니다. 또한 학벌 좋은 사람이 직무에 투입되어 곧바로 성과를 낸다는 보장도 없습니다. 비전공자나 전공자나 모두가 똑같은 도전자일 뿐이니, 자만하거나 기죽을 이유가 없습니다.
이처럼 각자의 목적에 따라서 가야 할 방향이 다르므로 획일화된 로드맵을 제시할 수는 없습니다. 따라서 여러분이 가고 싶은 길과 환경을 고민해보고 선택하기를 바랍니다.
스타트업 vs 대기업
하지만 비전공자가 전공자들을 제치고 대기업에 취업하는 것은 몹시 어려운 일입니다. 따라서 현실적으로 스타트업이나 중소기업에서 커리어를 쌓게 될 가능성이 크지요. 이런 상황이라면 하루라도 빨리 경력을 쌓아 대기업으로의 이직을 목표로 첫 직장을 고르는 것을 추천합니다.
스타트업 중에서는 시가총액 1조 원 이상 규모의 유니콘 기업이 지원 1순위입니다. 당근마켓, 마켓컬리 등이 여기에 해당합니다. 유니콘 기업은 이른 시일 안에 대기업으로 지정될 가능성이 큽니다.
다만, 개발자는 항상 이직하며 살아남고 연봉을 높여나가는 존재라는 사실을 잊지 말아야 합니다. 개발업무에 참여하고 새로운 기술을 익히며 성장하는 것도 중요하지만, 본인이 참여한 개발 내용을 포트폴리오로 정리해 두는 것이 중요합니다.
단기간에 여러 업무에 참여하며 풍부한 포트폴리오를 쌓을 수 있다는 점이 스타트업의 매력인데, 이를 정리하는 노력을 게을리한다면 이는 이직에 도움이 되지 않는 개인적인 경험에서 끝날 가능성이 크지요.
내가 잘하는 기술 vs 요즘 떠오르는 기술
개인적으로 저자는 본인이 정말로 그 분야를 좋아하는 게 아니라면 원래 종사하던 분야를 고수해도 좋다고 생각합니다. 인공지능이라는 신기술이 전 세계를 휩쓸었지만, 의외로 우리가 일상에서 접하는 IT 서비스의 본질은 크게 달라지지 않았습니다. 인공지능이 도입되었다고 하여 스마트폰 애플리케이션 기반 서비스들이 후퇴하지 않았듯이 말입니다. 오히려 관련된 애플리케이션이 대량으로 쏟아져 나오며 새로운 회사들이 등장했고, 현재는 개발자 품귀 현상까지 벌어지고 있지요.
저자는 개인적으로 신기술이 급부상하면 관련 논문을 찾아 읽고 코드를 살펴보며, 어떤 맛인지 살펴보는 편입니다. 때로는 배척하기도 하고, 때로는 적극적으로 수용하기 위해 시간을 투자하기도 하죠. 커리어나 직장과 관련된 항목이니, 반드시 체험은 해보고 나서 결정하는 것을 권합니다.
이 경우도 사실 답이 나와 있습니다. 어느 정도 실력이 쌓인 개발자는 새로운 프로그래밍 언어나 새로운 프레임워크를 접하더라도 설명서만 읽으면 당장 활용할 수 있어야 합니다.
최근에 유행하는 언어나 프레임워크가 있다면 내가 적응할 수 있는지 없는지를 판단하기 위해서라도 일단 한번 사용해 보는 것이 좋습니다. 이후 개인적으로 공부하며 숙련도를 쌓아도 좋고, 원래 사용하던 언어를 더 깊게 파도 좋습니다.
당장 회사에서의 업무 진행을 떠나서, 여러분이 사용하는 도구를 다른 어떤 회사에서도 사용하지 않는다면 여러분이 이직할 때 몹시 불리한 상황이 생길 수도 있습니다. 개발자는 이직을 거듭하며 몸값을 높이는 경우가 많으므로, 자기의 커리어를 위해 침몰하는 배를 탈출해야 할 때도 분명히 있을 것입니다.
프로젝트가 곧 나의 이력서
그러므로 저자는 아예 코딩 공부를 시작하는 시점부터 모든 코드를 깃허브에 차곡차곡 저장해 두는 것을 강력하게 추천합니다. 과거의 여러분이 치열하게 노력해온 흔적은 거짓말을 하지 않기 때문입니다.
저자는 최근에 홈페이지를 따로 만들어 포트폴리오를 관리하고 있습니다. 하나의 홈페이지에 저자의 코드와 논문, 특허 등 커리어라 할 만한 기록을 한꺼번에 묶어 관리하는 것입니다. 은연중에 나 웹 개발도 잘해요!라는 점을 어필할 수 있다는 점도 매력적이고요.
만약 외부에 공개할 수 없는 프로젝트가 있다면 별도의 문서로 프로젝트의 상세한 정보를 제공하는 것이 좋습니다.
만약 저자가 검토한 이력서에 위와 같은 형태로 프로젝트 요약이 기재되어 있었다면, 매우 긍정적으로 평가했을 것입니다. 위와 같이 한글로 정성스럽게 풀어서 작성한 프로젝트 소개문은 코딩 실무를 하지 않는 기획자나 임원진이 지원자의 업무 역량을 평가하는 데 도움이 되는 장치이므로, 이미 깃허브에 포트폴리오를 정리하고 있더라도 추가로 작성하는 것을 고려해 보기 바랍니다.
이처럼 지금까지 수행했던 프로젝트나 만들어 본 프로그램들을 차곡차곡 정리해 두는 습관을 만드는 것을 추천합니다. 아직 취직 전이라 경력이 없다면, 코딩을 공부하며 만들었던 프로젝트들을 깔끔하게 정리하여 제출하면 됩니다.
떠오르는 기술을 선택하는 안목
혼자 공부하고 혼자 코딩하는 개발자는 아무래도 트렌드에 뒤처질 수밖에 없습니다. 저자도 회사가 지방에 있다 보니 가까운 사람들로부터는 기술 트렌드에 대한 이야기를 전혀 접할 수 없습니다. 따라서 저자는 트렌드에 뒤처지지 않기 위해 발버둥치는 데에 익숙합니다. 어쩌면 이 장에서는 정말 실용적인 이야기를 전해드릴 수 있을 것 같네요.
먼저 프레임워크의 패러다임이 바뀌는 이유를 이해해야 합니다.
대부분은 아래 세 가지 이유 때문에 기존에 사용되던 도구들이 밀려나고 새로운 도구가 자리를 차지합니다.
1. 기존 도구보다 기능이 뛰어난 새로운 도구의 등장
2. 기존 도구보다 사용하기 쉽고 편리하고 빠른 새로운 도구의 등장
3. 대기업에서 새로운 도구 출시
그런데 기업은 이윤을 추구하는 집단이잖습니까? 그런데도 왜 오픈 소스로 무료 공개하는 것일까요? 그걸 만드는 데도 수십억이 들었을 텐데요.
그 이유는 개발 생태계를 장악하기 위해서입니다. 유명한 프레임워크는 하나의 거대한 생태계를 구축합니다. 구글에서 발표한 텐서플로TensorFlow라는 오픈 소스 프레임워크를 예로 들어 보겠습니다.
텐서플로는 딥러닝으로 인공지능을 제작하는 데 사용되는 도구이며, 사용 방법이 매우 쉽습니다. 인공지능을 개발하는 개발자들은 텐서플로를 사용하지 않을 이유가 없습니다. 아마 전 세계의 인공지능 개발자 중에서 텐서플로를 사용할 줄 모르는 사람은 거의 없을 것입니다. 그렇게 전 세계의 인공지능 개발자들 사이에 텐서플로라는 생태계가 자리 잡았습니다. 이제 구글은 마음 놓고 인공지능 개발자를 채용할 수 있게 되었습니다. 어차피 누구를 뽑든 구글 내부에서 사용하는 텐서플로를 사용할 줄 알 테니까요. 새로 뽑은 개발자에게 텐서플로를 가르칠 필요도 없습니다. 아무나 뽑아도 경력자처럼 일할 수 있으니 시간적 효율이 무척 높아집니다.
이것이 대기업이 돈을 써 가며 오픈 소스 프레임워크를 개발하는 주된 이유입니다. 오픈 소스 프레임워크를 공개해 외부로부터 유입되는 인력의 훈련 기간을 생략할 수 있으며, 때로는 기존 인력보다도 능숙한 신입이 들어올 수도 있습니다.
어차피 구글 같은 회사에서 내놓는 프레임워크는 기존에 유행하던 프레임워크보다 편리하고 성능이 뛰어날 가능성이 큽니다. 그런데 새로운 생태계가 형성될 것이고, 취업문까지 활짝 열립니다. 대기업이 내놓은 프레임워크를 사용하지 않을 이유가 없지요. 여기서 우리는 또 잘 만들어진 오픈 소스 프레임워크는 생태계를 만든다라는 정보를 얻게 됐네요.
이런 트렌드를 놓치지 않으려고 저자는 개발자들이 주로 찾는 커뮤니티에 가입하여 트렌드를 염탐하고 있습니다. 가끔 질문을 올리기도 하고 저자가 가진 정보를 공유하기도 하면서요. 때로는 휴가를 쓰고 개발자 콘퍼런스에 참석하기도 합니다. 가장 최근의 업계 동향을 그대로 파악할 수 있기 때문입니다.
귀를 열고 있으면 시대의 흐름은 비교적 쉽게 확인할 수 있습니다. 그러니 다른 개발자들과 소통하기 위해 노력하는 것이 가장 중요합니다.
동료들이 의지할 수 있는
든든한 거목으로
내 업무에 매몰되어 있다가 다른 문제 해결을 위해 고민하는 시간을 갖는 것은 여러분의 성장에 무척 도움이 됩니다. 실력향상 측면에서의 성장뿐만 아니라, 사내에서의 평판까지 말이지요. 왜냐하면 후배의 질문에 답변하기 위해 고민하고, 검색하고, 후배와 함께 논의하는 과정을 후배를 비롯한 동료들이 함께 목격할 테니 말입니다.
혹시 너무 바빠 당장 도움을 주기 힘들다면 지금은 너무 바빠서 힘든데, 혹시 많이 급하지 않으면 오후에 도와드려도 될까요?라고 대답하는 것도 좋습니다. 후배 입장에서는 답이 안 나오는 문제를 붙잡고 하염없이 시간을 보내는 것보다, 시간이 조금 걸리더라도 믿을만한 사람의 도움을 받을 수 있는 상황이 훨씬 희망적이니까요.
또한 여러분도 선배나 동기, 혹은 후배에게 자유롭게 질문하면 좋겠습니다. 후배가 여러분에게 질문하면 아, 이 친구가 나를 믿고 의지하는구나!라는 기분을 느낄 수 있잖아요? 다른 동료도 마찬가지입니다.
개발자는 팀플레이로만 움직일 수 있는 직종이라는 사실을 다시 한번 기억해 두기를 바랍니다. 동료가 의지할 수 있는 사람이 되어 준다면 그 자체로 여러분에게 더 큰 보상이 뒤따를 것입니다.
자, 그리고 조금 여유가 있다면 동료의 범위를 더욱 넓게 생각해 보는 것도 좋겠습니다. 여러분도 개발자 커뮤니티에서 많은 도움을 받고 정보를 얻었을 것입니다. 그러니 이제는 나도 개발자 사회에 기여한다는 마음으로, 블로그에 개발 관련 노하우나 정보를 차곡차곡 정리해 보는 것을 추천합니다. 영상편집에 자신 있다면 유튜브도 좋은 매체가 될 것입니다.
누군가 여러분의 자료를 보며 꿈을 키우고 성장하며, 여러분을 동경하게 될지도 모르니까요. 언젠가 그 사람도 업계로 진출해 얼굴을 맞댈 날이 오겠지요? 좁아터진 대한민국 IT 업계 안에서 든든한 지지자를 확보할 수 있다면, 거기에서 오는 성장의 기회란 함부로 측정조차 힘들 것이라 생각합니다.
주니어 개발자가 꿈꾸는 나의 커리어
만약 제가 생각하는 그 능력들을 이제부터라도 찾아내어 입증해 보일 수 있다면 개발자로서의 커리어를 이어 나갈 수 있을 것이고, 만약 그렇지 않다면 저는 다른 포지션에서 다른 일을 시작해야 하겠지요. 굉장히 차가운 말이지만 개발자의 일은 언제나 증명의 연속입니다.
내용이 조금 길었습니다만, 결론적으로 제가 앞으로 갖게 될 커리어는 개발자로서의 능력을 입증하기 위한 노력을 기울이는 과정이 될 것 같습니다.
CTO 개발자가 바라는 성장하는 나의 모습
덕분에 실력은 정말 빨리 늘었습니다. 최근에는 리액트라는 프레임워크를 다루는 실력이 꽤나 능숙해졌습니다. 앞으로는 기술의 설계뿐 아니라, 일반인들이 기술을 체험하고 활용할 수 있도록 가공하는 방향도 고민하는 개발자가 되려 합니다.
이 노력의 하나로 암호화폐 자동 거래 시스템이나, 학술논문 정보 자동 분석 시스템과 같은 기능을 가진 애플리케이션을 만들어 보고 있습니다. 혼자 사용하는 소프트웨어는 멋이 없잖아요. 모두가 사용하는 애플리케이션이 정말 멋진 작품이고요.
마지막으로, 제가 가진 지식을 남들과 조금이라도 많이 나누려 노력하고 있습니다. 사람은 끼리끼리 모이기 마련입니다. 제가 아는 지식을 기꺼이 나누다 보면 저와 같이 지적 교류의 즐거움을 아는 사람들이 주변에 모이더군요. 덕분에 여러 분야의 전문가들로부터 생생한 경험담을 전해 들으며, 간접적인 성장을 적극적으로 체험하고 있습니다.
성장을 위한 제 노력은 다양한 분야의 체험이라는 짧은 문구로 요약할 수 있을 것 같네요.
-알라딘 eBook <비전공이지만 개발자로 먹고삽니다> (반병현.이효석 지음) 중에서