개발자가 되는 데는 돈이 필요없다?
그렇습니다. 열정만 있다면 돈은 전혀 필요가 없습니다. 개발자들은 가지고있는 지식들을 전부 인터넷에 풀어놓기 때문입니다. 그것도 스스로, 아주 적극적으로요. 정보 공유가 가지는 힘을 다들 알고 있기 때문입니다. 그렇기 때문에 좋은 정보들을 잘 찾아내는 능력만 기른다면, 누구든 좋은 개발자가 될 수 있습니다.
하지만 어디서부터 시작해야할까요? 웹서비스 만드는 방법을 찾았다고 바로 개발자가 될 수 있을까요? 그렇지는 않습니다. 사실 좋은 개발자가 되는 데에는 몇 가지 조건들이 있습니다.
- 첫 째, 탄탄한 컴퓨터 공학 지식. 즉, 기본기.
- 둘 째, 뛰어난 학습 능력 – 끝없이 공부하는 열정과 호기심, 원하는 정보를 찾는 정보 탐색 능력.
- 셋 째, 영어. 😅
이 세 가지 조건만 갖춘다면, 누구나 좋은 개발자가 될 수 있습니다. 게다가 이 조건들 앞에는 현실적인 장벽같은 것도 없습니다. 돈이 필요하지도 않고, 나이가 어려야 하는 것도 아닙니다. 말그대로 건강한 몸과 정신, 노력과 열정만 있으면 됩니다. 각 조건에 대해서는 아래에서 자세히 설명하겠습니다.
돈을 버는 건요?
잠깐, 한 가지 짚고 넘어갈만한 문제가 있습니다. 혼자 공부해서 좋은 개발자가 되고 나면, 일자리를 얻을 수 있는 건가요? 서울대학교 컴퓨터공학과 같은 멋진 학력도 없는데요? 네. 저를 포함한 여러 개발자, 개발 회사들은 열심히 “좋은 개발자”를 찾고 있습니다. 그리고 좋은 개발자를 찾을 때 학력은 신경도 안 씁니다. (실제로 이력서를 볼 때 학력은 잘 쳐다보지도 않습니다.) 좋은 개발자를 찾는 방법은 비교적 직관적이기 때문입니다.
예를들어 여러분이 도자기 공방의 면접관이고, 새로운 도공을 뽑는다고 생각해보세요. 어느 대학에서 도자기 빚는 법을 배웠는지가 중요한가요? 그보다는 도자기를 빚는 방법들을 얼마나 잘 알고있는지 질문해보겠죠. 예전에 만들었던 도자기들도 보여달라고 하구요. 필요하다면 그 자리에서 작은 찻잔을 만들어보라고 할 수도 있겠네요. 좋은 개발자를 뽑는 방법과 아주 비슷합니다.
실제로 개발자는 소프트웨어를 빚어내는 사람이라는 것에서 도공과 비슷합니다. 끝없이 완벽에 다가가기 위해 노력해야하고, 장인정신을 가져야합니다. “소프트웨어 장인 선언”이라는게 존재할 만큼요. 😄 나는 이런 소프트웨어를 만들어봤어요. 이런 것들을 공부했어요. 같은 느낌으로 github에 포트폴리오를 만들어보세요. 그리고 이력서에 링크를 첨부하세요. 내가 개발이라는 것에 얼마나 진지하게 임하고있는지 어필해보세요. 멋진 학력이 없어도 장인정신을 보여줄 수 있다면, 인정받을 수 있습니다.
탄탄한 기본기를 갖추는 방법?
앞에서 말했듯이, 개발에 관련된 웬만한 정보는 인터넷에서 다 찾을 수 있습니다. 대학에서 배우는 전공지식도 큰 차이는 없습니다. MOOC(Massive Open Online Courses)이라는 걸 들어보셨나요? MIT, 칼텍, 하버드, 스탠포드의 수업을 인터넷에서 무료로(!) 들을 수 있다면 믿으시겠어요? 바로 확인해보시죠.
- MIT Open courseware 가장 많이 방문한 강의들
- edx.org 컴퓨터공학 강의들
- coursera.org 컴퓨터공학 강의들
- KOCW 국내 대학 소프트웨어교육 강의들
- codeacademy.com 코드아카데미
- 생활코딩
위에서 개발자가 되는 데는 돈이 필요없다고 말해서 머쓱하지만, 원한다면 유료 강의들도 있습니다.
- Udacity.com
- educative.io – 독특하게도, 동영상이 아닌 텍스트 기반 학습 플랫폼입니다.
MIT OCW, coursera, edx 같은 경우 저도 많이 사용하고 있는 사이트입니다. 이외에도 구글에서 MOOC, OCW 등으로 검색하면 여러가지 정보를 찾을 수 있습니다. 나무위키에도 잘 정리된 페이지가 있더라구요!
인터넷 무료 강의라고 해서 만만하게 보일 수도 있습니다. 하지만 대부분의 강의는 놀라울 정도로 퀄리티가 높습니다. 특히 MIT OCW는 실제로 MIT 강의실의 수업을 녹화한 것들입니다. 또 edx나 coursera같은 외국 플랫폼의 시각화 자료들도 기가 막히구요. 국내 사이트는 직접 이용해본적이 없어서 잘 알지는 못하지만, 기본기를 쌓는데 전혀 부족함이 없을거라고 확신합니다.
뛰어난 학습 능력? 답은 읽기에 있다.
어디서 뭘 공부해야할지는 대충 알겠습니다. 그런데 어떻게 공부해야하나요? 배고픈 골든 리트리버처럼 공부하세요. 눈에 보이는 지식들을 닥치는대로 집어삼켜버리라는 이야기입니다.🤣 그렇다고 대충 씹어 삼키지는 마시고, 꼭꼭 씹어드세요. 컴퓨터가 어떻게 동작하는지 이해하세요. 220V 전기가 흘러들어가서 어떻게 모니터에 예쁜 화면을 띄우나요? 윈도우는 뭐고, 리눅스는 뭐고… 맥북에서는 게임이 안돌아가던데, 왜 그런가요? C언어와 자바, 파이썬은 뭐가 다른가요? 이런 질문들이 생길 때마다, 구글 검색창에 영어로 검색해보세요. 필요하다면 도서관이나 서점에 달려가서 책을 찾아봐도 좋아요. 그 책을 읽다가 또 궁금한게 생기면? 주저하지 말고 다음 목표를 향해 달려가세요. 중요 키워드를 뽑아 검색하는 방법을 익히세요.
그럼 남들보다 뛰어난 학습 능력을 가지는 건 어떻게 해야할까요? 주어진 시간 안에 좋은 정보를 빠르게 찾고, 빠르게 읽고 이해하면 됩니다. 어릴 때부터 어른들이 책을 많이 읽으라고 이야기했었죠. 수학능력시험에서도 외국어같은 언어 지문, 외계어같은 외국어 지문을 읽고 문제를 풀게 했었죠. 읽기 능력이 바로 학습 능력에 이어지기 때문입니다. 학습에 관해서 이야기하려면 메타인지같은 것도 전부 설명하고 싶지만, 넘어갈게요. (궁금하면 구글에 검색해보라는 이야기😉)
재밌는 것은 글을 닥치는대로 많이 읽는다고 해서 자연스럽게 읽는 속도가 빨라지지는 않는다는 점입니다. 항상 의도적으로 훈련을 해야합니다. 대표적인 팁을 이야기하자면, 글을 읽을 때 마음속으로 소리내어 되뇌이지 마세요. 우리의 눈과 뇌는 아주 성능이 좋은 시스템이라서, 마음속으로 소리내어 읽지 않아도 충분히 글을 이해할 수 있습니다. 눈으로 사진을 찍듯이 읽는 방법을 의도적으로 훈련해보세요. 처음에는 한 단어씩, 다음엔 한 문장씩, 두 줄, 세 줄, 늘려가면서 훈련해보세요. 우리 눈과 뇌의 능력에 감탄하게 될 겁니다. 제 경우 쉬운 내용의 책은 1시간에 200~300페이지 정도 읽을 수 있는 것 같네요. 그리고 아직도 훈련하고 있습니다. 육상 선수처럼요.
영어는 선택이 아니라 필수다.
슬픈 소식이지만 영어는 선택이 아니라 필수인 것 같습니다. 다행인 것은 원어민 수준의 유창한 영어가 필요한 건 아니라는 점. 기술적인 내용들을 읽어 이해하고, 궁금한 점을 영어로 표현하는데 어려움이 없는 정도면 충분합니다. 인터넷 세계에서 개발자들은 서로 영어를 사용해 소통하고 있기 때문입니다. 구글에서 한글로 검색했을 때는 글이 3개 뜨다가, 영어로 검색하면 수 백 수 천개가 뜨는 경우가 비일비재합니다. stackoverflow.com 같은 곳에 영어로 질문을 올리면, 전세계의 뛰어난 개발자들을 상대로 답변을 얻을 수도 있습니다.
조건을 모두 갖췄어요. 그 다음은요?
그렇다면 저와 큰 차이가 없겠네요! 만들고 싶은 걸 만들고, 잘 만드는 방법을 찾아 배우고, 지금까지 해온 것을 계속하면 됩니다. 여태 배워온 것을 통해서 일자리도 얻구요. 해커뉴스같은 곳에서 개발 관련 핫한 소식들도 읽어보구요. github에서 남들이 쓴 코드를 보며 깨달음도 얻구요. 다른 개발자분들의 블로그도 찾아보구요. William Lin같은 유튜버가 알고리즘 문제를 박살내는 걸 보면서 좌절감도 맛보구요. 새로운 프로그래밍 언어도 배워보고, 블로그를 만들어 글도 써보고…
개발자라는 직업은 성장형 인재들에게는 천직이 아닐까 생각합니다. 누군가에게는 끝없이 배우고 공부하는게 스트레스일 수도 있지만, 그걸 즐기는 사람들에게 이만한 직업이 있을까요? 궁금한건 구글에서 다 찾아주고, 공부하는 내용들은 바로바로 도움이 되고… 업계 전망도 밝구요.😎 새로운 것을 배우는 데 거리낌이 없고 거기서 즐거움을 찾을 수 있는 사람이라면, 당장 뛰어들어도 나쁠 게 없다고 생각합니다.
반면 긍정적인 면만 있냐고 하면 거짓말이겠죠. 이 부분은 다른 개발자분의 블로그에 좋은 글이 있어 링크로 공유하고자 합니다. botho님의 현실적인 조언: 개발자들이 개발쪽으로 가려고 하는 비전공자들한테 가지 말라고 하는 이유
긴 글 읽어주셔서 감사합니다. 개발자로서의 자기계발에 관련된 제 다른 글도 한 번 읽어보세요!
비전공자로써 취업 준비중인데 좋은 글 잘 보았습니다:)
감사합니다:)
댓글 감사합니다!😄
좋은 글 감사합니다!
댓글 감사합니다!ㅎㅎ