우연한 기회로 Do it! 첫 코딩 책을 읽게 되었다.
컴퓨터 공학을 전공하며 코딩에 처음 입문하는 친구들을 많이 보았는데,
그런 친구들에게도 보여줄 수 있는 책인지 궁금했다.
처음에 비트, 컴퓨터 장치 요소, 프로그래밍 언어 등 컴퓨터를 이해하기 위한 기본 지식들을 배운다.
프로그래밍을 하기 전에 딱 알면 좋을 지식들을 먼저 배치했다.
그러나 첫 단원 마지막에 속성(Property)을 설명하는 부분은 살짝 동떨어져있는 느낌을 받았다.
아마도 자바의 클래스를 뒤에 소개하기 때문에 미리 언급을 한 느낌이었다.
두 번째 단원은 메모리 공간과 변수, 인터넷 환경에서 실습하는 방법을 배운다.
실제로 프로그래밍을 처음 배우는 친구들이 변수란 개념을 정확히 이해하지 못하는 경우를 많이 봤었다.
컴퓨터의 구성요소인 메모리와 변수를 정확히 연관짓지 못하고 그저 '마법'처럼 동작한다고 믿고 있었다.
이런 부분을 먼저 언급하며 쉽게 이해하도록 하니 다행스러웠다.
그 다음부터는 자바 프로그래밍 영역이다.
조건문과 반복문, 클래스와 객체지향 개념 일부, 도움이 될 만한 여러 기초 개념들 ( 배열, 랜덤, 예외처리, Sleep, 스레드, SQL) 로 책이 마무리가 된다.
프로그래밍을 맛만 보고 싶다는 분들한테는 정말 좋은 책이라고 생각한다.
빠르게 맛만 볼 수 있을 뿐 아니라 딱히 오개념이 생길 부분도 없었다.
그리고 자바 프로그래밍 실습은 인터넷 환경만 되면 할 수 있기에, 별도의 프로그램을 설치할 필요도 없다.
책을 읽으면서 보충할 부분이 없나 찾아보며 읽었다. 대부분 좋았지만 몇 가지 의문이 좀 든 부분도 있었다.
조금 고쳤으면 하는 점과 좋은 점, 궁금한 점으로 나누었다.
< 고칠 점 >
1번 피드백. 38P 10L
중앙처리장치 제작사마다 기계어가 다르다는 논리의 예시로, 윈도우 PC와 맥 PC를 예를 들었는데 올바르지 못한 예시라고 생각한다. 중앙처리장치가 다른 것이 아니라 운영체제가 다른 것이기 때문이다.
è ‘같은 프로그래밍 언어라도 기계(중앙처리장치)가 다르면(예를 들면, Intel CPU가 장착된 PC와 ARM CPU가 장착된 PC) 컴파일러가 서로 달라야 하기 때문이죠.’
로 고쳐야 올바른 논리라고 생각한다.
프로세서의 제조사가 다르더라도 명령어 집합 체계가 같거나 서로 호환이 되는 아키텍처라면 어셈블리 코드가 호환이 될 수도 있다.
< 좋은 점 >
피드백 1번. 41P 14~16L
마크업 언어와 프로그래밍 언어의 차이점을 명확히 알려줘서 좋았다.
< 궁금한 점 >
피드백 1번. 222P
랜덤 함수를 소개할 때 왜 10을 곱하고 다시 나머지를 구하는지 의문이다.
Math.random()은 0 이상, 1 미만인 값이 반환이 되고, 수학 부등식으로 다음과 같이 표현이 된다.
( 0 <= X < 1, X : random number )
흔히 수학 시간에 배웠던 대로 부등식 각각 양변에 전체 경우의 수(예를 들어 가위바위보)를 곱한다면, 다음과 같다.
0 * 3 <= X * 3 < 1 * 3 -> 0 <= X * 3 < 3 으로 소수점을 제외하면 똑같이 0,1,2 총 3가지의 경우의 수가 나온다.
이 방법을 사용하면 첫 번째로 경우의 수가 10이 넘어가도 된다.
그러나 본문처럼 10을 곱해버린다면 10 이하의 경우의 수만 나올 것이므로, 모든 경우에 적용을 할 수 없다.
두 번째로 불필요한 나머지 연산도 하지 않아도 된다.
'도서 > IT 도서' 카테고리의 다른 글
[리뷰] 기계는 어떻게 생각하는가? : HOW SMART MACHINES THINK (0) | 2020.01.10 |
---|---|
[ IT 도서 리뷰 ] 다이내믹 프로그래밍 완전 정복 (0) | 2019.12.15 |
[ IT 도서 리뷰 ] 나는 LINE 개발자입니다 (0) | 2019.11.15 |
모던 웹을 위한 HTML5 + CSS3 바이블 3판 (0) | 2019.09.15 |
[IT 도서 리뷰] C++ 최적화, Optimized C++, 한빛미디어 (0) | 2019.08.06 |
댓글