스터디의 필요성을 적다가 처음으로 나의 일기를 써보았다. 결론은
스터디를 하자.
개발자로서의 시작
나는 비전공 공대생으로서 프로그래밍을 제대로 배운 것은 대학교에서 c, c++, 데이터베이스 수업 뿐이었다. 컴공 교수한테 배우지 않고, 우리과 교수님에게 배웠으니 제대로 배웠을리 만무하다. 그래도 어떻게 c를 배우다가 컴퓨터에 언어가 있다는 것을 처음 깨닫고 신기하고 재밌어서 개발자의 세계로 들어왔다.
운이 좋게도 개발자로 첫 회사를 들어갔고, 6개월이나 신입연수를 받았다.
이 때 과연 프로그래밍 수업이 있었는지도 기억이 안나는거 보니 맨 뒷자리에 앉아서 매일매일 동기들과 열심히 놀았던 것 같다.
어쩌면 정말로 수업이 없었을 수도 있다
첫 회사에서 Java 언어로 스마트폰 코어 그 어딘가를 개발했다. 10년 전이라 그런지 기억이 어렴풋 하지만 Java 환경변수 설정 하나는 참 잘했던 기억이 난다. 한 번도 배운적 없지만, 이리저리 검색을 잘 했다.
나의 프론트앤드 커리어는 두 번째 회사에서 시작했다. 아직 분야가 정해지지 않았기에 한 달정도 Java 연수를 받았고, 프론트앤드로 확정나며 두 달정도 사수님께 HTML, CSS, JavaScript 특훈을 받았다. 나의 영원한, 유일무이 멘토님이시다. 물론 그 때 이후로 질문을 주고 받는 것은 없지만, 학습 태도뿐 아니라 커리어 전반적으로 영향을 많이 받았다.
처음엔 뭣도 모르고 시작했는데 운이 좋아 개발자로 취직했고, 두 번째 회사에서 좋은 멘토님을 만나 개발의 진입장벽을 함께 낮추어주었기에 개발자로 성장할 수 있었다.
진입장벽이 높은 sw 개발
전문가가 되려면 어느 분야 막론하고 깊은 공부와 오랜 경험이 필요하다. 하지만 내가 가게를 차리고 싶었을 때는 어느 정도의 레퍼런스를 가지고 어렵지 않게 시작했고, 성공도 했다.
개발은 ‘어렵지 않게’가 되지 않는다. 취미의 개발은 가능하겠지만, 개발자로서의 커리어 시작이 참 어렵다는 말이다. 절대적인 공부량, 계단식 성장, 이해될 때 까지의 삽질, 방대한 레퍼런스. 어디서부터 얼만큼 해야할지 참 난감하다.
마치 선택받은 ‘컴공’ 전공자만 개발자로 살아가라는 듯이,
아니면 나처럼 운이 좋아 딱딱 맞춰 인생이 펼쳐져야 시작할 수 있을 것만 같아보인다.
(나도 물론 운나쁘게 흘러간 일들이나 힘든 시기도 많았지)
하지만, 개발자가 의사처럼 자격증이 있어야 하는 것도 아니고. 어쨋든, 진입장벽만 깨면 되는 것이 아닌가?
개발자가 되기 전인 경우
본격 위코드 홍보이다.
- 돈의 여유가 있고, 3개월만에 개발자가 되고 싶은 경우 위코드에 오면 된다.
- 위의 상황이 안 되거나 그럴 필요가 없는 경우 1-2년 정도 독학하면 된다.
어려울까? 내가 개발자가 될 수 있을까? 안 맞으면 어쩌지? 나도 할 수 있을까? 이런 고민은 그만하자. 무조건 개발자 될 수 있다.
특히 첫 번째의 경우 내가 멘토로 있기 때문에.. :)
마치 나의 멘토님처럼, 나도 wecoder 분들께 그런 평생멘토가 되고 싶다.
(질문받는 기계를 말하는 것이 아닙니다 하하)
나를 만난 것을 감사하다고 생각할 수 있는, 그런 멘토가 되고 싶다. 하지만 환경상 돈을 주고 받는 관계이므로 당연하다고 생각하는 사람들도 있을 것이다. 그런 점은 아쉽긴 하지만, 그렇게 따지면 나는 3개월 동안 오전 10시부터 오후 7시까지만 좋은 멘토의 모습을 보여주면 되었을 것이다.
진입장벽을 대폭 낮춰주고, 좋은 개발자가 될 수 있도록 방향을 잡아주고, 평생 자신있고 자존감 높은 개발자가 될 수 있도록 이끌어주고 싶다. 개발자로서의 생을 다할때까지 늘 곁에서 등대가 되었으면 한다. 그러기 위해 내가 인격적으로 올바르고, 정직하고, 늘 성장하는 모습을 보여주어야 겠지.
앞으로 점점 수강생이 많아지면서 한 명, 한 명 친분이 없어지는 날이 오게될 수도 있지만 언제나 앞에서 좋은 모습을 보여 롤모델이 될 수 있도록 노력할 것이다.
개발자가 되고 나서
개발자가 되고 나면 진입장벽이 없을까? 그렇지 않다. 끝이 없다. 내가 프론트앤드 꽉 채워 6년간 실무에서 아래의 공부를 해야만 했었다.
- jquery, mustache, backbone, angular, node, wordpress, ionic, cordova, angular3, react, typescript
기억나는 것만 적었지만, 기능개발까지 생각하면 canvas, three.js, d3.js, graphql 등등 수없이 많다. 내가 공부를 좋아하고 원래 잘해서 갑자기 업무가 주어졌는데 뚝딱?! 한 적은 ‘단 한 번도 없다’.
물론 데드라인 넘겨 개발을 망친적도 없다. 밤새 공부하고, 오픈소스코드 분석하고, 동영상 강의 달고 살고, 외주도 받아서 고생해보며 2-3년을 지나고 나니 갑자기 어떤 개발도 자신있는 그런 개발자가 되었다.
그런데 그 가운데 항상 스터디가 있었다. 독학은 의지도 부족하고, 정보도 부족하기에 억지로 공부환경을 만들기 위해 참 많이도 했다.
- backbone으로 실무에 익숙해질 무렵, angular 유데미 강의를 접했고 재밌게 공부했더니 그다음 플젝이 angular 기반이 되었다.
- 데이터 시각화에 빠져서 d3공부를 끄적이다가 데이터 시각화 회사로 이직이 되었다.
- 이전에 했던 angular 공부 기반으로 angular base인 ionic 업무가 주어져 쉽게 개발할 수 있었다.
- 이 무렵 MEAN(mongodb+express+angular+node)이라는 단어가 나오기 시작해서 node를 기웃거리며 공부를 했더니 node 유지보수 업무가 주어졌다.
- interactive, animation 등에 워낙 관심이 많아 interactive web 스터디를 하게 되었더니 canvas + threejs 업무를 맡아서 기술력이 증가했다.
- 앱개발은 하고 싶고, c#은 도저히 어색해서 react native 스터디를 해서 react를 익혔더니 react 기반의 회사로 이직했다.
- typescript 컨퍼런스 듣다가 삘받아서 공부 조금 해놨는데, typescript 기반의 기능개발을 급히 떠안게 되었다.
- 비전공 컴플렉스로 백앤드, 컴퓨터사이언스, 네트워크, db 등 잡지식을 꾸역꾸역 공부하고, 나름 시니어가 되고 있다는 압박감으로 js 코어를 열심히 파고 또 팠더니 갑자기 프론트앤드 개발 멘토가 되었다.
이 사이사이, 그리고 최근의 경험까지 합하면 할 말이 훨씬 많다. 공부는 참으로 놀랍게 쓸모 없는 것이 하나도 없다. 모든 것이 점이며, 훗날 점으로 연결된다는 것이 매번 소름으로 다가오는 적이 많다.
여기 까지 읽었다면, 공부하는 것에 대한 즐거움을 설레며 받아들이는 사람도 있을 것이고, 경악을 금치 못하는 사람도 있을 것이다. 나는 공부를 좋아하는 사람은 아니다. 지금은 워낙 습관이 되어 안 하면 어색한 지경에 이르렀지만, 매년 슬럼프도 있었고, 그래서 손을 놓은 기간도 있었다. 특히 3-4년차에 주변 개발자, 혹은 선배들과 비교하며 스트레스도 많이 받았다. 잘하는 개발자는 되고 싶고, 공부는 하기 싫고, 할 것은 많고..
이 때 도움 되었던 것이 스터디다. 스터디에서 공부했던 것이 늘 1-2년 뒤에 쓰이는 적이 많았다. 스터디를 한다고 해서 그 분야를 마스터하는 것은 아니다. 1-2년 뒤에 실무에 적용할 때, 진입장벽을 낮춰주고 빠르게 업무에 도입할 수 있었다.
이 번에 Node.js 디자인패턴 스터디를 시작한다. 제대로 책 한권 끝냈으면 한다. 기대가 되고 또 언젠간 도움이 될 것 같다.
어서 wecoder 분들이 무럭무럭 성장해서 다양한 프론트앤드 스터디를 했으면 좋겠다.