1. freecodecamp?
freecodecamp는 2014년에 설립된 코딩을 가르쳐주는 비영리 집단입니다. freecodecamp 측에 따르면 freecodecamp로 코딩을 배운 4만명 이상의 사람이 구글, 마이크로소프트 등의 IT 회사로 갔다고 합니다. 이런 얘기를 보니까 freecodecamp의 시스템에 신뢰도가 올라가는 느낌이 듭니다.
freecodecamp는 총 11가지의 인증 과정을 갖고 있고, 이 외에도 여러 유용한 글을 올리는 news 와 관련 내용을 동영상으로 알려주는 youtube channel 및 다양한 내용에 대해서 물어보거나 새로운 글을 올릴 수 있는 forum을 갖고 있습니다.
11가지의 Certification은 여러 Course(ex. Basic H)TML and H)TML5)와 5개의 Project(ex. Build a Tribute Page)로 이루어져 있고 하나의 Course는 여러 개의 Challenge(ex. Say H)ello to H)TML Elements)로 이루어져 있습니다. 앞으로도 Certification, Course, Project, Challenge라는 용어를 계속 사용할 예정이니 기억해주시면 감사하겠습니다.
freecodecamp의 학습 방식은 기본적으로 하는 것을 통해 배우는 방식입니다. 이 Challenge 화면을 보시면 무슨 말인지 이해하실 수 있습니다. 좌측 부분에는 Challenge에서 배우게 될 내용을 설명해준 후 Challenge를 넘어가기 위해 풀어야 할 문제를 설명해줍니다. 가운데 부분은 답을 적을 수 있는 코드 에디터 부분이고 우측은 코드가 그리는 H)TML 문서를 보여주는 부분입니다. 이와 같이 한 화면에서 내용 설명 -> 문제 풀이 -> 결과 확인 까지 할 수 있습니다.
Challenge 다음에는 Project가 있는데 Challenge에서 배운 내용 뿐만 아니라 관련 내용을 찾아보면서 결과물을 만들어 내야 합니다. User Story라 불리는 요구사항과 예시가 되는 결과물을 보여주는데 이를 참고하여 코드를 작성하면 됩니다. User Story의 내용은 결국 테스트 케이스가 되는데 이 테스트 케이스를 모두 통과해야 Project를 통과할 수 있습니다. 5개의 Project를 모두 통과하면 하나의 Certification을 받게 됩니다.
이렇게 하고나면 링크드인 프로필에 Certification을 추가를 할 수 있게 되어 있습니다.(참고로 이 글을 작성하는 시점에 등록한 사람의 수가 12.7만명이었습니다. 과정을 수료한 사람은 그 이상일 것으로 봅니다) 또한, 과정을 수료하면서 수행한 Project가 인증서 하단에 붙게 되는데 포트폴리오로 활용할 수 있어 좋습니다.
2. freecodecamp 뭘 할 수 있나요?
freecodecamp는 다음의 11가지 코스를 갖고 있습니다.
- Responsive Web Design Certification
- JavaScript Algorithms and Data Structures Certification
- Front End Libraries Certification
- Data Visualization Certification
- APIs and Microservices Certification
- Quality Assurance Certification
- Scientific Computing with Python Certification
- Data Analysis with Python Certification
- Information Security Certification
- Machine Learning with Python Certification
- Coding Interview Prep
이 중 마지막 Codding Interview Prep을 빼고나면 총 10개의 Certification이 있습니다. 배우게 될 언어는 웹 개발을 위한 H)TML, CSS, JavaScript와 Python이 있고 이를 효율적으로 사용하기 위핸 React, D3.js 등의 라이브러리를 배우게 됩니다. 전체 과정의 목표는 JavsScript를 활용한인 풀스택 웹개발 + Python을 통한 데이터 분석 및 머신 러닝 활용으로 보입니다.
전체 내용을 습득하고 운영에 대한 기초(Git, Jenkins, AWS 등)만 어느 정도 터득하면 1인 개발로 웹서버 배포를 할 수 있고, 여기에 더해서 React Native, Electron 까지 배우면 웹, 모바일 앱, 데스크탑 앱 까지 다룰 수 있게 될 것으로 보입니다. 또한, Django를 통해 Python Backend를 하게 되면 데이터 분석 및 머신 러닝 기능을 포함하는 웹, 모바일, 데스크탑 앱까지 영역을 넓힐 수 있을 걸로 보입니다.
또한, 마지막에 있는 Coding Interview Prep까지 한다면 왠만한 IT 기업 코딩 인터뷰 준비도 충분히 될 것으로 봅니다.
3. freecodecamp 누가 들으면 좋을까요?
코딩을 입문하시고자 하는 사람 누구나 좋습니다. 단, 전반적으로 내용이 마냥 쉽지는 않기 때문에 끈기 있게 하시는 게 필요합니다. 일단 Challenge는 정 모르는 경우 H)int의 도움을 받을 수 있고 몇몇 Challenge에는 비디오 자료도 같이 있어 이를 참조하면 Challenge는 문제 없이 끝내실 수 있습니다. Project의 경우에 대체로 완벽히 따라 하는 것은 힘드나, 테스트가 그렇게 촘촘하게 되어 있지는 않아서 적당히 통과할 수 있는 경우도 꽤 있고, 정말 어려워서 막히는 부분의 경우에는 인터넷을 검색하시면 찾아보실 수도 있습니다. 그리고 그 찾는 과정 자체도 코딩 공부에 상당히 도움이 됩니다.
이미 다른 분야에서 코딩을 어느 정도 해보신 분들이나, 이미 해당 내용을 들어보신 분들도 좋습니다. 그러한 경우에는 Challenge 부분을 최대한 빨리 풀고 나서 Project 부분에 집중을 해서 좋은 결과물을 만들면 freecodecamp Certification은 포트폴리오로 잘 활용하실 수 있을 것입니다.
4. freecodecamp 어떻게 활용하면 좋을까요?
4.1. 구글 번역기를 활용하자
먼저 freecodecamp는 영어로 되어 있어서 영어를 잘 못하시면 사용하기 힘들 수도 있습니다.(물론 영어가 익숙하신 분들은 굳이 한국어로 번역하실 필요는 없습니다) 그러나 우리에게는 크롬 구글 번역기가 있죠..! 이걸 잘 활용하면 다음과 같이 됩니다.
freecodecamp에서 사용하는 영어는 대체로 평이한 편이라 번역이 잘 되는 편입니다. 개념 설명 부분은 제가 보기엔 이해하는데는 크게 문제 없어 보입니다. 단, Challenge 를 넘어가기 위해 풀어야 하는 문제의 경우 완전한 문장이 아닐 때가 많아 번역이 잘 안되는 경우도 있어서 이 경우에는 한국어와 영어를 변경하면서 보시는게 더 편합니다.
4.2. 참고용 사이트를 활용하자
freecodecamp가 모든 내용을 설명해주지 않습니다. 결국에 실력을 더 기르기 위해서는 더 많은 것들을 알아야만 합니다. 저는 일단 참고용 사이트로 tcpschool 을 추천합니다. 한글로 된 사이트 중에는 설명이 제일 자세하고 이해하기 쉽게 쓰여있습니다. 생활코딩은 강의 위주로 되어 있어서 참고용으로 사용하기는 불편합니다. 아쉽게도 freecodecamp에서 다루는 모든 내용이 있지는 않지만 HTML, CSS, JavaScript에 대해서는 참고하기 좋습니다. 제 다음 글들인 review 시리즈에서는 일단 여기에 참고할만한 자료가 있는 경우에는 먼저 사용하도록 하려고 합니다.
영어로 된 자료로는 w3schools 를 추천합니다. 저희가 freecodecamp 에서 배우는 모든 내용들은 이 안에 있고, HTML tag, CSS property 뿐만 아니라 bootstrap, icon 등에 대한 자료도 있어서 실제 개발할 때 항상 참고하게 되는 사이트입니다. 단, 영어로 되어 있고 구글 번역이 잘 안들어가는 부분이 많아서(표 안에 들어간 내용은 번역이 되질 않음. 이 경우에는 따로 해당 부분을 번역해서 보면 번역 가능) 영어를 못하시는 경우에는 사용하기 힘들 수도 있습니다.
4.3. Get Help(도움 받기)를 활용하자
freecodecamp는 Challenge에 한해서는 굉장히 친절합니다. Get Help를 누르면 해당 Challenge의 Hint와 Solution을 보여주는 Get a Hint가 나옵니다. 몇몇 문제에는 비디오도 있어서 이걸 참고해서 Challenge를 넘길 수 있습니다. 제 개인적인 생각으로는 한 문제에 너무 깊이 생각하는 것은 좋지 않다고 생각합니다. 그래서 한 Challenge에 너무 오랜 시간이 걸린다고 생각하면 적당히 Hint를 보고 이해하고 넘어가고 나중에 다시 복습하는게 공부 효과가 더 좋을 것이라고 봅니다.
특히 JavaScript를 배우는 2번째 Ceritification의 Hint가 굉장히 좋고 Solution도 여러개가 제공 되어 JS실력을 늘리는데 상당한 도움이 되었습니다. 어떻게 JS 방식으로 생각하는지 배울 수 있는 좋은 기회입니다.
4.4. 반복해서 공부하자
freecodecamp challenge 방식의 특성상 각 Challenge를 빠르게 넘어가게 됩니다. 일단 해본다는 점에서는 좋지만 어떻게 대충 풀기만 하고 넘어가버리면 나중에 기억이 잘 나질 않아 제대로 활용을 할 수 없게 됩니다. 그래서 최소 2번 이상 동일한 Challenge를 하는 것을 추천합니다. 시기는 Project까지 모두 끝내고 나서 다시 보면 좋습니다. 그렇게 하고 나면 처음 Challenge를 할 때는 잘 몰랐던 부분이 다시 보이고 궁금한 부분이 생기게 됩니다. 그러한 부분들은 앞에 언급했던 참고 자료 사이트에서 찾아보면서 지식의 외연을 넓혀나가면 정말 큰 도움이 됩니다. 결국 코딩 공부는 문제에 직면하고 문제를 정의하고 구글에게 물어보고 문제를 해결하는 과정의 연속이 되기 때문입니다.
참고로 저는 이 글 다음으로는 제가 리뷰했던 내용을 연재할 예정입니다. 이 글을 보시면 직접 하시는 것보다는 빠른 속도로 궁금할 법한 내용과 다시 한 번 봐서 뇌에 넣어야 될 내용을 보실 수 있어 복습에 들이는 시간을 줄일 수 있을 것이라 생각합니다.
5. freecodecamp를 이수하기 위해선 얼마나 시간이 걸릴까요?
freecodecamp 측에서는 각 Certification 마다 300시간이 소요된다고 하나 실제로는 이렇게 오래 걸리지는 않습니다. 그런데 일단 300시간이라고 하니 너무 부담이 되기도 하고 공부 계획을 세우는데 도움이 되지 않아 Course 단위, Project 단위로 얼마나 시간이 걸릴지 대략적으로 시간을 적어보았습니다. 일단 제가 한 부분 까지만 채워 놓고 다음에 제가 다 들으면 더 채워 넣을 예정입니다.
일단 이제까지 코딩 공부를 한 번도 안 해본 사람을 기준으로 쓸 예정인데, 컴퓨터 공학을 전공했거나 따로 코딩 공부를 했으나 해당 분야를 공부한 적이 없으신 분은 이 시간에 절반 정도로 생각하시면 되겠습니다. 해당 분야를 이미 공부해본 적이 있으나 기억이 나질 않아 다시 기억을 되살리기 위해 하신 분들은 이 시간의 1/3으로 보시면 됩니다. (제가 이러한 케이스입니다.) 제가 직접 했던 시간을 기준으로 추정을 하는 거라 모든 사람에 정확히 맞을 수는 없으니 참고 수준으로만 활용하시길 바랍니다. 해보시다가 저기에 적힌 시간보다 더 걸리거나 덜 걸리는 경우에는 적당히 비율을 바꾸어 보시면 되겠습니다.
덧붙이자면, 일단 이 시간은 한 번 Challenge를 수행하는 시간을 기준으로 합니다. Project의 경우에는 일단 통과 + 적당히 볼만한 수준 까지 만드는 것을 기준으로 합니다. 예시로 준 사이트와 완전히 동일하게 하는 것은 시간이 너무 오래걸릴 수 있기 때문에 약간 애매하게 정의를 했습니다. 완전하 비슷하다 싶게 만들려면 저 시간보다 1.5배에서 2배 정도 시간을 생각하시면 되겠습니다.
또한, 이 공부 시간에는 복습 시간은 따로 고려를 하지는 않았습니다. 개인적으로는 거의 본 공부 시간보다 복습 시간이 2배는 더 길어졌습니다. 포스팅 하느라 글로 쓰다보니 그렇게 됐습니다..ㅠㅠ 일단은 전반부인 웹 개발 부분에 대해서만 표를 만들어두었고, 빈 부분들은 차차 채워나갈 예정입니다. 파이썬 부분은 나중에 제가 하고 나서 추가하려고 합니다.
'EXPLANATION' 카테고리의 다른 글
머신러닝을 위한 온라인 공개 강의(MOOC) 플랫폼 (3) | 2018.06.12 |
---|