프로그래밍 능력은 현대사회에서 요구되는 가장 중요한 소양 중 하나입니다. 그래서 전공자든 비전공자든 프로그래밍에 관심이 클 수밖에 없습니다. 그런데 시중에 나와 있는 도서는 두 종류로 나뉩니다. 너무 기본적이어서 별로 도움이 되지 않거나 지나치게 두껍고 어려워서 읽기 어려운 부류입니다.
저는 중간 다리 역할을 하는 책이 필요하다고 생각했습니다. 입문자들이 꼭 알아야 하는 내용만 제대로 선별해서 이것을 왜 배워야 하는지 알려주고, 어떻게 활용하는지 좋은 예제로 쉽게 설명해주는 ‘진짜 프로그래밍 입문서’를 집필했습니다.
프로그래밍은 어렵지 않습니다. 원리와 방법은 매우 단순합니다. 꼭 알아야 할 기본 내용을 익혀서 적절하게 조합해 나가면 됩니다. 마치 레고 게임과 같습니다. 그리고 특정 분야에서 필요한 전문지식이나 고급 기술은 필요하면 그때그때 배우면서 활용하면 됩니다. 전문 프로그래머도 다 그렇게 합니다.
결국 이 책은 ‘다리’ 역할을 해주는 책입니다. 프로그래밍의 첫 발을 잘 띌 수 있게 도와주는 책, 그래서 제목도 “스타터”입니다.
■ 출판사 리뷰
★ 저자가 직접 소개하는 이 책의 특징
Q) 특별히 C# 언어를 주제로 선택하신 이유가 있을까요?
A) 세상에는 참 많은 프로그래밍 언어들이 있지요? 그 각각의 언어들은 사실 어떤 목적을 가지고 만들어졌어요. 예를 들어, 예전에 인기 있던 펄(Perl)은 문자열처리, PHP는 홈페이지 개발, 자바스크립트는 상호작용이 가능한 동적인 웹페이지를 만들기 위해, R은 통계 분석을 위해 만들어진, 뭐 이런 것처럼요.
그럼 C#은 무엇을 위해 만들어졌느냐? 이걸 이해하려면 C#이 세상에 나오게 된 배경을 좀 알아야 하죠. C#이 세상에 나올 당시 가장 인기 있던 언어가 바로 자바(JAVA)인데요. 썬 마이크로시스템즈(Sun Microsystems)가 개발했고, 지금은 오라클(Oracle)에서 라이선스(License)를 가지고 있죠. 그런데, 세계 제1의 컴퓨터 회사라고 자부하는 마이크로소프트사가 이 시장에서 밀릴 수는 없었던 거예요. 자존심이 상한 거죠. 그래서 자존심을 걸고 자바가 가지는 강점에 C나 C++, 그리고 비주얼베이직의 강점까지 모두 흡수한, 정말이지 그 어떤 목적의 프로그래밍도 가능한 슈퍼 랭귀지를 만들었는데, 그게 바로 C#이예요. 그래서 C# 하나만 잘 익혀두어도 세상에 만들지 못할 프로그램이 없다고 말할 정도죠. 배우기도 상대적으로 쉽고, 사용할 수 있는 분야도 가장 넓은 그런 언어입니다.
한국에서는 아직 이슈가 덜 되고 있지만, 해외에서는 C#의 위상이 이미 대단합니다. 초심자들이 자신의 첫 프로그래밍 언어로 선택하기에 가장 좋은 선택이라고 생각합니다.
Q) C# 언어를 다룰 수 있게 되면 어떤 방향으로 활용할 수 있나요?
A) 무엇이든 다 만들 수 있어요. 간단한 계산기부터 데이터베이스 프로그램, 또 모바일 앱 프로그램, 게임 프로그래밍, 사물인터넷도 개발할 수 있고, 특히 최근 가장 이슈인 메타버스에도 C# 언어는 활용되고 있습니다. 정말 범용 프로그래밍 언어의 최정상에 있다고 생각합니다.
Q) 프로그래밍 언어를 다루는 책들은, 입문서라고 해도 어려운 경우가 많던데요. 저자님께서 직접 꼽아주시는 도서의 특징과 이 책을 읽을 독자층은 누구인가요?
A) 맞아요. 앞서도 얘기했듯이 기존의 프로그래밍 언어 입문서들은 말만 입문서고, 전문적인 지식을 이미 갖추지 않고는 이해할 수 없는 내용을 많이 포함하고 있더라고요. 사실 입문서라고 볼 수 없는 거죠.
하지만 『C# 스타터』는 이런 부분을 잘 조율하려고 노력했어요. 처음 입문하는 사람들이 꼭 알고 있어야 하는 것이 무엇인지, 그리고 어느 깊이까지 이해해야 하는 것인지 정말 딱 필요한 수준으로 쓰려고 노력했습니다. 프로그래밍에 대해 좌절감을 느끼는 사람들이나 시작조차 두려운 사람들에게 용기를 줄 수 있는 그런 책이라고 할 수 있죠.
Q) 기존 C# 도서들과 비교하자면 어떤 차별점이 있을까요?
A) 구성에 특히 신경을 많이 썼어요. 사람들이 재미있게 공부하려면 궁금증을 계속 해소해주어야 하잖아요. 예를 들어, 변수를 배우고 나면, 사용자에게 입력 값을 받는 방법이 궁금해지고, 기본적인 연산을 배우고 나면 계산기 프로그램이라도 한 번 만들어보고 싶어질 수밖에 없잖아요. 그래서 이 부분을 공부하면, 무엇이 궁금해질까? 또 다른 부분을 설명하고 나면, 이쯤에서는 또 해보고 싶은 것이 무엇일까? 계속 고민하면서 글을 썼어요. 그러다보니, 책이 지루하지 않고 빨리 읽히는 걸 느낄 수 있을 거예요. 그리고 마치 옆에 선생님이 있는 것처럼, 궁금증이 그때그때 해결되어가는 재미도 느낄 수 있고요.
Q) 이 책을 읽고 나면 독자들은 어느 정도 수준까지 성장할 수 있나요?
A) 우선, 저는 이 책을 두 번 정도 읽기를 권합니다. 금방 볼 수 있을 거예요. 그리고 나면 아마 프로그래밍에 대해 전체적인 그림이 그려질 거고요, 그런 뒤에는 더 두껍고 어려운 책을 읽어도 예전과 달리 그게 무슨 말인지 이해할 수 있게 되죠.
물론, 자신만의 프로젝트를 바로 시작할 수도 있어요. 그러면 또 이래저래 다양한 자료를 찾아보게 될 텐데, 인터넷 등에서 필요한 정보를 찾아볼 때도 그것을 어려움 없이 이해할 수 있게 될 겁니다.
Q) 집필 과정에서 힘들었던 부분은 없었나요?
A) 출판사에 원고를 넘기기 전에 제 스스로 이미 세 번을 다시 썼어요. 앞에서 말한 것처럼, 구성 때문이에요. 뭔지 모를 궁금증을 가지고 막연하게 책을 읽는 것은 아주 지루한 일이거든요. 그래서 어떻게 하면 좀 더 속이 뻥 뚫리는 전개를 할 수 있을까, 그걸 고민하느라 다시 쓰고 또 다시 쓰기를 반복했었죠. 그게 제일 힘들었어요. 그리고 작은 책을 만들려고 노력했어요. 소설책처럼 어디서나 휴대하고 다니면서 가볍게 읽을 수 있는 그런 책을 만들기 위해 고민했던 점이 가장 힘들었던 것 같아요.
Q) 마지막으로, 책을 읽을 독자님들께 응원의 말을 부탁드립니다.
『C# 스타터: 모바일, 게임, 메타버스 개발에 최적화된 프로그래밍 언어의 입문서』를 읽으실 독자님!
이 책은 이제 막 전공을 시작하려는 분이나, 비전공자인데 프로그래밍을 배우고자 하는 분들을 위해 쓰여 졌습니다. 아무쪼록 이 책이 개발자로 나아가거나 프로그래밍에 첫 발을 내딛고 싶어 하는 여러분의 목표에 ‘좌절 없는’ 첫 단추가 되어주기를 바랍니다. 그리고 반드시 그렇게 될 겁니다. 파이팅!
★ 시리즈 소개
#바쁘다 바빠 현대사회
#이것만 알면 할 수 있다
BM 성안북스의 IT 프로그래밍 입문서 시리즈입니다. 4차 산업 시대에 현대인의 필수 소양으로 각광 받는 프로그래밍이 궁금하거나 본격적으로 배워 보고 싶은 독자들을 위한 입문서입니다. 바쁜 일상에 반해 지나치게 방대한 정보의 홍수 속에서 시작과 동시에 좌절감을 느끼지 않도록 ‘꼭 알아야 할 지식’만을 정리하여 쉽고 편하게 익히고 활용할 수 있습니다.
목차
Prologue – 개발자를 꿈꾸는 사람들에게
인터뷰를 통해 저자가 직접 소개하는 이 책의 특징
Chapter 0. 프로그래머 안경 쓰기
0.1 프로그래밍이란
0.2 순서도 작성
0.3 의사 코드 작성
Chapter 1. 최소한의 지식
1.1 닷넷 프레임워크와 C#
1.2 개발 환경 준비 : 비주얼 스튜디오 커뮤니티 에디션
1.3 새 프로젝트 만들기
Chapter 2. C# 문법 1 : 기본
2.1 C# 자료형
2.2 변수
2.3 사용자 입력받기와 형 변환
2.4 상수
2.5 주석
2.6 산술연산자
Chapter 3. C# 문법 2 : 흐름 제어
3.1 조건문
3.2 비교 연산자
3.3 반복문
3.4 논리 연산자
Chapter 4. C# 문법 3 : 프로그램 설계
4.1 함수(메소드)
4.2 함수 호출 방법
4.3 순환함수와 함수 오버로딩
4.4 클래스
4.5 지역 변수와 전역 변수
4.6 접근 제한자 public vs. private
4.7 캡슐화와 정보 은닉
4.8 프로퍼티(속성)
4.9 this 키워드
4.10 생성자와 소멸자
4.11 클래스, 함수, 프로퍼티, 생성자 비교
4.12 접근 제한자 readonly
4.13 배열
4.14 Params 키워드
Chapter 5. C# 문법 4 : 고급
5.1 인덱서
5.2 열거형 클래스
5.3 정적 선언
5.4 상속
5.5 접근 제한자 protected
5.6 다형성
5.7 추상 클래스
5.8 인터페이스
5.9 구조체
5.10 델리게이트
5.11 제네릭
5.12 리스트
5.13 암시적 변수 선언
5.14 서식 문자열
5.15 예외 처리
Chapter 6. 프로그램 구조
6.1 네임스페이스
6.2 솔루션과 프로젝트
6.3 프로젝트 추가
6.4 리팩토링(다중 소스 파일 구성)
6.5 라이브러리 만들기
Chapter 7. C#으로 구현하는 자료구조
7.1 스택
7.2 큐
7.3 딕셔너리
7.4 해쉬셋
마치며
저자
■ 저자 : 문기준
미국 실리콘밸리에 있는 San Jose State University에서 Computer Science를 전공하고, 역시 실리콘밸리에서 유닉스와 리눅스를 기반으로 약 7년 정도 프로그래머 생활을 하다가 귀국하여, 지금까지 20년 정도 교육관련 사업 및 관련 소프트웨어를 제작하고 있다.