이전

리뷰 (3)

한줄평
평점 분포
  • 리뷰 총점10 33%
  • 리뷰 총점8 67%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 10.0
  • 40대 8.0
  • 50대 0.0
리뷰 총점 종이책
Head First C
"Head First C" 내용보기
프로그래머를 하고 싶으면 가장 먼저 도전해 보는 언어는 C언어이다. 절차적인 언어이면서 포인터, 배열 등 기본적인 문법들을 익히고 공부하게 된다. 시중에 나와 있는 C언어 책들을 보면서 기본에 관련한 책들이 많이 있고 컴퓨터 관련 학과라면 여러 가지 언어 중 C언어를 먼저 가르친다. C언어는 과거 컴퓨터가 없던 시절부터 수학에 관련된 연산 작업을 위해 만들어졌다가 점차 많
"Head First C" 내용보기

프로그래머를 하고 싶으면 가장 먼저 도전해 보는 언어는 C언어이다. 절차적인 언어이면서 포인터, 배열 등 기본적인 문법들을 익히고 공부하게 된다. 시중에 나와 있는 C언어 책들을 보면서 기본에 관련한 책들이 많이 있고 컴퓨터 관련 학과라면 여러 가지 언어 중 C언어를 먼저 가르친다. C언어는 과거 컴퓨터가 없던 시절부터 수학에 관련된 연산 작업을 위해 만들어졌다가 점차 많은 사람들이 사용하게 되고 편리함을 주기위해 눈에 보이는 하드웨어들이 만들어 졌고 보이지는 않지만 하드웨어 내에 있는 무형의 소프트웨어들이 만들어졌다.

 

컴퓨터를 이용하기 위해서는 컴퓨터는 사람이 아니기에 컴퓨터가 알아 볼 수 있는 기계어인 어셈블리어로 0과 1로 변환되어 계산이나 프로그램을 작동하였고 사람들이 프로그램 개발하기 위해서는 기계어를 알아야 했다. 하지만 기계어를 익히고 사용하는데 너무나 많은 시간이 걸리기에 C언어가 나오게 되었고 컴퓨터에는 컴파일 되어 사용되고 좀 더 사람이 보면서 이해 할 수 있게 만들어졌다.

 

현재 여러 프로그램 언어 중 C언어가 가장 오래되었고 C언어의 기본이 되어있다면 다른 언어를 배울시 이해하는 것이나 습득하는 것이 빠르게 되기에 많은 사람들이 C를 배운다. 프로그래밍 언어를 배우면서 영어를 많이 접하게 되고 프로그램이 어떻게 흘러가는지 흐름을 잘 파악해야 된다. 뿐만 아니라 현실에 필요한 것들을 만들기 위해서는 그 흐름을 잘 그리고 분석도 해야 하고 우리가 머리로 생각하고 있는 것을 구현하기 위해서는 수학도 어느 정도 할 수 있어야 한다.

 

보통 우리나라의 많은 학생들은 수학을 좀 싫어하고 영어를 싫어하는 경향이 있는데 프로그램을 작성할 때 문법에서 수학에서 배웠던 위치 개념이나 포물선 개념 등 컴퓨터는 처음 이용하고자 하였던 것이 수학용 계산기였기에 수학 또한 필수이다. 보통 기본서 들에는 C언어가 생겨나게 된 배경을 시작으로 프로그래밍이 무엇인지를 배우고 포인트, 배열, 구조체등을 배우고 하지만 대학교를 나왔더라도 학교 시간 외에 스스로 직접 해보지 않고 열성적으로 하지 않았다면 실 직장으로 이력서를 내거나 사회로 나올 때도 준비가 되어있지 않은 경우가 허다하다.

 

C언어는 현재 나와 있는 기본서 들을 공부하고 하더라도 대충한다고 되는 과목이 아니다 한 언어를 배우더라도 제대로 기본부터 배운 후 더욱 폭넓게 더 배우려는 학생들과 프로그래머들이 되었으면 한다. 이 책이 가르치는 대상은 너무 기본적인 것이 아니라 어느 정도 프로그램 언어를 접해본 사람들을 대상으로 한다.

 

프로그램이란 것이 외국에서 먼저 개발되었고 하였기에 외국의 저자들이 C언어에 대한 지식이 더 잘 이해하게 가르쳐 준다. 기본이 있는 프로그래머들에게 더 내공이 있는 C언어 지식을 주고 이해 잘되게 기록되어 있다. 이 책을 읽고 많은 사람들이 C언어의 내공이 쌓이고 다른 언어로 가더라도 잘 할 수 있도록 기본이 쌓여 수준 있는 프로그래머들이 많이 생기기를 바란다.

w******m 2013.04.05. 신고 공감 1 댓글 0
리뷰 총점 종이책
빼곡한 글의 프로그래밍 책이 지친다면...
"빼곡한 글의 프로그래밍 책이 지친다면..." 내용보기
2011년, C의 창시자 Dennis Ritchie가 작고했다. 현 시대 IT 르네상스의 기원이라고 할 사람이였다. C를 통해 C++, Java, C# 등이 나왔고, 그 배경으로 스마트폰으로 이어졌기 때문이다.얼마 전 기사에 Java의 보안에 치명적인 구멍이 있다는 기사가 떴다. 미 국토방위국(DHS)의 CERT(컴퓨터 침해 긴급 보안팀)은 Java 사용 중단을 권고했고, Apple 사는 자사의 Java 사용을 막았다. Orac
"빼곡한 글의 프로그래밍 책이 지친다면..." 내용보기
2011년, C의 창시자 Dennis Ritchie가 작고했다. 현 시대 IT 르네상스의 기원이라고 할 사람이였다. C를 통해 C++, Java, C# 등이 나왔고, 그 배경으로 스마트폰으로 이어졌기 때문이다.

얼마 전 기사에 Java의 보안에 치명적인 구멍이 있다는 기사가 떴다. 미 국토방위국(DHS)의 CERT(컴퓨터 침해 긴급 보안팀)은 Java 사용 중단을 권고했고, Apple 사는 자사의 Java 사용을 막았다. Oracle은 급하게 Patch를 update했지만 역시나 구멍이 발견되었다고 보도 된다.


물론 Java로 만들어진 이 IT 세계가 한꺼번에 무너지진 않을 것이다. Oracle은 계속 보완을 해나갈 것이고, 현재 치명적이라는 보안구멍은 좁아져나갈 것이나 편리함이라는 JVM의 단점이 드러나는 듯 하다. 근본적인 시스템에 접근하지 못한다는 단점이 C에게 스포트라이트를 비추게 만드는 것이다.



나는 C를 배워본 적이 없다. 단지 포인터에 가면 너무 복잡하다, Java의 Garbage Collection이 알아서 메모리 관리를 해주었던 것에 비해 C는 메모리에도 신경을 많이 써야 한다는 이야기만 들어 C가 매우 번거로운 언어라는 느낌만 가졌을 뿐이다.


그렇다 해도 여전히 그 강력함 때문에 C 제국은 선두를 달리고 있다. 책에 나온대로, 거의 모든 OS, 컴퓨터 언어, 게임은 C로 만들어졌기 때문이다.



나는 이 책을 펴면서 먼저 찾아보기에서 '포인터'를 찾아보았다. 가장 까다로운 부분이 쉽게 이해된다면 5부 능선을 넘은 것이나 다름없기 때문이다.

엥? 뭐야. 별거 아니였네. 이 책의 설명이 탁월했는지도 모른다. 까다롭다 말한 그들이 모두 지독한 돌머리는 아닐 거라 생각하기 때문이다. 게임과 같은 예시를 들어 풀어낸 설명은 매우 명료했고, 실전적이였다.


또한 Head First에서 다소 정신없었던 편집상태가 다소 차분해졌다. 적절하게 밝게 풀어낸 정도라고 보면 될 것 같다.


처음 언어를 배우려면 너무나 곤욕스러운 것이 많다. 영어든 C든 모두 생소한 것들이기 때문이다. 그럴 수록 쉽게 지루하지 않게 풀어야 한다.


영어 책 중에는 그렇게 개발된 책이 많지만 컴퓨터 언어에서는 이 Head First 시리즈일 것이다.


l******e 2013.01.19. 신고 공감 1 댓글 0
리뷰 총점 종이책
리눅스/유닉스 gcc기반의 C 프로그래밍 입문서
"리눅스/유닉스 gcc기반의 C 프로그래밍 입문서" 내용보기
C를 처음 접한지가 10년이 다 되가는 입장에서 책을 읽는 내내 감회가 새로웠다.(처음 읽은 C언어 책은 고등학교 1학년 때 읽었던 알기쉽게 해설한 C였다.)  단도직입적으로 이야기 해서 기존의 국내 서적 대부분이 C의 문법적인 측면과 그에 맞는 예제들을 제시하는 측면에서 다루고 있어서 소스 파일이 컴파일러, 링커를 어떻게 거치는지를 비롯하여 정적 링킹, 동적 링킹, IPC  등 시
"리눅스/유닉스 gcc기반의 C 프로그래밍 입문서" 내용보기

 C를 처음 접한지가 10년이 다 되가는 입장에서 책을 읽는 내내 감회가 새로웠다.(처음 읽은 C언어 책은 고등학교 1학년 때 읽었던 알기쉽게 해설한 C였다.)  단도직입적으로 이야기 해서 기존의 국내 서적 대부분이 C의 문법적인 측면과 그에 맞는 예제들을 제시하는 측면에서 다루고 있어서 소스 파일이 컴파일러, 링커를 어떻게 거치는지를 비롯하여 정적 링킹, 동적 링킹, IPC  등 시스템과 관련된 내용을 잘 제시하지 못한다.


 그러한 측면에서 헤드 퍼스트 C는 가뭄에서 단비와 같은 책이다. 문법적인 설명보다 실용적인 측면, 그리고 유닉스/리눅스 환경에 친숙한 도구들을 사용하여 컴파일러, 링커의 대략적인 동작 원리, 링크를 만드는 과정, valgrind로 메모리 누수를 측정하는 방법, 프로세스를 만들고, 통신하고, 스레드를 만들고 동기화 하는 것들을 총 망라했기 때문이다. 


  적어도 국내의 입문서들의 책을 읽었을 때 독자들은 컴파일러와 링킹의 과정을 제대로 이해할 수 있을까 라는 의구심이 들때가 있다.  또한 파이프, 프로세스, 스레드와 관련된 측면에서 다 같이 설명하지 못하는 것은 대부분의 책에서 다루는 환경의 근간이 윈도우라는 점이 없지 않아 있다고 생각한다.  그러한 측면에서 이 책은 리눅스/유닉스 환경에서 gcc를 이용하는 방법을 알려 주고 있고, 책의 내용을 하나씩 따라가다보면 적어도 앞으로 어떤 도구를 이용하여 공부해야 하는지 알 수 있다.(다른 점들은 윈도우와 맥 환경을 비교해서 언급하기도 한다.) 단점은 독자가 리눅스/유닉스 환경 또는 커맨드 라인에  친숙하지 않다면 적응하기가 조금 힘드리라 예상된다.


  전반적인 책의 구성에 있어서 배치는 필요에 의한 인과관계순이다.  예를 들어 표준 입출력을 설명하고, 여러개의 입출력을 둘 경우에는 어떻게 될것인가에서 파일이 등장한다거나, 힙할당이 나온다음에 valgrind가 나오는 등이다. 번역 상태는 나름대로 훌륭하고, 문법에 있어서 겉절이(?)들은 뒤에 부록으로 남겨놨으니 부록부터 읽어도 문제가 없다.  개인적으로 훌륭했던 것은 머니머니해도 QA부분이다. break문에 대한 설명이나. COW에 대해 언급, valgrind에 대한 설명 등이다.(이건 저자가 외국인이기에?)


  이 책의 최대 단점은 무엇일까?  다른 책과 비교해서 탄탄하게 문법을 배운다는 느낌이 약하다는 것?

그리고 문법을 이해하기 위한 예제가 적어서 연습하기가 그렇다는 것? 정도


  끝으로 헤드퍼스트 시리즈와 마찬가지로 이 책을 읽는 방법은 순서대로 따라가면 된다.  한 책을 통해서 무언가 개념을 이해하기에는 입문자에게는 중간 중간에 버거운 지점이 있겠지만, 이 책을 읽어본 결과 설명이 나름 잘 되어 있고, 부족한 설명이나 의문은 챕터별로 끝에 QA란에 잘 적혀 있다. 내가 본 헤드 퍼스트 시리즈중에서 디자인패턴 다음으로 실용적이었던 것 같다.

YES마니아 : 플래티넘 n***z 2012.12.23. 신고 공감 1 댓글 0