Harvard cs50x week 7 하버드 cs50x 7주차에 접어들면서

cs50x

하버드의 컴퓨터 과학(computer science)을 소개하는 강의 cs50의 온라인 버전이다. 강의를 들으면서는 비전공자에게 컴퓨터 과학을 소개하는 강의라는 인상이 들었다. "소개"라고 하지만 내가 지금까지 들어봤던 어떤 프로그래밍 강의보다 깊고 찐한 강의다. 개론 중에 가장 찐한 개론 느낌. 아무래도 학교 수업이기 때문에 가능한 것 같다. c언어로 시작해서 컴퓨터가 어떻게 작동하는지 낮은 수준으로 접근해 알아보고 메모리 관리까지 맛 보고 난 다음 높은 수준의 언어인 파이썬으로 나아가고 데이터 베이스, 웹 개발까지 쭉쭉 맛 볼 수 있는 아주 알찬 강의다.

 

 

비전공자에게 유익

나는 파이썬으로 프로그래밍을 시작했고 이미 파이썬 초보용 책을 읽거나 중급자용 강의도 들어보거나 했기 때문에 완전히 나가떨어지지는 않았다. 만약 완전 컴맹이 컴퓨터 과학을 알아봐야지 ~ 하는 마음으로 시작한다면 과제의 벽에서 통곡을 할지도 모른다. 그만큼 과제가 친절하지는 않다. 예를 들면 코드잇이나 기타 프로그래밍 교육 회사에서는 정말 아가 걸음마 도와주듯이 손 잡고 한발 한발 나아가게 도와준다면 cs50x는 방금 일어서기를 배웠는데 과제는 계단 올라가서 미끄럼틀 타고 내려오기가 나오는 것 같았다. 물론 구글링 하거나 chatgpt한테 물어보면 슥슥 풀겠지만 그러면 배우는 게 없지. 요즘은 duck을 만들어서 힌트를 준다고 하는데 나는 크게 써보진 않았다. 그냥 모니터에 머리 쳐박고 몇시간 동안 뚫어져라 쳐다보면서 이렇게 틀려보고 저렇게 틀려보고 하면서 풀어내는 쾌감을 한번 맛 보면 자기 힘으로 풀고 싶어진다.

그런 의미에서 cs50x는 프로그래밍 경험은 있지만 컴퓨터 과학을 살짝 맛 보고 싶은 사람들한테 유익하다고 생각한다. 당장 컴공 전공 수업을 듣기에는 부담스럽고 찍먹은 하고 싶은데 책이나 강의들이 어딘가 치우치는 느낌이 있다면 이 강의가 아주 유익할 거다. 문제도 아주 어려운 수준은 아니어서 혼자서 해결하면서 머리도 써보고 이런 개념이 이렇게 적용되는구나 깨닫는 데 도움이 된다.