안녕하세요. DeveloperEthan입니다. 오늘 제가 리뷰할 책은 혼자 공부하는 C언어입니다.
개요
저는 파이썬으로 처음 개발공부를 시작하였는데요. 파이썬은 메모리를 생각할 필요없이 자동으로 할당되어서 쓰기 편하고 데이터분석, 웹개발, 인공지능, 영상제작에도 사용되는 가성비 좋은 프로그램이죠. 하지만 저는 파이썬을 공부하면서
어딘가가 잘 못 되었을 때 무슨 문제인지 찾기가 어려웠어요. 그래서 "정석대로 가자"라는 마음을 먹고 C언어를 공부하려고 했죠. 인강도 들어보고 여러 책도 보려고 했지만 포인터라는 장벽까지 가다가 지쳐서 끝까지 계속 못 갔어요. 어렵게 설명한 책도 많았고 답지도 잘 안되있는 경우도 있었구요. 그렇게 고민하다가 "혼자 공부하는 C언어"를 선택하게 되었습니다
왜 C언어 인가?
C언어하면 왠지 모를 거부감부터 드시지 않으시나요? 저도 그랬었어요. 포인터, 배열 이런 것들이 어렵다고 하고 구조체 이런 단어들만 봐도 왠지 어려울 것 같잖아요. 그렇지만 C언어를 꼭 공부해야 되는 이유가 있습니다.
C 언어는 절차지향적언어로 기계와 친밀한 언어인데요. 임베디드 시스템 같은 초소형 기계를 제어하는데 많이 사용됩니다.
"나는 임베디드 안 갈건데 파이썬만 배워서 공부하면 안되?"라고 생각하시는 분들도 계실 것 같아요. 제 생각에는 가볍게
자기 계발을 하시는 분들은 그래도 괜찮을 것 같아요. 하지만 진짜 개발을 제대로 하고 싶다면 C언어부터 하시는 것을 추천드립니다.
왜냐하면 C언어가 가장 근본이 되는 언어이고, 기계와 친화적이라는 것은 컴퓨터 작동원리를 가장 많이 알 수 있다는 것이겠죠? 그리고 메모리 할당을 직접 해야되서 메모리에 대한 지식도 알 수 있는 것 같아요.
그냥 개발을 해도 되지만 근본 원리를 알고 개발을 한다면 훨씬 더 좋은 코드를 짤 수 있겠죠?
혼자 공부하는 C언어의 장점은?
"한마디로 혼자 공부하기에 특화된 책이다."라고 말하고 싶어요.
가장 좋았던 부분은 두 가지 인데요.
첫 번째는 단원별로 구성된 "확인문제"에요.
모든 단원이 완벽하다고 느꼈지만 특히 "포인터"부분이 정말 좋았어요. 포인터 부분에서 &,*이런 표시들이 나오는데 그런 부분들을 잘 이해할 수 있도록 설명해 주셔서 포인터에서 막히는 일이 없었어요.
포인터로 C언어 포기하는 분들이 많은 것을 보면 이 책의 엄청난 장점이겠죠?
두 번째는 "혼자 공부하지만 혼자 공부하지 않는다"라는 점이에요.
학습 커뮤니티가 있어서 질문을 할 수 있고, 질문도 금방 금방 알려주시고, 진짜 감동인 것은 제가 책 어디 부분 이해 안 된다고 하니깐 바로 영상 찍어서 유튜브로 올려주셨어요. 이런 부분이 혼자 공부한다는 느낌이 들지 않도록 만들어 주셨습니다.
또한 단원이 18-1, 18-2 이런 식으로 구성되는데 2 부분의 끝날 때 도전실전예제라는 부분도 진짜 도움이 많이 되었습니다.
보통 다른 책들 보면 <연습 문제 만들어 놓고 혼자 고민해 봐라>이런 식으로 쓴 경우가 많은데 강사님은 혼자서 충분히 할 수 있는 것은 코드로 올려주시고, 설명이 더 필요한 부분은 동영상 강의로 올려주셨어요.
그리고 도전실전예제라고 해서 무작정 어려운 것이 아니라 책의 기본 내용을 토대로 여러 가지 조합을 하는 문제라
여러 번 공부해서 적시적소에 쓰는 연습을 더 많이 해야겠다고 느꼈어요.
책을 읽은 후 어떤 변화가 있었나요?
저는 개발자와 영상 Artist의 능력을 결합한 저의 사업을 하는 게 목표이고 열심히 살고 있는데요. 제가 얼마 전까지 3D공부를 하다 보니깐 코딩을 알면 훨씬 더 용이하게 접근할 수 있더라고요.
저는 하루에 2시간 정도 이틀에 한번 정도 공부해서 2주 정도 걸렸는데 처음 공부해도 충분히 이해가능해서 빨리 끝냈고, 제대로 공부했다는 느낌을 가질 수 있었어요.
그리고 C언어가 원조이기 때문에 앞으로 다른 언어를 배우는 것도 두렵지 않게 되었어요.
C언어가 파이썬, 자바보다 우수하고, 다른 언어가 열등한 것은 아니지만 그대로 모두 C언어를 바탕으로 만들어졌기 때문에
각 언어의 특징을 잘 파악할 수 있겠다는 생각이 들었고, 개발자의 첫 시작이라는 생각이 들었어요.
이 책을 어떻게 활용하면 좋을까요?
1. 예제를 그대로 따라 하면서 먼저 이 내용이 무엇일까 생각해보면서 하면 좋은 것 같아요.
예제-> 설명 이런 식으로 구성되어있는데 예제를 보면서 과정마다 이게 왜 쓰였구나를 이해하면 책 끝날 때쯤에는 모든 코드를 이해할 수 있게 되실 것 같아요. 책 설명이 잘 되어있어서 질문도 별로 안 해도 되었습니다.
2. 꼭 한 프로젝트에 한 예제씩 실행할 것
이렇게 예제 하나당 한 개씩 만드셔야 여러 개를 만들어서 오류가 발생하는 일이 없어져요.
저는 이렇게 하다가 마지막에 오류 나서 그제야 알았는데 제 글을 보고 공부하시는 분들은 이것을 보고 꼭 한 프로젝트에 하나씩 하시길 추천드려요.
3. 절대 포기하지 말 것
책이 워낙 좋고, 강사님도 꼼꼼하시지만 책을 읽는 것 자체가 익숙하지 않은 분들이 계실 거예요. 그런 분들도 압박감을 버리시고 큰 그림을 그린다고 생각하고 천천히 하나하나 따라 해보시는 것을 추천드려요. 토끼와 거북이 싸움에서 거북이가 이긴 것 기억하시죠? 방향이 가장 중요하다고 생각합니다.
혼자 공부하는 C언어를 시작으로 앞으로 좋은 개발자로 성장해가는 것을 기록하여 보겠습니다.
감사합니다.