JetBrain사의 2020년도 개발자 에코시스템 설문조사에 따르면 C#은 주로 사용하는 언어 중 8위를 차지할 정도로 흔하게 사용되는 언어 중 하나입니다. 또한 대표적인 게임엔진인 유니티에서 C#을 통해 스크립팅을 하기 때문에 앞으로 VR/AR과 미디어 콘텐츠 시장이 확대됨에 따라 사용자가 증가할 것으로 기대되는 언어 중 하나입니다. 저도 회사 업무에 잠시 C#을 사용한적이 있어서 개인적으로도 많은 관심을 가지고 있었는데, 좋은 기회를 통해서 이번에 소개드리는 책으로 제대로 공부할 수 있었습니다.
저는 컴퓨터공학을 전공하지 않았기 때문에 C계열 언어들에 대한 막연한 두려움을 가지고 있었습니다. 프로그래밍을 시작하는 사람들에게 좌절을 맛보여주는 포인터와 절차지향적 언어라는 인식, 그리고 "cout << "Hello, world!" << endl;"라는, 도저히 이해가 불가능한 문법이 그런 공포감을 더해주었습니다. 하지만 C#을 사용하면서 그러한 인식은 모두 날아갔습니다. 오히려 자바보다 더 직관적이고 객체지향에 유리한 언어라는 느낌을 받았고, 편의성 뿐만 아니라 성능적인 측면에서도 부족함을 느끼지 못했습니다. (물론 C, C++과 C#은 이름만 비슷한 다른 언어로 보는 것이 맞습니다. 본 책의 1장에서 관련된 내용을 다룹니다.)
저는 이전까지 파이썬을 주로 사용했는데, 스크립트 언어를 쓰다가 정적 언어를 써보니 파이썬의 단점이 더욱 부각되었습니다. 예를들어 파이썬에서는 타입을 지정해 주지 않아서 제가 주로 사용하는 IDE인 Visual Studio Code에서 몇몇 변수의, 특히 직접 구현한 클래스 인스턴스의 경우 타입을 바로 확인하기 어렵기 때문에 코드의 위쪽으로 다시 올라가서 확인하거나 검색 기능을 쓰게 되어 번거로웠습니다. 또한 어느새 익숙해져 버린 클래스의 self라는 예약어를 사용하지 않는 것 만으로도 코드의 가독성이나 모호함이 많이 해소되어서 코드륵 작성하기 편했습니다. 분명 자바에서 파이썬으로 넘어갈 때 신세계를 보았는데, 이제는 마치 권태기가 온 것 처럼 C#을 쓰면서 파이썬의 단점이 보이게 되더라구요.
이 책에 대한 내용으로 다시 돌아와서, 이 책은 정말 정말 친절합니다. 저자분을 뵌적은 없지만 정말 친절하시고 물어보면 설명을 열심히 해주실 것 같다는 생각이 들 정도로 친절합니다. 1장부터 프로그래밍 언어의 역사와 C#의 특징에 대해서 쉽게 서술되어있고 예시 코드들은 생략 없을 뿐 아니라 실행 결과와 컴파일 오류가 발생한다면 오류 메세지까지 모두 보여줍니다. 그리고 가장 좋았던 점은 개념 설명 이후에 나올 수 있는 예상 질문들을 정리한 "여기서 잠깐" 파트입니다. 프로그래밍을 처음 하거나 C#을 처음 접할 때 생길 수있는 궁금증들을 쉽게 설명해 주는데, 거의 1장에 1개씩 있을 정도로 많이 있기 때문에 마치 벽돌 사이의 시멘트처럼 큰 지식 덩어리의 사이사이를 메워주는 역할을 해줍니다. 그래서 머리속에 조금 더 체계적으로 개념을 정리할 수 있게 도와주었습니다.
결론적으로 이 책에 대한 제 생각을 정리하자면, "이정도 책이 있다면 프로그래밍의 시작을 C#으로 해도 괜찮겠다."입니다. 요 몇년 사이 첫 프로그래밍 언어가 자바에서 파이썬으로 옮겨지는 현상을 보고 있는데, 이 이유로는 당연히 좋은 파이썬 입문책이 있기 때문이기도 하지만 언어 자체가 쉽기 때문에 접근성이 좋아서 첫 프로그래밍 언어로 선택한다고 생각합니다. 또한 파이썬 입문 책들은 객체지향, 제네릭, 인터페이스, 추상 클래스, 스레드 등과 같은 개념들을 다루지 않거나 가볍게 넘어가는 경우가 많고 특히나 파이썬은 위와 같은 개념들의 사용법이 다른 언어들과는 다른 면들이 있어, 추후 다른 언어를 사용하게 될 때에 다시 공부해야 할 수 있습니다.
하지만 제 경험상, 프로그래밍을 시작하게 된다면 언젠가 자바와 C계열 언어와 같은 정적 언어를 사용하는 날이 (불행인지 행운인지는 모르겠지만) 필연적으로 온다고 생각하기에, 이 책을 통해 C#으로 프로그래밍을 먼저 배우고, 파이썬을 다루는 것도 괜찮은 테크트리라고 생각합니다 (저 또한 자바에서 파이썬으로 넘어간 케이스이기도 하고요). 활용성 측면에서도 딥러닝이나 머신러닝은 라이브러리가 잘 구축된 파이썬에 비해 부족하지만 수리적인 계산이나 윈도우 프로그램 및 웹서버 개발, VR이나 게임 등 그래픽적인 부분에서 활용도가 높기에 미래에 개발자를 희망한다면 C#을 첫 프로그래밍 언어로 선택해도 괜찮다고 생각합니다.
p.s. 그리고 저자가 운영중인 카페도 있으니 질문하실 내용이 있다면 방문해 보셔도 좋을 것 같습니다! 저자분과 여러 회원분들이 질문글에 열심히 답변을 남겨주시더라구요.
본 리뷰는 한빛미디어에서 도서만 제공하였으며 어떠한 가이드나 금전적인 지원을 받지 않았습니다.
'공부를 끄적끄적 > 책 리뷰' 카테고리의 다른 글
[리뷰] 14가지 AWS구축 패턴 (0) | 2021.04.18 |
---|---|
[리뷰] 처음 배우는 쉘 스크립트 (0) | 2021.03.21 |
밑바닥부터 시작하는 딥러닝3 - 다음 단계를 향해 (0) | 2020.12.20 |
우아한 사이파이, 엔지니어를 위한 강력한 무기 (0) | 2020.11.22 |
[리뷰]파이썬과 대스크(Dask)를 활용한 고성능 데이터 분석 (0) | 2020.10.24 |