본문 바로가기

책읽기

[파이썬 스킬 업](브라이언 오버랜드, 존 베넷 著, 조인석 譯, 2021)

  • OOO님이 들어오셨습니다.
    • "저 질문좀 해도 되나요?"
    • 카카오톡 채팅방에 누군가 들어오자마자 인사와 함께 질문해도 되냐는 질문을 한다.
    • 파이썬 오픈채팅방 파이썬 처음처럼(링크: https://open.kakao.com/o/gG6kgabb)에서 자주 보이는 풍경.
    • 파이썬을 사용하다 보면 뭔가 안되고, 구글링을 해도 답이 안나오면 오픈카톡을 찾아 들어온다.
    • 질문의 범위는 여러 가지. 책을 따라 했는데 안된다, 자기 의도와 다르게 나온다. 그림을 어떻게 그리냐 등등.
    • 이 방에서 이루어지는 대화의 대부분은 답답한 누군가의 질문과 친절한 여러 분들의 답변이다.

 

  • 파이썬은 배우기 쉽다.
    • 파이썬을 소개하는 문구 중 절대 다수는 빅데이터, 머신러닝, 4차산업혁명 어쩌고.
    • 이런 광고문구를 한 단계 걷어내면 배우기 쉬운 언어라는 체험담이 많다.
    • C언어를 배우다가 자료형, 메모리 관리, 포인터에 괴로워하던 사람이라면 파이썬이 쉽게 느껴진다.
    • 그러나 프로그래밍 자체를 파이썬으로 처음 접하는 사람에게는 정말 그럴지 의문이다.
    • 눈빛과 몸짓으로도 마음이 통하는 사람과 달리, 정해진 단어(명령어)와 수식을 섞어 써가며 컴퓨터와 나누는 대화는 우리 뇌를 이제까지 사용되지 않았던 방식으로 움직여야만 한다.

 

  • 기초를 넘어선 다음
    • 그래도 반복은 모든 일을 가능하게 한다.
    • 교재와 인터넷 강의를 따라하며 print와 for 같은 명령어를 반복하다 보면 좀 덜 불편해진다.
    • 이렇게 나온다는 화면이 나오면 스스로 뭔가 한 것 같기도 하고, 한 발짝 더 가면 스스로 만들기도 한다.
    • 그리고 그 다음 새로운 시련이 시작된다.
    • 데이터를 담은 list의 내용물은 어느새 나도 모르게 바뀌어 있고, numpy 연산은 이상한 에러를 내면서 안된다.
    • 구글링에서 나온 예제 코드엔 *args, **kwargs 같은 외계어가 나오는데, 정규식에서 그 진수를 볼 수 있다.
    • 반복문은 for i in range(10): 이런 식으로만 썼는데 검색결과엔 [i for i in range(10)] 이런게 나온다.

 

  • 파이썬의 사춘기
    • 사람은 사춘기를 겪으며 어른이 된다.
    • 신체적으로도 큰 변화를 겪지만 감정적으로도 돌풍 아래 놓인다.
    • 평생의 흑역사가 이 시기에 다 만들어지는데 심지어 잘 잊혀지지도 않아서 친구끼리 평생 놀림감이 된다.
    • 친척 어른이건 선생님이건 이 시기에 만나는 적절한 멘토는 인격을 다듬어주는 평생의 스승으로 남는다.
    • 파이썬 공부도 마찬가지. 기초를 대충 파악한 뒤에 자기만의 무언가를 만드는 시기가 온다.
    • 기껏 모은 데이터가 날아가고 계산결과가 엉뚱해서 고초를 겪는데 감정이 뒤섞이며 장기 기억으로 전환된다.
    • 위기는 위험과 기회인 만큼 이 시기에 좋은 멘토를 만나 잘 넘기면 큰 도약을 하는 디딤판이 되는 시기다.

 

  • 파이썬 스킬 업
    • 이 책은 파이썬이 데이터를 다루는 방식이나 명령어가 동작하는 방식, 그리고 실용적인 팁을 대량 제공한다.
    • 원론을 설명해주지만 원리주의적이지 않고 예제 위주로 설명함으로써 거부감이 적게 든다.
    • 예를 들어 가장 기본적인 list를 다루는 내용만 해도 for loop에서 index 말고 원소를 직접 부르는 방법을 알려주는 것을 시작으로 함수를 list로 관리해서 switch 문을 구현하는 효과를 얻는 방식, 그리고 generator와 비교하며 generator를 설명하는 부분이 예제 코드 중심으로 친절하게 담겨 있다.

 

  • 안거(安居)할 때 볼만한 책
    • 불교에는 안거라는 말이 있다. 바깥 출입을 끊고 참선 수행에 애쓰는 기간이다.
    • 가톨릭의 피정(避靜)과 유사하며, 휴가지에서 업무를 하는 workcation과도 어느 정도 비슷하다.
    • 코딩을 업으로 삼는 사람이 아니더라도 코딩 능력과 업무 수행 능력이 정비례 관계에 있다면, 버그를 예방하여 코드를 안정화하고 가독성과 실행속도를 높일 수 있는 기술을 가끔 습득할 필요가 있다.
    • 사람마다 필요로 하는 기술의 분야와 수준에 따라 습득 대상은 달라지겠지만 본업을 잠시 내려놓아야 새로운 능력을 갖출 여력이 생긴다.
    • 파이썬이 이제 좀 편하게 느껴져서 새로운 시도를 했다가 엉덩방아를 몇 번 찧으신 분,
    • 파이썬을 능숙하게 사용하기는 하지만 구글을 스승삼아 체계가 부족하다고 스스로 느끼는 분이라면 이 책이 훌륭한 멘토가 되어줄 것 같다.
    • 안거할 때 보면 좋겠지만 내겐 안거가 없다. 지금 준비중인 논문이 마무리되면 하루 한 챕터씩 나가볼 생각이다.