본 시리즈는 부스트캠프 AI TECH 3기 과정에서 배운 점과 배울 점, 회고를 담은 시리즈입니다. 잘못된 정보가 포함되어 있다면 댓글로 알려주시면 감사하겠습니다 :)
부스트캠프 AI TECH 3기 본 과정이 1월 17일 월요일에 시작되었다 💻
(사실 이 글은 2일이 지난 19일에 작성 중이다🥲 이것저것 할 일이 많았기 때문에...)
'첫째 날은 사람들과 인사하고 친해지고, 앞으로의 과정 소개 정도로 마무리 되겠지.' 라고 생각했는데
😇...
대략 10시, 11시 정도에 나의 부캠 첫날 일정이 끝난 것 같다.
사실 그정도까지 부캠에서 요구한 것은 아니었다. 부캠의 코어 타임은 훨씬 일찍 끝났다. 다만 첫째 주에 소화해야 하는 강의의 양이 꽤나 많았고, 프리 코스를 더 꼼꼼히 듣지 않는 탓에 강의가 끝난 후에도 복습할 양이 좀 됐다.
덕분에 매일매일 학습 기록을 남기자는 나의 계획은 무참히 무너졌고 (작심일일ㅠㅠ) 난 강의 수강과 복습, git 등 필요한 다른 공부를 하며 첫째날, 둘째날을 보냈다.
뒤늦게나마 학습 기록을 남기고자 한다.
사실 강의 내용이나 코드 등을 공개하면 안되기에 너무 자세히는 남길 수 없을 것 같다.
다만 내가 어떤 것을 배웠고, 어떤 부분이 궁금하고 미흡했으며, 그것을 메꾸기 위해 더 찾아보고 공부한 것은 어떤 것이 있는지, 그리고 하루를 돌아봤을 때 어떤지를 남기려고 한다.
배운 내용에 대한 짧은 설명에 의문이 들었던 부분이나 중요하다고 느껴진 부분 위주로만 기록해놓을 예정이다. 때문에 '어? 이 챕터에서 이 내용을 안 배웠다고?'라고 느낄 수 있다.
정말 안 배웠을 수도 있지만 그렇게 느낄 정도라면 아마 의문점이 아니거나 중요도가 상대적으로 떨어진다고 판단하여, 간략한 기록을 남기고 싶은 마음에 생략한 부분일 가능성이 높다.
(원래 복습용으로 계획했는데 기록용 정도로 생각해야겠다. 복습은 필기한 패드에서 하는 걸로)
(양일간)
compiler
와 interpreter
의 차이사람의 시간이 기계의 시간보다 중요해졌다
b=a[:]
의 사용copy.deepcopy()
의 사용append()
와 extend()
의 차이?a.sort()
, sorted(a)
input()
print()
"%[type]" %[variables]
.format
"{[index]}".format([argument])
"{0:.3f}".format(5.2437)
"{0:<10s}".format('apple')
(padding)f" ~ {[variables, etc.]} ~"
f" ~ {apple:*<20} ~"
(padding using '*')if
and
, or
, not
, is
, is not
, in
, not in
, etc.for
for ~ in range(시작, 종료, step):
for ~ in [iterable]
while
while [조건] :
break
continue
capitalize()
title()
find()
, rfind()
startswith()
, endswith()
"
or '
3개 사용으로 여러 줄의 문자열 다룰 수 있음\n
\b
\t
\e
r"abc\b"
→ "abc\b" (특수문자 \b
의 무력화)call by value
call by reference
(python) call by object reference
def func1(x):
x.append(3)
print(x)
a = [1,2]
func1(a)
print(a)
[1,2,3] ← x
[1,2,3] ← a
def func2(x):
x = [9,10]
print(x)
a = [1,2]
func2(a)
print(a)
[9,10] ← x
[1,2] ← a
copy.deepcopy
temp=parameter1[:]
global [variable]
dynamic typing
특성 → 다른 사용자가 type을 알기 어려운 단점."
(or '
)로 감싸서 작성parameter
, return
등의 설명과 사용 예시 등을 표기list
구조 이용append()
), pop(pop()
)append()
), pop(pop()
)list
와 유사. 하지만 원소값을 변경할 수 없음.()
사용list
는 []
사용{}
add()
update()
remove()
discard()
clear()
union()
, |
s1.union(s2)
s1|s2
intersection()
, &
s1.intersection(s2)
s1&s2
difference()
, -
s1.difference(s2)
s1-s2
key
, value
쌍{[key]: [value]}
keys()
values()
items()
(k1 : v1)
의 tuple 형태colletions
모듈from collections import deque
rotate()
reverse()
dict
type도 ordered라 굳이 안 써도 됨)shell이란 core와 명령어를 주고 받을 수 있는 일종의 interface라고 배웠다. windows와 mac에서의 여러 shell 종류가 있는데 이 때 터미널에서 사용할 수 있는 명령어들은 OS별로, shell별로 다른지 궁금하다.
파이썬의 특징 중에 dynamic typing
이 있었는데 해당 변수가 필요할 때마다 typing이 수행되는건지 혹은 코드 전문에 대해 처음에 typing이 다 이뤄지는 건지 궁금하다.
string type에 대해 사용할 수 있는 함수 중 title()
과 capitalize()
의 차이는?
defaultdict
의 구체적인 사용 방식은?
😅 '엊그제와 어제를 돌아보며'가 됐다.
주피터 노트북을 켜놓고 강의에 나온 예시나 혹은 그냥 궁금한 부분들을 실습하면서 공부했다. 이 방법은 매우 좋은 방법이었다고 생각한다. '어떤 식으로 코드를 짜야 내가 궁금한 부분을 비교해서 알아볼 수 있을까', '이렇게 코드를 짰을 때 내부적으로 어떤 일이 일어나는가' 등을 고민해보는 과정 자체가 도움이 되었다고 생각한다.
아쉬웠던 점은 궁금한 점을 그때그때 해결하려 하지 않았다는 점이다. 강의를 들어야 한다는 핑계로, 찾기가 어려워서 혹은 그냥 귀찮아서 나중으로 미뤄놓은 질문들을 한꺼번에 처리하는 건 꽤나 품이 많이 드는 일인데다 순간순간 떠올랐던 자잘한 아이디어들은 온데간데 없이 큰 뭉텅이만 남아있다는 느낌이 들었다.
조금 귀찮더라도 그때 그때 머릿속에 떠오른 질문들을 해결해나가는 것이 낫겠다.
지난 이틀동안 꽤 많은 시간을 공부에 투자했다. 사실 자는 시간, 씻는 시간, 먹는 시간을 제외하면 하루의 대부분을 부스트캠프의 온라인 강의실, 슬랙, 줌 등에서 보냈다. 역설적이게도 내가 그동안 얼마나 공부를 게을리 했는가를 느낄 수 있는 시간이었다. 공부는 습관에 꽤나 많은 영향을 받는다고 생각하는데 내 몸은 아직 게으른 그때에서 벗어나지 못한 모양이다. 이 글을 쓰는 지금은 3일째 밤인데 벌써 체력이 많이 떨어진 것 같다 🥲