티스토리 뷰
물리학과를 졸업하고 나서 막연하게 프로그래밍을 배우자고 생각을 했었다.
프로그래밍을 관심에 두게 된 이유는 당시 내가 생각한 '똑똑한 개발자'라면 분야 한정없이 각 분야의 문제점에 대해 괜찮은 아이디어를 떠올리면 큰 비용을 들지 않고서 소프트웨어 제품(웹 또는 앱)으로 만들어서 세상을 더 편하게 만들면서 수익도 창출할 수 있을 거라 생각했기 때문이다.
2020년 1월, 처음 시작은 온라인 강의로
처음 시작은 온라인 강의를 통해서 토이프로젝트를 만들면서 진행하는 강의를 들었다. 만드는 프로젝트도 간단했고 머릿속으로 생각한 모습들을 몇 줄의 코드로 구현하는 것을 따라 해 보니 코딩이 정말 쉽다고 느껴졌다. 하지만 해당 강의를 끝낸 뒤, 한 달만 지나서 강의 안 보고 혼자서 작성하려고 하니 머릿속에서 결과는 보이지만 막상 코드를 작성하려 하니 이것저것 구글링을 통해서 찾아가며 작성해야 했다. '여러 번' 반복해서 몸에 익혀야 한다고 말하는 수강생들을 보니 '내 노력 부족이구나...'라는 생각과 동시에 마음속 한 켠에서는 '기초가 너무 없어서인 건 아닌가?'라는 생각이 사라지질 않았다.
2020년 7월, 국비지원 교육 이수
온라인으로 강의만 듣다보니 내 시간을 매우 싼 값에 보내고 있을 뿐만 아니라 본가가 지방에 있어서 '구직 활동은 내 실력이 충분할 때, 서울에 지원해서 하면 된다.'는 합리적인 생각으로 가득 차 있었다.
그러던 와중에 신한그룹?에서 진행한 개발자 6개월 교육 후 스타트업에 매칭 하는 프로그램에 지원하였는데 결국 해당 매칭에 탈락은 했지만 국비지원으로 진행하는 '클라우드 기반의 빅데이터 개발자 양성과정'을 해보지 않겠냐는 제안을 받아들여 서울로 올라갔다. (집에서 인강만 보다가는 답이 없을 것 같았다.)
국비지원에서는 커리큘럼이 정말 순식간에 진행되었다. 나는 일주일 늦게 들어갔는데 이미 java를 1주 만에 끝낸(?) 상태였고 아마 SQL을 배우기 시작했던 참이었다. 대부분의 언어들을 일주일에 끝냈는데, 철저히 예습 복습하지 않았다면 (했다고 하더라도) 배웠던 것들이 모두 증발했을만한 '수업 방식'과 '내용'들이었다. 약 4개월간 배운 것만 나열해도 언어로는 java, python DB는 Oracle, MySQL, MongoDB 데이터 처리와 머신 러닝으로 pandas, scikit-learn, tensorflow를 배웠고 정작 시간상의 이유로? 클라우드는 교육 없이 교재만 받았다.
마지막에 프로젝트 진행하는 부분에서는 정말 좋은 팀원들을 만났고, 원래 가고자 했던? 회사 대표님의 지원으로 딥러닝 기반의 사용자 눈에 쌍꺼풀을 생성해주는 '쌍토끼' 어플을 만들고 구글 플레이스토어에 배포 및 사람들이 사용하는 모습을 1~2달 정도 보았다. 수업에서 배운 것을 토대로는 아무것도 할 수 없어서 각 부분에 필요한 기술들을 조사한 다음에 속성으로 배워서 여차저차 서비스까지 만든 걸 보면 '어떻게 했지?'라는 생각도 들지만 '더 잘해볼걸..'과 같은 아쉬움도 많이 들었다.
1. 앱 - 리액트 네이티브
2. 서버 - python Flask가 쉽다고 함.
3. AI 알고리즘 - python pytorch
4. Docker - GPU 환경 셋업 및 추후에 클라우드에서 배포할 때 편하다고 해서 속성으로 배움
-> flask만으로 배포 못하다고 하여 gunicorn + nginx 조합으로 docker 구성
-> 위의 3개를 동시에 올리기 위해 docker-compose도 사용함.
5. AWS P2 -> GPU 환경의 클라우드 서비스, 한 달에 약 300~400 만원이었던걸로 기억함...
지금은 종료된(광고도 안해서 사용자수가 적은 데다가 수익창출 모델을 전혀 생각하지 않음) 쌍토끼 어플 발표를 조장님께서 발표한 영상 (과거에 했던 일들을 동영상으로 남길 수 있어서 정말 좋다)
2022년 1월, 취업 후 POCU 아카데미를 수강
2021년 6월 어찌저찌 하다가 데이터 처리 회사에 취직을 하여 제품 개발 및 데이터 처리 업무를 하고 있는 와중에도 언제 무너질지 모르는 나의 프로그래밍 지식 기반과 속 빈 강정 같은 내 상태에 대해서 고민하다가 POCU 아카데미 강의를 들어보기로 결심하였다. (유튜브 알고리즘으로 포프 선생님의 철학을 여러 번 보았을 때, 현재의 내 모습에서 채워야 할 부분을 달콤한 말이 아닌 직설적으로 느낄 수 있겠다고 느꼈었다.)
2021년 1월에 개인적으로 구매해서 읽었던 'Hello Coding 프로그래밍'을 읽고서 제대로 배우고자 COMP1500을 신청하였다. COMP1500을 해보고자 하는 비전공자분들은 'Hello Coding 프로그래밍'의 목차를 보고 각 단어들이 무슨 의미인지 글로 적거나 남에게 말로 설명할 수 있는지 확인해보고 잘 설명할 수 없다고 느낀다면 해당 책을 읽고서 COMP1500를 수강하길 추천한다. 전공자 또는 코딩을 배워본 비전공자분들은 서점에 방문할 기회가 있으면 해당 책의 챕터별 연습문제 부분만 확인해서 문제를 보고 코드를 머릿속으로 구현할 수 있으면 COMP1500을 수강하는데 큰~ 문제는 없을 거라고 생각한다.
POCU 아카데미의 구성은 동영상 강의+가이드(코드 실습, 과제 및 시험을 통한 교육)로 되어있으며 강의만 구매해서 학습을 할 수도 있다. 동영상 강의만 결제했으면 그렇게 금전적인 부담이 들지 않았을터이지만 학기 수강은 금액이 만만치 않아서 조금 고민을 했지만 제공되는 요소들을 보면 '학습 효과'는 하늘과 땅 차이일 것임이 분명해 보여 결제하고 학기를 시작하였다. ( 평소에 뇌 또는 학습법에 관한 책에 관심을 두고 관련 책들을 찾아서 읽고 있는데 대부분의 책에서 학습의 가장 좋은 모습들인 '복습, 과제, 스스로 찾아보기, 시험, 남에게 알려주기 등'을 통해 지식을 내재화 또는 몸으로 체득하는 내용에 부합하는 요소들을 포함하고 있는 구성이어서 더 마음이 끌렸다. )
학기 신청 및 진행과정은 POCU 아카데미 공식 사이트에서 할 수 있으며 동영상 강의는 POCU 아카데미 공식 사이트 또는 Udemy 교육 사이트에서 선택적으로 구매할 수 있다.
학기 등록을 하게 되면 가장 먼저 'Slack'이라는 애플리케이션에 가입하게 되는데 여기에서 각 실습, 과제, 시험에 대한 정보를 제공받을 뿐만 아니라 학습하면서 궁금한 부분을 질문하여 같이 수업을 듣는 수강생 또는 조교, 포프 선생님의 답변을 받을 수 있다. 최대한 본인이 모르는 부분에 대해서는 구글에서 검색을 통해 찾아보는 것이 가장 좋으며 질문의 내용이 충분히 구글에서 찾을 수 있는 내용일 경우에는 답변으로 '구글에 XX라는 키워드로 검색해서 찾아보세요.'라는 대답을 들을 수도 있다. 내가 생각하기에 가장 좋은 질문은 구글에서 검색을 통해서 찾은 내용을 읽어보고 이해가 안 될 경우에는 '어느 부분에서 어떻게 이해가 안가는지'를 정리해서 질문을 하면 가장 원하는 대답을 빠르게 얻을 수 있지 않을까 싶다. ( Slack에 직접적으로 말하기 어려운 분들은 매주 주어지는 들어야 할 강의 범위, 실습 또는 과제에 대해서 Slack에서 '구글 설문지' 형태로 질문을 할 수 있도록 마련되어 있으므로 이를 통해서 질문을 할 수도 있다. 이 질문지를 통해서 한 질문들은 포프 선생님이 직접 답변을 달아주신다. )
프로그래머의 길을 걷고자 하는 사람들에게 스스로를 객관적으로 평가할 수 있는 메타인지 능력을 일깨워줌
'COMP1500' 강의는 'C#'이라는 프로그래밍 언어 자체를 가르치는 강의가 아닌 '프로그래밍의 기초'를 알려주는 강의이다. 강의에서 굳이 왜 'C#'을 사용하는지는 위의 유튜브 영상에서 강사님의 설명을 들어보자.
실제로 강의를 듣다 보니 이전에 공부했던 Javascript, Python, Java에서 봤었던 익숙한 표기법들이 되게 많이 보였다. 삼항 연산자(ternary operator)라던가 javascript에서 봤던 `list.filter(each => each > 0)` 와 같은 표현법들이 C#에서도 볼 수 있었다.
아래는 학기 신청 후 마지막 기말고사까지 진행하면서 느꼈던 장점들이다.
1. 강의 진도만 나가려고 했던 학습 태도 탈피
평소에 프로그래밍 관련된 공부를 한다고 치면 두꺼운 책을 몇 장 읽다가 말았더니 책만 쌓여 있고 유튜브나 인터넷 강의를 들을 때도 머릿속으로는 이해가 되니 강의를 한 번에 여러 개를 다 보고 나서 스스로 '많이 알게 되었다.'라고 만족하며 거기서 끝을 내버렸다. (아마 구글 검색 없이 코드 작성하라고 누군가 2일 뒤에 시켰으면 못했을 것이다.)
POCU 학기를 진행하면 친절하게도 각 주차별로 동영상 강의를 '어디까지' 봐야 하는지 가이드를 해준다. ( 아카데미에서는 해당 주차의 강의에 맞추기보다는 1~2주 미리 볼 것을 추천한다. 왜냐하면 실습의 경우는 해당 주차(1주일)의 강의 내용을 보고 풀 수 있지만 과제의 경우는 제출기한을 4주로 넉넉히 주는데, 이 말은 4주 동안 배운 내용을 활용해야 풀 수 있는 문제일 수도 있기 때문이다. 그러니 미리미리 공부해서 과제도 마지막 주에 허겁지겁하기보다는 미리 끝내 놓고 어떻게 하면 더 깔끔한 코드로 작성할 수 있을지 생각해 보는 것이 좋다. )
회사에 다니면서 강의를 수강하다 보니 처음에는 내용도 쉽다고 느껴서 느긋하게 매주 주어진 할당만 하면 괜찮겠지라고 생각했다가 점점 강의를 보는 시간도 불규칙해지고 못보는 경우도 많아서 뒤로 갈수록 쫒아가는 꼴이 되어버렸지만... 적지 않은 강의를 일주일에 몰아서 다 듣고서 '다 알게 되었다'는 착각의 늪에 빠지지 않고 강의를 통해 배운 내용을 복기하고 실습, 과제를 통해서 다시 한 번 복기하고 중간고사와 기말고사(책이나 검색 완전 금지, 매우 엄격하다, 웹캠을 키고 시험을 진행하기 때문에 자신의 뇌와 몸(?)의 지식으로 풀어야함)를 통해서 더욱 더 내 자신의 지식으로 습득하는 과정을 겪어보니 학습(익히고 습득)이란 보고 듣는 행동을 100번 하는 것이 아닌 보고 들은 것을 '내 스스로'가 보고 들은 것을 그대로 '스스로 할 수 있을 때까지' '직접 행하는 행동'임을 깨달았다.
2. 빌드봇을 통한 실습, 과제 채첨 경험 ( 테스트 케이스 )
실습/과제에 대한 코드를 작성하고 '테스트 케이스'까지 돌려서 '본인의 손'에서 검증을 마치고 나서 빌드봇에게 '내 코드' 검사해달라고 요청하면 위의 이미지처럼 POCU 아카데미에서 준비한 '테스트 케이스'로 코드 검사를 진행한 다음 결과를 알려준다. 학기 수업에서는 POCU 아카데미에서 제공하는 '기본' 테스트 코드뿐만 아니라 '위키 페이지'에 선배 수강생분들이 자신이 직접 만든 '테스트 케이스' 코드를 올려놓아서 해당 코드로 내 코드를 테스트할 수 있다. 빌드봇을 2~3번 괴롭힐 것을 1번으로 줄일 수 있으므로 선배님들의 테스트 케이스를 '잘 읽어보고' '잘 활용하자' 그리고 부족한 부분이 보인다면 본인이 직접 '잘 만들어보자'
3. 유용한 참고자료들
그 외에 여러 유용한 참고자료들도 많아서 학습에 많은 도움을 주었다. 강의에서 중간중간 보여주는 '코드 슬라이드'도 직접 넘겨가면서 확인할 수 있고 '샘플 코드'도 제공된다. 그리고 POCU에서 만든 'C# 코딩 표준(코딩 스타일)'에 대한 문서도 제공하고 있어서 '좋은 코드'에 대한 감을 잡을 수 있다.
마치며
학기 마지막 과제를 진행하던 와중에 암투병으로 2년간 잘 이겨내셨던 아버지께서 마지막에 진행한 항암치료가 맞지 않아서 하늘나라로 가셨다. 평소 강의를 2주 정도 미리 들어놓았으면 더 좋았을 텐데 이러한 상황에 놓여있자니 집중하기가 쉽지가 않았다.
장례를 다 치른 후에 그 주 일요일까지는 기말고사를 치러야 해서 토요일에 남은 강의를 마저 듣고(LINQ와 디렉터리 파트) 다음날인 일요일에 기말고사를 치렀다. ( POCU 중간/기말고사는 웬만한 준비로는 고득점을 받기 힘들다 )
중간고사에 비해 많은 준비는 못했지만 강의와 실습/과제를 하면서 '어느 부분을 조심해야겠다.' 라던가 '이 부분은 정말 강조를 많이 하시는구나'라고 느꼈던 부분을 생각하면서 시험을 치렀는데 걱정했던 것보다 오히려 가볍게(?) 시험을 치렀다. 매주 이해 기반의 개념 강의를 듣고 이를 실제로 손으로 작성해보는 실습/과제를 진행하다 보니 자연스럽게 나의 지식이 되어서인지 시험에서 어느 부분이 잘못되었고 어떤 결과가 나타날지 눈에 보이는 느낌이 들었다. 대학 학부시절 시험 전날에 그 많은 시험 범위를 처음부터 끝까지 보고자 했던 내 모습을 떠올리니 '정말 제대로 몰랐구나...'라는 생각이 들었다.
COMP1500을 듣고 느낀 것은 내가 바라던 강의 모습과 가깝다는 것이다. 아마 이런 느낌은 동영상 강의만 수강했으면 들지 않았을 것이다. 강의 내용 자체는 내가 원했던 방식이었지만 해당 내용을 몸으로 습득하기에는 POCU 학기 프로세스가 정말 효과가 대단했다.
회사를 다니거나 아니면 향후 내가 하고자 하는 사업을 진행하든 간에 POCU 아카데미에서 제공하는 강의들을 모두 수료하고자 한다. 각 강의들은 해당 강의에서 가르치는 내용에 한정되어 있지 않고 프로그래머로써 마주치는 여러 가지 상황에 대해 무엇을 봐야 하고 어떤 방식으로 접근해야 하고 어떻게 해결해야 하는지를 알려주는 지혜를 알려줄 내용들이라고 느꼈기 때문이다.
* COMP1500은 다른 COMP 강좌들에 비하면 정말 정말 정말 친절한 코스라고 포프 선생이 말하셨다.
음... 열심히 해야겠다.
'POCU' 카테고리의 다른 글
개발자를 고민하는 사람들이 꼭 보면 좋은 책 (0) | 2022.11.20 |
---|---|
'중간부터 시작하기' 도구가 적용된 실습/과제들 (0) | 2022.11.07 |
[2500] 캡슐화와 추상화 간단 설명 (0) | 2022.10.29 |
[2500] OOP의 필요성에 대해서 (0) | 2022.10.28 |
POCU 프로그래머 기본 수학 강의(COMP1000) 후기 (2) | 2022.08.15 |
- Total
- Today
- Yesterday
- 패턴형성
- 지속 가능한 습관
- 김포프
- 다형성
- 상위 20% 능력 학습
- POCU
- 천재를 이기는 타이탄의 도구들
- Pope Kim
- 캡슐화
- Java
- 상속
- 패턴인식
- 늦었을 때가 가장 빠를 때다
- 유추
- 습관을 바꾸는 방법
- 습관 버리기
- OOP
- 생각의 탄생
- 젊을 때 읽을수록 더 좋음
- 몸 최적화
- 인생 필수책
- 관찰
- 개발자
- 감정이입
- 프로그래밍
- 추상화
- 형상화
- 빌드봇
- 디자인 패턴
- 쉬운 책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |