'프로그래밍 어떻게 시작해야할까?' 란 고민은 내가 처음 대학교를 입학하고 한 번의 학고를 당하고 나서
한참 후에 생각했던 것이였다.
물론 학고를 당한 이유는 당시 노는걸 너무 좋아해서 공부는 뒷전이고 출석만 잘해도 중간은 갈 수 있었지만
학교를 나가지 않고 PC방 맴버들과 게임에 빠져 헤어나오지를 못했기 때문이다.
잉여 처럼 어영부영 휴학과 함께 2학년이 되고 나서 부모님께도 죄송하고 공부를 시작했다.
하지만 너무 오랫동안 놀아서 인지 프로그래밍이란게 이해조차 되지 않았기에 좌절이 오고 말았다.
이때 초심으로 돌아가 내가 처음 개발자가 되어야겠다고 마음을 먹었던 시절을 생각해 보았다.
그때는 중학교때로 당시에는 저작권이 딱히 없을때였던것으로 기억하고 불법이란것도 모르고
단순히 방문자와 랭킹을 바라보면서 마치 게임의 일부라고 생각했던것같다.
아무튼 와레즈를 접하면서 웹에 흥미를 가지기 시작했다. 시간날때마다 자체 홈페이지를 업데이트 하고
무료 게시판 스킨을 가져와서 직접 꾸미고 했었다.
지금 내가 웹 개발자로 있는 것도 그때의 영향이 큰것같다. 하지만 대학교때는 웹 개발이 아닌
소포트웨어나 하드웨어 쪽에 가까운 프로그래밍을 전공했기에 웹은 취미로 잠깐동안만 했었다.
다시 처음으로 돌아와 내가 프로그래밍에 대한 이해도 못하고 있을때 초심을 생각하고 책을 폈다.
처음 배운 프로그래밍 언어는 비주얼베이직이였지만 내가 처음 시작한 프로그래밍은 C언어였다.
C언어를 처음 시작하면서 |
C언어를 처음 시작했때 내가 했던 방법은 일단 무작정 책 예제소스를 코딩하고 컴파일하면서 시작하였다.
(웃긴건 내가 집중력이 약해서 그랬는지 몰라도 집이 아닌 PC방에서 공부가 더 잘되었기에 PC방에서 시작했다)
그렇게 계속 코딩하고 컴파일하고를 반복하다보니 어느순간 C언어 소스들이 익숙해 지기 시작했다.
그리고 변수, 함수, 예약어에 대한 궁금증이 생기기 시작했고, 이를 테스트해보기 까지 하면서
프로그래밍 구조에 대해 조금씩 이해가 되기 시작했다.
당시 가장 어려웠던건 구조체 였던것같다. 구조체 지금 생각해보면 별것도? 아니겠지만
당시 이해 안되는게 너무 많았다.
여기서 잠깐 C언어를 보면 웹을 먼저 접한사람이 C언어를 시작하면 정말 귀찮은 언어가 될 수 있다.
PHP같은경우 이게 숫자인지 문자열인지는 타입 정의가 없으면 컴파일되면서 알아서 판단되겠지만
C언어는 무조건 정의를 해줘야했고 웹처럼 페이지가 전환되거나 새로고침되는게 아니기때문에
메모리해제 또한 그때그때 해줘한다.
아무튼 그렇게 C언어에 흥미가 생기고 학교에서 C언어 수업만큼은 누구에게도 지지 않을만큼 실력이 있어
자부심까지 생겼다.
프로그래램 실행 순서도의 중요성 |
프로그래밍을 할때 가장 중요한것중 하나가 순서도 이다.
순서도는 내가 만든 프로그래밍이 어떠한 루트로 진행되는지 알 수 있고 여러 조건에 해당되는
예외처리를 미리 설계하여 올바른 결과가 추출 될 수 있도록 도움을 준다.
순서도를 잘 활용하고 파악하다보면 어느순간 순서도를 따로 그리지 않아도 머리속에 바로 그려지고
코딩을 빠르게 진행할 수 있다.
프로그래밍 소스코드에 대한 이해 |
마지막으로 프로그래밍을 처음 접하는 사람에게 알려주고 싶은건 프로그래밍 소스코드의 이해라고 말해주고 싶다.
프로그램은 수학과 같다.
복잡한 수학 계산 문제가 있을 경우 그에 맞는 계산식을 내서 결과값을 추출하는것처럼 프로그래밍도
결과값을 추출할 수 있도록 코딩을 하는것이다.
또한 결과값이 나왔다고 그대로 넘어가는게 아닌 좀더 개선된 방법이 있는지 코드를 살펴보고
보완하는것이다.
이외 팁이 있다면 프로그래밍 실력이 어느정도 쌓일 경우 커뮤티니나 네이버 지식인 같은곳을 살펴보고
내가 도움이 줄 수 있는 글들에 대해 답변을 다는것이다.
나또한 과거에 네이버 지식인을 통해 상당히 많은 답변을 채택 받았고 이를 통해 성취감까지 생겼다.
물론 대학교 과제를 물어보는 한심한 사람들도 많았지만 당시에는 채택을 받기위해서 무조건
답변을 달았던것같다.
하지만 그냥 답변을 달지는 않았고 내 프로그래밍 철학이 담긴 한마디를 남겼었다.
그때 지식인에 올린글 내용이 대략적으로 프로그램 소스에 대한 설명(주석)을 남겨달라는거였다.
프로그래밍 소스코드에 대해 자신의 방식데로 이해하고그것을 분석하는게 중요하지 남이 짜놓은
소스코드를 그대로 복사해서 결과만 보여주는건 컨닝이나 다름없다.
마지막으로 하고싶은 말은 프로그래밍을 시작하기위해선 항상 프로그래밍만 생각하는것이다.
머리속으로 코딩을 하고 결과를 예측하는 훈련을 하다보면 어느순간 나도 개발자가 되어있을 것이다.