흠.... 일단 우선 제가 하려고 했던 파이썬 강의는 못하게 됬습니다. 취성패하고 다른 기준하고 좀 엉켜서 자격이 안되게 됬네요. 일단 제가 알아본 다른 국비과정에 합격이 된다면 10말부터는 6개월간 게임 프로그래밍을 하겠네요. 그전까지는 유니티 특강 하고 혼자 공부하게 됬습니다. 그래도 새로운 언어 배우면서 생각이 늘어났고 저번 react, redux 글같은거 쓰면서 더욱 정리가 되는 느낌입니다. 지금 그래서 어떻게 보면 좋을수도 있고 한 상황이네요. 지금 혼자 공부해야 될게 산더미 처럼 늘어났거든요..
1. 일단 일주일간 파이썬 강의 들으면서(사실 거의 많은 부분을 책을 봤습니다... 강사님 ㅈㅅ ㅠ.ㅠ) 일단 본건 thinkpython2 입니다. 책읽다가 강의에서 문제 풀다가 책보다가 뭐하다가 해서 이도저도 안되는 상황이 됬지만 일단은 잘 모르는거는 걍대충 스킵하고 일단 한번은 읽은 상태입니다. Named Tuple 이나 defaultDict 등등 몇몇개는 그냥 잘 모르겠어서 거의 스킵했습니다. 다른책 보거나 하면서 더 봐야합니다.
사실 지금 그냥 진짜 훑은 정도여서 개념 정리가 안됬는데 느낌점으로는...
- Tuple이라는 개념은 함수형 프로그래밍의 불변성을 가져온게 맞나요? 하튼 immutable하다는걸 보면서 '오.. 여기는 기본으로 있구나..' 하고 느꼈습니다.
- List Comprehension은 보면서 '오... 이것도 higher order function이구나 하면서 자바스크립트의 map과 arrow function같은게 생각 났습니다' 처음엔 모양이 마음에 안들었는데 몇번 보다보니 더 좋은것 같기도 하고... 아직 맛만봐서 잘 모르겠습니다.
개인적으론 for loop는 약간 불편한거 같에요.. 저같은 경우는 for(let i = 0 ; i < 10 ; i++){ } 이더 편한거 같네요.(자바스크립트에서도 약간 그렇게 느꼈습니다..) 하지만 이것도 함수형 프로그래밍의 느낌이 있는것 같습니다. (아직 함수형 언어적 사고가 많이 부족하다는 거죠)
함수 안에서 밖의 변수로 뭘 하고 싶을때는 global로 explicit(명시적)으로 써주는게 아주 좋은것 같습니다. 이것도 함수형 언어의 이론이 들어가서 이렇게 된것 같네요. 아예 할당을 못하게 하는게 아니라 잘 관리 할수 있도록 말이죠.. 굉장히 좋다고 느꼈습니다. 내가 함수안의 걸 바꾸는지 바깥의 걸 바꾸는지 보기에 좋은것 같습니다.
함수에서 인자들을 넣을때까 좀 다른거 같더라고요. 일단 기본적으로 초기화 기능이 있는거 같고(제가 알기론 es6에서 생긴걸로 아는데 말이죠..) 순서나 def exampleFunction (하나="어쩌꾸", 둘="저쩌구" ): 이렇게 할수도 있고 순서도 좀 연관있고 하는것 같네요. 이부분도 이런게 있구나 하고 걍 넘겼습니다. 나중에 다시 공부해야 겠죠.
indentation 은 좋은것 같기도 하네요. 일단 if/else if/else라고 할수있는 if/elif/else 는 훨씬 보기 좋은것 같아요. 뭐 별 중요한건 아니고....
또 중요한걸로는 함수의 사용 방식이랄까요. 가령 자바스크립트는 "just an example".length 이렇게 문자열 뒤에 dot notation으로 접근하는데 여기는 아예 함수로 하더라고요.(물론 자바스크립트도 그런게 있지만) len("just an example") 이렇게요 물론 2하고 3하고 다른것도 있는데(저는 3으로 해서 print도 함수여서 print("whatever string")이렇게 배웠습니다. 나중에 제대로 정리 해야할거는 저렇게 함수사용해서 하는것들 하고 dot notation으로 하는것들 그리고 __add__, __doc__ 이런것들의 차이점 등을 확실 공부해야 할것 같습니다. 뒤에 보니까 연산자 오버로딩과 연관된거 같은데 말이죠..(__add__ 요것들은) 정확하진 않습니다.
문자열 같은경우 원래 es6의 template literal이나 C언어의 암호같으것들... %d(기억도 안난요 ) 과 비교하면서 봤습니다. 파이썬은 C언어 같은 방식인데 저것도 뭐 지금은 보니까 나름 괜찮아 보이는데 template literal이 더 보기 편한것 같기도 하고... 뭐 별다른거는 없지만요. 실수를 줄이려면 es6위에 지정한 변수값을 가져오는 것보다 C처럼 바로 문자열 뒤에 콤마 찍고 보여주는게 더 좋을수도 있을거 같습니다
좀 헷갈리는 걸로는 자바스크립트하고 비교 하다보니 헷갈리는게 dot notation이나 함수나 뭘 썼을때 복사가 된후에 값이 변하느냐(원래값은 변하지 않고) 아니면 원래것을 바꾸냐 이게 좀 헷갈리네요. 함수형 언어의 개념을 많이 가져왔으면 다 그냥 복사하고 할것이지 또 그렇지 않은게 많은것 같더라고요.
파일도 읽고 쓸수 있고. import/from 으로 모듈 불러오는거 같고(es6 같은것들 이겠죠)
일단 파이썬은 이랬습니다. 앞으로 해야할 목록으로는
한글책들 보기(점프투 파이썬 등등), 다른 원서들 더 보기, Mooc 강의 듣기, django 제대로 해보기, numpy 같은거 라이브러리들 몇개 해보기, 웹크롤링 해보기, 머신러닝도 해보기(Mooc강의도 듣기), 딥러닝도 해보기(이것도 강의 들으면서), 자동화 같은것들도 해보기. 이렇게 할것들만 쌓여 가네요.... ㄷㄷㄷㄷ
'~ 공부 ~ > Computer' 카테고리의 다른 글
아 윈도우 부셔버려야 겠.... konlpy, nltk, 언리얼엔진, 스크래피(scrapy) (0) | 2016.08.21 |
---|---|
장고(django), 스크래피(scrapy), 그 외 (0) | 2016.08.18 |
드디어 성공!! Meteor deploy 하기!! (0) | 2016.08.07 |
React, Redux와 게으름 그리고 앞으로 일정 (2) | 2016.08.07 |
와 이런 삽질.... (0) | 2016.06.22 |