파이썬 매일 코딩 - 매일 10분, 50가지 연습 문제로 키우는 파이썬 코딩 실력!
루벤 M. 러너 지음, 윤인성 옮김 / 길벗 / 2021년 11월
평점 :
장바구니담기


이 서평은 출판사의 지원을 받아 작성하였습니다.


처음 코딩이란 걸 시작했을 때 신기했다. 그전까지는 컴퓨터 프로그래밍은 고사하고 파워포인트, 엑셀과도 댐을 쌓고 지내던(사실 지금도 많이 하지 않아서 만약 해야한다면 연습을 많이 해야한다) 지독한 문돌이 습관을 가지고 있어서 코딩이라는 걸 배울 때 참 어려웠다. (사실 지금도 어렵다)


무엇보다 문법은 배웠는데, 어떻게 해야 더 실력을 키울 수 있을지 잘 몰랐다. 다들 사이드 프로젝트 하라고 하는데, 막막했다. 하면 좋다는 걸 누가 모르겠나? 구체적으로 어떻게 해야할지 막막하니까 그러지. 알고리즘 연습을 하면 좀 더 잘할까 싶어 해봤는데 재미가 별로 없었다. 말그대로 입사 테스트 용으로 많이 사용하기 때문에 난이도가 높거나 초보자용은 너무나도 낮은 경우도 많고, 주로 문제풀이에 집중되기 때문이다. 고등학교 시절 별로 좋아하지 않았던 수학 문제집이었던 쎈 1000제 같은 느낌이라고 할까? 풀어도 풀어도 끝이 없는 쎈 1000제는 사놓고 50문제 정도 풀다가 결국 깨끗하게 버려졌다.


사실 제일 좋은건 자본주의적 학습(?!)이다. 회사 업무 던져지면 돈이 걸려있고 일정이 걸려있으니 어떻게든 구글링하고 페이스북 커뮤니티든 어디 커뮤니티든 묻고 또 묻고 사정사정해서라도 해답을 알아내게 되고, 그러면서 실력이 커진다. 하지만 그렇게 하기 어려우니까 그 중간 어딘가의 학습 도구가 필요하다고 나를 포함해서 사람들이 말하는게 아닐까.


이 책은 그 지점에서 적절한 것 같다. 알고리즘 문제처럼 너무 어려운 문제 위주로 무조건 맞혀야 한다는 강박감을 주지 않으면서도, 꼼꼼하게 공식문서 링크와 관련 자료링크를 제공해서 마치 뭔가 많이 알게 된 것처럼 착각을 일으킨다. 이런 착각은 좋은게 아닐까? 이런 착각을 통해 뭔가 많이 안다는 자신감을 갖게 되고 그러면서 많이 하다보면 실제로 잘하게 되는 그런 선순환을 일으킬 수 있을거 같았다.


마치 코딩 잘 못하는 신입사원에게 사수가 대책으로 하나하나 문제 풀어보라고 내주고 꼼꼼히 피드백주는듯한 느낌을 이 책에서 받았다. 텍스트로 더 이상 설명하는 건 어려울거 같다. 읽어보면 무슨 말 하는지 알 거라고 생각한다. 



밑줄 긋기 

p.33 ~34

walrus 연산자(바다사자 연산자)


다른 프로그래밍 언어를 사용하다가 파이썬을 공부하는 사람은 사용자로부터 입력받고, while 반복문을 벗어나는 코드를 다음과 같이 작성하려 합니다. 이는 대부분의 프로그래밍 언어에서 널리 활용하는 형태의 코드입니다.


while s = input('Enter thoughts:'):
	print(f'Your thoughts are: {s}')

이 코드는 사용자로부터 입력받고, 이를 s에 넣는 것을 while 반복문의 조건식에 활용하고 있습니다. 따라서 s가 Boolean으로 변환되어서 비교됩니다. 빈 문자열이 입력될 경우, s가 False로 변환되어서 반복문을 벗어납니다.


하지만 이 코드에는 중요한 문제가 있습니다. 파이썬에서는 이러한 코드가 동작하지 않는다는 것입니다. 이는 파이썬의 할당 구문이 표현식이 아니기 때문에 발생하는 일입니다. 파이썬의 할당 구문은 어떠한 값도 만들어내지 않습니다. 따라서 반복문의 조건식 부분에 사용할 수 없습니다.


하지만 이러한 코드는 굉장히 편리하므로, 파이썬 3.8버전부터는 이러한 코드를 사용할 수 있게 :=라는 새로운 할당 연산자가 추가되었습니다. 정식 명칭은 '할당 표현식 연산자(assignment expression operator)'이지만, 일반적으로 :=라는 모습이 바다사자와 비슷하게 생겼다고 해서 'warlus 연산자'라고 부릅니다. 이 연산자는 처음 도입될 때 굉장히 많은 논란을 불러일으켰습니다. 언어에 불필요한 복잡성을 만들고, 잠재적인 버그의 가능성을 만들었다는 이유 때문입니다.


어쨌거나 파이썬 3.8버전에서는 다음과 같은 코드를 활용할 수 있습니다.

while s = input('Enter thoughts:'):
	print(f'Your thoughts are: {s}')


참고로 walrus 연산자와 관련한 논란, 그리고 walrus 연산자가 도입된 이유인 walrus 연산자의 장점 등을 자세하게 알고 싶다면 파이콘 2019에서 Dustin Ingram이 발표한 내용 (http://mng.bz/nPxv)을 살펴보기 바랍니다.


https://www.youtube.com/watch?v=6uAvHOKofws 

이 연산자와 관련한 자세한 내용은 PEP 572 문서 (https://www.python.org/dev/peps/pep-0572)을 참고해주세요.

https://peps.python.org/pep-0572/


p.35

Python Tutor를 활용해서 코드 실행 분석하기


https://pythontutor.com/

p.37

{ } 내부에 :을 넣어서, 자료를 원하는 형태로 포매팅해서 출력할 수도 있습니다.


예를 들어 문자열이 10칸의 공간을 갖고, 왼쪽 또는 오른쪽에 정렬하게 출력하고 싶다면 #을 다음과 같이 활용합니다.


name = 'world'
first = 'Reuven'
last = 'Lerner'
	print(f'Hello, {first:#<10} {last:#>10}')

필자는 최근 파이썬에 추가된 기능 중에 f-string이 가장 마음에 듭니다. 독자분들도 적극적으로 사용해보면 좋을 것 같습니다.


- 파이썬에서 문자열 형식을 지정할 때 사용할 수 있는 여러 가지를 비교한 글입니다.

https://pyformat.info/

- f-string에 대한 설명과 활용 예를 자세하게 설명한 글입니다 : 

https://realpython.com/python-f-strings/

- f-string을 설명하는 PEP 문서입니다. 

https://peps.python.org/pep-0498/

p.40

이터러블을 매개변수로 전개하기


[1, 2, 3]과 같은 리스트 형태로 자료를 갖고 있다면 mysum 함수의 매개변수로 어떻게 전달해야, 이러한 리스트 내부의 숫자를 더할 수 있을까요? 단순하게 mysum([1, 2, 3])으로 호출하면 *numbers로 ([1, 2, 3], ) 형태의 튜플이 전달될 뿐입니다.


따라서 O에 각각의 요소를 더하는 형태로 코드를 구성했다면 O에 [1, 2, 3]을 더하게 되어서 TypeError 예외가 발생할 것입니다. 파이썬에서는 리스트와 숫자를 더할 수 없기 때문입니다. 결론부터 말하자면 리스트를 매개변수로 넣을 때 앞에 *연산자를 붙여주면 됩니다. 예를 들어 mysum(*[1, 2, 3]) 형태로 호출하면 리스트 내부의 요소들이 마치 mysum(1, 2, 3) 형태로 각각 매개변수로 들어갑니다.


이터러블 객체의 요소 하나하나를 함수의 매개변수로 전달해야 하는 경우에 굉장히 많이 사용하는 코드이므로, 꼭 기억하기 바랍니다.


p.43

빈 문자열과 숫자 0은 if 조건문의 조건식에 넣었을 때 False로 변환됩니다. 따라서 다음과 같이 문자열 또는 숫자 입력을 if 조건문의 조건식에 직접 사용하는 경우가 많습니다. 이후의 코드에서도 이러한 형태를 사용하겠습니다.


if not one_run:
	break

참고로 문자열 입력을 다음과 같이 구분하고자 하는 독자도 있을 것입니다.


if len(one_run) == 0:
	break

물론 이런 코드는 작동하지만, 일반적으로 파이썬 개발자가 볼 때 파이썬스럽지 않은 코드라고 할 수 있습니다. 파이썬 개발자는 이전 코드처럼 not을 변수 앞에 사용해서 문자열이 빈 문자열인지 확인하는 코드를 더 많이 사용합니다. 따라서 앞의 코드가 더 파이썬스럽고, 파이썬 개발자가 읽기 더 쉽습니다. 


참고로 일반적으로 사용자에게 입력받고, float 함수를 호출하는 경우에는 사용자가 유효하지 않은 값을 입력할 경우를 대비해서 try 구문을 함께 사용합니다.

try:
	n = float(input('Enter a number: '))
    print(f'n = {n}')
except ValueError as e:
	print('Hey! That's not a valid number!')


p.44

부동소수점 계산이 정확하지 않다는 것이 무슨 의미인지 잘 모르겠다면 파이썬 인터랙티브 셀에 0.1 + 0.2를 입력해보세요. 신기한 결과를 볼 수 있을 것입니다. 참고로 프로그래밍 언어에 따라서 이 결과에 약간씩 차이가 있습니다. 여러 프로그래밍 언어에서 0.1 + 0.2의 결과가 어떻게 나오는지 정리해서 확인하고 싶다면 

https://0.30000000000000004.com/

를 참고해보기 바랍니다.


p.46

부동소수점 계산을 정확하게 할 수 있는 Decimal 클래스(https://docs.python.org/3.7/library/decimal.html )

를 확인


p.47

필자도 현재 일반 업무에서는 16진수를 거의 사용하지 않습니다. 또한, 필요한 경우에도 단순하게 hex 함수


https://docs.python.org/3/library/functions.html?#hex 

와 0x접두사를 활용합니다. hex 함수는 문자열을 입력받고, 16진수 문자열을 리턴합니다. 그리고 0x접두사는 16진수를 표현할 수 있는 방법입니다. 예를 들어 hex(80)은 문자열 '0x50'을 리턴하며, 0x50이라고 입력하면 정수 80이 들어갑니다.


p.54

문자열에 대해서는 두 가지 내용을 잘 이해하고 있어야 합니다.


1. 문자열은 이뮤터블(immutable)이다.

2. UTF-8 인코딩을 사용한다.


파이썬의 문자열은 굉장히 재미있으면서도 유용합니다. 파이썬에서 문자열은 단순한 텍스트가 아니라 시퀀스이기도 합니다. 따라서 반복문에 활용할 수 있으며(문자 하나하나 반복 처리됩니다), 인덱스를 활용해서 특정 위치의 문자열을 출력할 수도 있습니다.


p.57

무엇보다도 파이썬 프로그램은 짧아야 합니다. 만약 코드를 작성하다가 자신의 코드에서 반복되는 부분이 보이고, 긴 표현식 또는 문장을 작성하고 있다는 것을 발견했다면 파이썬스러운 코드를 작성할 수 있게 대책을 세워야 합니다.


p.61

파이썬의 문자열은 왜 이뮤터블일까요? 여기에는 여러 이유가 있습니다. 예를 들어 구현을 효율적으로 할 수 있다는 점이 있습니다. 일반적으로 문자열은 딕셔너리의 키로 많이 사용합니다. 딕셔너리는 이뮤터블 자료만 키로 사용할 수 있으므로, 문자열이 뮤터블이라면 딕셔너리의 키로 사용될 수 없습니다. 이는 굉장히 많은 문제를 일으킬 것입니다.


이뮤터블 자료는 변하지 않습니다. 이로 인해서 여러 상황이 발생합니다. 이뮤터블 자료형을 함수의 매개변수로 전달하면 함수 내부에서 이를 수정할 수 없습니다. 이뮤터블 자료형을 여러 스레드에서 활용할 경우, 변하지 않으므로 락킹을 따로 신경 쓰지 않아도 괜찮습니다. 또한 이뮤터블 자료형의 메서드를 호출하면 원본 자료를 수정한 새로운 자료를 리턴받습니다(원래 자료를 변경할 수 없으므로 새로운 것을 만드는 것입니다).


문자열을 이뮤터블로 만들면서 발생하는 여러 트레이드오프(trade-off)가 있습니다. 하지만 파이썬 개발자는 문자열을 이뮤터블로 활용하는 것이 더 좋다고 생각하므로, 이런 선택을 한 것입니다. 만약에 문자열을 뮤터블 자료형으로 사용하고 싶다면 StringIO(https://docs.python.org/3/library/io.html#io.StringIO) 

를 사용해야 합니다. 이는 파일과 같은 형태로 사용할 수 있는 인메모리 자료형입니다.


다른 프로그래밍 언어를 사용하다가 파이썬을 공부하기 시작한 사람은 이뮤터블이 상수(constant)와 같은 것이라고 오해하기도 하는데요. 전혀 다른 개념입니다. 상수는 이름(변수)과 값을 영구적으로 연결한다는 개념입니다. 파이썬에서는 이러한 상수가 존재하지 않습니다. 파이선은 어떤 이름(변수)에 언제나 원하는 값을 연결할 수 있습니다. 문자열과 튜플을 넣은 이름(변수)을 변경할 수는 있지만, 문자열과 튜플 값 자체를 변경할 수는 없습니다.


p.68

str.translate()


https://docs.python.org/3/library/stdtypes.html?#str.translate 

https://justdoit709.tistory.com/37


p.69

URL 인코딩할 때는 URL로 처리할 수 없는 특수한 문자를 % 기호와 함께 아스키 문자(ASCII 32)에 해당하는 값을 16진수로 입력해서 변환합니다. 예를 들어 URL에 띄어쓰기가 들어갔다면 아스키 문자로 0x20이므로, %20으로 변환합니다. 


p.70

파이썬이 기본적으로 제공하는 sorted 함수 https://docs.python.org/3/library/functions.html#sorted

는 매개변수로 이터러블을 받습니다. 즉, 시퀀스뿐만 아니라 반복할 수 있는 것이라면 모두 사용할 수 있습니다. 따라서 sorted 함수의 매개변수에 문자열을 전달할 수도 있습니다. 


p.71

유니코드는 각각의 글자를 숫자에 일대일 대응시킵니다. 그런데 대충 생각해도 굉장히 많은 숫자가 포함될 것입니다. 이와 같은 유니코드 문자를 나타내는 숫자(코드 포인트라고 부릅니다)를 활용해서 여러 개의 바이트를 읽어 들이고, 이를 적절한 글자로 변환합니다. 파이썬을 포함한 대부분의 프로그래밍 언어는 UTF-8을 지원합니다. UTF-8은 고정된 바이트 길이를 사용하지 않고, 가변적인 바이트 길이를 사용해서 글자를 표현합니다. 예를 들어 기존의 ASCII 코드에 존재하던 글자는 그대로 1바이트를 활용해서 표현합니다. 프랑스, 스페인, 히브리, 아랍, 그리스, 러시아 글자는 2바이트를 활용해서 표현합니다. 그리고 한글, 한자, 이모티콘은 3바이트 또는 3바이트 이상을 활용해서 표현합니다.


유니코드는 우리가 개발할 때 어떤 영향을 줄까요? 일단 개발할 때 따로 언어 종류를 구분해서 사용할 필요가 없습니다. 하지만 바이트와 글자 사이의 관계를 생각해줘야 합니다. 파일을 읽어들일 때, 바이트를 글자로 변환하는 방법과 글자를 바이트로 변환하는 방법을 모두 기억해야 합니다.


파이썬이 글자와 문자열을 어떤 형태로 다루는지 더 자세하게 살펴보고 싶다면 파이콘 2012에서 발표한 Ned Batchelder의 

https://nedbatchelder.com/text/unipain.html

를 참고해보기 바랍니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
알고리즘 구현으로 배우는 선형대수 with 파이썬 - 행렬의 기초부터 텐서를 활용한 머신러닝과 딥러닝 적용까지
장철원 지음 / 비제이퍼블릭 / 2021년 12월
평점 :
장바구니담기


이 글은 출판사에게 책을 제공받아 작성하였습니다.




장철원님의 전작 [선형대수와 통계학으로 배우는 머신러닝 with 파이썬]을 보신분이라면 아시겠지만, 뭐 말이 필요합니까?

그냥 사세요. 너무 광고 같나? 전 출판사에게 책을 받더라도 별로면 그냥 별로다 라고 얘기하는 편(물론 받은만큼 엄청 세게까지는 아니지만... 그래도 나름 얘기하는 편)입니다.


장철원님의 책은 그냥 묻지도 따지지도 않고 사서 보시면 됩니다.


물론 대학원을 준비할정도의 선형대수에 대해 깊이 알고 싶다는 분은 이 책이 아니라 구글에 선형대수 대학원을 검색해서 이론적 지식을 쌓아야죠. 계산연습도 엄청해야하고.


그런데 그게 아니라면, 어느정도 머신러닝을 이해하고 싶긴 한데, 선형대수가 너무 어렵다면 이 정도 수준으로 시작해보시면 어떨까 싶어요. 물론 여기에도 전제가 있습니다. 고등학교 행렬, 정사영 등 고등학교 수준의 수학에 대해서 익숙하다는 가정입니다. 책에서는 행렬의 정의, 연산, 성질 등 매우 기초적인 부분부터 다루지만, 고등학교 수학을 설명하기 위한 책이 아니기 때문에 만약 고등학교 수학 수준이 낯설다면 이 책은 적합하지 않을거 같습니다. 고등학교 강의는 좋은 무료 강의들이 많으니까 공부하면 될거 같습니다.


사실 선형대수를 엄청 많이 공부해야 하나? 라는 의문에 대해서 그렇게 필요 없을 수 없다는 대답이 대다수일겁니다. ML/DL알고리즘의 대부분은 이미 구현되어있고, 라이브러리도 이미 너무 잘 되어있습니다.


사실 가져다 잘 쓰기만 해도 됩니다. 

근데, 가끔 뭔가 왜 그러지? 원리가 뭐지? 하고 그냥 궁금해지는 시기가 있을 수 있으니까. 혹은 논문 좀 볼까? 해보니까 선형대수로 된 수식이 쭉 나와있으면 '아 이 길은 내가 갈길이 아니군'하고 논문 파일을 닫을 때. 그런 때를 대비하면 좋을거라고 생각합니다.


그리고 무엇보다 직관을 키워주기에 우리가 공부해야하지 않을까 싶습니다.

위에서 말했듯이 세부 알고리즘은 이미 훌륭한 개발자분들이 다 구현해주셨습니다. 하지만 상황에 따라 어떤 걸 써야 하고 왜 그런지 설득하는 과정에서 수학적으로 생각을 미리 해놓으면 바로 직관에 따라 접근할 수 있다는 것이죠.


그런 점에서 이 책은 이런 직관을 키우는데 도움이 될거라고 생각합니다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Do it! 딥러닝 교과서 - 퍼셉트론부터 GAN까지 핵심 이론 총망라! Do it! 시리즈
윤성진 지음 / 이지스퍼블리싱 / 2021년 10월
평점 :
장바구니담기


보통 딥러닝 교과서/입문서라고 하면 Tensorflow가지고 MNIST돌려보고, Boston House Price 예측하면서 이게 이렇습니다 라고 전개하는 경우가 많습니다.


그런데 이 책은 어떻게 출판사의 반대를 뚫었는지(?!) 세게 나갑니다.

코드를 빼버리고 수식으로 이론으로 정공법을 택한것이죠.


후덜덜합니다. 아는 분은 아시겠지만, 출판사 입장에서는 책을 많이 팔아야 하기 때문에 왠만하면 수식은 빼달라고 요청한다는게 정설입니다. 사실 이해가 안되는것도 아니구요. 그렇지 않겠습니까? 재미로 책 보는 분들에게 많이 팔려면 수식이 최대한 적어야죠. 


그렇지만 이 책은 책 속에는 코드한줄 없습니다. 물론 챕터 마지막에 어떤 사이트를 참고해서 실습해볼 수 있는지 친절히 설명하고 있습니다. (이 책을 이해할 정도라면 이런 안내정도로도 충분하겠죠) 


그렇기에 이 책은 가치 있다고 생각합니다. 머신러닝을 좀 공부하신분들, 혹은 실무 많이 하시는 분들이 가지는 불만 중 하나가 입문서밖에 없고 실제로 볼만한 책이 별로 없다고 많이 하시거든요. (저는 이런 실력자 축에 못끼지만요...)


그리고 그냥 코드 가져다 쓰는거에 지루함을 느낄 때, MNIST돌리는 것에 재미가 없을 때, 수식으로 뭔가 있어보이고 아는척 해보고 싶을 때(<- 제 얘기입니다) 이 책은 빛을 발합니다.


원래 아는척 하고 싶다는 '욕망'이 책을 사도록 하고, 수식을 적어보면서 논리적 흐름을 파악하도록 하는거 아니겠습니까.


사실 이 책에 나온 내용중에 처음 들어보는 용어들도 많이 있어서 낯섭니다. 그리고 사실 거기까지 완벽히 이해한다는 건 대학원 가서 제대로 공부하지 않는 이상 불가능할거 같다는 생각도 듭니다. 하지만 딥러닝에서 자주 나오는 개념을 수학적으로 유도해보는 거 자체는 가끔은(가끔이라는 게 중요) 재밌긴 합니다.


책은 어려운 대신 꼼꼼합니다. 그리고 칼라풀한 그림으로 충분히 친절하게 설명해줍니다(친절하다고 했지 난이도 자체가 쉽다곤 안했습니다). 


코드는 많이 돌려봤고, 혹은 대학원 가볼까 말까 생각중인데 미리 체험 해보고 싶다 하시는 분 중에 이론공부 좀 제대로 해보고 싶은 분이라면 이 책을 한번 체험해보시면 좋을거 같다는 생각이 들었습니다.


물론 꼭 이론을 위해서가 아니라 실무에서 왜 이런 코드를 사용하지? 라는 의문을 갖고 계셨던 분들에게도 추천합니다!


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬으로 배우는 자료 구조 핵심 원리 - 핵심 개념과 동작 원리로 이해하는 자료 구조
양태환 지음 / 길벗 / 2021년 8월
평점 :
장바구니담기


이 글은 출판사에게 책을 제공받아 작성하였습니다.




개발자가 없어서 못 뽑는 상황이라는 뉴스를 많이 본다. 주변에서도 그런 얘기를 많이 한다.

 

하지만 여기서 말하는 개발자는 웹개발 조금 할 줄 아는 개발자가 아니라 코딩테스트도 통과해야하고, 자료구조나 컴퓨터 과학에 대한 지식이 갖춰지고 실무에 바로 투입되더라도 바로 적응가능한 사람. 이런 사람을 이야기하는게 아닐까 싶다. 그래서 '개발자'가 된다는 건 어려운 일인거 같다.

 

데이터분석일을 하는 내게도 알고리즘과 자료구조는 중요하다. 알고리즘과 자료구조는 효율성과 구현능력을 높여주기 때문이다.

 

그런데 알고리즘과 자료구조 책은 대부분 어렵다. 강의도 어렵다. 쉽게 설명한다고 해도 어렵다. 원래 어렵다.

 

물론 개발 감각을 타고나신 분들은 이런 게 너무 재밌다고 하시는 분들도 계신다. 하지만 뭐 그거는 나같은 사람과 동떨어진 얘기니까.

 

알고리즘과 자료구조 책을 보면 원래 내용이 어려운데 어렵게 서술되거나 혹은 두께가 두껍다. 당연히 중도포기한다.

하지만 취직을 해야하거나 이직을 할 경우 코딩테스트와 면접을 봐야하기 때문에 포기할수도 없다. 

 

이 책은 그런점에서 저자 말대로 징검다리 역할을 해줄 수 있을거 같다.

LeetCode같은 코딩테스트 문제를 풀거나 하지 않는다. 다만 개념에 대해서 최대한 친절히 서술하되 책 두께는 얇게 가져가는 약간의 알포자(알고리즘+자료구조 포기자)를 위한 책이다.






저자는 코드에 대한 자세한 설명과 그림을 통해서 멱살잡고 끌고가듯 설명해준다.

 

하지만 기억해야할 건 원래 내용이 어렵긴 하다. 아니 낯설다고 할까?

원래 어려운 내용도 자주 보고 많이 사용하면 조금은 친숙해지고 쉽다는 느낌을 받는다.

 

하지만 이런 자료구조나 알고리즘을 실무에서 쓸 일은 그렇게 많지 않은거 같다. 그래서 낯설고 그래서 어려워보인다. 

 

괜찮다. 

 

책이 얇으니까. 조금 시도한 뒤에 쉬고 조금 시도한 뒤에 쉬고 

반복해서 보면 언젠가는 친숙해지지 않을까.

 

그리고 친숙해지면 언젠가 그 두꺼운 CLRS도 도전해볼 수 있지 않을까 생각한다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
친절한 트렌드 뒷담화 2022 - 마케팅 전문가들이 주목한 라이프스타일 인사이트 친절한 트렌드 뒷담화
김나연 외 지음 / 싱긋 / 2021년 10월
평점 :
장바구니담기


이 글은 출판사로부터 도서를 제공받아 작성하였습니다.




이 책은 예측서라기 보다는 백과사전처럼 그동안의 트렌드를 정리한다고 생각하면 좋겠습니다.

솔직히 인사이트는 별로 보이지 않습니다. 

아니 이렇게 다양한 주제를 '정리'만 한 책에서 인사이트를 발견한다는 자체가 매우 힘든일입니다.


정리만 잘해도 이 책의 목적은 달성했다고 보는데 그런 점에서 이 책은 정리를 잘 해놓은 편입니다.


하루가 다르게 세상은 변화하는데, 직장에 다니고 자기 일을 하다보면 사실 자기 업무분야만 파기에도 시간이 모자라지 않습니까? 물론 소위 성공하셨다는 분들은 시간을 내서 신문도 읽고 세미나도 다니며 자기 업무분야에다 트렌드도 파악했다고 하지만, 보통 사람들은 힘들죠.


그렇기 때문에 이 책이 가치가 있지 않을까 싶습니다. 깊이보다는 넓이가 큰 책이기 때문입니다.


그 말인 즉슨 굳이 처음부터 끝까지 읽지 않아도 괜찮다는 말입니다.

자기가 관심있는 분야만 읽으면 됩니다. 


책을 읽다가 알게된 내용 중 슬픈 내용은 이런 내용이 있었습니다.

취미더머니 파트입니다.

통계청의 발표에 따르면, 2011년 기준으로 직장을 그만둔 이유 중 정년퇴직의 비율은 10.9% 정도였으며 그만둔 나이도 평균 53세였다. 그러나 10년이 지난 2021년 직장을 그만둔 이유 중 정년퇴직의 비율은 7.5%로 불과했다. 게다가 그만둔 나이도 평균 49세로 이전 대비 매우 낮아졌다. 이는 고용이 완전하게 보장되지 않는 사회를 단편적으로 보여준다. 재택근무로 인해 사람들의 몸과 마음은 편해졌지만, 재택근무가 지속되면서 일에 대한 성과는 조직 구성원들에게 더 투명하게 보이기 시작했다. 이러한 근로 분위기는 장점과 함께 자신의 직업 존속에 대한 불안감도 한층 가중시켰다. 
책 p.56

가면갈수록 굉장히 치열한 사회가 올거라는 건 굳이 책을 보지 않아도 체감하고 있었지만 데이터로 보니 더 낙담했습니다. 그렇지만 이런 현실을 받아들이고 이 속에서 어떻게 살아남을지 고민하는게 어른으로서 해야할 일이 아닐까 싶습니다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo