2023년 12월 28일 목요일

BCIT CST에 합격했다면, 입학 전에 해야할 일들

들어가기에 앞서...

2023년 12월, BCIT CST Diploma의 모든 과정을 마치고 난 이후에도 지속적으로 관련된 포스팅을 하고 있다. 미련이 남아서일까? 아니면 뭔가 못다한 것이 있어서일까? 잘 모르겠다. 다만, 확실한 것은 그 짧다면 짧은 2년 동안의 경험이 상당히 압축적이었고, 강렬했으며, 또 가치가 있었다. 그래서 아직까지도 이렇게 여운이 채 가지실 않은 이유로 포스팅을 하는 것이다. 그리고 이 여운이 가시고, 그 느낌이 사라지기 전에 이렇게 활자의 형태로 남겨두는 것도 후배들을 위해서 의미가 있겠다 싶기도 하다.

물론, 이렇게 포스팅을 하면 어떤 넘들은 잘난 채하면서 지극히 주관적인 의견으로 진실을 왜곡한다고 비방을 하고, 또 어떤 인간들은 실제로 해보니 사실과 많이 다르다면서 조리돌림을 하기도 한다. 때로는 비난/비웃음/비방에 그치지 않고, 직접 통수를 치는 경우도 종종 있었다. 그럼에도 불구하고 나란 인간은 또 이 짓(!)을 반복하고 있다. 그 이유는 그 와중에도 내 진심을 알아주고, 또 이해해주며, 내가 나름 심혈을 기울여서 남겨놓은 지식의 유산(!)으로 인해 도움을 받았다고 고맙다고 연락을 해주는 후배들이 있기 때문이다. 그리고 이런 후배들 중에 애티튜드가 갖추어진 상당히 괜찮은 녀석들이 있기에 포기할 수가 없는 이유이기도 하다. 그리고 구더기가 무서워서 된장을 안 담그면 안 되겠다는 생각이기도 하다.

그리고 생각해보니 BCIT CST 관련 포스팅들이 시간의 순서대로 나열되지 않아서 조금 햇갈릴 수도 있겠다. 그래서 어느 정도 포스팅이 쌓이고 나면, 보기 편하게 링크로 정리해 보겠다. 아직은 때가 아니다. ㅋㅋㅋ

BCIT CST 입학 전 해야할 일

도메스틱이건 인터내셔널이건 BCIT CST에 어렵게 입학 레터를 받게 되었고, 우연히도 이 포스팅을 보게 되었다면 정말 운이 좋다고 할 수 있겠다. 왜냐고? 너님은 적어도 나보다는 3가지 면에서 유리한 입장(나이, 영어)에서 시작을 하게 되었기에, 나를 보고 용기와 희망을 얻을 수 있다는 것이 첫번째 이유가 되겠다. 그리고 내가 BCIT 한국인 커뮤니티를 운영하고 있기에 BCIT 입학 준비를 하는데 있어서 커뮤니티를 통한 다수의 조언을 들을 수 있는 기회를 보다 빠르게 갖게된다는 것이 그 두번째 이유이다. 마지막으로 현재 나는 KDD(Korean Developer and Designer)라는 캐나다 밴쿠버 비영리 단체에서 마케팅 리더로 있다. 즉, 이 이야기는 나를 통해 어색하지 않고, 보다 자연스럽게 KDD 멤버가 되어 다양한 사람들과 좋은 인연을 맺을 수 있다는 것을 의미한다. 각각의 링크들은 아래쪽 본문 중간 어딘가쯤에 적당히 끼워 넣을테니 너무 조급해 하지 말자. ㅋㅋ

일단 지옥문의 입구에서 그녀를 만나는 곳 100미터 전에 온 것을 매우 환영한다. 소문은 익히 들어서 알겠지만, BCIT CST는 정말 힘든 과정이다. 여기서 힘들다고만 하면 감이 잘 안올것 같아서 구체적인 예시를 들어서 설명을 해주겠다. 일단, 각종 퀴즈, 랩, 어싸, 프로젝트 등이 말 그대로 쏟아져 내리기 때문에 잠잘 시간이 매우 줄어든다. 그리고 만약 영어가 안된다면 그 부족한 시간은 더욱 줄어든다. 여기에 코딩이나 컴싸에 대한 지식이 전혀 없다? 그러면 잠 시간을 더 빼면 되겠다. 이제 감이 확 오나?

일단 첫 학기인 term1이 체감 상으로는 굉장히 힘든데, 사실 다 지나고 보면 term1이 가장 쉬웠다. ㅋㅋㅋ 다만, 낯선 해외 대학의 분위기와 영어, 그리고 컴퓨터 언어에 대한 첫 경험등이 어우러져서 고통을 주는 것이다. 그래서 다들 CST 들어오기 전에 뭐라도 해야하지 않나? 하는 생각에 나름의 준비를 하고 들어오는 것이다.

운동해서 체력을 키우자.

아직 20대라면 크게 상관없을 수도 있다. 하지만 30이 넘어간다면, 반드시 운동을 열심히 해서 체력을 쭉 끌어 올려둬야 한다. 참고로 난 BCIT CST에 입학할 당시에 이미 40을 넘겼기 때문에 안그래도 저질 체력인데 거기서 잠도 못자니 아주 죽을 맛이었다. 물론 내 부족한 체력은 충분한 정신력으로 커버를 쳐서 망정이지, 정신력마저 약했다면 CST는 절대 못 버텼을 것이다.

캠퍼스를 고를 수 있다.

아는 친구들도 있고, 또 모르는 친구들도 있는데, 입학 승인레터를 받고 등록금을 낸 이후에 학교에 이메일을 보내서 캠퍼스를 선택할 수 있다. 그래서 자신이 원하는 캠퍼스인 버나비 혹은 다운타운을 선호한다고 메일을 보내면 왠만하면 해당 캠퍼스로 맞춰준다. 물론 TO에 따라서 안될 가능성도 있고, 한곳으로 몰리면 성적순으로 짜른다는 이야기도 있으니 그 점은 참고하도록 하자. 나는 버나비 캠퍼스로 입학했고, 옵션도 버나비 캠퍼스여서 솔직히 다운타운은 겪어보질 않아서 디테일한 다운타운 캠퍼스 생활이나 수업에 대해서는 잘 모른다. 다만, 두 캠퍼스는 확연히 성격이 다르고 강사도 많이 다르며, 수업의 퀄리티도 차이가 난다는 점은 아주 잘 알고있다. 그리고 솔직히 말하면 나는 다운타운 캠퍼스가 너무 싫었다. 같은 실력을 가지고도 역차별 당하는 현실도 현실이고, 다운타운 캠퍼스 강사들도 몇명 겪어봤는데 너무나도 별로여서 (물론 버나비 캠퍼스도 별로인 강사들이 많다.) 과거로 돌아가서 내가 다시 선택한다고 해도 생존 난이도가 버나비가 훨씬 높지만, 그럼에도 불구하고 내 선택은 무조건 버나비이다. 내 term3 후기를 보면 알겠지만, 버나비에 와야 제프를 만날 수 있기 때문이며, BCIT CST에서 제프의 수업을 못들은 채 졸업한다는 사실 자체로 굉장히 불운하다고 감히 장담한다. 물론 옵션에서 버나비로 들어서 턴을 할 수도 있으니, 다운타운에 갔다고 너무 실망하지는 말자.

자바(파이썬)을 미리 공부하자.

Term1 버나비는 자바, 다운타운은 파이썬을 배운다. 그리고 이 과목은 CST 전체를 통틀어서 가장 높은 학점인 무려 7학점이나 된다. 따라서 입학하기 전에 시간이 남는다면 다른 과목은 다 제쳐두고 무조건 자바(파이썬)을 미리 공부해 두어야 하겠다. 사실, 자바를 공부해 두는 것이 더 좋다고 생각하는 이유는 몇가지 더 있다. 우선, term2 때 OOP1은 캠퍼스를 막론하고 무조건 자바를 배운다. 그리고 term3때 알고리즘 수업도 역시나 자바로 랩을 진행한다. 파이썬을 사용할 기회는 term3 때 제프의 수업(OOP2) 밖에 없고, 그마저도 9월 입학이라면 제프한테 C++을 배우게 되므로 더더욱 파이썬을 공부할 당위성이 사라지게 된다. 게다가 파이썬을 하나도 모른다고 하더라도 제프가 A부터 Z까지 다 잡아주므로 전혀 걱정할 필요가 없다. 그래서 다운타운이 좀 애매하기도 하다. 왜냐하면 term1때 파이썬을 배워봐야 그 이후에 써먹을 과목이 전혀 없기 때문이다. 오히려 다음 학기에 자바로 OOP1을 들어가야 하는데, 왜 파이썬을 미리 배우는지 전혀 이해가 안가기도 한다. 뭐, 그래도 다운타운이라면 파이썬을 미리 공부해야 하겠지만 좀 애매하다.

자바는 남궁성 선생님의 자바의 정석으로 객체지향 직전까지만 보면 된다. 어차피 객체지향 부분은 term2에서 만나게 되므로 미리 공부해서 진을 빼놓을 필요는 없다. 따라서 유튜브에 자바의 정석 인강이 무료로 오픈되어 있으니, 그것을 보면서 직접 코딩 실습을 해가면서 책과 함께 공부를 해서 기초를 다져 놓는것을 추천한다. 그래야 term1 때 정신없이 쏟아지는 lab과 assignment를 일정 내에 무리없이 소화할 수가 있다. 그리고 term1 자바가 어느 순간 쉬워지는 시점이 오는데, 그때 방심하고 수업에 안들어오고 대충 날림으로 공부하면서 또 테스트 뱅크라는 족보에 의지하는 순간 2학기 OOP1에서 ㅈ되는 수가 있다. OOP1에서는 이미 자바의 기초가 탄탄히 잡혔다는 가정하에 객체지향 설계부터 들어가게 되므로 난이도가 급격히 상승하기 때문이다. 그러니 뭐 midterm, final exam을 족보 따위 보면서 점수 잘받았다고 자만한다면 OOP1에서 정말 큰 멘붕이 오게되며, 결국에는 큰코 다친다는 사실을 여러 사례를 통해 접할 수 있다. 평소에 실력을 충분히 키워 두어야 한다.

IDE에 익숙해지고, 단축키를 외우자. (VSCode 강추)

Term1 버나비의 경우, 프로그래밍 과목은 몇개 없다. 자바하고 프로젝트 과목이 그것인데, 자바는 이클립스를 사용하고 프로젝트는 VSCode를 사용한다. 근데 이클립스는 딱 term1에서만 사용하고 더 이상 사용할 일이 없다. term1 강사인 브루스 행님이 연식이 상당히 오래되서 이클립스를 고집하는데, 사실 후반부에 JUnit test를 제외하고는 이클립스를 안써도 전혀 상관이 없겠다. 따라서 내가 다시 term1으로 돌아간다면 아예 처음부터 VSCode를 사용해서 그 UI에 익숙해지고, 단축키를 마스터할 것 같다. CST에서 가장 많이 사용하게 될 IDE가 바로 VSCode이기 때문이며, VSCode는 extension을 통해 이 세상에 존재하는 거의 모든 언어를 코딩할 수 있으며 매우 가볍다는 장점이 있기에 무조건 강추한다. 물론 자바의 경우 IntelliJ, 파이썬은 Pycharm, 그리고 C언어는 CLion 등의 전용 IDE가 존재하며 이들은 매우 강력한 기능과 편의성을 제공하기도 한다. 다만, 너무 무겁기도 하고 사실 그 IDE들이 제공하는 강력한 기능들을 학생의 입장에서 사용할 일도 많이 없다. 다만, 학생인 기간 동안에는 이들 IDE를 전부 무료로 사용할 수 있기 때문에 한번쯤은 사용해서 익혀두는 것 자체는 나쁘지 않다고 본다. 하지만, 결국에는 VSCode로 다시 돌아올 것이라고 생각하기에 VSCode를 강추하는 것이다.

이렇게 내가 강조하는 이유는 내가 term1때 이클립스 단축키를 수십개 외웠는데, term2 때 이클립스를 전혀 안쓰는 완전 바보 똥멍청이 삽질을 경험했기 때문이다. 그런데도 그 이후에 또 똑같은 실수를 저지른 것이.. 이클립스에서 당했던 것처럼 IntelliJ의 단축키를 또 수십개 외워서 활용했다는 것이다. 이 역시 term2의 OOP1에서만 사용했다는... 물론 IntelliJ와 PyCharm, CLion은 전부 같은 회사인 JetBrain에서 만든 것이기에 단축키가 대부분 거의 똑같아서 다행이긴 하지만 말이다. 뭐.. 다들 예상 했다시피 프로젝트 과목들은 전부 VSCode를 사용해야 하고, 또 내가 듣는 옵션인 패러다임의 OCaml, Elixir, Go, Rust 등도 전부 VSCode로 코딩을 하는 상황이 벌어지게 되었다. 즉, VSCode 하나로 천하통일이 가능했는데 그 누구도 나에게 그런 것을 알려준 사람이 없었고, 나 또한 이런 상황이 펼쳐질 것을 전혀 예상하지 못했기에 이런 참극이 벌어진 것이다.

영어 공부는... 글쎄...

본인이 영어가 안된다면, 어차피 영어 공부는 미리 한다고 해도 그닥 도움이 되지 않는것 같다. 어차피 시험용 공부가 아니고, 그저 학교 생활을 위한 실전 영어이기 때문이다. 그렇다고 영어 회화를 공부하면 도움이 되느냐? 그것도 아니다. 수업을 듣고 제대로 이해하고, 또 궁금한 것이 생겼을 때 제대로 질문하고, 문서로 과제가 주어졌을 때 그 요구사항을 정확하게 파악하는 등 정말 다양한 상황에서 다양한 영어 능력이 요구되기 때문에 이건 미리 준비한다고 되는 성격이 절대 아니다. 그러니 미리 준비는 할 필요는 없고, 그저 마음 단단히 먹고 가면 되겠다. ㅋㅋ

가족과 함께 왔다면 가족과 시간을 많이 보내자.

당연한 이야기지만, 일단 BCIT CST라는 지옥문을 열고 들어온 이상 가족과 시간을 보내는 것은 매우 힘들어진다. 2년 동안은 한국의 고3 보다 더한 강도로 매일매일 빡세게 구르기 때문에 위에서 말한 운동, 공부와 더불어서 가족들과 시간을 충분히 많이 보내는 것도 좋겠다는 생각이다. 그래야 공부할때 후회가 없다.


이상으로 BCIT CST 입학 전에 챙겨야 할 것들에 대해서 과거의 경험을 되짚어보면서 한번 써내려가 봤다. 아참.. 그리고 까먹은게 있는데, 이제야 생각났다. 절대로 맨 아래에 넣고 포스팅을 끝까지 다보게 하려는 의도는 아니었다. ㅋㅋㅋ

BCIT 한국인 Community

KDD 네이버 카페

끝.

댓글 없음:

댓글 쓰기