brunch

You can make anything
by writing

C.S.Lewis

by 노다 May 27. 2020

문과생도 할 수 있는 파이썬 독학 방법

알고리즘 스터디 D + 41 후기

    봄 슬럼프를 극복하기 위해 대학원 동기 언니와 파이썬 알고리즘 스터디를 시작한 지 어언 41일째가 되었다. 그동안 매일 Leet Code 문제를 하나씩 풀어보고 각자 코드를 Google colaboratory에 공유한 후 접근방법을 설명하는 방법으로 진행했는데, 대강이나마 중요한 개념들은 한번씩 훑어본 것 같다. 기본적으로 CS 기본지식이 있는 사람들을 대상으로 하는 문제들이니만큼 나는 손도 못 대겠는 문제가 태반이었지만 일단 개념이라도 이해해보자는 마음으로 이것저것 찾아보며 여기까지 왔다. 그리고 엄하디 엄하신 코딩 선생님 남자친구가 내주는 과제도 매일 풀다 보니 이젠 적어도 비주얼 스튜디오 켜놓고 마냥 멍 때리고 있지만은 않은 정도로 레벨업 되었다. 비록 그래 봤자 아직도 혼자 복잡한 코드를 짜려면 엄청난 구글링이 필요하고 그렇게 열심히 짠 코드는 유명한 프로그래밍 비둘기 짤 속의 수준에 불과하다..ㅋㅋ

내 코드 수준 요약 짤

    사실 코딩을 공부해보려고 시도했던 건 이번이 처음이 아니고 패스트캠퍼스에서 엄청나게 비싼 돈을 내고  파이썬을 활용한 데이터 분석 코스를 들은 적이 있다. 6주 동안 파이썬을 활용한 여러 분석 방법론을 얕고 넓게 다뤄볼 수 있었으나, 강의시간 내내 강사님이 짜 온 코드를 그대로 내 노트북에 다시 쳐보는 공부방법은 너무 지루했다. 게다가 강의 후에 샘플 코드를 복습한다 한들 내가 직접 부딪혀가며 짜 본 코드가 아니다 보니 그다지 별로 남는 것 없이 코스가 끝나자마자 기억 속에서 모두 휘발되어 버렸다. (내 한 해 성과급을 이렇게 허무하게 날림ㅜㅜ) 그치만 이번에 한 달 여간 맨땅에 헤딩해가며 독학을 해보고 나니 내 수준에 맞는 적절한 과제를 수행해보며 자신감을 키우는 것, 그 과정에서 모르는 게 나온다 해서 좌절하지 말고 구글링 해서 찾아보고 이해해보려 노력하는 끈기가 무엇보다 중요함을 느꼈다. 아래의 리스트들은 그간 삽질에 참고했던 자료들이다.


0. Leet Code : https://leetcode.com/problemset/top-interview-questions/

    전 세계 IT기업 (특히 FAANG)들의 코딩 테스트를 준비하는 사람들의 성지와도 같은 사이트. 코딩 테스트에 빈출 되는 문제들이 난이도별로 구분되어 있고, 내가 제출한 코드의 정답 여부, 다른 사람들에 비해 얼마나 빠른 코드 인지도 비교할 수 있다. 솔직히 아직 코딩 걸음마도 제대로 못 뗀 내 수준에는 너무 어려웠다ㅠㅠ 그래서 좀 순한 맛 버전의 Beginner Python exercises 사이트의 문제들도 병행해가며 공부했다. 사실 코딩은 내가 만들고 싶은 것들을 만들어보면서 배워나가는게 제일 좋은 방법이긴 하다. 내가 이걸 시작했던건 아직 내가 뭘 만들어야 하는지는 아직 모르겠는데, 코딩에 익숙해지고는 싶어서 일단 기초부터 다져보자 해서 시작했던 방법이었다.


1. 생활코딩 : https://opentutorials.org/course/1

    가끔 코딩 독학에 관심 있는 친구들이 뭘로 공부하면 좋을까라고 물을 때마다 나는 일단 이 사이트부터 추천하곤 한다. 만약 시간 여유가 있다면 파이썬 강의 이전에 웹 애플리케이션 만들기(지금은 WEBn 이라는 이름으로 바뀐 듯)부터 들어보는 걸 추천한다. 파이썬 기초 강의를 처음 시작하면 자료형이니 함수니 여러 생소한 개념에 질려서 잘 와 닿지도 않고 재미도 없다. 그치만 이 강의는 우리가 사용하는 컴퓨터 환경이 어떻게 구성되어있고 코드는 왜 이렇게 짜야하는지 아주 기본적인 내용부터 설명하면서 코딩용 뇌로 튜닝시켜준다.


2. 점프 투 파이썬 : https://wikidocs.net/book/1

    파이썬계의 수학의 정석과 같은 사이트로, 파이썬 기초개념들이 잘 정리되어있다. 기초개념들은 강의를 들었어도 막상 문제를 풀다 보면 매번 헷갈려서 그럴 때마다 이 사이트에서 잘 이해가 안 가는 부분들을 찾아 다시 읽어보면서 공부했는데 기초 개념을 다지는데 많은 도움이 되었다.


3. 인프런 파이썬 코딩 테스트 강좌 :  https://bit.ly/3c5Keg6

    코딩 테스트 문제를 풀며 제일 어려웠던 점은 자료구조와 여러 알고리즘을 이해하는 부분이었다. 리트코드에 빈출 되는 재귀 함수, Dynamic Programming, Binary Tree 등등 생전 처음 들어보는 개념들은 아무리 구글링을 해서 읽어본다 한들 명확하게 이해가지 않는 부분들이 많았다. 그래서 이 부분은 결국 유료 강의의 도움을 받았는데 기초적인 개념 설명을 통해 한번 이해하고 다양한 예제들로 응용해 볼 수 있어서 기본 알고리즘을 공부하는데 도움이 되었다.


4. 독학에 도움되는 유튜브 채널들

- Telgu Gameboy : 유튜브에 Leetcode + 문제 번호를 검색하면 수많은 해설 영상들을 볼 수 있는데, 그중에 제일 깔끔하게 설명하고 이해가 잘 갔던 채널이었다.

- CS Practice with Mouna : 이 채널도 Leetcode 해설 찾을 때 많이 참고하곤 했는데 가끔 발음 때문에 이해가 어렵다는 게 쪼금 단점이다.

- 얄팍한 코딩 사전 : 수알못, 문과, 디자이너 출신 프로그래머가 운영하시는 채널인데 나 같은 코린이 수준에 맞추어서 어려운 개념들을 매우 쉽게 설명해 주신다. 재귀함수, 객체지향 프로그래밍 영상은 코딩 강의를 빙자한 웃짤 영상인가 싶게 드립으로 가득 차 있다..ㅋㅋ

- 알고리즘 투게더 with 거니 : Sorting 알고리즘 개념이 이해가 안 가서 찾아 헤매다가 발견한 채널이었는데 5분 만에 알고리즘, 자료구조 개념을 설명하는 영상들이 유용했다.  근데 몇몇 영상들은 5분 만에 많은 개념들을 끼워 넣다 보니 좀 이해가 어려운 부분도 있었다ㅠㅠ


    프로그래밍 공부 방법엔 수많은 방법들이 있겠고 내가 한 방법이 최선의 방법이 아닐 수도 있다. 그렇지만 혹시 공부를 해보고는 싶은데 어려울까 봐 겁에 질려 시도도 해보지 못하고 있는 사람들이 있다면 조금이나마 이 글이 도움이 되면 좋겠다. 세상엔 똑똑한 사람들이 너무나 많고 그들이 이미 갈고 닦아놓은 수많은 자료들이 있으니 의지만 있다면 문과생도 혼자서 독학하는게 불가능한 일만은 아니다. 사실 할까말까 고민하는 시간에 일단 시작해보고 재밌으면 계속 파고 적성이 아니다 싶으면 빨리 포기하는 게 시간을 덜 낭비하는 길인 것 같다.


 


*문과생이 코딩을 알면 이런 걸 해볼 수 있답니다.

- 구글 검색어로 브랜드 인사이트 얻기

- 내가 좋아하는 사이트 따라 만들어보기


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari