이번 한 주는 python 강의만 3번 있었다. 시간으로만 치면 4시간씩 3번의 수업이고 나머진 모두 자습이니 크게 부담이 없어보였는데, 수많은 개념과 문법을 12시간 꽉꽉 채워 배우다보니 새로운 공부는 커녕 복습하고 소화시키는 것으로도 나머지 20+시간의 자습시간이 턱없이 부족했다.
전략을 잘 짜서 성장하고 싶은데 허덕대는 것 같아서 다소 의기소침 할 뻔했지만, 나의 전략은 지속가능한 코딩을 하기 위해 적당히 페이스 조절하는 것이기 때문에 조급해하지 말고 여유를 가지되 원리 이해와 숙제를 스스로 해결하기에 만전을 기하기로 했다. 스트레스 받지 말고 나는 불과 한달 전까지만 해도 파이썬이 무엇인지조차 몰랐던 문과생이라는 것을 기억하자.
배운 것들
PYTHON3
- Comprehension: group object 속 각각의 요소들에 대해 일하고 싶고, 그 일이 끝난 결과값을 갖는 새로운 group object를 생산하고자 할 때 사용하며, pythonic한 코드를 짜는 것에 필수적이다. 함수와 iterable object, 그리고 조건문까지 넣을 수 있으며 ternary operator을 통해 복수의 조건문도 넣을 수 있다. list와 dictionary를 만드는 실습을 했다.
- File I/O: 기본 파읽 읽기 메소드인
write()
나readlines()
뿐만 아니라 csv, json 모듈을 import하여csv.reader()
이나json.dump()
,json.load()
등의 메소드로 파일을 불러와 읽고 쓰는 다양한 방법을 실습했다.with open('{파일명}.{extension}', 'r또는w', encoding='utf-8') as f:
으로 작업을 위해 파일을 여닫아주는with
도 배웠다. - Error Handling: try / except 구문을 통해 오류가 났을 때 에러메시지를 띄우고 인터프리터가 멈추는 대신, 어떤 작업으로 대응할지 지정했다.
- Regular Expression(정규표현식):
import re
로 불러오고, 꼭 compile 먼저 해주기! - lambda(익명함수): 한 번 쓰고 재사용하지 않을 함수는 lambda로 만들어 (스택이 아닌) 힙에 쌓였다가 삭제되게끔 한다. 대표적인 lambda연산에는
map
,filter
,reduce
가 있고 모두 iterable object에 대해 각각 작업하는 함수이다. - Object들의 lifecycle과 저장영역(코드, 데이터, 스택, 힙)에 대해서도 개념을 배웠다.
- Paradigm of Programming: Imperative, Procedural, Object-oriented, Functional Programming에 대해서 배웠다.
- 열차 생산 비유를 통해 OOP의 특징과 원칙, 그리고 Scope와 Class를 알게 되었다.
추천받은 책
<클린코드> : OOP의 SOLID원칙 등을 담은 책
<CODE 코드> : 컴퓨터의 작동원리 설명
<소프트 스킬> : 개발자의 삶의 태도와 방식을 알려주는 교양 서적
<클린 코드를 위한 테스트 주도 개발> : 장고 입문 후 필독할 것
<타입스크립트 프로그래밍> : 나중에 타입스크립트 하는 걸 추천하며, 이를 위해 읽어보도록.
Two Scoops of Django 개정판 github : 장고 입문 전에 읽을 책, 2016년 출판본 말고 python3 개정판으로.
느낀 점
- 고민 후 문제를 해결하는 것은 시간이 오래 걸리지만 성취감이 장난 아니다. Hackerrank에서 code를 submit한 후 초록색 메시지가 퐁퐁 뜨면서 통과되는 순간 육성으로 환호하지 않을 수 없었다.
- 선생님이 추천해 주신 책이 다 가격이 기본 2만원대 후반이라 창렬하다고 생각했는데 받아보니 워낙 두꺼워서 돈이 덜 아까웠다.
- 손목이 아프기 시작했다. 요가를 해서 아픈건지 타자를 많이 쳐서 아픈건지 모르겠지만 일단 손목보호대를 샀고 손목강화운동을 시작했다. 코딩 입문 후 처음 구비한 장비가 손목보호대라니.
- 답 안보고 문제 해결해보려 하니 시간이 너무 많이 걸려서 마음이 조급해진다. 그래도 내 페이스대로 성실하고 꾸준하게 지속가능한 코딩을 하자.
To Do during 설연휴
- Hackerrank 문제들
- 공부와 무관한 블로그 글 몇개 올리기
- 스파르타 코딩클럽에 제공하는 설맞이 신년운세 패키지 다 듣기
- 노마드 코더에서 제공하는 바닐라 JS로 크롬 앱 만들기 듣고 만들어서 인증 이벤트 참여하기
- 노마드 코더 python 웹 스크래퍼 듣기
- 시간 남으면(아마 남기는 커녕 모자랄 것 같지만) Subway Project 기본 틀 구상 및 발전시키기