자유/잡담

[POCU 아카데미 후기] C언어, 어디서도 경험할 수 없는 강의

Chipmunks 2020. 4. 26. 22:59
728x90


안녕하세요. 이번 학기도 POCU 아카데미와 함께 보낸 다람쥐입니다.

올해 초 1월 6일부터 4월 20일까지 POCU 아카데미의 COMP 2200 'C, 언매니지드 프로그래밍' 코스를 이수했습니다.

이번 POCU 아카데미 코스가 벌써 세 번째네요.


1. POCU 아카데미 COMP 3200, 'C++ 언매니지드 프로그래밍'

2. POCU 아카데미 COMP 1500, 'C#, 프로그래밍 입문'


포큐 아카데미의 과목 번호가 높을 수록 나중 학기에 해당됩니다.

현재 포큐 아카데미의 코스 정보를 보시려면 이 곳을 클릭해 주세요!

5월 학기부터 COMP 2500, '개체지향 및 프로그래밍 설계 (Java)' 코스가 새로 추가됐으니 참고 부탁드립니다!


COMP 2500, '개체지향 및 프로그래밍 설계 (Java)' 수업 소개 : https://www.youtube.com/watch?v=FLX17f4Ygi0


어디서도 볼 수 없는 POCU 아카데미 시스템

어디서도 볼 수 없는 포큐 아카데미만의 시스템은 COMP 3200, COMP 1500 게시글에 자세하게 작성했습니다. 다시 한 번 정리 하자면 다음과 같습니다.

  1. 온라인 강의 플랫폼을 사용
  2. Git과 Slack 앱을 활용한 과제 채점 시스템
  3. Slack 앱에서 자유로운 코드 리뷰 문화
  4. 독한 마음가짐이 아니면 수료하기 어려운 제도


1번 POCU 아카데미의 온라인 강의 플랫폼은 이전에는 Udemy 사이트로 강의 영상을 업로드 했습니다. 그런데 동영상 끊김 문제가 심해서 이번에는 온라인 강의 플랫폼을 이동했는데요...

( 너무 심해서 Udemy 사이트에 쓸 VPN을 포큐 아카데미에서 제공하기도 했답니다.. )

Teachable.com 과 연결해 포큐 아카데미 전용 강의 플랫폼으로 만들었습니다.

이제는 동영상 강의를 듣는데 끊기거나 하는 문제는 전혀 없었습니다.


POCU 아카데미, C 코스를 듣게된 계기

포큐 아카데미 COMP 2200, 'C 언매니지드 프로그래밍' 코스 이수를 결심하게 된 계기는

늘 포프님이라면 어떻게 C언어를 설명해줄까, 라는 궁금증이 코스가 개설이 되기 전 부터 있었던 것 같습니다.

'C++ 언매니지드 프로그래밍' 과목과 'C# 프로그래밍 입문' 과목을 들으면서, 늘 표준과 실제 업계에서는 어떤 관점으로 바라보고, 어떻게 사용하는지를 알려줬습니다.

어떤 프로그래밍 기관을 가도 제일 처음으로 C언어를 배우고 시중에 C언어 책이 판치는데,

그렇다면 그것들과 어떤 차별점이 있는지 궁금했습니다.

저도 여러 프로그래밍 언어 강의를 하고자 마음을 먹었지만, 내 콘텐츠가 다른 강의 게시글과 어떤 차별점을 만들지부터 막혔습니다.. 일종의 영감(?)을 얻고자 코스 수강을 결심했습니다.


POCU 아카데미, C 언매니지드 프로그래밍 과목을 88%로 이수한 지금에서 돌이켜 생각해보면, 그 답을 찾았습니다.

여태까지 많은 기관의 강의를 듣고 많은 C언어 교재를 봤지만,

포큐 아카데미처럼 가르치는 곳을 한 번도 못 봤습니다.

그 비법은 'C 표준'에 있었습니다. C++도 시간 흐름에 따라 강의 구성이 됐었는데요.

전통 C++과 최신 C++을 구분해 세 파트로 구성을 했던게 기억에 남았습니다.

그래서 C도 전통 C부터 최신 C 기능까지 구분을 정확히 한 상태에서 강의 진행을 하지 않을까 기대를 했었는데 그 기대 이상으로 만족했습니다.


포큐 아카데미의 C언어 강의 역시 C89 표준부터 C99, C11 으로 나눕니다.

처음부터 비주얼 스튜디오로 마이크로 소프트에서 덕지덕지 붙인 C언어로 시작하는 것이 아니라, CLang 컴파일러로 C89 표준부터 C언어를 바라봅니다.

최신 C버전으로 갈 수록, 어떤 문제점이 있고 어떻게 개선했는지 C언어 역사를 경험할 수 있었습니다. 더불어 그 기능들이 현업에서는 어떤 관점으로 바라보고 있는지도 확인할 수 있습니다.


C89 표준에서는 블록의 최상단에만 변수 선언이 가능하고, 한 줄 주석(//)이 없었다는걸 아시나요? 단순히 안 다는 것 뿐 아니라, 여러가지 과제로 다양한 C 표준을 몸으로 부딪혀보니 과목을 수강하길 잘했다는 생각이 들었습니다.


< POCU 아카데미 C 언매니지드 프로그래밍 결과 >


과제2를 너무 늦게 시작해 92점이라는 아쉬움이 있었네요...

예비 수강생분들 꼭 미리 미리 하세요!

중간고사를 생각보다 못 봐 87.5%로 아슬아슬(?)하게 85%의 기준을 넘겼습니다.

대략 상위 20% 내외로 85% 수료가 되었다는 걸 알 수 있는데요.

여태 들었던 어느 수업들보다 빡센 수업이 될 겁니다...


---


기말 고사 문제 두 개가 애매하다는 주장이 받아들여 ( register 배열, 리틀엔디안과 빅엔디안 논란) 제가 쓴 답들도 정답 처리가 됐습니다. 그래서 89%로 올랐습니다! 올레~


시중에 있는 강의와 교재와 어떤 점이 다른지?

강의 커리큘럼에서 구체적으로 시중의 강의 또는 교재와 어떤 점이 다르냐, 를 정리해봤습니다.

( 난이도부터 차이가 있지만.. )

  • assert 쓰는 법

  • goto의 오해와 잘 쓰는 법

  • 컴파일과 링크, extern 및 static

  • 코딩 컨벤션 ( NULL이 포함될 수 있다면 or_null 을 붙일 것, 반환값으로 나온 힙 메모리 주소를 호출자가 직접 해제해야하는 경우 _malloc 를 붙일 것 )

  • 가변 인자 함수

  • 레지스터

  • 해쉬맵

  • C에서의 inline의 오해와 올바르게 쓰는 법, 잘못 썼을 때의 사이드이펙트

  • restrict

  • type-generic

  • static assert

  • annonymous struct, union

  • multi threading

포인터 개념은 오개념 없이 정확하게 얻을 수 있습니다.

한 달도 채 안돼 포인터 개념을 모른다면 해결할 수 없는 실습과 과제로 모를래야 모를수가 없게 훈련시켜줍니다!

강의 전반적으로 하드웨어에서 어떻게 동작하고, C언어 코드에 해당하는 어셈블리어 코드로도 설명을 많이 해줍니다. 함수 호출을 설명할 때는 스택프레임으로 설명합니다. 메모리 영역을 그림으로 표현해 하드웨어 내부에서 어떻게 돌아가는지를 강조합니다.


소형 하드웨어에 C언어가 쓰이는 경우가 많기에, 그 관점으로도 설명을 보충해줘서 더 좋았습니다. 그래서 이런 경우들이 실생활에 있고 어떻게 대처해야 겠다, 라는 것들을 배우는 단계에서 습득할 수 있습니다.


POCU 아카데미의 과목 가격

대학교의 등록금과 유명한 프로그래밍 교육 업체의 가격을 알고 계신가요?
당장 저의 모교만 해도 한 학기에 400만원이 훌쩍 넘습니다.
유명한 프로그래밍 교육 업체는 오프라인 7~8주 기준으로 200만원이 넘는 돈을 받습니다.
POCU 아카데미 한 학기에 해당하는 16주 이상은 400만원 이상입니다.
그런데 이상한 점은, 배우는 내용은 거기서 거기입니다.
오프라인은 널린 자료구조와 알고리즘 내용으로 조금 보충해 주는 정도죠.
그 내용 정도는 총 10만원 안팎의 시중에 파는 교재 몇 개만 봐도 다 나와 있습니다.
단편적인 지식은 인터넷 자료로도 많이 있습니다.
그 정도로 프로그래밍 강의에 돈을 지불하는 것은 비효율적이라고 생각하는 사람입니다.

그런데 POCU 아카데미에서 배운 내용은 그 어떤 곳에서도 접하지 못합니다.
그리고 가격도 대학교 한 과목 가치에 해당하는 80만원입니다.
온라인 강의만 결제해도 20만원입니다.
POCU 아카데미의 도움 없이 그 정도 내용을 몸으로 이해하고 경험하려면,
실제 업무 환경이 아닌 곳에선 절대로 경험할 수 없기에
더 이상 비용의 문제가 아닌 많은 시간, 많은 세월을 필요로 합니다.

지금도 프로그래밍 강의에 돈을 지불하는 것이 비효율적이라 생각하지만,
아무리 생각해도 POCU 아카데미에 단 16주의 시간과 비용을 투자하는게 더 낫다는 판단이 나왔습니다.

주변 지인이 C언어 강의를 추천해달라 하면,
한 치의 망설임도 없이 POCU 아카데미를 추천할 겁니다.
( 실제로도 지인 몇몇에게 강의를 추천해 줬습니다. 하나같이 수준 높은 강의에 큰 충격을 받았습니다. )

탑티어 프로그래머가 되고 싶은가요?

POCU 아카데미는 현재 교육 트렌드인 '모두를 위한 교육'을 거부합니다.

이런 교육은 상위 1% 프로그래머가 되고자 하는 사람들에게 독이 됩니다.

( 공교육과 사교육의 차이를 생각하시면 될 것 같습니다. )

POCU는 미래에 탑티어 프로그래머로 성장하고자 하는 사람들을 위한 기관입니다.


누구나 듣는 쉬운 강의, 누구나 보는 쉬운 교재로는 탑티어로 성장할 수 없습니다.

시중에 어떤 강의도, 어떤 교재도 C89 표준부터 가르치지도 않을 뿐더러, 포인터 개념도 제대로 가르치지 않고, 코딩 컨벤션의 중요성, 현업의 상황을 알려주지도 않습니다.

그것들은 여러분들에게 오개념을 심어주고 성장하는데 발목을 잡을 겁니다.

진지하게 프로그래머라는 직업을 생각한다면, 포큐 아카데미를 추천합니다.




POCU 아카데미 바로 가기https://pocu.academy/ko

POCU 아카데미 'C, 언매니지드 프로그래밍' 9월 학기 대기자 작성하러 가기 https://pocu.academy/ko/Courses/COMP2200