생각보다 많은 분들이 보셨네요..(부끄..)
이왕 이렇게 된 거 조금 더 내용을 추가하고자 합니다.
궁금해 하실 것 같은 것에 대한 답을 해볼게요. 절대 정답이 아닙니다. 만약 전혀 길을 못찾고 계시거나, 이도저도 아닌 상황이거나, 국비교육 중 너무 못따라 가거나 하신 분들이 한 번 쯤 참고만 하시면 될 것 같아요.
Q. 어떻게 공부하셨나요?
A.
1. document를 봐라.
저는 새로운 것을 시작할 때 항상 document를 찾아봅니다. document는 생각보다 친절하고, 생각보다 방대하며, 생각보다 구체적이고, 생각보다 많은 것을 염두해 두었습니다. 저도 처음엔 document를 보는 것이 너무 어려웠습니다. 일단 '영어'라는 언어의 장벽때문에 introduce를 읽는 것 조차 거부감이 강했죠. 그래도 억지로 읽었습니다. 번역기로 돌려보고 엉망으로 번역되면 원문으로 단어 하나하나 찾으며 해석해 가면서요.
그렇게 정독을 한 번 합니다. 그리고 실제 코드를 작성합니다. 그러다 막히면 문득 document에서 비슷한 걸 봤다는 기억이 나고, 다시 document를 들어가보면 역시나 그 내용이 존재합니다.
2. 반드시 내 것으로 만들어라.
배울때도 그랬고, 지금도 그렇고, 앞으로도 그러하겠지만 google은 모든 것을 알려줍니다. 내가 궁금해하던, 내가 구현하고자 하는, 내가 마주하고 있는 에러들은 이미 수십년동안 축적된 방대한 인터넷의 데이터에 99.9999% 들어있다고 봅니다. 그래서 구글링의 결과를 복붙하여 '돌아가랏!!' 하며 기도하죠.
근데 그렇게 구글링해서 가져온 코드를 '사용'하고 끝내선 안됩니다. 왜 그렇게 구현이 되었고, 왜 이런 방법이 사용되었고, 개선점은 없는지, 앞으로 같은 상황이 발생되었을 때 정확히 똑같이 작성하진 못하더라도 그 구조를 기억하고 다시 검색할 수 있는 정도의 소화는 하고 넘어가야 합니다.
3. 주변 리소스를 잘 활용해라.
국비학원 수업 들으시면서 질문 몇 번 하셨나요? 수업 중 모르는게 있을 때 수업을 방해하는 죄책감을 느끼며 강사님께 질문을 드려본 적 있으신가요?
학습 중 가장 좋은 리소스인 강사님을 활용하지 못하는 분들을 너무 많이 봤습니다. 일부 아닌 강사님도 있을 수 있지만 대부분 강사님들은 나름 인증 받고, 학원에서 필터도 하고, 돈도 많이 받기에 책임감도 있고, 후배양성에 진심인 분들일 것이라 생각합니다. 그 분들을 잘 활용해 보세요. 국비학원 수업 중 활용할 수 있는 최고의 리소스입니다.
4. 그 이상을 만들어 내라.
국비학원에서 배우는 과목은 대부분 비슷합니다.
JAVA, spring f/w, oracleDB, servlet, jsp, html, css, javascript, jquery .. 이정도 선을 벗어나지 않을 거에요.
그리고 프로젝트 또한 비슷하겠죠. 영화관 예매 사이트, 수강신청 사이트, 쇼핑몰 사이트 등등.. 사실 이 범위를 벗어나긴 힘들어요. 아주 특출난 경우가 아니라면 말이죠. 그러나 쇼핑몰 사이트를 만든다 하더라도 넣을 수 있는 기능은 무궁무진 합니다. 단순히 상품 리스트 보여주고 구매하고, 판매하는걸로 끝내지 말고 최대한 많은 기능을 넣어보세요.
채팅, 정산 시스템, 배송 시스템, 경매 시스템, 푸쉬알림, 광고 등등 수업때 배운 CRUD 그 이상의 기능을 넣어보려고 애써 보고 구현까지 해보세요. 당연히 어렵고 시간도 오래걸립니다.
그런데 면접때 물어볼거에요. '학원 다니셨던데, 이런 것도 해보셨어요? 어떻게 하신거에요?'
5. 새로운 것을 두려워 하지 마라.
개발은 매번 새로워요. 어제 내가 짰던 코드가 오늘 새롭고, 어제 잘 썼던 라이브러리가 오늘 버전 충돌이 나고, 어제 최고였던 프레임워크가 갑자기 3위로 밀려나고, 어제 오류났던 빌드가 오늘 에러가 안나고....
두려워 하지 마세요. 영원히 지속되는 건 없더라구요.
참고로 저는 java/spring으로 국비 수료했지만 첫 직장의 백엔드 스펙은 python/django였어요. 두려웠냐구요? 네, 걱정 많이 했습니다. '잘 할 수 있을까.. 안해봤는데..' 매일 남아서 공부하고, 짜여져 있는 코드 분석하면서 document랑 비교하고, 새로 프로젝트 파서 클론해보고 하다보니 금방 따라 가요.
여기서 중요한건 '매일 남아서' 겠죠.. 그래서 즐겨야 한다는..
6. 모나지 않은 성격을 유지해라.
개발은 모든 것이 협업이에요. 기획팀, 디자인팀, 마케팅팀, 퍼블리싱, 프론트엔드, 백엔드, QA 등등.. 수많은 팀과 사람과의 유기적인 관계속에서 결과물이 나와요. 모난 성격은 협업이 힘들어지고, 개발은 더더욱 힘들어져요. 학원 다니면서 프로젝트를 위해 팀을 만들텐데 조금 부족한 친구도 있을거고 잘난 친구도 있겠지만 모두를 아우를 수 있는 그런 성격을 유지하도록 노력해 보세요. 결국 다 도움이 될거에요.
----------------------------------------------------------------------------------------------------
안녕하세요.
개발을 사랑하고, 즐기며, 아끼는 2년 2개월 된 주니어 백엔드 개발자입니다.
요즘 오키에 저~~엉말 많은 개발을 시작하려는, 시작한 분들의 질문, 한탄, 고민글 들이 올라오고 있는걸 보며 조금이나마 도움이 되었으면 하면서 글을 작성해 봅니다. 현실적인 얘기와 그럼에도 희망적인 얘기를 섞어서 해볼게요.
왜 '개발자'를 하려고 하시나요?
- 요즘 개발자가 핫하더라, 개발자 연봉이 하늘 높은 줄 모르더라, 개발자가 없어서 채용이 힘들더라, 업무 환경이 끝내주더라 같은 얘기들을 듣고 시작 하시려는 건가요? 그렇다면 저는 극구 반대하고 싶습니다.
- 개발 어렵습니다. 피곤하고, 매일 공부해야하고, 기획팀, 디자인팀, 일정과 싸워(?)야 하고, 대기업이 아닌한 업무 범위도 굉장히 넓고, 그렇습니다. 생각하시는 것 만큼 낭만적인 직업이 아닙니다.
- 그럼에도 해야겠다 하시는 분들에게 제가 드릴 수 있는 말은 '개발을 즐겨라' 입니다.
개발을 즐겨라?
- 저는 국비학원 수료생입니다. 반전공자 였고, 독학은 도저히 집중이 안되서 국비학원을 들어갔죠. 정말 열심히 했습니다. 일주일 중 하루를 제외하고 공부만 했습니다. 학원에서 가르쳐주는 그 이상의 것을 내것으로 만들기 위해 매일 새벽 1~2시까지 공부하고, 수강생들과 술 한 잔 하고 들어온 날도 공부하고 잤습니다. 수업 중 모르는게 있다면 이해될 때 까지 질문하고 반복했습니다. java/spring 세팅하는게 어려워 숙달하기 위해 컴퓨터 포맷만 4~5번씩 했습니다. DB의 join 개념이 어려워 인터넷에 떠돌아다니는 query문제 정말 많이 풀어봤고 자기 전까지 테이블의 구조를 이해하기위해 머리속으로 시뮬레이션 그리며 5.5개월을 보냈습니다.
- 그 원동력은 개발이 즐거웠기 때문입니다. 컴퓨터와 의사소통하며 product를 만들어 가는 과정이 너무 즐겁지 않나요?
- 개발을 즐기지 못하는 대표적인 예가 '에러'를 대하는 자세라고 봅니다. 학원 다닐 때 '에러'가 뜨는게 싫어 IDE의 터미널 창을 가장 작게 만들어 놓고 '왜 안될까..' 하는 친구가 몇 있었죠. 그 친구들은 결국 개발자로 취업하지 못했습니다.
- 제가 취업하고 CTO나 개발팀장과의 면담때마다 질문하는게 있습니다. '개발 아직도 재미있으신가요?' 라는 질문입니다. 그럼 그분들은 모두 한결같이 '네, 아직 재밌네요' 라고 대답합니다. manage안하고 개발 실무만 하고 싶다고..
- 피할 수 없다면 즐겨라. 제가 군복무 중 지갑에 써놓고 하루에 몇 번이고 열어봤던 글귀입니다. 매일 보며 억지로라도 즐기려 하니 나중엔 정말 즐기고 있더군요..
- 개발이 재미 없으면 오래 할 만한 직업군이 아닌 것 같습니다.
국비학원?
- 까놓고 묻고 싶습니다. 정말 열심히 하고 계신가요?
- '열심히'라는 것의 기준은 모두 다르지만 '누가봐도' 열심히 하고 계신가요? 사실 국비학원 관련된 질문글들을 보면 그렇게 열심히 하고 계신지 잘 모르겠습니다. 저는 자신있게 얘기합니다. '나 열심히 했어요'. 미친놈 소리 들으며 공부했습니다. 강사님이 적당히 하라고, 너 그러다 취업 전에 번아웃 온다고, 왜이렇게 강박적이냐고 할 정도로 열심히 했습니다. 그렇게 하고 계신가요?
- 기껏 길어야 6개월 입니다. 6개월은 내 시간은 내것이 아니다 라고 여기고 미친듯이 해보세요. 뭔가 안되면 밤을 새가며, 다음날 에너지드링크 3개를 마시는 한이 있더라도 내것으로 만들고 넘어가며, 주말도 버리세요. 그렇게 해도 전공자 공부량의 반의 반도 못따라갑니다.
- 그렇다고 자만하면 안됩니다. 제가 여기서 말로는 이렇게 하지만, 어디가서 '저 잘해요'라고 절대 말 안합니다. 아직 너무 많이 부족하단걸 잘 아니까요. 그래서 아직도 매일매일 열심히 공부합니다.
그럼에도
열심히 하다보면 빛이 보입니다.
첫 취업 2800으로 시작한 연봉은 현재 5000입니다.
연봉이 모든 것을 말하진 않지만, 사실 연봉이 제일 중요하니까요..
엄청 높은 연봉은 아니지만 저는 굉장히 만족합니다. 첫 삽을 뜨는 순간부터 모든 순간이 기회이고 선택입니다. '개발'을 잘 하는 것도 중요하지만 그 외에 타 팀과의 커뮤니케이션, 수주사의 갑질을 견디는것, 동료와의 관계, 사회성 등등 모든 것이 앞날을 좌우할 갈림길 들이라고 생각합니다. 열심히 하면 그 기회와 선택의 여지를 더 많이 가져갈 수 있다고 봅니다.
너무 대책없이 '열심히' 하라는 말 밖에 못쓴 것 같네요..
그런데 어린 나이도 아니고 열심히 한다는게 어떤건지 모를 거라 생각하지는 않습니다. 우리는 열심히 하는것에 익숙해져 있잖아요?
그냥 막연하게 개발을 시작하시려는 분들에게 얘기하고 싶었습니다.
확고한 목표가 없이, 개발에 즐거움을 찾지 못한채, 현실 도피책으로, 주변에서 들은 얘기로, 광고를 보고 시작하시지 않았으면 좋겠습니다.
유투브에 굉장히 좋은 강의들이 많습니다. 뭐라도 하나 찾아서 한 사이클을 돌아보세요. 최소한 몇 달은 취미로 시작해보고 결정하셔도 늦지 않습니다. 급할수록 돌아가라고 급하게 시작할 분야가 아닙니다.
이미 시작하셨다면 목숨걸고 해보세요. 미래를 걸고, 시간을 투자하세요. 투자없는 아웃풋은 존재하지 않습니다. 주변 리소스를 잘 활용해보세요. 쫄지 말고 스터디 같은거 들어가서 모르는거 물어보고 해보세요. 개발자는 은근히 자기자랑하며 남들 알려주는거 좋아합니다(주관적입니다..). 주변에 개발자가 있다면 맛있는거 잔뜩 사주면서 얻어낼게 있다면 얻어내세요.
막막한 시작 공감합니다. 저 역시 그랬으니까요.
잘 되었으면 좋겠습니다. 좋은 곳에 취업해서 개발 문화를 발전시키는데 다 같이 이바지 했으면 좋겠고 더이상 타자를 칠 수 없을 때까지 즐겁게 여러분과 개발을 하고 싶습니다.
혹시나 이 글에 비판과 조언을 해주신다면 달게 받겠습니다 :)
코로나 시국에 모두 아프지 않기를 바래봅니다!