
따배씨 강의를 천천히 수강한지 거의 7개월만에 100% 완강을 했다.
사실 강의를 처음 본 것은 2021년 06월 10일이다.

작년에 결제해 놓고 이제서야 완강했다.
중간에 코로나, 개인 사정 때문에 강의를 보지 못한 적도 있다.
아무튼 바로 리뷰 시작!은 아니고.. 내 자신을 반성할 겸, 내 얘기부터 써봐야겠다.
참고로, TBC는 따배씨 강의를 의미합니다. :)
우선 내 전공부터 말해야겠다. 난 철학을 전공으로 졸업했다.
복수전공도 다전공도 없이 주전공 철학으로만 졸업했다.
그래서 내가 졸업했을 때, 나는 프로그래밍에 대한 경험이든 지식이든, 거의 전무한 상태였다.
다만 유튜브에서 파이썬 속성 강의 영상들을 5시간 정도 따라해보고 이것 저것 값을 넣어본 경험은 있다.
프로그램은 프로그래밍 언어로 만들어지는구나하는 상식적인 이해 정도가 있었을 뿐이다.
심지어
Python이라는 글자를 보면, 마치 플라톤의 저서 파이돈(Phaidon)이 먼저 생각나는 그런 상태였다. 물론 파이돈을 읽어본 적은 없다. 들어보기만 했으니까.
그런데 나는 왜 프로그래밍에 관심을 가지게 되었을까?
철학과 전공 수업 중 하나인, 기호 논리학(Symbolic Logic) 수업이 그 기점이었다.
매 수업마다 증명하는 퀴즈들이 과제로 주어졌는데, 최상위권 학생들을 보면 컴퓨터 공학과 / 소프트웨어 공학과 학생들이었다.
그래서 난 "도대체 컴공이랑 기호 논리 증명을 잘 해내는 것은 무슨 상관이 있는거지?" 하는 의문을 가지고 있었다.
물론 몇몇 철학과 학생들은 교수님한테 "이거 배워서 어디에 써먹나요?" 이런 질문을 하기도 했다.
철학과 수업에서 나오는 질문은 다양하고 자유롭다.
교수님도 이 수업 내용에 대하여 학생들이 취할 수 있는 유용성의 한계에 대해 부정하지는 않으셨다.
다만 작은 사례를 언급하셨다. 네이버에서 일하는 학과 선배가, 여기서 배운 걸로 문제 해결의 실마리를 떠올릴 수 있엇다고...
아무튼 난 그 수업이 좋았고, 기호 논리 문제를 풀어서 증명하는 과정도 재밌었다.
그러다보니 휴학하고 인도에 있을 때,
"가짜 뉴스의 참 / 거짓을 자동으로 판별하는 것에 기호 논리를 사용할 수 있지 않을까?"하는 상상을 하게되었다.
사실 수업 때, 교수님한테 귀납 명제에 대한 기호 논리의 정립 가능성에 대해 여쭤본 적이 있는데, 그러한 시도는 있었지만 정립되기는 어렵다고 들었다.
그러한 상상에 이끌려서, "프로그램으로 만들수 있지 않을까?!"하는 생각에 이르렀다.
다음에 떠오른 질문은... "그럼 어떤 언어를 배워야 하는 거지?"
기호 논리 + 프로그래밍 언어 를 keyword로 구글에 검색해보니 Prolog라는 언어가 있다는 것을 알게 되었다.
그 언어가 있다는 것만 알게되고... 그냥 상상은 상상으로 끝났다.
왜냐하면 도대체 무엇부터 시작해야하는지 판단이 되지도 않았고, 어디에 물어볼 생각도 떠오르지 않았었기 때문이다.
지금에서야 생각해보면, 그 때 네이버 지식인에라도 물어볼 걸 하는 후회도 있다.
아무튼 프로그래밍에 대한 관심은 남아있었다.
그래서 3학년 때, 유튜브로 파이썬 속성 강의를 본 적이 있다. 그냥 프로그래밍이 어떤 것인지 맛만 보고 싶었다.
전공 시험기간이었는데, 카페에서 5시간 동안 파이썬 강의로 프로그래밍 해보는 것이 재밌었다.
변수에 이것 저것도 넣어보고, print도 이것 저것 해보고, if-else, for / while loop도 그냥 막 해봤다.
더 명료하게 배워보고 싶어서 42서울과 SSAFY에 지원도 해봤지만 광탈이었다.
졸업 이후에는 프로그래밍을 배워보고 싶은 마음이 더 커져서, 사설 프로그래밍 학원을 1달 다녀본 적이 있다.
Java로 처음에 시작했는데... 어떤 개념만 비유적으로 설명하고, 알아서 공부한 후에 과제를 일주일마다 완성해서 발표해야하는 그런 스타일이었다.
무엇부터 봐야할지도 모르겠고 뒤쳐지는 불안감도 있었고, 어떻게 코드를 작성해야 하는지도 몰랐다.
그런 불안한 상태에서 꾸역꾸역 하다보니 프로그래밍이 너무 재미없었고 내 적성이 전혀 아니라고 생각했다.
철학 수업에서, 철학은 질문이 중요한 학문이라고 배운다.
마침표 뒤에 물음표를 찍는 학문이라고도 말한다.
이런 관성이 있어서인지, 컴퓨터가 어떻게 작동하고, 왜 프로그램이 그러한 방식으로 돌아가는지, 이런 code는 컴퓨터가 어떻게 작동하도록 하는지 등등이 궁금했지만, 빨리 과제를 해야하는 압박감 때문에 궁금한 것들을 묻어버렸었다.
그러다보니 스트레스를 심하게 받게 되어 학원을 1달만 하다가 그만뒀다.
알고보니 대부분 수강생들은 Java를 미리 공부했거나 다른 언어의 경험이 있었다.
아무튼 학원을 그만둔 후에, 내가 궁금했던 부분들을 해소하면서 프로그래밍을 배우려면 어떤 것부터 배워야하는지 여기저기 검색해봤다.
C 언어가 그런 부분들을 긁어줄 것 같다는 생각이 들게 되었지만, 요즘은 C 언어부터 배울 필요 없다거나, 그런 부정적인 글들이 심심치 않게 보였다.
그러다가 홍정모 교수님 유튜브 채널도 접하게 되었고, 따배씨를 알게 되었다.
물론 엄밀한 의미에서, 프로그래밍의 시작은 파이썬 맛보기와 Java였다.
하지만 따배씨로 프로그래밍을 시작했다고 말해도 과언이 아닌 것이, 강의를 끝까지 배운 후에 나 자신을 돌아보면, 정말로 컴퓨터에 대해 더 이해할 수 있는 계기였으며, 재미있었기 때문이다.
물론 중간에 강의 수강을 중단한 적이 있다. 😅
도대체 그 유명한 C 언어가 무엇인지 궁금하기도 하고, 컴퓨터의 작동 원리, 메모리에 대한 호기심을 자극해서 바로 결제해버렸다.
대부분 후기를 보면 2 ~ 3개월 안에 완강한다는 것을 보고, 나도 빨리 해야겠다고 급한 마음을 갖게 되었다.
하지만 부동소수점의 한계 강의에서 나의 빈약한 인내심이 한계에 부딪혔다.
내가 제대로 이해한 것인지, 취업도 해야하는데 C 언어를 해야하나 이런 고민도 자꾸 생기게 되었고, 마음이 불안해졌다.
그렇게 수강을 잠시 멈추고, 허송세월하고 헝가리에서 1달 있다가 오기도 하고 그랬다.
그러다가 한국에 다시 돌아와서, 2021년 11월 말 즈음부터 다시 정신차리고 따배씨를 수강하기로 마음먹었다.
한 번 공부할 때는 적은 강의 분량이지만 꾸준히 따배씨를 보고 정리하다 보니, 그 결과 어제 완강을 했다.

1. 빵빵한 강의 볼륨
홍정모 교수님의 라이브에서 들은 것인데, 따배씨++ 강의를 제작하실 때,
C++을 가르치는데, 이걸 안 가르쳐?하면서 강의 내용을 계속 넣게 된다고 하신다.
이처럼 따배씨 역시, 강의 볼륨이 아주 빵빵하다.수강생마다 강의 볼륨에 대한 의견은 다를 것이다.
하지만 처음으로 프로그래밍을 시작한 내 입장에서는 빵빵한 볼륨이 크게 도움이 되었다.이전에 학원에서 과제를 할 때는 어디까지 공부해야 하는 것인지 방향성을 잡을 수 없었고, 공부한 것도 이해가 되지 않았었다.
반면에 이 강의는 볼륨이 크기 때문에, 일단 어디까지 공부해야할지, 처음 프로그래밍을 배우는 입장에서 명확하게 알 수 있었다.
강의의 범위를 넘어서는 내용들이 나오면 넘어선다고 언급하신다.
물론 공부하다보면, 그것도 찾아보고 이해해보려고 노력하게 된다.
2. 컴퓨터를 알 수 있다!!!
이 강의를 수강한 근본적인 이유이자 가장 큰 장점이다.
컴퓨터 공학의 내용을 비전공자나, 처음 프로그래밍 하는 사람이 이해하기는 정말 쉽지 않다.
공학적인 개념을 어떤 그림으로 이해하려고 하더라도, 그 핵심을
catch!!해야하는데 이 강의는 그러한 핵심들을 최대한 이해하기 쉽게 가르치고, 떠올릴 수 있게 한다.즉 컴퓨터를 알기 위한 허들을 낮춰준다. 그렇다고 대충 배우는게 아니라 정말 세밀하게 이해할 수 있다.
컴퓨터의 작동 원리와 메모리에 대한 이해를 습관적으로 생각할 수 있도록, 강의에서 여러 번 언급하기 때문에 그러한 원리를 자꾸 떠올리면서 배우게 되고, 프로그래밍을 할 수 있었다.
3. 실무 관련 프로그래밍 및 주의해야할 점들에 대한 팁들
단순한 문법 강의가 아니라 컴퓨터에 대한 이해를 할 수 있도록 따라갈 수 있는 강의인데, 거기에 더하여 실무에서 어떤 방식으로 프로그래밍하는지에 대한 팁도 자주 나온다.
게다가 어떤 문법을 남용하면 안 된다는 팁도 있고, 권장하지 않는 code에 대한 팁도 자주 나온다.
4. 자신감과 흥미!!! (Optional)
이 강의에는 거의 대부분의 챕터마다 연습문제가 있다.
교수님이 어떤 결과 화면을 보여주면 그걸 직접 구현해보는 것이다.물론 어느정도 필요한 code들에 대해서는 미리 보여주시기는 한다.
만약 이 연습 문제를 스스로 구현하다보면, 정말 자신감도 커지고 흥미도 더 생긴다.
그렇지 않고 그냥 교수님의 code를 먼저 본다면... 어떤 효과가 있을지는 모르겠다.나는 한 번도 교수님 code를 먼저 본 적이 없다.
5. 논리적인 설명
강의 내용이 굉장히 논리적이다. 후반부로 갈수록 더 크게 느낄 수 있다.
어떤 강의들은 오로지 비유적으로 설명하는데, 나는 개인적으로 그런 설명을 기반으로 이해하는 것을 선호하지 않는다.게다가 인터넷에서 어떤 개념에 대한 여러 설명을 보다보면, 상충하는 내용도 있기 마련이다.
하지만 이 강의에서는 개념들과 용어들을 논리적으로 이해할 수 있도록 설명한다.
그러므로 강의 초반부의 기본적인 내용들을 잘 정리해둔다면, 중-후반부에서 이해하는데 크게 어려움은 없다.
(이해하기 어렵지 않다는 것은 아니다! 강의 후반부로 갈수록 조금씩 복잡해지는 문법이 있기 때문에 한 번에 천재처럼 이해하기는 어렵다.)
개인적으로 이렇게 논리적으로 연결성을 가지는 설명을 아주 선호하기 때문에 장점이라고 말할 수 있다.
1. 강의 노트가 없다!
강의 노트는 없고, 강의 슬라이드 자료는 제공된다.
하지만 내용이 정말 방대하기 때문에 정리해야할 필요가 있었다.왜냐하면, 이해하지 못한 부분을 넘어갔다가 다시 돌아와서 강의를 들으려면, 해당 설명이 나온 영상 시간도 찾아야하기 때문이다.
처음 수강했을 때, 정리하지 않고 그냥 visual studio에 주석으로 설명을 넣는 방식으로 공부했는데, 다시 보려니 이해도 잘 안되고 결국 영상을 다시 보게 되었었다.
강의 노트 없이, 자세하고 체계적으로 정리하지 않고 주석으로 땜빵하다보니 나중에는 복습하는게 더 어려웠다.
그래서 벨로그에 배운 내용을 정리하다보니 복습도 빨리할 수 있게 되고, 큰 문제없이 계속 수강할 수 있었다. 물론 정리하는데 시간도 굉장히 오래걸린다.
참고로 홍정모 교수님의 파이썬 강의에서는 강의 노트까지 제공된다!
[홍정모의 파이썬 프로그래밍 추월 코스]
앞서 말했듯이, 나는 처음에 부동소수점의 한계 강의에서 수강을 중단했었다.
하지만 다시 시작했을 때는 블로그에 정리하는 방식으로 강의를 수강했다.
- 내가 제대로 이해했는지 확인하기 위해
- 강의 후반부에서 복습이 필요한 내용을 빨리 찾고, 그 논리를 다시 떠올리기 위해
- 나중에 참고해야할 필요가 있을 때를 대비하기 위해
이러한 의도로 벨로그에 post를 업로드하기 시작했다.

물론 모두 비공개다.
강의 내용, 내가 작성한 code, 교수님의 code, 참고자료 등 모두 다 때려박아놨기 때문이다.
그리고 용어들에 대해서 최대한 영어로 작성했다.
한글로 읽다보면 눈에 잘 들어오지도 않고, 나중에 영어로 검색했을 때 뭐라고 해야하는지 찾아보는 시간도 줄이고, 영어에 더 익숙해지기 위해 용어, post의 목차, 주석 등에 대해서는 영어로 작성했다.
아무튼 이렇게 정리하고 이해하면서 조금씩 강의를 보다보니, 어느새 다 끝났다.

얼마전에는 비행기에서도 보기 위해 이렇게 저장해놓기도 했다. (물론 보다가 그냥 잠듦)
강의마다 질문/답변이 있는데, 매 번 거의다 확인했다.
내가 생각하지 못한 질문도 있었고, 비슷한 것도 있었다.
배운 것을 조금이라도 더 자세하게 이해하고자 이렇게 했었다.
그리고 궁금한 내용이나 조금 다르게 작동하는 경우에 대해서 직접 질문도 올리기도 했다.
내가 알고 있는 것을 다시 확인하기 위해 OKKY, 네이버 C 언어 카페에서 C 언어 관련 초보적인 질문이 올라오면 한 번씩 내가 답변해보기도 했다.
챕터마다 있는 연습문제를 항상 스스로 구현하려고 했다.
어떤 때에는 금방되기도 하고, 어려운 것들은 하루가 걸리기도 했다.
하지만 결국 구현해내게 되었고, 교수님의 code와 어떤 차이가 있는지, 내가 무엇을 생각하지 못했는지 알 수 있었다.
이렇게 하다보니 이전과는 다른 자신감과 흥미가 더 생겼다.
그래서인지 가끔 강의보면서 새로운 개념을 배울 때, 흥분되거나 웃는 경우도 종종 있었다.
이 강의에서 bitwise operator들에 대해 배울 때, 철학과 수업인 기호 논리학이 도움이 됐었다.
기호 논리학에서 조건문, 연언문, 선언문 등에 대한 진리표가 있는데, 이게 비트 연산에서도 사용되는 개념이었다. 그래서 이 챕터는 어렵지 않게 이해할 수 있었다.
또 다른 것은 0 ~ 100까지의 숫자표다.
어렸을 때, 집의 벽지에 이 숫자표가 있었다. 학창 시절에는 이 표를 활용해서 역사적 사건들의 연도를 외우기도 했었다.
이 table이 다차원 배열에서 특정 원소를 찾아내는 expression을 이해할 때 도움이 되었다.
의외로 신기한 경험이었고, 프로그래밍이 더 재밌게 느껴졌었다.
[홍정모의 따라하며 배우는 C언어] - Inflearn
이 후기가 따배씨를 수강할지 말지 고민하는 분들에게 도움이 되었으면 좋겠다.
이제 C 언어 강의를 다 들었으니 다음으로 무엇을 배워볼지 결정해봐야 한다.
나는 부록 강의를 통해 data structure를 맛보기로 배워보고 난 후에 C++을 수강할지, 아니면 부록 강의 이후에 다른 자료구조/알고리즘 강의를 따로 공부하고나서 C++을 배워야 할지 아직은 결정하지 않았다.
C++을 배우려고 생각하는 이유는 사실 C 언어를 시작으로 하다보니 자연스레 관심이 가는 것도 있고, 객체지향 프로그래밍이 무엇인지, 왜 사용되는지, 어떻게 그러한 방식으로 프로그래밍 하는지 궁금하기 때문이다.
그리고 다음에 배우는 강의에서부터는 이번처럼 벨로그에 자세하게 정리하기보다는, 무언가를 만들어보면서 간략하게 정리해봐야겠다.
악 저도 철학 전공인데 따배씨 강의 리뷰 찾다가 이 글을 발견했어요ㅋㅋㅋ 화이팅해요~!!