brunch

You can make anything
by writing

C.S.Lewis

프로그램 언어를 잘 공부하는 방법?

제가 대학에 다닐 때도 그렇고, 사회에 나와서 배워야 할 언어는 영어였습니다. 그런데 이제는 프로그래밍 언어도 그에 못지않게 많은 관심을 받고 있고 배우려는 사람들이 많은 것을 보면 격세지감을 느낍니다.


저는 현재 프로그래밍언어를 가르치고 있는 입장에서 수강생들이 궁금해할 만한 내용인 어떻게 해야 프로그래밍 공부를 잘할 수 있을까? 에 대해 이야기해 볼까 합니다.


그럼 공부하는 방법을 알아가기 앞서 한 가지 질문을 던져볼까 합니다.


우리는 왜 프로그래밍 언어를 알아야 하는가?

우리는 왜 언어를 공부하는 것일까요?

취업을 위한 스펙업? 지적인 호기심?

가장 근본적인 이유는 누군가와 소통을 하기 위해서입니다.


한 가지 상황을 가정해 보겠습니다.

내가 수학 문제를 푸는 중인데 도저히 풀 수 없는 문제가 있습니다. 다행히도 이때 지인이 수학에 아주 능통한 친구를 소개해줍니다.


이 친구는 수학 문제는 못 푸는 문제도 없을 분더러 푸는 속도도 매우 빨라 아마도 이 상황을 해결해 줄 것만 같습니다. 하지만 한 가지 문제가 있습니다.

이 친구는 인도사람이라 인도어 밖에 할 수 없다는 것이죠.


즉, 내가 이 친구에게 부탁을 하기 위해서는 인도어를 해야만 합니다.


이 인도 사람을 컴퓨터로 만 바꾼다면 왜 우리가 프로그래밍 언어를 해야만 하는지 이해가 가죠?


그렇다면 어떻게 공부해야 하는가?

프로그래밍 언어도 결국 언어입니다.

그렇기 때문에 우리가 가장 많이 공부해 왔던 영어 공부를 잘하는 방법과 비슷합니다.


많이 읽어보기

영어를 공부할 때는 영자 신문이나 영어 책을 많이 보라는 이야기를 듣습니다.

아무래도 여러 표현을 배우고 문장 구조에 익숙해지는 데에는 많이 보는 것이 좋으니까요.

프로그래밍 언어 역시 마찬가지입니다. 다른 프로그래머들의 코드를 많이 봐야 합니다.


많이 써보기

영어 일기나, 해외 펜팔을 통해 많은 글쓰기를 하라고 강조합니다. 우리는 네이티브 언어를 구사하는 컴퓨터가 바로 앞에 있으니, 간단한 문장부터 타이핑해 보는 것을 추천합니다.


처음부터 스스로 로직을 만들며 프로그램을 짤 수는 없으니 남들이 만들어놓은 소스를 간단한 것부터 따라치며 익히는 것을 추천합니다.


혹시 프로그래밍 수업을 듣고 있다면 그날 배운 코드를 반복해 보는 것도 좋습니다.


영어로 생각하는 훈련 해 보기

이게 가장 어려운 부분인데요, 상대의 입장에서 생각하는 건 너무도 어려운 일입니다.


내가 아는걸 상대방도 알 것이라고 생각하기 때문입니다. 특히나 컴퓨터와의 대화에서 자주 일어나는 문제입니다.


'컴퓨터야 모니터의 전원 좀 꺼줘!'

라는 명령을 할 때 사람이라면 이걸 수행할 수 있을 것입니다. 하지만 컴퓨터의 입장에서는 모니터가 무엇인지를 모르는 상황입니다.


이럴 경우 우리는 컴퓨터에게 모니터가 무엇인지를 알려줘야 하는 것부터 시작해야 하죠.


또한 프로그램상에서 발생한 문제를 현실영역의 문제와 대입해서 풀어가는 연습도 중요합니다.


은 지속적인 훈련을 통해서 가능한 일이며, 이 부분에 대해서는 추후에 자세히 다뤄보도록 하겠습니다.


이런 생각이 들 수도 있을 것입니다.

'영어 공부할 때 너무 힘들었는데 , 프로그래밍 언어도 그렇다고?'


안심하십시오. 프로그래밍언어는 인간의 언어보다 훨씬 단순한 언어이기 때문입니다.


프로그래밍 언어는 감정이 없는 컴퓨터에게 명령을 위한 언어 이기 때문입니다. 여기서 중요한 것은 바로 감정이 없는 명령이죠.


예를 들어 같은 상황에서 인간의 언어와 컴퓨터의 언어의 스타일을 비교해 보겠습니다.


인간언어

A 씨, 혹시 바쁘시지 않다면 저기에 있는 파란색 상자 있죠? 그것 좀 2층 창고에 옮겨 주시겠어요?

무거워 보이긴 하는데, 생각보다 무겁진 않아요.

과장님이 지나다닐 때 걸리적거린다고 빨리 치우라고 하셔서요. 저도 요즘 허리 통증이 심해서 옮기긴 어려울 것 같아서요. 부탁 좀 할게요.


컴퓨터언어

A, 파란색 상자 2층 창고로 옮겨


인간의 언어는 감정이라는 것이 있기에 수행에 불필요한 표현들이 많습니다. 하지만 컴퓨터의 언어는 수행할 대상과 목표만 확실하면 됩니다.

즉 표현의 가짓수가 많지 않고, 갈수록 더 단순해지는 추세이기에 일반적인 언어보다 더 쉽게 다가설 수 있습니다. 



프로그래밍 언어를 공부함에 있어서 중요한 것들에 대해 알아보았습니다.

여러 이야기를 해 보았지만 무엇보다 중요한 것은 우선, 내가 이 언어를 왜 배워야 하는지? 에대한 이해와 동기 인것 같습니다.


아무쪼록 프로그래밍 언어를 배우는 분들에게 조금이나마 도움이 되었으면 좋겠습니다.








매거진의 이전글 Blockchain과 Bit coin
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari