10년 뒤에도 대우받는 슈퍼 초 울트라 엘리트 프로그래머~~ 양성기관 포큐아카데미의 가장 첫 번째 과목
한줄 평 : 경험해보지 못한 교육, 입문자에겐 최고난도의 코스
이번에 포큐아카데미의 걸작 COMP1500 : 프로그래밍 입문(C#) 풀코스를 듣게 되었습니다. (짝짝짝)
C# 이라고 적혀있기는 하나 이 강의는 C# 이라는 한 언어를 배우는 게 아닌
프로그래밍 전반의 기초기반을 다지기 위한 포석 같은 강의라고 생각하시면 됩니다.
후기를 시작하기 전에 코스 이름을 보면 한가지 의문이 든다.
왜 C#일까?
입문할 수 있는 다른 언어들도 많은데 왜 하필 C#일까?
"Python, C, Java 등등 으로 입문하라"는 얘기는 들어봤어도
"C#으로 입문한다." 는 귀 달고 태어나서 처음 듣는 얘긴데..(-_-)?;;
이 에 대한 이유는 강의에 나오는데 다음과 같다.
1. 깔끔 하고 간결하다.
2. 사용자가 실수를 하기 어렵다.
3. 아주 뛰어난 개발 환경을 가지고 있으며
4. 아주 아주 뛰어난 설명서를 가지고 있다.
"C# 은 타 프로그래밍 언어의 미래상을 제공하는 언어이다."
그렇다. C#은 깔끔하고 구문이 명시적이면서 간단하고 디버깅하기도 쉽고 안전하고 유지보수도 쉽고 개발환경도 뛰어나고 어떠한 언어보다 문서화가 잘되어 있고 라이브러리도 많고 타 프로그래밍 언어의 등대이자 길잡이 미래상을 제공하는 언어이다.
(C# 만세~~~~)
궁금증도 해결 했으니 이제 제대로 COMP1500 코스에 대해 알보도록 하자
COMP1500 풀코스는 4개월 동안 진행되며 중간고사를 기준으로 전과 후로 크게 나눌 수 있는데
각각 가르치는 내용이 다음과 같다.
중간고사 전: COMP1500 코스의 중점! 프로그래밍 언어의 기본 (로직을 코드로 표현하는 방법과 상태를 저장하는 법)
- 사실 중요도로 따지면 중간고사 후 보다 중간고사 전이 훨씬 중요하다.
- C#을 배운다기 보단 모든 언어에 공통적이며 프로그래머로써 평생 다뤄야 할 주제들을 가르친다.
- 프로그래밍 언어의 기본인 만큼 만들어진 기능을 사용하는 것보단 기계와 밀접한 구문들을 사용하여
코드가 어떻게 돌고 컴퓨터가 데이터를 어떻게 처리하는지에 대한 수업을 진행한다.
중간고사 후: C# 및 최신 프로그래밍 언어에서 찾을 수 있는 기능과 개체지향 프로그래밍(OOP) 맛보기
- 다른 언어에는 없거나 혹은 일부 언어에만 있는 기능들을 다룬다.
- 타 프로그래밍 언어의 미래상인 C#의 몇가지 기능을 알아보면서 "아.. 이런 효율적인 기능도 있구나", "이런 기능은 이럴 때 쓰면 좋겠구나" 생각할 수 있는, 조금 지루했던 중간고사 전보단 좀 더 재미있는 수업을 진행한다.
수업의 내용은 이정도로 나눌 수 있고 자세한 커리큘럼은 바로 밑 링크에서 확인 가능하다->>>https://pocu.academy/ko/Courses/COMP1500<<<
위에서 "중간고사" 라는 단어를 언급했는데 언급한 김에 COMP1500 풀코스의 구성요소를 알아보도록 하자.
(호호^^ 자연스러웠어.)
COMP1500은 실습 11개, 과제 4개, 중간고사, 기말고사로 이루어져 있다.
먼저 실습과 과제에 대해 설명하자면
실습은 매주마다 실시하며 제출 기한 1주가 주어지고
과제는 3~4주에 한 번씩.. 제출 기한 3~4주가 주어진다.
한 달에 실습 4개 과제 1개라고 말하면 될걸 왜 이렇게 어렵게 적고 있을까?
아무튼 실습과 과제는 동영상 강의에서 배운 개념들을 토대로 적절히 활용, 구글링 하여
해결할 수 있는(?) 난이도로 주어진다.
그런데 이 실습과 과제 심상치 않다. (-_-);;
입문 과정임에도 불구 상당한 논리력을 요하고 몇몇 입문자들은 수십 시간을 소비해가며 겨우 마감시간에
맞춰서 끝내기도 하며 결국 끝내지 못하는 수강생들도 속출했다.
그렇다고 손도 못 댈 난이도는 아니며 통과한 수강생들이 과반수일뿐더러 "Slack" 이라는 토론방에서 수강생들끼리 서로 으쌰 으쌰 해서 정보를 공유하기도 하고 도중에 방향이 잘못 흘러가고 있다고 판단되면 포큐 아카데미의 훌륭한 조교님들이 나서서 방향을 제시해주기 때문에 열심히 노력한다면 충분히 끝낼 수 있는 난이도라고 생각된다.
(흠흠.. 본인 자랑을 하자면 본인도 실습과 과제 모두 통과했다.)
또
실습, 과제는 실제 업계처럼 구현에 대한 정보를 모두 알려주지 않고 몇몇 개의 주어진 힌트를 보고 요구하는 바를 유추해 코드를 작성할 수 있도록 만들어져 있어 문제 해결 능력 향상에 큰 도움이 되지 않았나 싶다.
그렇다면 실습과 과제는 어떤 방식으로 진행될까?
1. 먼저 실습, 과제를 시작하기 전 동영상 강의를 통해 개념을 익힌다.
2. 실습, 과제 설명을 보면서 코딩한다.
2-1. 만약 중간에 막히면 구글링 하거나 검색해도 해결할 수가 없었다면 "Slack" 토론방에 질문한다.
2-2. 궁금증이 해결되었다면 2번으로 돌아간다.
3. 코딩이 끝났으면 자가 테스트를 한 후 "빌드 봇"이라는 자동 채점 시스템을 사용하여 채점을 받는다.
4. 채점이 끝나고 100%로 통과되었으면 끝, 아니라면 "빌드 봇"이 뱉어낸 감점 사유를 보고 2번으로 돌아간다.
실습과 과제가 어떤 식으로 진행되는지 간단하게 설명했다.
중간중간 다른 색깔로 강조해놓은 키워드들이 보이는가..
포큐아카데미에서 찐빵의 단팥, 피자의 치즈, 뽀로로의 안경 같은 역할을 맡은 요소들이다.
자 그럼 포큐아카데미에서 찐빵의 단팥 역할을 맡은 토론의 장 "Slack"에 대해 알아보자
Slack은 현업 개발자들이 유용하게 사용하는 협업용 도구이다. (디스코드 비슷하게 생각하면 될 듯하다.)
포큐아카데미에선 질문과 토론의 장으로 사용되고 있고
수강생들이 해당 코스를 무사히 통과할 수 있도록 하는 핵심 요소라고 볼 수 있다.
Slack 토론방에서 발생되는 상황들을 몇 가지 소개하자면
아래와 같이 조언을 구하여 도움을 주는 수강생들도 있고
질문을 통해 답을 얻어갈 수 도 있다.
후에 좀 더 좋은 코드를 작성할 수 있도록 코드 리뷰
훈훈...흐뭇..
이 외에도 잡다한 질문이나 실습의 테스트 케이스, 좋은 자료가 있으면 서로 공유하기도 한다.
이렇게 서로 으쌰 으쌰 하고 에너지가 되다 보니 포기할 사람도 끝까지 할 수 있게 분위기가 만들어졌고
본인도 슬랙 방을 다시 돌아보니 "이 정도로 수강생분들(저 포함)이 많이 발전했구나" 하고 느끼는 계기가 되었다.
포큐아카데미에서 피자의 치즈 역할을 맡은 24시간 자동채점 시스템 "빌드 봇"
빌드봇은 실습과 과제를 채점해주는 포큐아카데미의 자동 채점 시스템이다.
수강생이 제출한 실습과 과제의 코드를 내부에서 테스트하고 그 결과를 Slack에 뱉어주며
어떤 테스트가 실패했는지와 함께 실제 업계에서 사용하는 코딩 스타일로 코딩 스타일을 점검해준다.
과제와 실습은 마감기한 내에 무한대로 제출이 가능하게 하여
수강생이 계속 고치고 고쳐서 자신이 어디서 부족했는지 알 수 있게끔 한다.
제출 시간도 정해진 것 없이 24시간 돌아가기 때문에 사실상
포큐아카데미의 노예 수강생들을 도와줄 수 있는 1:1 맞춤 조교인 셈이다.
실습을 제출하면 빌드봇이 채점하여 다음의 메시지를 출력하여 주는데
테스트라고 써진 파란색 문장을 누르면 해당 테스트가 어떤 테스트를 하는지에 대한 정보가
코딩 스타일을 누르면 수강생이 작성한 스타일이 어떤 스타일 위반인지 알려주는 링크로 이동된다.
안타깝게도 왜 틀렸는지는 알려주지 않는다.
스스로 코드를 시뮬레이션, 디버깅하면서 잘못된 부분을 찾아 문제를 해결하는 게 포큐의 교육방향이기 때문이다.
드디어 기말고사, 중간고사에 대해 알아볼 차례가 왔다.
열심히 달리고 달려 실습과 과제를 모두 100%로 통과했다면 해당 코스를 통과할 수 없다.(응?)
왜냐... 바로 시험이 남아있기 때문이다.
포큐아카데미의 코스를 통과하려면 시험+실습+과제 가 85점
이상이 되어야 하는데 평가 기준이 아래와 같다.
"실습도 중요하고 과제도 중요한데 무슨 시험만 비율이 저렇게 높아"
라고 생각할 수 있는데 실습과 과제를 끝냈다고 해서 알아야 하는 개념들을 이해했다고 할 수 없다.
그래서 제대로 이해했는지를 물어보는 시험이 실습, 과제 보단 비율이 높은 것이며 시험을 잘 치러야 어느 정도 제대로 공부했다고 할 수 있는 것이다.
"에이 그래도 시험이 얼마나 어렵겠어"
라고 생각한다면 개인적인 생각이지만 "어렵다."라고 말하겠다. 모든 문제는 주관식으로 출제되며
"어떠한 개념을 설명하는 문제"와 "해당 코드에 오류가 있는지 없는지", "주어진 코드가 해당 데이터를 어떻게 처리할지",
"개발 툴 없이 어떤 문제를 해결하기 위한 코드를 작성할 수 있는지" 등등 에 대한 유형의 문제가 대략 35~45문제 정도 나온다.
그리고 혹시 발생할지도 모르는 컨닝을 방지하기 위해 아무도 없는 공간에서 캠을 켜고 진행하기 때문에 긴장 또한 배가 된다.
그렇다고 막무가내로 풀지 못하는 어렵기만 한 시험은 아니다.
개념을 제대로 이해했다면 충분히 유추할 수 있는 곳에서 좀 더 생각해야 하는 어려운 문제들이 나오는 것이고
그런 문제를 풀어봐야 후에 "난 이 개념 확실히 알아", "나 제대로 공부했다"라는 말을 할 수 있을 것이다.
COMP1500 동영상 강의의 질은?
부족함이 없다.
강사님이 현업에서 오랫동안 종사하신 만큼
동영상 강의도 상당히 체계적으로 되어 있는데
실제 업계에서 많이 쓰이고 중요한 부분,
몇몇 업계에서 쓰이는데 나중에 찾아서 쓸 정도만 알면 되는 부분,
별로 쓰이지 않고 사용하지 않는 부분을 슬라이드 표기법으로 나눠서 진행하며
어떤 기능이나 구문을 언제 어디서 쓰면 좋은지에 대한 모범 사례,
코드를 보는 관점, 올바른 습관, 생각할 여지, 실무적 지식까지 남겨주는 강의이다.
포큐아카데미는 츤데레?
"강사와 조교는 웹에서 찾을 수 있는 질문에 대해서는 답변해드리지 않습니다.
구글링을 잘하는 것은 개발자가 가져야 할 필수 덕목입니다."
포큐아카데미의 교육 방식이다.
수강생들이 최대한으로 발전할 수 있게 츤데레적인 모습을 보여주는데
포큐아카데미는 입 앞까지 떠먹여 주는 게 아닌 스스로 생존할 수 있는 힘을 기르길 바란다.
이번 학기를 마치며 느낀 점...
확실히 프로그래밍에 대한 기본기가 크게 향상되었다.
재귀 함수에 대한 이해와 구글링 방법, 부족한 기초적인 개념들을 다시금 생각하게 되는 계기가 되었고
코드를 어떻게 하면 가독성 좋게 짤 수 있는지, 질문은 어떻게 해야 하는지 대한 좋은 습관도 얻었다.
또 후기를 작성하면서 몇몇 부정적인 글들을 읽었는데 동의하는 부분도 있었고 그렇지 못한 내용도 있었다.
Slack 방을 보다 보면 종종 몇몇 분들이 감정적인 뉘앙스를 풍기거나 그런 답변을 할 때면 당사자가 아닌 나조차도
"이럴 필요까진 없지 않나" 생각이 들었고 그다지 좋게 느끼진 못했다.
하지만 이건 사람의 문제이지 포큐아카데미의 문제가 아니니 크게 신경 쓰지 않겠다.
본인은 앞으로 포큐아카데미를 끝까지 수강할 생각이다.
내가 만족하지 못했다면 이렇게 후기를 작성하는 게 모순된 일일 것이고
자신 있게 "포큐아카데미 하세요"라고 말할 수 없었을 것이다.
사실 위에서 이 코스는 어렵다고만 언급했는데 개인적으로 상당히 재미있었고
어려운 문제를 풀고 이해할 때마다 느껴지는 성취감 또한 맘에 들었다.
이 코스는 진지하게 프로그래밍을 공부하며 열정을 쏟아부을 수 있는 사람이라면 충분히
도전해볼 만한 코스라고 생각한다.
만약 이 코스를 수강하겠다고 마음먹었다면 학기가 끝나갈 때 즈음 프로그래머가 자신의 적성인지 알 수 있을 것이다.
이상 긴 글 읽어 주신 분들 감사하며....
"여러분 제발 포큐아카데미 하세요."
+ 포프 님, 조교님들, 개발 지원 조교님들, 같이 열심히 수강한 수강생 여러분들 모두 진심으로 감사드립니다.(_ _)
포큐아카데미 홈페이지->https://pocu.academy/ko