“첫 프로그래밍 언어로 무엇이 좋을까요?”라는 질문을 많이 받습니다. 이 질문에 대한 대답은 쉽지 않습니다. 추가적인 대화가 필요합니다. ‘개발자라면’, ‘비개발자라면’, 그리고 ‘무엇을 하고 싶은지’ 등의 이야기가 필요합니다. 그럼에도 파이썬을 추천하는 경우는 다음과 같습니다.

•개발자로서 스타트업에서 웹 서비스 개발을 하고 싶은 경우
•개발자로서 서비스에 활용할 인공지능을 개발하고 싶은 경우
•개발자로서 데이터 수집 프로그램을 개발하고 싶은 경우
•비개발자로서 엑셀 이상의 데이터 분석을 하고 싶은 경우
•비개발자로서 업무 자동화를 위한 간단한 프로그램을 만들고 싶은 경우
•비개발자로서 프로그래밍을 접해 보고 싶은 경우

이 중 마지막에 있는 ‘비개발자로서 프로그래밍을 접해 보고 싶은 경우’가 파이썬이 첫 입문언어로 좋다고 알려진 이유라고 생각하는데, 이와 관련하여 더 이야기를 하고 싶다면 필자의 유튜브 채널에 있는 파이썬 강의에 댓글을 남겨 주세요. 이야기를 공유해서 다른 분들도 참고할 수 있으면 좋을 것 같습니다.

웹 서비스 개발, 인공지능 개발, 데이터 수집 프로그램 개발, 데이터 분석, 업무 자동화 등을 공부해볼 수 있습니다. 또한 심심할 때 나름대로 보람 있게 시간을 보낼 수 있는 알고리즘 문제 풀이도 해볼 수 있습니다.

『혼자 공부하는 파이썬』으로 기본이 확실해졌다면 어떤 프로그래밍 언어로도 넘어갈 수 있습니다.

파이썬은 다른 프로그래밍 언어들보다 공부하는 과정에서 난이도 증가가 매우 부드러운 언어입니다. 다른 프로그래밍 언어는 공부 도중에 “이걸 넘어갈 수 있을까?”라는 생각이 드는 벽이 자주 나타나는데, 파이썬은 그렇지 않습니다. 그래서 프로그래밍 입문자가 차근차근 프로그래밍 개념을 공부할 때도 좋은 언어인데요. 그래서 파이썬으로 기본 문법을 배운 뒤, 다른 프로그래밍 언어로 넘어가는 방법도 괜찮다고 생각합니다.

프로그래밍을 시작하는 것은 쉽습니다. 그러나 목표가 무엇이냐에 따라 프로그래밍은 쉽지 않습니다.

2019년 US News & World Reports에서 선정한 연봉 순위 TOP 100 직업에 1위로 이름을 올린 직업은 소프트웨어 개발자였고, 컴퓨터공학과의 커트라인이 의과대학을 넘은 대학도 있었습니다. 극단적인 예이긴 하지만, 이제 프로그래밍은 많은 사람이 가치 있다고 믿는 영역입니다. 많은 사람이 가치 있다고 믿는 이유는 그것이 갖기 쉽지 않기 때문입니다. 그래서 프로그래밍은 쉽지 않습니다. 프로그래밍을 공부해 보고 싶고, 프로그래밍으로 무언가를 해보고 싶다면 힘을 내야 합니다. 힘들지만 분명 재미있을 것입니다.

C 언어는 시스템 자원을 관리하는 운영체제OS 개발을 위해 만들어진 언어입니다. 따라서 하드웨어를 제어하고 실행 효율을 높여야 하는 곳에 주로 쓰입니다.

대표적으로 특정 하드웨어 에 최적화된 기능이 필요한 임베디드 프로그래밍에 가장 많이 쓰입니다. 가전제품을 비롯한 의료 장비, 무기, 엔진 등 관련 부품에 들어가는 프로그램 개발에 사용됩니다. 사물인터넷과 같이 사물에 인터넷을 연결하여 제어하는 곳에도 C 언어를 사용합니다.

무엇보다 프로그래 밍 절차를 이해하고 데이터 처리 과정을 메모리 상황과 함께 고민해볼 수 있는 가장 좋은 언어입니다. 그래서 다른 언어들을 배우기 전에 꼭 거쳐야 할 기본 언어라고 생각합니다. 게임 프로그래밍에 많이 사용되는 C++, C# 등은 C를 기반으로 파생된 언어이며, 웹 개발에 쓰이 는 자바, 빅데이터 분야에 쓰이는 파이썬 등의 클래스는 C 언어의 구조체로부터 그 개념이 출발합니다. 결국 C 언어를 잘한다는 것은 그 자체로도 가치가 있지만 다른 수많은 언어를 쉽게 배울 수 있는 가능성을 갖고 있다는 뜻입니다.

C 언어를 배우고 난 후에는 객체지향 언어를 공부하는 것이 좋습니다. 자바, 파이썬 등 현재 인기 있는 대부분의 언어가 객체지향 언어이기 때문입니다.

또는 C 언어에서 파생된 객체지 향 언어인 C++을 공부하면서 객체지향 프로그래밍 방식에 대해 고민하는 시간을 갖는 것도 좋습니다. 다만 C++ 언어가 깊고 내용이 많으니 객체지향 언어에 대한 개념만 정리하고 자 바나 파이썬으로 넘어가는 것도 좋습니다. 임베디드 프로그래밍도 웹이나 앱과 연동하여 작 성하므로 자바가 널리 사용됩니다.

C 언어를 배우고 난 후에 또 한 가지 꼭 해야 할 일이 있습니다. 자료구조와 알고리즘에 대한 공부를 시작해야 합니다. 같은 데이터를 처리할 때 메 모리를 더 적게 사용하면서 빨리 실행되는 프로그램을 만들려면 상황에 맞는 적절한 자료구 조와 알고리즘의 선택이 필요합니다.

필자는 이 책을 읽는 독자가 C 언어를 공부하는 것에 그치지 않고 객체지향 프로그래밍에 대한 이해와 기본적인 자료구조 및 알고리즘을 이어서 공부할 수 있도록 온라인 카페를 통해 꾸준히 지원할 예정입니다.

적어도 우리나라의 IT 업계에서는 그 말이 맞습니다. 왜냐하면 자바 기반의 프로젝트가 상당히 많기 때문이죠.

프로그램 개발은 수요(요청, 발주)가 있어야 진행할 수 있습니다. 그런 면에서 자바 수요를 따라갈 프로그래밍 언어는 없습니다.

생각해 보세요. 만약 자바를 배웠는데 자바 프로젝트의 수요가 없다면 어떻게 될까요? 개발업체에서는 자바 프로그래머를 채용하지 않을 테고, 자바 프로그래머는 자바로 개발할 프로젝트가 없으니 다른 프로그래밍 언어를 배워야 할 겁니다.

그런데 우리나라 정부, 공공기관, 대기업에서 발주하는 프로젝트는 대부분 자바 기반의 프로젝트입니다. 수요가 많으니 자바 프로그래머의 수요도 많습니다. 앞으로도 그럴 것으로 예상합니다. 지금 자바를 배워도 늦지 않은 이유입니다.

자바로 할 수 있는 일은 매우 많습니다. 그런데 중요한 것은 수요가 있는 곳에서 발주하는 자바 기반의 프로젝트가 무엇인가 하는 것이겠죠?

웹 개발 프로젝트가 가장 많습니다. 여기서 자바 프로그래머는 웹 서버 개발을 맡습니다.

다음으로는 앱 프로젝트인데요, 안드로이드 앱을 만들 때 기반 언어가 자바입니다. 안드로이드 앱을 만들려면 자바를 알아야 합니다. 이 두 가지 프로젝트가 가장 많은데 이것만 잘해도 자바 프로그래머로 일감이 없어지는 경우는 없을 겁니다.

이 외에도 다른 소프트웨어 개발로 넘어가기가 쉽다는 장점이 있어요. 데이터베이스, 사물인터넷, 빅데이터, 인공지능 분야로도 진출이 가능합니다.

네. 이 두 가지 직군을 목표로 잡았다면 자바가 정답입니다. 혹은 프로그래머가 되고 싶은데 아직 구체적인 목표를 잡지 않았다면 다른 분야로도 쉽게 넘어갈 수 있는 자바를 공부하라고 말씀 드리고 싶네요.

도서  자세히 보기

직접해보는 161개 손코딩 예제 제공

서현우 저 | 한빛미디어

JAVA 8 & 11 지원

신용권 저 | 한빛미디어

직접 해보는 154개 손코딩 예제 제공

윤인성 저 | 한빛미디어