언어를 배우는 데에도 여러 방법이 있다. 무조건 써보면서 외우기, 들리는 데로 따라 하기, 문법부터 배우기 등. 프로그래밍 언어의 경우에도 비슷하다. 하지만 프로그래밍 언어에서 가장 권장하는 방법은 경험으로 배우는 것이다. 여기서는 어떻게 경험으로 배우는지에 대해 단계적으로 알아본다. (해당 포스팅은 "커리어 스킬"을 참고하여 작성하였습니다"
오픈소스를 활용하자
개발의 세계에는 오픈소스라는 것이 있다. 누군가 코드를 작성해서 깃허브같은 사이트에 올려두면 모든 사람들이 그걸 볼 수 있다. 그래서 잘 작동되고 있는, 문제없는 프로그램의 소스 코드를 살펴보며 익히는 것도 좋은 방법이다. 어떤 식으로 코드를 작성하고, 어떤 식으로 진행이 되는지 확인하는 것이다. 이왕이면 인기 있는 오픈소스 애플리케이션을 고른다. 그리고 그 소스코드를 살펴본다. 직접 코드를 다운로드해서 실행해 보는 것도 좋은 방법이다. 살펴보며 이해가 되는 부분이 하나라도 있는지 확인한다. 없어도 상관없다. 직접 애플리케이션을 사용해 보면서 코드들이 어떤 역할을 하고 있는지 느끼자. 코드를 바꿔가며 코드가 작동하는 방식에 대해 알아보자. 이름을 붙이는 방법과 정리 방식에 대해서도 살펴본다. 이렇게 살펴보다 보면 어떤 형태로 코드가 작성되는지, 어떻게 이름을 짓는지, 어떤 방식으로 작동하는지에 대해 대략적인 느낌을 가질 수 있게 된다. 그 후, 관련 책과 동영상 강의, 기사, 튜토리얼과 같은 자료를 훑어본다. 이 때는 정말 꼼꼼히 보는 것이 아니라 훑어본다. 어떤 범위를 가지고 있는 언어인지, 이 언어로 어떤 것을 할 수 있는지에 대해 알아보는 단계이다.
Hello World
어떤 언어이든 가장 먼저 하는 것이 있다. 바로 콘솔창에 "Hello World"를 출력하는 것이다. 이것은 모든 언어에서 기본 프로그램이다. "이게 무슨 프로그램이야?"라는 생각이 들 수도 있겠지만 모든 프로그램이 바로 여기에서 시작된다. 이 단계를 통해 프로그램을 만드는 과정과 실행에 필요한 기본 툴을 익히게 된다. 이 단계가 지나고 나면 이제 기본적인 문법을 익히면서 테스트하면 된다. 가장 많이 사용되는 기본문법은 다음과 같다. 화면에 출력하기, 기본 수학 계산, 변수에 정보 저장, 함수 / 메서드 / 모듈로 코드 정리, 함수 / 메서드 호출, 불 논리, 조건문, 반복문. 이러한 기본 문법은 거의 대부분의 언어에 공통적으로 존재한다. 형태는 조금 다르지만 이것이 프로그래밍의 핵심이기 때문에 이 부분에 시간이 꽤 걸릴 것이다. 하나의 책이 아니라 여러 책과 인강들을 참고해 보면서 순서대로 익혀나가면 계속해서 잘 사용할 수 있다. 문법에 대한 기본 개념을 익힌 후에 직접 실습해 보면서 어떠한 형태로 진행이 되는지 확인하면 더욱 흥미롭게 언어를 배울 수 있게 된다. 책에 나오는 예시들을 조금씩 변형해 가면서 테스트하는 것도 도움이 된다. 또한, 요즘의 프로그래밍에서는 언어에 통달하는 것보다 라이브러리와 프레임워크를 얼마나 잘 활용하고 사용하는지가 중요하다. 때문에 어디까지가 언어의 영역이고 어디까지가 라이브러리인지 아는 것이 중요하다. 둘의 범위가 어떻게 되는지 정확히 이해하고 어떠한 언어의 사용에서 문제의 해결에 필요한 라이브러리를 찾는 방법을 익히면 더 훌륭한 프로그래머가 될 수 있다.
이제 실전이다
언어의 주요 개념과 기능 대부분을 실제 사례에서 사용해보고 나면, 언어와 라이브러리가 구분 가능하면 이제 실제 애플리케이션을 확인하는 단계이다. 기존에 존재하는 애플리케이션의 코드들을 한줄 씩 살펴보면서 그 코드에서 어떤 작업이 진행되고 있는지 그 역할을 알아내보자. 역할을 이해하고 나면 그 코드를 작성한 이유에 대해 차차 알아가게 된다. 먼저 이해하는 데에 집중을 한다. 이해가 되지 않으면 검색하고 찾아본다. 이런 단계를 거치고 나면 진짜 애플리케이션을 만드는 단계로 나아갈 수 있다. 자신이 학습한 프로그래밍 언어와 표준 라이브러리를 활용하는 데 집중할 수 있는 단순한 애플리케이션을 만들어본다. 간단한 아이디어는 다음과 같다. 사용자가 내용을 입력하고 그에 따라 수학문제를 푸는 프로그램, 사용자가 입력한 것에 따라 특정한 결과를 출력하는 게임북 프로그램, 텍스트기반의 어드벤처 게임. 텍스트 파일에서 입력하는 것을 읽어 다른 텍스트 파일에 출력하는 프로그램, 챗봇 만들기. 다양한 형태의 프로그램까지 만들어보고 나면 이런 기술을 플랫폼에 응용할 차례이다. 자바를 배웠다면 이를 안드로이드 앱에 응용해 볼 수도 있다. 우선 처음에는 한 가지의 기술이나 플랫폼에 집중하여 진행한다. 또한 알고리즘 문제를 해결해 보는 것도 도움이 된다. 문제를 푼 후에는 꼭 다른 사람들이 문제를 푼 형식을 살펴보는 것이 좋다.
댓글