pocu2019. 4. 27. 16:31

꿈과 희망. 나는 얼마나 대단한 C++ 개발자가 될 수 있는가?

 

본 글에서는 '장점' 혹은 '희망'에 대해서만 나옵니다.

 

'단점' 혹은 '절망'에 대해 알고 싶으시면 [여기]를, 종합적인걸 보고 싶으시면 [여기]를 눌러주세요.

 

 

 

- 입문용이 아니다.

 

수 많은 학원이나 학교와 다르다. (진부한 멘트)

정말 다르다. 다른 이유는, '모두를 데리고 가야하는' 의무가 없기 때문이다.

정부보조금을 받거나, 공공 교육을 위하거나, 수강생 전체를 일정 수준 이상으로 올려야하는 '의무'가 있는 기존의 교육기관과는 다르게 '이정도 수준이 되지 않는다면 우리 수강생이라 할 수 없지' 라는 느낌이다.

 

그렇기에 수업이나 과제의 난이도가 기존에 있던 교육기관들과는 차이가 난다. 즉, 따라만 갈 수 있다면 다른 교육기관보다 더 큰 효과를 볼 수 있다.

 

 

 

 

- 실습, 과제

 

매주 수업 내용과 관련된 실습과, 3주에 한번씩 과제가 나온다.

단순히 수업만 '듣고' 이해했다라고 믿은 자신이 얼마나 거짓말 쟁이인지 실습을 통해 확인할 수 있다. (...)

또, 이정도면 숙련자라고 생각했다가 3주에 한번씩 있는 과제를 만나는 순간 겸손 해진다. (...)

 

배운 내용을 확인하는게 아니라, 어떤 상황에서 이 기능을 어떻게 쓸 수 있는지에 대한 실습과 과제들이다.

단순히 스택을 배워서 스택을 쓰는게 아니라 어떤 상황에서 사용해보고, 응용해볼 수 있다.

 

강의 기간 중 11번의 실습과 4번의 과제가 나온다

 

이런식으로 과제 상황과 단계 별 문제가 부여된다

 

실습은 중간고사, 기말고사 주간을 제외한 주간에 나오며 문제 공개부터 마감까지 일주일의 시간이 주어진다.

과제는 마감 3주 전에 문제가 공개된다.

그만큼 과제는 실습에 비해 분량과 난이도가 실습보다 높다. 또 내용 중 3주간의 강의를 다 들어야 풀 수 있는 문제도 있으니 실습과 과제 마감이 겹치는 주간에 몰리면 엄청 바빠진다.

 

 

- 자동 채점(빌드봇)

0점. 묘하게 비웃고 있는 빌드봇

 

실습과 과제는 슬랙을 통해 빌드봇에게 자동으로 채점을 받을 수 있다.

실제로는 git에 실습 소스코드를 올리고, 슬랙을 통해 봇에게 명령하면 봇이 git에서 코드를 긁어가 컴파일 후 테스트를 돌려준다.

컴파일 에러, 런타임 에러 및 코딩 스탠다드까지 체크해주며 중간중간 버그는 있었지만 크리티컬한 버그가 없었을 만큼 신뢰도가 높다.

(종종 채점 중 틀렸거나 애매한 부분을 정답으로 인정해줘서 나중에 수정되는 경우도 있으니 미리미리 채점 받으면 좋다는 꿀팁이 있다.)

 

빌드봇에게 실습을 채점 받는 중...

빌드봇의 테스트 통과 결과나, 코딩스타일 위반 부분의 링크를 클릭하면 어디가 틀렸는지. 어떤 테스트에서 실패했는지 알 수 있다. 이를 통해 디버깅 해야할 곳을 예상하고 수정할 수 있다.

 

코딩 스탠다드를 틀렸다!

 

셀프테스트에서 발견하지 못한 부분을 발견해주므로 상당히 좋은 친구라 할 수 있다. 수업이 진행되면 진행될수록 빌드봇에게 기도 하는 일도 많아진다. (....)

 

사람이 아닌 기계에게 정확히 채점 받을 수 있다. 혹시 채점자가 틀린게 아닐까? 하는 의구심이 들 수 있지만 빌드봇의 신뢰도는 꽤 높다. 또, 사람이 아니다보니 밤새 갈굴수도 있고 (재채점!) 내가 필요할때마다 불러낼 수 있다.

 

 

- 슬랙을 통한 토론 + 피드백

그럼에도 도무지 해결방법이나 어디가 문제인지 알 수 없다.

이땐 슬랙을 통해 다른 수강생들과 토론할 수 있다.

같은 문제를 겪고 있거나 이미 해결한 사람에게 경험담을 듣고 힌트를 얻을 수 있다.

물론, 코드를 공유하는 것은 금지되어 있다.

 

그래도 먼저 해결 한 사람이 힌트를 주는 것 만으로도 어디로 나가야할지 감을 잡을 수 있을 것이고, 그 정도면 충분히 훌륭하다.

 

고통받고 있는 수강생들... 밤10시, 11시 (...)

 

그럼에도 도무지 해결 방법이 보이지 않는다면 슬랙을 통해 '조교' 에게 도움을 받는 방법도 있다.

다만, 회신이 빠르지도 않을 뿐더러 정답을 알려줘야할 의무가 없다. 어디까지나 큰 틀의 '힌트'를 얻는 것 뿐이다.

'떠먹여주지 않는 수업'이라는 점을 다시 한번 생각해봐야 한다.

 

 

- 스케쥴 관리

슬랙을 통한 채점 자동화, 일주일 혹은 3주간 주어지는 실습 과제 기간, 전체 공개가 되어 있는 동영상 강의로 인하여 스케쥴 조절이 나름 자유롭다는건 분명한 장점이다.

포큐 싸이트에서는 주 3~4시간 정도의 수업시간 이라 이야기 하고 있지만, 자신 있게 거짓말이라고 생각한다. (....)

 

실습을 하며, 과제를 하며, 시험을 대비하며 동영상 강의를 수도없이 돌려봐야 한다.

그 시간을 다 합치면 주 8시간 이상은 동영상 강의를 봐야한다. 결코 짧지 않은 시간이며 수강하는 내내 이 시간을 확보할 수 있는지 내정하게 돌아봐야한다.

 

그럼에도 미리미리 공개되는 부분들이 많기 때문에 오프라인 강의에 비해 자유로운 스케쥴 조절이 가능하다.

 

 

- 시험

중간고사와 기말고사 총 2번의 시험이 있으며 시험 주간에는 실습과 과제가 없다.

 

시험의 난이도는 끔-_-찍한 수준인데, 공부를 얼마나 안했는지 냉철하게 돌아볼 수 있는 시간이다. (....)

더불어 온라인 시험 특성상 코드를 봐야하는 시험이 비교적 자유롭게 출제가 되고, 경우에 따라 수정하거나 보강하는 문제가 출제 된다.

결코 '빈칸 채우기' 수준이 아니다. -_-

 

수업중에 나온 내용을 이론적으로 이해하고 있어야 함은 물론이고 응용할 수 있어야한다.

그 뿐 아니라 머리속에서 디버깅할 수 있어야하고 틀렸다면 왜 틀렸는지를 알 수 있어야 한다. 물론 시험 환경에서 컴파일러는 없다. 내 머리속 컴파일러만 있을 뿐 (...)

 

정말로 정말로 시험을 통해 내가 얼마나 이해하고 있고, 도구의 도움 없이 스스로 어디까지 생각하고 있는지 체크해볼 수 있다.

더불어 '아니 이런 문제가?!' 하는 감탄이 나오는 문제들이 있는데, 실제 기술면접에도 활용될 수 있는 문제라고 한다. 비록 시험 중 캡쳐를 할 순 없지만 문제를 복기 하면서 나의 어디가 부족했는지 제대로 점검해볼 수 있다.

(시험 종료 후 문제 공개를 할 수 있는지에 대한 질문에 포프님은, 면접때도 이럴 수 있으니 복기하는 훈련을 하라 하셨...)

 

시험 중 머리속엔 지우개만...

 

 

- 남는 것

수업이 끝나고 무엇이 나에게 남을까?

무료 강의도 나의 시간이 투자되는 것인데 하물며 유료 강의, 그것도 저렴하지 않은 유료강의와 15주 이상의 시간을 쏟아넣고 남는게 없다면 어마어마한 손해일 것이다.

 

느낌적인 느낌만 있던 '언매니지드 언어'에 대한 개념이 확실히 섰다.

또, 포인터... 이놈의 포인터... 분명히 제대로 이해하고 있고 어느정도 활용할 수 있다고 생각하고 있었으나 현실은 그렇지 않았다.

 

이걸 '실무'에서 느꼈다면 정말 큰 일 날 것이다. 프로젝트가 엉터리가 되거나 나 스스로가 엉터리라는걸 들킬테니까. 분명히 학교에서 수업을 들었을때는 부족함 없었고 어느정도 학점도 받았고 시험도 잘 봤으나. 포큐 강의로 점검해보니 전혀 아니었다.

 

나의 평판이 달린 '실무'가 아니라 '학습'과정에서 이러한 점들을 발견하고 고칠 수 있다는건 정말 큰 기회라고 생각한다.

 

더불어 개인적으로 어떤 것을 배울때 '스토리텔링' 혹은 '역사적 흐름에 의한' 진행을 선호한다. 한국사, 세계사, 근현대사를 공부할때 이러한 시간 흐름에 따른 사건 배치가 상당히 재미있었는데, 포큐아카데미 COMP3200 C++ 과정 역시 구 시대 C++ 부터 시간 흐름에 따른 새로운 기능 추가에 대해 이야기하고 있다. '왜' 이렇게 되었는지 무엇을 '의도' 했었는지. 그리고 그 결과 평가도 함께 들을 수 있다.

이를 통해 C++의 역사도 함께 배울 수 있는데, 과거 이런저런 이유로 도입되었으나 실제론 이런저런 이유로 도태된 기능. 훌륭해보이지만 실제로 쓰면 쉽게 망할 수 있는 기능들(흑마법)이 '왜' 그렇게 되었는지 알 수 있다.

 

또 단순히 이론만 알던 기능들을 어떤 상황에서 어떠한 방향으로 활용할 수 있는지에 대해서도 엿볼 수 있었다. 이 역시 개인적으로 선호하는 공부 방법인데, 무엇을 공부하면서 '내가 이 기능을 어떤 목적 혹은 기능으로 쓸 수 있을까'에 대해 생각하면서 공부하는 편이다. 강의 중 이러한 방법으로 접근하는 케이스가 많아서 공부하기 좋았었다.

 

 

 

- 사족

개인적으로 용두사미가 되어버렸다. (...)

원래 포큐 수업이 시작하고 1~2주 정도에 퇴사, 수업 끝날즈음 취업하고자 생각중이었다.

그러나 너무 당연하게 퇴사는 늦춰졌고 (...) 거부할 수 없는 좋은 제안이 들어와서 휴식기간 없이 바로 이직을 해버렸다.

또 이직한 회사가 출/퇴근이 불가능하게 근처로 이사까지 하게 되었는데...

이 과정에서 평일은 물론 주말까지 몽땅 투자해야하는 빠듯한 일정이 되어버렸고 그로인해 수업을 듣는데 차질이 생겨버렸다.(변명임)

 

매주 꾸준히 온라인 강의를 듣고, 주말에 몰아서 실습과 과제를 하려는 생각을 가진 직장인이 있다면...

그 각오 확실하게 해야한다. 자칫 주말에 약속이라도 잡혀버리게 되면 밤새면서 빌드봇을 갈궈야할 것이다. (....)

 

나의 POCU에서 확인 할 수 있는 점수. 처참하다 ㅜ.ㅜ

 

 

첫 학기에서 받은 뱃지들. 원샷원킬은 한번의 빌드로 100점을 받은 횟수

 

 

 

Posted by 마PD