
4차 산업혁명 시대, 코딩(coding)은 어떻게 배워야 할까? 인공지능(AI) 기술의 발전과 함께 코딩은 점점 중요해지고 있다. 미래의 직업을 위해서 또는 단순히 취미로 프로그래밍을 배우는 사람들이 증가하고 있는데, 코딩은 현대 사회에서 배우면 가장 유익한 기술 중 하나로 자리매김하고 있다.
그런데 코딩을 이제 막 시작하려면 어떤 단계를 따라야 할까? 테크 프레지던트의 가이드를 따라 코딩 학습의 목표와 학습 계획을 세워보자.
코딩 이란 무엇인가?
먼저 '코딩' 이란 무엇일까? 코딩 또는 컴퓨터 프로그래밍은 컴퓨터 시스템과 상호작용하는 방법이다. 국어, 영어 등 '언어'를 통해 사람 간에 소통하는 것처럼 컴퓨터 시스템과 소통하기 위해선 코딩이 필요하다. 코드는 기계에 무엇을 해야 하는지 지시하는데, 따라서 코드를 쓰는 것은 일련의 명령을 작성하는 것과 비슷하다.
코드를 읽고 쓰는 것을 배우면 특정 작업을 수행하거나 문제를 해결하는 앱, 프로그램, 웹사이트 등을 개발할 수 있다.
프로그램 언어의 분류
프로그램 언어는 두 가지로 분류할 수 있는데, 하위 수준 언어는 특정 하드웨어 및 컴퓨터 아키텍처와 상호작용하기 위한 언어이다. 제한된 범위의 프로그래밍 구조를 가지고 있으며 실행하기 어렵고, 개발 및 디버깅이 어렵다. 기계 수준 언어가 여기에 해당한다
반면 프로그래밍 언어로 널리 알려진 자바(Java), C, C++, 파이썬(Python) 등 고급 언어는 사용 중인 컴퓨터에 종속되지 않는 응용 프로그램을 작성할 수 있는 언어이다. 기계 수준의 언어보다 인간의 언어와 더 유사하며 컴퓨터는 이러한 언어로 작성된 명령어를 인터프리터 또는 컴파일러를 통해 비트로 구성된 기계어로 전달한다.
따라서 코딩을 시작할 때 주로 자바, 파이썬, 비주얼 베이직(Visual Basic), C++ 등 고급 언어로 코드를 작성하는 법을 배우게 된다. 코딩을 배우기 위해서는 아래와 같은 순서로 학습 목표를 설정하고, 학습 분야를 결정한다.
1. 목표 설정
커리어 목표를 설정할 때, 가장 먼저 '소프트웨어 개발자가 되는 것'이 당신이 정말 원하는 것인지 확인해야 한다. 커리어 목표에 대한 확신이 생기면 구체적인 목표나 결과를 정해야 한다.
대기업 취업, IT 프로젝트 시작, 가지고 있는 아이디어 구현 등 다양한 목표를 가질 수 있다. 여기에 좋은 목표와 나쁜 목표는 없다. 대기업에서 높은 연봉을 받는 것도 고려할 수 있지만, 중요한 것은 그 안에 무엇이 있는지 명확하게 이해하는 것이다. 이는 프로그래머로서 당신의 발전을 정의하게 될 것이다.
2. 분야 결정
프로그래밍은 한 가지 모습을 가질까? 아니다. 프로그래밍은 여러 모양과 크기로 제공된다. 따라서 프로그래밍을 배우는 법을 알아내려면 어떤 분야에서 일하고 싶은지 고려해야 한다. 프로그래밍 분야에 일반적으로 서버 측 엔터프라이즈 앱 개발, 백엔드 웹 개발, 프런트엔드 개발, 데이터 과학, 모바일 앱 개발, 게임 개발 등이 있다.
- 서버 측 엔터프라이즈 앱 개발
이는 서버에서 동작하고 프로그래밍 언어를 사용하는 웹사이트 및 애플리케이션을 의미한다. 웹 페이지는 서버에서 생성(렌더링) 되고 해당 렌더링(HTML)의 출력은 브라우저로 전송되 즉시 볼 수 있다. 여기에 자바가 널리 사용된다.
- 백엔드 웹 개발
백엔드 프로그래머는 웹 애플리케이션 또는 웹 사이트, 앱이 작동하는 구조를 제공하는 프로그램용 코드를 작성한다. 여기에 파이썬, PHP, 루비(Ruby) 등이 사용된다.
- 프런트엔드 개발
프런트앤드 프로그래머는 웹사이트가 어떻게 나타나고 콘텐츠를 제공하는지에 대해 개발한다. 주로 자바스크립트, 타입스크립트(TypeScript)를 활용해 프런트엔드를 구축한다.
- 데이터 과학
일반적으로 데이터 과학자는 연구를 하거나 한계에서 근무한다. 이러한 전문가는 코드를 활용해 작업하는 경우가 많은데, 가장 많이 쓰이는 프로그래밍 언어로 자바, 파이썬, 스칼라(Scala), R이 있다.
- 모바일 앱 개발
모바일 앱 개발은 독립적으로 일하는 것을 즐기는 사람들이 선호하는 프로그래밍 분야 중 하나가 되어가고 있다. 안드로이드 앱 개발에는 코틀린(Kotlin)이 주로 사용되며 iOS 앱에는 스위프트(Swift)가 사용된다.
- 게임 개발
게임은 컴퓨터와 모바일 게임에 대한 수요가 증가하며 함께 성장하는 분야이다. 게임을 개발할 때 크고 빠른 프로젝트에는 언리얼(Unreal)과 같은 엔진이나 C++ 언어가 활용되고, 작은 프로젝트나 인디 게임에는 C#, Unity가 활용된다.
3. 올바른 텍스트 편집기 선택
코딩 연습을 시작하기 위해선 텍스트 편집기가 필요하다. 텍스트 편집기마다 장단점이 다르기 때문에 어떤 것이 자신에게 맞는지 확인하기 위해 조사해야 한다. 텍스트 편집기에는 다양한 옵션이 있는데, 노트패드++(Notepad++), 브라켓(Brackets), 아톰(Atom), 비주얼 스튜디오 코드(Visual Studio Code), 서브라임 텍스트(Sublime Text) 인텔리제이(IntelliJ IDEA), 이클립스(Eclipse IDE), 네트빈(NetBeans IDE) 등이 널리 사용된다.
4. 커뮤니티 지원 및 학습
초보자가 혼자서 코딩을 배우고 복잡한 문제를 푸는 것은 어려울 수 있다. 프로그래밍 언어나 교육 코스에 상관없이 도움이 필요할 때가 있는데, 온라인 지원 게시판 또는 코딩 포럼을 활용하면 질문하고 답변을 나누며 문제를 해결하고 네트워킹 및 공유를 할 수 있다. 이때 초보자 및 전문가를 위한 프로그래밍 질의응답 플랫폼인 스택 오버플로(Stack Overflow)와 깃허브(GiHub) 커뮤니티가 도움이 될 수 있다. 국내에서는 개발자 커뮤니티 Okky 또는 프로그래밍 관련 카페·페이스북 채널 등에서도 활발하게 질문·답변이 이뤄지는 것을 확인할 수 있다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]