밝은마루의 일상 이야기


■ 40대 아저씨의 고군분투 JAVA 정복기


블로그에 글을 꾸준히 쓴다는 것이 참으로 어렵고 귀찮은 일이라 생각이듭니다. 수익형 블로그도 아니고 그저 내가 쓰고 싶을 때 작성하는 블로그이지만 항상 글 소재에 대한 갈망은 있고 조금 더 잘 쓰고 싶다는 생각은 언제나 합니다. 이번 포스팅도 거의 3주만에 다시 작성하는 포스팅입니다.



작년 12월부터 시작한 코딩 공부는 아직도 포기하지 않고 이번에는 반드시 ' 끝을 보리라~ ' 라는 마음으로 포기하지 않고 공부하고 있습니다. 꾸준하게 하루에 1시간 ~ 2시간 정도, 그리고 휴일에는 4-5시간을 책상에 앉아서 공부하고 있다는게 제 자신도 신기합니다.


20대 시절 대학교를 다닐때도 포기했던 프로그래밍 공부를 지금에서야 다시 시작하고 있는데 어떻게 공부를 하고 있는지 혹시나 다른 분들께 도움이 될까? 싶어 포스팅을 시작해 보겠습니다.



1. 프로그래밍 개념 잡기.


대학교시절 학과 공부를 하면서 가장 힘들고 어려웠던 부분은 프로그램 소스 코드 작성 후 해당 소스 코드가 어떠한 로직을 통해 구현이 되고 결과물을 출력하는지 이해하는 것이 가장 어려웠습니다. 조금 더 풀어서 말하자면 반복문, 조건문 등 프로그램 문법이 어떠한 순서에 의해 변수에 값을 전달하는지가 어려웠습니다.


요즘같이 동영상 컨텐츠가 많은 시절도 아니었고 초보자를 위해 쉽게 프로그래밍 방법에 대한 기술적 내용을 풀어서 쓴 책도 없었습니다. 작년 12월달에 처음 프로그램 공부를 시작하면서 찾은 사이트는 바로 이고잉님의 ' 생활코딩 ' 사이트였습니다.


일반인들에게 프로그램 지식을 알려주는 생활코딩 사이트 ( https://opentutorials.org )


HTML 부터 CSS 그리고 JAVA, PHP, MY SQL 까지 비전공자인 일반인들을 위해 정말 쉽게 모든 개발언어에 대한 개념적인 내용을 정말 쉽게 풀어서 설명해 주는 사이트입니다. 어쩌면 자바의 정석 ( 남궁성 님 ) 보다 더 쉽고 이해하기 쉽게 JAVA 라는 어려운 객체지향언어를 설명해 주고 있어서 아직도 포기하지 않고 기초를 쌓고 있는지 모르겠습니다. 

( 자바의 정석도 초보자가 이해하기에는 설명이 어렵습니다. )


일단 시작한 공부인 만큼 JAVA 의 기본 문법부터 시작했습니다. 모든 개발언어가 그렇듯 절차지향언어의 반복문, 조건문, 비교문, 변수, 상수 등의 내용은 개발언어마다 조금씩 작성하는 스타일만 틀리지 핵심적인 문법은 똑같습니다. 


그래서 개발언어 하나만 기초를 제대로 닦아 놓으면 PHP 개발도 파이썬 개발도 처음보다는 쉽게 익힐수가 있는게 프로그래밍 공부의 장점입니다. 그렇게 출, 퇴근 시간 지하철에서 유튜브 및 생활코딩 동영상 강좌를 보면서 우선 개념부터 잡기 시작했습니다.




2. 최대한 많이 소스 코드를 직접 타이핑해보기.


프로그래밍 책을 쓴 저자들이 공통적으로 하는 이야기가 바로 이 부분입니다. 책의 예제를 가능하면 직접 따라서 타이핑해봐야 한다. 라는 것입니다. 사실 책을 읽으면서 책에 기술되어 있는 소스 코드를 눈으로만 익혀도 머리속으로 이해가 되겠지? 싶지만 실제 IDE 환경에서 소스 코드를 타이핑 해보면 책의 예제처럼 한번에 짠~ 하고 결과물이 출력 안될때가 많습니다.


책의 내용을 그대로 실습했지만 실제 소스 코드 한줄 한줄 주석을 달아가며 왜 이런 로직에서는 이렇게 동작하는지 이해하는게 우선이기 때문에 많은 소스 코드에 주석을 가급적 많이 작성해가면서 공부하니 프로그래밍 원리에 대해 조금 이해가 되고 있습니다.

( 이럴줄 알았으면 진작에 30대 초반 시절에 공부할걸 하고 후회하고 있는 중입니다 )



3. 모르는 부분이 생겼을 땐 일단 넘어가기.


공부하면서 좀 의외다 했던 부분입니다. 모르는 부분이 발생하면 알때까지 끝까지 파고 들어야하는게 아닌가? 싶었는데 모든 저자가 말하는 부분이 일단 넘어가라 입니다. 초보자가 프로그래밍 공부를 하면서 가장 실수하는 부분이 프로그래밍에 대한 책을 한번만 정독한다라고 생각한다는 것입니다.


생활코딩의 이고잉 님도 그렇고 자바의 정석 남궁성 님도 그렇고 모든 프로그래밍 고수분들이 공통적으로 이야기 하는 부분이 프로그래밍은 익숙해져야 하는 부분이지 한번에 모든걸 외우려 하지 마라. 라고 말합니다.


생활코딩의 자바 강의도 남궁성 님의 유튜브 자바 강의도 처음 시청했을 때 이해했던 부분과 2번, 3번 다시 보았을 때 이해하는 부분이 틀려진다는 것을 몸소 체험했습니다. 그래서 일단 프로그래밍 공부를 할때는 3번이고 5번이고 익숙해져서 손이 저절도 타이핑이 된다라는 생각으로 강의를 다시 듣고 또 듣고 예제도 또 타이핑하고 또 실습하고 반복하고 있습니다.



4. 주변인을 활용하자.


이 부분은 모든 사람에게 해당되는 이야기는 아닐겁니다. 우선 저는 IT 업계에서 근무하고 있기 때문에 실제 업무에서 개발자들과 협업할 기회가 상당히 많습니다. 그래서 프로그래밍을 공부하면서 모르는 부분이 있으면 부끄러운거 생각하지 말고 일단 가서 물어봅니다.


최근에야 알게된 사실이지만 현재 근무하는 회사에서 개발팀 차장님께서 재능기부를 해주고 있다는 사실도 알게되어 JAVA 스터디를 하고 있다는 점을 알게되었고, 실제 현업에서 근무하는 개발지식을 공부하고 간단한 프로젝트도 스터디하는 회사 직원들끼리 같이 진행하기로 약속되어 있어 천군만마를 얻은 기분입니다.


" 뜻이 있는 곳에 길이 있다 " 라는 말이 있듯이 올해는 정말 제가 목표로 했던 개발 공부를 통해 제 개인적인 포트폴리오도 개발하고 개발하는 기획자가 될 수 있도록 제 스스로를 한 단계 업그레이드 할 목표를 세우고 있습니다. 


여러분들도 올해 본인을 업그레이드할 계획은 세우셨는지요? 작심삼일 또 포기하셨다면 작김삼일을 밥 먹듯이 해서 올해는 꼭 본인이 목표한 계획을 이루는 한해가 되길 바라겠습니다.