블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (668)
참고사이트 (8)
Goal (4)
Travel (10)
My Life (106)
Game (35)
Game Review (7)
Game Plan (0)
Books (5)
English (1)
Optimizing (12)
Study (218)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (48)
Unreal (87)
작업장 (54)
RenderMonkey (6)
정리요망 (1)
따라잡기 시리즈 (0)
링크용 (0)
Total348,363
Today2
Yesterday83

책 제목 : 김도형의 데이터 사이언스 스쿨(수학 편)

저자 : 김도형

출판년도 : 2019.11.20






요즘 데이터 사이언스 라는 학문이 한창 붐을 일으키고 있다.

예전부터 빅데이터, 머신러닝, 인공지능등에 관심이 있었는데

최근에 데이터 사이언스라는 학문이 각광받으면서 이 분야를 한번 보고 싶었는데

기회가 생겨 해당 학문을 조금 살펴보게 되었다.


책은 무척 두껍고 두권의 책으로 구성되어 있다.

두꺼운 첫번째 책은 데이터 사이언스 주 내용이 담긴 책이며 두번째 얇은 책은

첫번째 책에 나오는 문제의 해답지다.

해답지만으로 이정도의 두께라 수학이라는 이름에 공포를 느끼는 사람이라면

조금 꺼려질것 같지만 데이터 사이언스는 결국 수학을 기반으로 해야 하는 학문이라

수학과 친해질 수 밖에 없다.


책 자체는 입문자와 비전공자를 위해 기초부터 시작 하여 머신러닝의 이해와 파이썬을 

활용한 구현에 초점을 두고 있다.



책의 내용...

책은 0~10장 으로 되어 있다.

보통 1장이 시작인데 이 책은 0장이 시작이다.


0장은 비전공자를 위해 파이썬 설치와 사용법에 대해 설명한다.

파이썬을 설치하고 데이터 분석을 위한 파이썬 패키지와 아이파이썬, 주피터에 대해설명한다.

1장부터는 책의 본 내용인 수학에 대한 소개가 나온다.

수식에 많이 쓰이는 그리스 알파벳을 읽고 쓰는 법과 머신러닝 교과서나 논문에

자주 사용되는 수학기호의 의미에 대해 설명한다.

그 후로는 데이터사이언스에 필요한 선형대수, 행렬에 대해 설명한다.

이 부분부터 비전공자에게 난관이지 않을까 싶다.


4장에서는 머신러닝에서 자주 사용되는 함수와 특징에 대해 설명하고

미분과 적분에 대해 설명한후 이를 심파이 패키지를 이용하여 미적분 하는 법을 익힌다.

함수와 역함수, 그리고 데이터 분석에 많이 쓰이는 함수들을 알아보고

함수의 미분공식을 이용하여 함수의 도함수를 구하는 방법을 알아본다.


5장에서는 원하는 것을 최소의 비용으로 찾기 위한 최적화에 대해 설명한다.

몇가지 최적화 방법에 대해 설명하고 사이파이 패키지로 최적화 문제를

푸는 방법에 대해 설명해 준다.


6장에서는 확률 기초(확률에 의미, 확률분포함수 등)에 대해 설명하고

7장~10장까지는에서는 6장에서 정의한 내용을 실제로 사용하는 방법을 설명한다.


책을 읽고나서...

입문서이긴 하지만 다루는 주제는 데이터 사이언스며 그를 위해서는 사실

어느정도 수학과 프로그래밍이 우선되어야 하는것 같다.

그런 면에서 이 책은 입문서이긴 하지만 어느정도 선행지식을 필요로 한다.

수학에 대한 기본적인 지식이 없이는 이 책을 완독하는데 많은 어려움이 따른다.

프로그래밍 지식역시 마찬가지라 생각한다.

이 책은 프로그래밍 기초도서가 아니기 때문에 프로그래밍을 다루더라도

문법같은 걸 다루지는 않는다.

만약 고등수학에 큰 부담이 없고 프로그래밍의 지식이 있다면 이책은 데이터 사이언스라는

학문에 입문하기 위한 좋은 지침이 될 거라고 생각한다.



링크

- 데이터 사이언스 스쿨 

- 예제 압축파일 

- 책소개 

Posted by 붕대마음

댓글을 달아 주세요

책 제목 : 전문가를 위한 C++ (개정4판)

저자 : 마크 그레고리

옮김 : 남기혁

출판년도 : 2019.08.20





컴퓨터 공대생으로서 가장 먼저 접한 언어가 C, C++ 이었다.

그것이 계기가 되어 중간에 수많은 언어를 거치면서도 C++이 가장 편한 언어가 되었다.

C++이라는 언어는 재미있고 유쾌하며 동적이고 때로는 너무 복잡해서 머리를

욱씬거리게 만드는 언어였다.

실제로 C++는 프로그래밍 점유율을 볼때 늘 순위권에 있다.

C++은 C라는 절차적 언어에 객체지향이라는 개념을 얹고 일반화 프로그래밍이라는 개념을

더한 실용적인 언어라고 생각한다.



책의 목차는 아래 "목차열기"를 참조.



책의 내용...

책은 총 30개의 챕터로 이루어져 있고 다방면에 걸쳐 이야기하고 있다.

대략 5개의 파트로 이루어져 있는데 아래와 같다.

1. 전문가를 향한 C++ 첫걸음

2. 전문가답게 C++ 소프트웨어 디자인하기

3. 전문가답게 C++ 코딩하기

4. C++ 고급 기능 마스터하기

5. C++ 소프트웨어 공학


Part 1은 역시 기본적인 내용을 담고있다.


C++ 기초내용부터 시작해서 C++의 특징, 객체지향, 스트링, 코딩스타일등.

코딩스타일과 코드 문서화를 보면 실무나 협업에 있어 필요한 부분이라고 생각한다.



Part 2는 C++ 철학에 대한 내용이 주를 이룬다.

절차형 사고방식과 C++의 특징인 객체지향 철학과 객체지향 관점, 객체와 추상화등.

이러한 개념을 가지고 프로그램을 어떻게 디자인 해야 하는가에 대한 이론이다.


Part 3은 C++사용에 중점을 두고 설명한다.


메모리관리를 위해 배열, 포인터, 메모리 연산, 스마트 포인터 등에 대해 언급하고

C++의 특징인 클래스와 객체를 사용하는 법에 대해 설명한다.

이 객체를 활용하기 위해 추상화 상속 등을 설명하고C++을 프로그래밍 할때

필요한 팁들을 설명한다.

C++의 특징중 하나인 템플릿 사용법과 스트림 사용법, 에러 및 예외처리,

연산자 오버로딩등 C++ 실제 코딩을 할 때 많이 사용되는 부분에 대해 언급한다.

그리고 책 표지에도 적혀있듯이 표준라이브러리에 대해서도 간단히 설명하고

컨테이너, 람다, 알고리즘, 정규표현식, 라이브러리 등을 활용하는 부분에 대해서도 간단히 설명한다.


Part 4는 C++을 좀 더 활용하는 단계에 대해 설명한다.


표준 라이브러리를 원하는 만큼 커스터마이징 하고 템플릿을 좀 더 적극적으로 활용하는법,

그리고 C++을 사용한 멀티스레드 프로그래밍에 대해 설명한다.


Part 5에서는 소프트 웨어 공학의 관점에서 접근한다.


프로세스, 방법론, 성능, 효율, 프로파일링, 테스팅, 디버깅 등 실제적으로

하나의 프로그램을 완성하기 위해 필요한 기술들에 대해 다룬다.

그리고 한때 유행했던 디자인 패턴에 대해서도 유효한 것들만 간단히 다루고 

크로스 플랫폼 개발에 대해서도 언급한다.



책을 읽고나서...

책을 읽을 때는 목적이 있다.

이 책을 통해서 이 학문에 입문하고자 한다던지, 내가 가진 소양을 더욱 깊게 새긴다던지,

좀 더 유효한 노하우를 배우고 싶다던지, 가볍게 읽을만한 내용이라던지 등...

이 책은 입문자가 뜻을 두고 보기에는 내용이 쉽거나 친절하지 않고 범위또한 너무 넓다.

중급자가 읽기에는 너무 많은 범위를 다루다 보니 내용이 원하는 만큼 깊지가 않다.

개인적으로 C++ 입문자가 아닌 이가 C++에 대한 개요를 간략하게 돌아보기 위한 목적으로는

괜찮은 책인 것 같다.


링크

책 소개

Posted by 붕대마음

댓글을 달아 주세요

책 제목 : 프로그래밍 면접 이렇게 준비한다.

저자 : 존 몽건, 노아 킨들러, 에릭 기게리

옮김 : 서환수

출판년도 : 2019.07.04





프로그래머라면 피할 수 없는게 프로그래밍 면접이다.

기술면접이라고도 하고 코딩테스트라고도 하던데, 결국은 프로그래밍 지식을 검증하는 것이다.

사실 프로그래밍 면접은 어느정도는 뻔하다고 생각한다.

연차가 낮거나 신입의 경우 가장 중점적으로 물어보는건 어느정도 까지 알고 있는지를 파악하기 위해

알고리즘, 자료구조 정도인듯 싶다. 

단골문제인 스택, 큐, 링크드리스트, 트리구조, 정렬문제정도지 않을까.

경력이 어느정도 되면 그 사람이 이전회사에서 했던 업무와 이룬 업적들에 대한 질문들이 주를 이룬다.

그리고 기술 이외의 질문도 자주 하게 되는데 "왜 이직을 하려 하는가?", 

"팀장 또는 팀원과 마찰이 있을 경우 어떻게 해결 하는가?", "왜 많은 회사중 이 회사를 지원했는가"

정도의 질문을 받는다.

물론 경력이 많은 사람에게 기술면접, 코딩테스트 등을 하는곳도 꽤 많다.

이 책은 프로그래밍 면접을 준비하는 자를 위한 기본 설명서 같다.

프로그래밍 면접에 자주 등장하는 기술적인 내용과, 기술과는 상관없이

면접관이 질문할 수 있는 내용들을 담고있다.

구직 또는 이직을 희망한다면 이 책을 한번 훑어보고 자신을 한번 정비해 

보는게 많은 도움이 될 것 같다.


책의 목차는 아래 "목차열기"를 참조.



책의 내용...

책의 내용은 19개의 챕터로 구성되어 있지만 크게 세가지 정도로 나눌 수 있을 것 같다.

프로그래밍 면접 전 해야 할 것들, 프로그래밍 면접을 위해 알아야 할 기술들,

기술과 무관한 질문들.


우선 프로그래밍 면접 전 해야 할 것들에 대해서는 1~3챕터로 다루고 있는데

간단하게 요약해 보자면 아래와 같다.

나는 어떤 프로그래머 인가? 어떤 일을 잘 하는가? 처럼 우선 나에대해 잘 파악하기.

현재 인력시장은 어떤 추세인지 파악하기.

자신의 능력계발, 프로파일 갱신은 꾸준히 하기.

회사를 찾는 방법과 연봉협상, 그리고 전화 예비면접. (아마 국내에 있는 외국 해외지사나

해외에 있는 회사가 아닌이상 전화예비 면접은 우리나라에서는 그다지 잘 안보는걸로 알지만...)




4챕터부터는 기술관련 내용이 주를 이룬다. 


프로그래밍적으로 문제를 접근하는 방법, 자료구조, 문법, 프로그래밍적 철학,

스레드, 디자인패턴, DB, 통계학 까지 꽤나 다양한 주제를 다룬다.

1~3챕터 까지는 가볍게 읽기 좋은 주제였다면 4챕터 부터는 내용이 좀 무겁고

생각하며 읽어야 할 주제들이 꽤 있어 시간을 두고 천천히 읽었다.

그리고 17챕터의 퍼즐 문제는 18챕터의 지식기반 문제는 내가 얼마만큼 깊이 알고있었는지,

그리고 얼마나 조리있게 잘 설명할 수 있는지를 체크해 볼 수 있는 기회였다. 


19챕터에는 기술과 무관한 질문들이 수록되어 있는데 질문들을 살펴보면 10년 이상의 경력으로 

5번정도 면접을 본 나의 입장에서 몇번 질문받아본 내용이 꽤 있었다.


마지막으로 부록느낌으로 이력서에 대한설명이 있는데 이것도 현재 쓰고 있는, 또는 

갱신하고있는 자신의 프로파일을 관리할 때 꽤나 유익한 조언들이 많다.



책을 읽고나서...

우선 이 책이 프로그래밍 면접에 도움이 될까? 라고 생각해 본다면...

높은 확률로 될것 같다? 정도 이다.

각 회사의 프로그래밍 면접 방식은 다르고 사실 코딩 테스트나 알고리즘 질문보다

쌓아온 커리어에 대한 검증을 위주로 하는곳도 많다.

그럼에도 불구하고 책의 내용은 프로그래머라면 어느정도는 알고 있어야 할 내용이 많고

나름 족집게? 처럼 괜찮은 주제도 많다.

이직에 대해, 프로그래밍 면접에 대해 준비하고자 한다면 이 책을 한번 참고해 보는것도

좋은 선택인 것 같다.


링크

책 소개

Posted by 붕대마음

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함