본문 바로가기

Canada/BCIT

BCIT CST 졸업 후기

2021년 9월 intake로 BCIT Computer Systems Technology 학과에 들어가고 나서 2023년 5월을 마지막으로 졸업을 하였다. 이 글에서는 지난 약 1년 8개월 (20개월) 동안 BCIT CST를 다니면서의 후기를 작성하려고 한다. 먼저 졸업하고 나서는 바로 취업을 하여서 (사실 마지막 학기 중간고사 직후에 면접을 보고, 합격을 받았다) 6월부터 Junior 개발자로 일을 시작하였고, 이제 Probation기간도 끝나서 여유가 좀 되어 이 글을 적어본다. 일기같이 쓸 것이지만, BCIT CST를 생각하는 한국사람들이 있다면 도움이 되었으면 좋겠다.

타임 라인

입학하고 나서 부터 나의 타임 라인은 다음과 같다. 입학 허가에 대해서는 궁금한 분들은 나의 BCIT CST 합격 후기 를 참고하면 좋을 것 같다.

  • 2021년 9월 BCIT CST 입학 (Entrance Award 받음)
  • 2021년 9월 ~ 2021년 12월, 1st term (co-op 합격)
  • 2022년 1월 ~ 2022년 4월, 2nd term
  • 2022년 5월 ~ 2022년 8월, co-op으로 현지 로컬 회사에서 개발직군으로 일함 (co-op은 보통 8개월을 하는데 나는 8개월까지 할 필요는 없다고 생각했고 졸업이 늦춰지는게 싫었다. 그래서 4개월만 하는 것으로 결정)
  • 2022년 9월 ~ 2022년 12월, 3rd term (세부 전공은 data-communication & internetworking)
  • 2023년 1월 ~ 2023년 5월, 4th term, 졸업
  • 2023년 6월 ~ 현재, POCU Academy에서 신입 개발자로 일을 하고 있다

BCIT CST의 특징

다음은 내가 BCIT CST를 다니면서 느낄 수 있었던 특징들에 대해 쓰려고 한다.

1. 매우 바쁜 일정

아마 CST를 다니는 사람들은 매우 공감을 할 것 이라고 생각한다. 1학기에 약 4 또는 5개월, 총 4학기와 co-op 4개월(16학점)을 수료하는데 총 130학점이다. 매우 높은 밀도라고 생각하고 체감할 수 있다. 왜냐면 내가 한국에서 대학교를 졸업할 때 나의 졸업 이수 학점이 4년에 총 150학점 이였으니 말이다. (내가 꽉꽉 채워서 들어서 이렇지 계절학기, 교양 이런거 안들었으면 130학점 언저리 되었을 듯 하다)

학 학기에 27학점 정도라는 것이고, 이는 일주일에 수업을 27시간을 듣는 것이고, 거기에 딸려오는 Lab, Assignment, Project를 다 하려면 뭐 시간관리를 제대로 하지 않는 이상 쉽진 않다.

 

특히 term3를 들을 때에는 하루에 4시간 혹은 그 이하, 많으면 5시간 정도 밖에 잠을 자지 못한것 같다. 그때부터 목, 오른쪽 뺨, 팔 접히는 부분, 다리 접히는 부분에 생전 없었던 아토피가 생기더니 이젠 만성이 되어버렸다 ㅋㅋ ㅠ 주말은 당연히 쉬지 못하고 도서관이나 카페에서 보냈고 금요일 저녁에만 아주 조금 여유를 가졌던 것 같다. 

 

그래서 도중에 포기하는 친구들이 정말 많다. 여기 현지 캐나다 친구들은 몇몇 실습이나 과제를 바쁘다는 이유로 그냥 안하고 넘어간다(제출 자체를 안해버림). 그냥 포기해 버리는 학생들이 생각보다 많다. 그래서 그냥 끝까지 모든 과목, 모든 실습 과제를 다 포기하지 않고 한다면 그 친구들보다는 앞설 수 있다.

 2. 그에 비해 그다지 높지 않은 강의 퀄리티

일정만 빡빡할 뿐, 강사 및 강의의 질이 그렇게 높지만은 않다. 나는 첫 학기 부터 이런 생각을 너무 많이 했다.

 

BCIT CST는 왜 유명한거지......?

먼저, 강사들 중 실력이 좋은 분들은 그닥 많지는 않다. (물론 진짜 괜찮은 강사들도 계신다.) 이건 물론 대부분의 학교에 일어나는 현실이겠지만 BCIT는 유독 더 심하다고 생각한다. 왜냐면 BCIT는 직원들 노조가 존재한다. 제대로 일을 하든 안하든 그들의 커리어엔 별로 타격을 입지 않는다. 잘 짤리지도 않고, 학기말 되면 학생들이 강사들 상대로 하는 강의평가도 강사들의 강의 품질을 높이는데에는 도움이 되는 것 같지는 않다. 그 피드백은 강사들 자신이 피드백을 얻는 것일 뿐이라고 하는 말도 들었다. 즉, 내가 별점을 1점을 주든 5점을 주든 그냥 그들 스스로 필터링 할 수 도 있다는 얘기. 나의 강사들에 대한 평가가 너무 주관적이라고 생각한다면 (맞다. 그러나) Rate My Professor 에 있는 현재 강의를 하고 있는 BCIT CST 강사들 평가를 참고하길 바란다.

 

학생 수가 많아서 그런지 Lab이나 Assignment 채점도 빠르게 이루어지는 경우는 거의 없으며 피드백도 그닥 좋지많은 않다. 그냥 포맷팅 잡아주고 테스트에 뭘 통과하고 실패했는지 결과를 주는 것일뿐. 일정이 바빠서 학생들은 피드백을 확인해서 공부할 시간이 많지 않기 때문에, 일단 제출한 코드는 다시 보는 일은 거의 없다. 그리고 이건 나의 생각인데, 강사들이 우리들의 코드를 절대 다 살펴보지 않을 것이라 생각한다. 심지어 돌려보지도 않는듯 하다. 우리가 한 테스트 결과, 우리가 만든 데모 비디오 보고 판단하는 것 같은 느낌을 많이 받는다. 

3. 괜찮은 커리큘럼

보통 다른 일반 대학교(아주 유명하고 좋은 대학교를 제외하고)의 컴퓨터 공학과 4년 커리큘럼을 2년으로 잘 압축시켜 놓았다. 컴퓨터 공학에서 가장 중요하다고 생각되는 과목들, 예를 들어, 자료구조, 알고리듬, 컴퓨터구조, 운영체제, 데이터베이스, 그리고 네트워크 모두 훑을 수 있으며 Web이나 Mobile도 한번 이상 씩은 경험해 볼 수 있고 세부전공에 따라 다르지만 원하는 분야(예를들어, AI, Machine Learning, Cloud 등등)의 과목도 두세개 정도는 체험? 해볼 수 있는 커리큘럼이다. 잘 압축해 놓았다. 또한 많은 프로젝트 과목들이 있어 실제로 일하는 프로세스를 조금이나마 경험하게끔 흉내내고 있다. 

나의 세부 전공

BCIT CST는 1학년(term1, term2)을 마치면 세부 전공을 선택한다. 관련 내용은 학교 홈페이지에서 확인할 수 있다. 나는 Data Communications And Internetworking을 선택했다. 

선택 이유

난 진작에 low level이 중요하다고 생각해서 학생일 때 최대한 low-level, hardware에 가까운 쪽에 대한 공부를 하고 싶었다. 졸업하고 일을 하면 아마 상대적으로 high-level쪽에서 놀 걸 알고 있었기 때문에, 온전히 공부를 할 수 있을 때 low-level이나 시스템 쪽을 좀 더 공부하고 싶었다. (그렇다고 high-level을 덜 중요하다고 생각하거나 싫어하지 않는다. 좋은 개발자라면 둘 다 잘 알고, 할 줄 알아야 한다고 생각한다) 그래서 내가 Co-op을 마치고 세부 전공을 선택할 때 선택지들 중 가장 low-level을 만질 수 있는 Data Communication And Internetworking을 선택했다. 

https://www.bcit.ca/programs/computer-systems-technology-diploma-full-time-5500dipma/#details

Datacomm

나의 세부 전공을 모두들 그냥 흔히 '데이터컴' 이라고 부르며 비인기 세부전공 이다. 이 전공을 흔히 말하는 network programming을 한다. 데이터 통신이 서로다른 두개 이상의 Device들 + 한 Device내에서 어떻게 이루어 지는지 직접 프로그래밍 해볼 수 있으며 언어는 C언어, C17만 사용한다. (과거에 Datacomm이 유명했을 때에는 C++을 사용했다고 하며, 세부 전공 head강사도 유명하고 빡센 강사였다고 한다.)

  • 네트워크 관련 개념(TCP, UDP, IP, HTTP 등등 여타 많은 네트워크를 위한 Protocol들 + 컴퓨터들이 어떻게 통신을 하는지)에 대해 다른 세부전공들에 비해 좀 더 자세히 공부하고
  • 리눅스에 대해 경험해볼 수 있고
  • Client-Server의 개념도 조금
  • Raspberry Pi도 조금 다루고
  • 운영체제 개념들도 더 자세히 배우고, 실습해보고
  • 그리고 괜찮은 프로젝트감으로는 HTTP 서버를 직접 짜볼 수 있다
  • 등등등...

강의, 강사, 강의자료, 실습, 과제의 quality은 내 기준에서 추천하지는 않으며, 나는 웹검색과 Youtube, 인강 한 두개 정도로 공부했다. 시험은 모두 서술형 주관식이였고, 개념 설명을 하는 것이 대부분이였으며 코딩문제는 1년을 통틀어서 딱 한문제 나왔다. 근데 그게 C에서 기초적인 문제였음.

 

Datacomm을 선택한 데에 후회는 하지 않는다. 원래 내가 부족했던 부분이 network쪽이여서 관련 공부를 할 기회였다고 생각한다. low-level을 그래도 학생 때 최대한 경험해보려면, 혹은 network쪽 개념을 좀 더 공부해 보고 싶다면, 선택하시라.

Co-op에 대해

나는 term1때의 성적이 92점이고 당시 기준 89점 ~ 90점(추측) 컷을 넘어서 Co-op으로 방학 때 일할 기회가 있었다. 컷 점수는 매학기 다르며, 상대평가다. 150명 중에 50명이 선발된다. 즉, 상위 33%안에 들면 된다.

Co-op Job 찾기

Co-op 학생으로 선발이 되면 term2때 온갖 취업 관련 세미나를 듣는다. 근데 이게 학기중에 듣는 것이기 때문에, term2 코스들 공부와 병행을 해야 한다는 단점이 있다. 즉, 바쁘다. term2 코스를 소화하면서 취업준비도 해야하며, 취직이 되어야 성공이다. 나는 총 50개 정도의 회사에 지원 application을 쓴 것 같고, 그 중에 7개의 회사에서 interview, 면접을 진행했으며 1군데에 합격하여 일할 수 있는 기회를 얻었다.

지루한 apply 과정

면접은 흔히 하는 junior 개발자를 뽑는 면접과 크게 다르지 않다.

  1. 자기소개
  2. 프로젝트한게 있다면 설명, 어려운거 있었냐, 팀원과의 콜라보는 좋았냐 등등
  3. Behavior Questions (인성 빻았냐 체크하는 정도, 팀에 잘 섞일 수 있을지 체크하는 용도)
  4. Coding Test (안 보는곳도 있었음. 보더라도 leetcode easy ~ medium 난이도 정도)
  5. Technical Questions (기술관련 질문)
  6. 질문
  7. 등등

아무튼, 좋은 회사에서 Co-op을 하면 좋겠지만, 그렇지 않다해도 interview 프로세스를 졸업전에 미리 연습할 수 있어서 좋다고 생각한다. 

 

그래서 합격을 했다면, term2가 끝나고 바로 일을 시작한다. 최소 4개월 ~ 8개월로 회사 계약마다, 혹은 본인 의사마다 기간은 다르지만 그 기간동안 Co-op developer, programmer, 등등으로 일을 할 수 있다. 좋은점은 term2 정규학기가 끝나고 1개월정도 동안에 듣는 Web development코스와 project과목 2개를 수강한 것으로 인정해 준다. (학점을 인정해 준다) 그래서 지루한 강의대신에 일을 하는 것으로 퉁 칠 수 있다.

돈은 적지 않게 준다. 회사마다 다르지만, co-op position이라 해도 CAD 16 ~ 20불 정도(연 3만 5천불 ~ 4만불 정도)를 평균적으로 받으며, 더 주는 회사들도 있다. 학생한테는 이것도 큰돈이다. 

시간

시간은 BCIT 다닐때보다 5배정도 널널하다. co-op position이라 회사에서 그렇게 중요한 일도 안줄뿐더러, 정말 좋은건, 주말이 있다. 학생 때는 주말에도 도서관에 가서 공부를 했는데, co-op할 때는 나는 주말에는 죽어라 놀았다. (듣고 싶었던 POCU 수업도 하나 듣고, 개인 프로젝트, 공부도 하면서 ㅎㅎ)

업무량

하는 일은, 내가 다닌 회사는, 매우 쉬운 과제들을 주었다. 내가 Co-op을 했던 회사는 웹기술을 가지고 원격 의료 서비스를 병원들로 하여금 환자들에게 제공해 줄 수 있게끔 해주는 회사였다. 그래서 맡은 업무는 Web frontend와 backend 쪽 버그 고치는일이 대부분 이였다. 코드리뷰는 없었고, 피드백 또한 주기적으로 주는건 없었다. 

Co-op을 꼭 해야만 좋은가?

아니다. 나는 Co-op일을 시작하고 나서 한달 후에 4개월만 하기로 마음 먹었다. 그리고 졸업을 빨리 하는 편이 훨씬 나에게 좋을 것이라 판단하였다. 이유는

  1. 단순하고 쉬운 버그 고치는 일이라 나의 성장이 그렇게 있는것 같지는 않았고,
  2. (내기준) 좋은 코드들이 많지 않았고, 즉 배울게 그렇게 많지는 않았고,
  3. 8개월을 할 경우, 졸업이 거의 1년 가까이 늦어지기 때문이다.

그래도 나는 4개월이라도(사실 only 4개월만) 하는걸 추천하는데, 또 그 이유는

  1. 첫 학기 성적으로 Co-op이 선발되기 때문에, 여기 캐나다 현지 친구들과의 경쟁에서 해볼만 하다는 자신감을 얻을 수 있고,
  2. 인터뷰를 준비하면서 졸업 하고 나서 신입으로 취준할 때 도움이 되고,
  3. 여기 Software 개발쪽 회사들의 분위기를 조금 맛 볼 수 있고,
  4. 현업 개발자들 디자이너들과 협업을 해보면서 Software개발 협업 프로세스를 경험할 수 있기 때문이다.
  5. (이건 번외인데) 돈도 벌지만, 또 학생신분이라 캐나다 최고 복지 중 하나인 학생 대출도 나온다.

나의 BCIT CST 성적

나의 성적을 일단 공개한다. 공개하는 이유는 이 글에서의 나의 BCIT CST에 대한 비판이 내가 학교 생활을 잘 못한 투정으로 보일까봐이다.

Term 1, 2021 Sep ~ Dec
Term 2, 2022 Jan ~ Apr
Co-op Term, 2022 May ~ Aug
Term 3, 2022 Sep ~ Dec
Term 4, 2023 Jan ~ May

취업이 Term4 중간 고사 끝나고 합격을 했기 때문에, 막바지에 좀 열심히 안하긴 했지만.. Practicum 1은 억울하다. 이 글을 보시는 분들은 instructor를 잘 만나시길 (instructor의 grading 실수가 있었음, 나중에 알게됨)

 

나는 각 학기 마다 100점 과목을 무조건 한 과목정도 받자, 만약 받지 못한다면 1등을 하자가 나의 목표였고, 이룬것 같다. 두 번째 목표였던 수석 졸업은 못했다. 우리반에서 나보다 1점 높은 친구가 한 명(나는 overall 92% 그 친구는 93%) 있었다. Term4 때 내가 모든 과목을 열심히 안해서 뭐 할말은 없다. 그 친구는 우리반 set rep이였고, 코딩도 잘했고, Ethics 마저 잘했으니깐. 

BCIT CST에서 열심히 들어야 된다고 생각하는 과목

  1. COMM 2216 Business Communication 2, COMM1116 Business Communication 1
    일을 하면서 거의 유일하게 BCIT 수업 중에 도움이 되는 과목이다. 코딩도 하지만 Junior들에게는 문서화 업무도 많다. Technical Writing (+ 일반 글쓰기도 포함)에 대해 익숙치 않다면 이 과목을 충실히 해야 한다고 생각한다. 실무에서 가장 유용한 강의라고 생각한다. 강사도 매우 훌륭하며, Resume작성도 하고 피드백도 받을 수 있다, 모의 면접도 진행해주며 아주 가까운 미래에 도움이 될 것이다.
  2. 수학 과목들 (COMP1113, COMP2121, MATH3042(통계)에서 일부분)
    컴공에 필요한 수학과목들이다. Binary관련, 컴퓨터에서 수를 표현하는 방법, 표준 부터 이산수학, 확률, 통계, 행렬, 알고리듬 등등. 수업 커리큘럼이 아주 괜찮다고 생각한다. 또한, 수학과 강사분들이 매우 괜찮다고 생각한다. 수업을 잘 하며, 이를 위한 Lab, Assignment, 시험이 잘 되어 있다. (아 물론 강사분들 마다 차이는 있겠다. 나의 COMP1113의 강사는 Takashi, COMP2121의 강사는 Sandra였다. 매우 훌륭한 강사분들이시고, 똑똑하시다.)
  3. DB 데이터 베이스 (COMP2714 Relational Database Systems)
    내가 다닐 때에는, BCIT 프로젝트 과목들에서 DB로 모두 NoSQL db로 프로젝트를 진행하였다. (Term3, Term4 프로젝트 과목에서 또 하필 NoSQL쓰는 프로젝트들에 당첨이 됨 ㅋㅋ) 그래서 그런지 SQL, 그리고 관계형 데이터베이스에 대해 경험을 할 수 있는 수업이 많지 않다. 아니 거의 없다. 1개다. Term2때 듣는 COMP2714. 강사는 Alireza였는데 나름 나쁘지 않게 수업하시고, 질문에 답도 아주 잘 해주신다. 수업 커리큘럼도 괜찮아서, DB를 각 잡고 공부하면서 따라가기 좋다. 나는 하필 이 과목을 벼락치기로 공부해서 면접때 DB질문들을 다 말아먹었다. 아주 기초적인 것 조차도. 너무 창피해서 면접 보자마자 그날 저녁부터 5일간 추가적인 시간을 내서 DB를 다시 복습했었던 기억이 있다. 면접에도 아주 잘 등장하는 주제이니 필수! 라고 생각한다.

왜 프로그래밍 과목들은 위 리스트에 없는가?

사실, 음... 나는 POCU Academy가 모든 방면에서 더 나은 강의를 제공한다고 생각한다. 내가 가지고 있는 기술 지식들의 원천이 모두 POCU다. BCIT를 다니면서 오히려 더 나쁜 프로그래밍 습관이 생겼다고 생각하기도 한다. 왜냐하면:

  1. BCIT는 채점을 바로바로 안해주고, 피드백도 빨리 주지 않으니... 그냥 구현만 하고 검증하지 않고 제출해버리는 버릇이 생김
  2. 일단 동작하면 점수를 받으니 그 습관이 더 강화됨 (점수를 받는 이유는, 동작하게끔 하는 것도 못하는 사람들이 매우 많기 때문)
  3. 강사들이 코드리뷰를 할 실력이 없음
  4. 물론 당연히 코드리뷰는 하지 않음 (그 수많은 학생들의 코드를 시간상 당연히 못 보겠지... 그러니 자동화를 해야하는데, 자동화할 실력이 없음, Marker를 고용하면 되는데 고용하는 강사는 극히 드뭄)
  5. 심지어, 사실이 아닌 내용을 가르칠 때도 있음 (예를 들면, C포인터의 크기가 4byte라고 함, int도 4byte라고 함) (참고로 포인터의 크기는 machine, 컴파일러마다 다름, int는 최소 16bit고 컴파일러 구현마다 다름)

암튼 저의 지극히 주관적인 생각이고 리뷰이니, 필터링 해서 들으시길 바랍니다.

추천?

  • 실력 향상이 우선이다? No
  • 졸업장이 우선인데 4년을 쏟을 시간은 아깝고 하필 벤쿠버에서만 거주해야 한다? Yes
  • 취업이 목적인데 혼자서는 못하겠다? 음.. Yes 또는 No. 어느정도 프로그래밍을 할 줄 아는데 프로젝트는 혼자 못하겠다면 가보는 것 추천, 아예 생판 모른다면 좀 더 제대로 프로그래밍을 가르치는 곳에 가는 것이 훨씬 나음. (e.g. POCU Academy)
  • 비자, 영주권이 목적이다? No 또는 Yes. 물론 졸업하면 3년짜리 work 비자가 나온다. 그걸로 잘 취직하고, 영어 점수를 잘 만들면 영주권 흭득은 그다지 어렵지는 않을 것이다 (그러나 이건 상황에 따라 다르다. 나이 점수도 있고, Express Entry 커트라인 점수도 매달, 매년 달라지기 때문에). 근데, 취업이 되야 그것도 바라볼 텐데, 프로그래밍에 큰 관심이 없다면 그 취업도 요즘은 힘들다. 내 주변에 나와 같이 졸업한 친구들 중 현재(졸업 후 5개월 차) 일하는 친구들은 5명이 안된다. 요즘 신입 취업이 매우 힘드므로 그런것이라 생각하지만, 취업시장이 조금 풀려도 BCIT CST로는 큰 메리트는 없다고 생각한다. BCIT에서 제공하는 통계는 되도록 믿지 않으시길 바란다. 다 과장이 되어 있다.

맺음말

졸업한지는 거의 5개월이 되가는데, 미루고 미루다가 이제야 글을 썼다. 내가 다닌 학교에 대해 장점 말고 주로 비판적인 시각을 가진 것은 사실이다. 근데 나는 다녀보고 경험해 보고 나서 그런 관점이 생긴 것이니, 참고 하시길 바란다. 그래도 학교를 다니는 동안 좋은 사람들은 만났고, 자신감을 얻었으며, 오랜만에 젊은 친구들과 같이 무언갈 해볼 수 있는 좋은 시간이였다. 이 글을 읽고 오롯이 이 글 때문에 자신의 결정을 바꾸는 분들이 있지는 않았으면 좋겠다. 본인이 좀 더 리서치를 해보고 주변에 물어보면 더 많은 관점에서 객관적으로 바라볼 수 있을 것이라 확신한다. 나이가 많건 적건, 외국 사람이던 한국 사람이던, 생각 보다 끝까지 하는 끝내려는 사람들이 별로 없는 것 같다. 한국 사람들은 그나마 학구열이 있고 책임감이 강하니 여기서 경쟁을 할 때 해볼 만 한 것 같다. 그러니 이 글을 읽는 모든 분들이 현명한 선택을 하길 진심으로 바란다.

 

 

 

'Canada > BCIT' 카테고리의 다른 글

BCIT CST 합격 후기  (29) 2021.03.21