가장 쉬운 독학 알고리즘 첫걸음 : C&자바편 - 개념 이해 → 코딩 → 계산 과정 추적으로 익히는 단계별 알고리즘 학습법 가장 쉬운 독학 알고리즘 첫걸음
야자와 히사오 지음, 박광수 옮김 / 동양북스(동양문고) / 2021년 10월
평점 :
장바구니담기


제목에서 알 수 있듯 이 책은 초보자가 독학으로 알고리즘을 배우는 걸 목표로 하며 C와 java로 설명한다. 최근에는 대부분의 초보자가 접근하기 좀 더 쉬운 python같은 언어를 사용하기 때문에 C와 java같은 컴파일이 필요한 언어는 잘 안 쓰는 거 같다(우리 회사나 주변 분들 회사를 봐도 이미 일하는 사람들이나 지원을 하는 사람들 보면 비전공자, 부트 캠프 출신이 많아졌는데 하나같이 python으로 crawling이나 간단한 ML/DL project를 이력서에 기술한다). 개인적으로 python을 좋아하기는 하지만 static typed, compiler를 사용하는 언어를 배우는 건 실력 향상을 위해서도 좋은 일이기 때문에 이렇게 여전히 C나 java를 사용하는 초보자용 책이 나오는 건 의미있는 일이라고 생각한다.

이 책의 장점은 보자를 대상으로 하기 때문에 정말 때로는 지루할 정도로 자세히 설명한다는 점이다.

조금이라도 지식이 있는 사람은 지루할 정도이지만, 책의 제목처럼 독학을 할 수 있게 가능한 자세히 기본적인 알고리즘을 설명한다.두 번째로 알고리즘은 뭐고 선형 검색 같은 정말 기초적인 부분부터 시작해 유전 알고리즘까지 수준을 높여가며 여러 기초 알고리즘을 보여준다. 전문적인 알고리즘 서적에 비교하면야 당연히 매우 부족하지만 시작하는 사람이 알기에는 충분히 어렵고 의미있는 내용을 갖는다. Amazon japan에 가서 검색을 해보면 비록 적은 숫자지만 별 하나보다는 3, 4, 5을 준 독자들이 많다. 그만큼 초보자들에게 비교적 다가가기 조금은 쉽게 책을 썼단 생각이 든다.

우리 회사 분중 한 분에게도 선물할 생각이다. 지금은 기초가 부족해서 어려움을 겪는 분인데, 이 책을 읽으면서 스스로 공부도 하고 주변 분들에게도 더 질문을 하면서 실력을 향상시키면 좋겠다.

Ref.

http://www.dongyangtv.com/book/book_view.asp?menu_1=general&menu_2=general%5Fit&goods_code=2740

https://github.com/dybooksIT/ESS-algorithm-C-Java


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
머신러닝 파워드 애플리케이션 - 아이디어에서부터 완성된 제품까지, 강력한 머신러닝 애플리케이션 구축 과정 배우기
에마뉘엘 아메장 지음, 박해선 옮김 / 한빛미디어 / 2021년 9월
평점 :
장바구니담기


프로그래밍 언어를 배우기 시작하면 보통 해당 언어로 “Hello World”를 출력해보면 접근하듯, 머신러닝을 처음 배우면 대부분 mnist의 숫자 분류나 iris 붓꽃 분류를 해보며 코드를 작성하기 시작한다. 그리고 여러가지 알고리즘과 모델에 대해 배우고 시행 착오를 거치며 하이퍼 파라미터 튜닝을 하곤 한다. 하지만 언제나 그렇듯 실제 업무에선 이 단계들만 신경쓰는 거 만으론 부족하다. (4대 천왕 중 한 명인 앤드류 응 교수의 발언 덕분에 좀 나아지긴 했지만) 여전히 많은 사람들에게 경시당하는 데이터 수집 및 라벨링부터, 지속적인 운영을 위한 배포와 모니터링까지 하나의 “application”으로 동작하기 위해 더 많은 단계를 신경써야 한다.

이 책은 대부분의 사람들이 관심을 갖고 해보길 원하는 알고리즘과 모델에만 집중하지 않고 “application”의 관점에서 단계별로 어떤 부분을 신경써야 하는지 초보자들에게 알려주는 일종의 machine learning관점의 software engineering 책이라는 생각이 든다. 일부 사람들에게는 책의 분량에 비해 코드가 적어서 실망할 수도 있겠지만, 조교수로 시작해서 기업의 AI 책임자가 되면서 느낀 문제점 때문에 이런 전체적인 관점에서 머신러닝을 이야기하는 책을 쓰지 않았을까 하는 생각이 들었고, 개인적으로는 지금 재직하는 회사에서도 비슷한 문제를 가진 개발자들을 볼 수 있어서, 실무에서도 필요하고 도움이 되는 책이란 생각이 들었다.

Ref.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
만들면서 배우는 파이토치 딥러닝 - 12가지 모델로 알아보는 딥러닝 응용법
오가와 유타로 지음, 박광수 옮김 / 한빛미디어 / 2021년 8월
평점 :
장바구니담기


파이토치는 텐서플로우와 함께 양대 산맥으로 굳건히 자리 잡고 있어서 이미 여러 가지 책이 나와있다. 분야에 무관하게 대부분이 입문서에 가까운데 이 책은 기본적인 걸 익힌 사람들을 위해 좀 더 심화학습을 제공하려는 목적으로 써졌다. 책의 목차를 보면 object detection, open pose, video classification 등 vision에서도 좀 더 활용도가 높고 어려운 부분을 신경 쓰고 소개하려는 의도가 보인다.

개인적으로는 일본인 저자의 책을 선호하는 편인데 때로는 너무 자세히, 혹은 일반적인 주류와 동떨어진(좋을 때는 독특하지만 나쁜 때는 특이해서 쓸모가 없는) 관점의 책들을 종종 볼 수 있기 때문이라 나름 기대를 가지고 읽어보았고, 이쪽의 전문가는 아니지만 DL, ML 전문가들과 일을 해봤기 때문에 조금은 이해를 할 수 있어서 책의 전반적인 흐름이나 내용은 비교적 마음에 들었다.

하지만 github이 일본인 저자의 repository라서 일본어로 쓰여있는 게 불편해서 찾아봤는데 역자가 따로 repository를 옮긴 거 같진 않아 이상하다는 생각이 들었다. 책에는 한글 repository screenshot이 있으나 책의 github 주소는 분명히 일본인 저자의 repository인 https://github.com/YutaroOgawa/pytorch_advanced/ 였고, 그래서 한빛의 예제 https://www.hanbit.co.kr/src/10460 를 받아서 살펴보니 여기에는 번역한 내용이 들어있었다. 저자의 github도 있는데 https://github.com/archmond?tab=repositories 왜 이렇게 다운로드를 하게 해 뒀는지 조금 아쉬웠다.

이보다 더 아쉬웠던 점은 7장인데, 자연어 처리에 관한 부분인데 예제 자체를 일본어 문장을 그대로 사용했다는 점이 전혀 이해가 가지 않았다. Mecab이 CJK 분석의 선구자적인 패키지이고 이걸 활용한 한글 형태소 분석 라이브러리도 이미 여러 가지가 있는 만큼, 번역서에서는 한글 라이브러리를 사용하고 한글 예제를 이용해 설명하는 게 당연한 일이라고 생각했는데, 왜 이렇게 진행했던 건지 이해가 가지 않는다.

번역이 쉬운 일이 아니고 프로그래밍 서적 번역은 또 예제를 테스트하는 일이 어렵기 때문에 더 많은 일이 필요하다는 점은 알지만 좋은 책인데 이런 면에서 좀 점수를 잃을 수밖에 없다는 게 안타까웠다.

ps. 저자 homepage https://archmond.net/archives/11462

한빛미디어 <나는 리뷰어다> 활동을 위해서 전자책을 제공받아 작성된 서평입니다


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
리눅스 입문자를 위한 명령어 사전 - 우분투, 데비안, CentOS, 페도라 대응
가와구치 히로시.다야 후미히코.미사와 아키라 지음, 서수환 옮김 / 한빛미디어 / 2021년 7월
평점 :
장바구니담기



유닉스의 탄생을 읽고 나서 썼지만 유닉스/리눅스 운영체제는 문서화의 선구자였다. man 명령어를 사용하면 명령어 사용 방법, 옵션부터 관련 명령어와 간략한 역사까지 자세한 설명을 보여준다. 하지만 man page만으로는 때로 이해하기 어렵거나 설명이 부족한 경우도 있고(find 같은 경우도 예제가 있긴 하지만 기능이 워낙 강력하고 조금은 복잡해서 프로그래머들도 잘 모르는 경우가 종종 있다), 시각화라는 건 애초에 들어가기가 어렵기 때문에 여러가지 책들이 끊임없이 출간된다.

이 책은 제목에서 알 수 있듯이 ‘입문자’를 위한 명령어 ‘사전’이다.

시작하는 경우 대부분 그렇듯 익숙해진 후에는 별 거 아니어도 처음에는 굉장히 어렵고 이해가 잘 안 가는 부분이 많이 생긴다. 이 책은 챕터별로 명령어들을 우선 분류하고(예를 들어 챕터 7은 셸 관련 내용), 작업에 따라 어떤 명령을 사용할 지 설명한 후(챕터 7에서 한 부분이 “셸 변수와 환경 변수”를 설명), 명령어의 세부 옵션과 예(man page를 좀 더 보기 좋게 편집했다고 생각하면 됨. “셸 변수와 환경 변수"의 경우 echo, declare, printenv, =, unset, export, env, source 명령어 소개)를 보여주는 페이지를 반복한다.

또 이 책은 ‘사전'이기 때문에 각 챕터와 상황에 따라 굉장히 많은 명령어들을 위와 같은 형식으로 계속 보여준다. 그러므로 입문자의 경우는 한두 번 훑어보고 대략 어떤 상황에 어디쯤을 봐야할지 정도만 감을 잡고 필요할 때마다 명령어를 찾아 활용하면 좋다. 숙련자라고 해도 모든 명령어/옵션을 아는 경우는 거의 없기 때문에 역시 확인하고 싶은 부분을 찾아보면 도움을 받을 수 있다.

윈도우 프로그래밍만 하는 경우가 아니라면 유닉스/리눅스 운영체제는 프로그래머에겐 기본적으로 알아야 하는 영역이다. MS마저도 WSL이나 azure를 통해 리눅스를 더 많이 활용하는 모습을 보이고 있다. 혹시나 명령어를 사용에 대한 불편함이나 두려움을 갖고 있다면 이 책을 통해 리눅스에 좀 더 쉽게 다가갈 수 있다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
유닉스의 탄생 - 세상을 바꾼 운영체제를 만든 천재들의 숨은 이야기
브라이언 커니핸 지음, 하성창 옮김 / 한빛미디어 / 2020년 8월
평점 :
장바구니담기



제목에서 알 수 있듯 책을 읽는다고 해도 프로그래밍에 대해 배울 수 있는 책은 아니지만, 프로그래밍을 조금이라도 아는 사람들에겐 흥미있는 이야기들도 가득하다. 일단 저자부터가 The C Programming Language로 유명한 사람이고, 등장 인물들도 대부분 전설적인 개발자들이다. 개인적으로는 첫 직장에서 지금은 사라진 Sun microsystem의 SVR4에서 일을 배우고 시작했기에 해당 부분을 읽으면서 유난히 더 반가웠다. 워낙 좋은 책이고 좋은 서평도 많아서 내가 특히 인상깊었던 부분들만 몇 가지 골라봤다.

  1. 벨 연구소의 환경
    우리가 흔히 상상하는 이상적인 연구소의 모습, 지원하되 간섭하지 않는 환경을 보여준다. 이런 환경이 뒷받침되었기에 천재적인 개발자들도 마음껏 연구하고 이런 멋진 결과들을 계속 만들어냈던 거 같다. 항상 소프트웨어 개발사의 모습이 어때야 하는지 논의가 많은데, 결국 지향점은 벨 연구소에서 이미 충분히 보여준 거 같다. 공교롭게도 반독점법에 의해 AT&T가 나뉘면서 연구소도 나뉘었는데 그 이후로는 예전만 못한 모습을 보인다.
  2. 문서화
    지금이야 자료들이 많이 있고 여러가지 예시도 비교적 쉽게 찾을 수 있어서 man page를 잘 보지 않지만, 당시만 해도 검색 엔진같은 건 존재하지 않던 시절이고, 누군가에게 배우거나 책이 있지 않으면 스스로 소스코드를 읽어서 이해할 수 있어야 프로그램 사용 방법도 알 수 있던 시절이었다. 그런 환경에서 man이란 명령어로 사용방법부터 known bug까지 기술해 놓은 걸 보면 다른 모든 부분처럼 문서화에서도 선구자였다.
  3. 애자일?
    UNIX 철학의 한 가지가 소프트웨어를 가능한 빨리, 수 주 이내에 사용할 수 있게 설계하고 구축하며, 어설픈 부분을 버리고 다시 만드는 걸 망설이지 않는 것이다. 이 부분을 읽으면서 빨리 동작하는 소프트웨어를 만들고 피드백을 받아 보완을 하는 애자일 방식이 연상이 되었다. 개발 방법론도 이렇게 시작했지만, 규모가 커지면서 waterfall같은 방식으로 변했는데 결국은 다시 UNIX 철학을 바탕에 둔 애자일로 돌아왔나 싶다.

OS를 직접 개발하는 사람이 아니더라도 이런 전설적인 개발자들의 이야기는 얕게는 기분 전환에 도움이 되고, 깊게는 자신의 개발 영역에 어려운 일이 있을 때 영감을 제공할 수 있다. 개발자라면 누구에게나 추천한다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다


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