신입 지도하면서
신입의 c코딩을 지도하면서 걱정된 것이 뭘 지도해야 하는 가였다. 진행 방법은 이미 교재로 있는 문제를 풀어오게 하고, 그 코드를 리뷰하고 보완하는 방식이다. 신입은 대학원 졸업이었고, c 코딩은 할 줄 알고 있다 들었다. 어쨋든 교제를 주고 풀어 오라고 했다. 그리고 코드를 살펴 봤다.

학교와 현업무 간의 거리를 느낄 수 있었다.

특정 코드가 아닌 전반적인 것으로 언급했던 사항은 다음과 같다.
  - 전역변수 사용 금지
  - 상수로 뽑기
  - 함수명을 적절하게. 함수명만 가지고는 무얼 하는 함수인지 도저히 추측이 안됨
  - 무의미한 변수명 사용 금지
  - 함수명, 변수명 작명법에 일관성 유지(소대문자, 언더바)
  - 임의의 함수에서 프로그램 종료 금지
  - 데이타 파싱과 처리, 출력을 분리.
  - 함수의 입력값 유효성 검사
  - 함수의 출력값 유효성 검사
  - 반복되는 그리고 중첩되는 if 블럭 금지
  - 과도한 길이의 블럭 금지
  - 코드 중복 금지
  - 루프 경계조건의 일관성

당연하다고 했던 것들이 전혀 당연하지 않고 있었다.

c 자체의 구문에 대해서는 별로 언급할 것이 없었다. pointer도 잘 쓰는 것 같고, 비트 연산도 그렇고, 로직도 엉성하지 않고. 그런데 위와 같은 것들에서는 전혀 아니였다. 학교에서는 재활용이나 유지보수 보다는 동작하는 그리고 효율 보다는 알고리즘만을 고려한 코딩이 우선이었던 것 같다 .우선이기 보다는 그 외의 것들에 신경을 쓸 여력이나 필요를 몰랐었던 것 같고. 리뷰한 결과를 가지고 같이 얘기하면서 했던 대부분의 것은 유지보수성이었다. 문제를 알고 알고리즘을 알고서 코드를 봐도 보기가 어려운데, 나중에 코드를 유지보수 하는 입장에서는 이 코드를 보기가 어렵다고.

코딩은 어찌 보면 습관이다. 어떤 구조이고, 어떤 처리이고 등은 머리로 고민하고 생각하지만, 이를 구현하는 것은 몸에 묻어 있는 습관에 의해 결정된다. 위의 사항들이 몸에 베어 있어서, 그렇지 않은 코드를 볼 때 혹은 작성할 때 무의식적인 거부감을 느끼게 되어야 한다. 언급했던 품질 속성들은 따로 신경쓰지 않아도 당연하게 나와야 하게끔 몸으로 익혀져 있어야 한다. 신입에게는 지금의 교육 과정이 그러한 습관을 몸이 익히기 위한 과정이라 얘기하였다. 작성한 코드를 가지고 잘했다 잘못했다라고 따지는 것은 중요하지 않고, 어떤 점이 교정할 것인지 듣고 그에 따라 연습해 보고, 이를 반복하여 습관을 익히게 하는 과정이라고 설명했다.

개발자는 누구나 고집을 가지고 있다. 하지만 코딩에서는 고집이라기 보다는 습관이 맞을 것 같다. 습관이 잘못 들었을 경우 자신 뿐만 아니라 주변까지 같이 괴로와 진다. 스스로는 열심히 한다고 하지만 그것은 비효율적인 삽질일 뿐이다. 코딩에서의 습관은 구문, 알고리즘, 데이타 구조, 디자인 페턴, 프레임웤, 라이브러리등보다 더 중요하다고 생각한다. 이러한 습관은 누구도 가르쳐 주지 않는다. 개인적으로 알아서 고쳐야 한다. 그런데 이를 고칠만한 사람이라면 알아서 찾아보며 느껴서 고치겠지만, 그 수준도 안되면 고칠 필요도 느끼지 못할 것이고 오직 삽질만을 하게 될것이다. 스스로 삽질이란 것도 인식하지 못하고.

어쨋든 내가 담당한 신입은 이러한 나의 관점에 무척이나 신기해 하고 이해하는 듯 하다. 한번도 이러한 것을 듣거나 느껴보지 못했는데 많이 다르다고 한다. 그리고 고민하고 고쳐보려고 노력하는 듯 하다. 다행이다. 한 달 일정으로 진행하는데 이런 과정이 있다는 것이 다행이다. 현 업무에 투입할만한 역량을 갖추도록 교육하는 것은 당연한 것이다.
by 어플로잇 | 2010/02/09 11:05 | IT | 트랙백(1) | 덧글(6)
트랙백 주소 : http://aploit.egloos.com/tb/5195451
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from e-learning b.. at 2010/02/10 09:49

제목 : 이러닝 업계에서 사랑 받을 신입직원의 3가지 조건
요즘은 신입직원 가르칠 일이 없지만 예전에 신입직원을 가르치면서 강조했던 몇 가지 사항들이 있었습니다. 첫째, 문서작성의 습관을 잘 들여라. 둘째, 크게 봐라. 셋째, 작은 일에 충성하라. 위의 3가지 조건만 충족해도 이러닝 업계에서 신입으로써 사랑 받을 수 있을 겁니다. 1. 문서작성의 습관을 잘 들여라 이게 생각보다 어렵습니다. 이러닝 교수설계 업무를 하기 위해서는 정말 다양한 문서를 만들고 관리합니다. 요구사항 분석서, 과정설계서, 스토리......more

Commented by 제우스 at 2010/02/09 12:19
뽑아주신 목록은 개발10년차인 저도 완벽하게 지켰다라고 하기 힘들정도로 어려운 부분입니다.

프로그램에서 문제가 발생하게 되는 전역변수나 임의의 함수에서 프로그램 종료하기 등은 하지 않지만
과도한 길이의 블럭금지 (휴... 몇줄을 과도로 봐야 하는지)나 함수명을 명확하게 만드는것은
저는 분명 명확하고 짧게 만들었다고 생각하지만 받아드리는 사람이 그렇지 않으면 그것은 아닌게 되죠

결국 이런 부분은 코드리뷰등을 통해서 내가 어떤 생각으로 이런것을 만들었는지를 공유하지 않고
오로지 코드로만 본다면 그 어떤 코드도 내가 만들지 않은 이상 내 맘에 들수 없을것 같습니다.

신입에게 필수조건은 열심히 하겠다라는 자세만 있으면 되지 않을까 하네요 ^^

ps. 써니님의 블로그를 타고 왔습니다 ^^
Commented by 어플로잇 at 2010/02/10 10:33
말씀데로 열심히 하겠다는 자세가 핵심인 것 같습니다.
너무 꼼꼼히 하려다 보니 진도가 나가지 않는것 같아 살짝 리뷰 강도를 조절하려고 합니다.
신입에게 너무 많은 것을 바란 것 아닌가 싶어서.
Commented by 쫑아 at 2010/02/09 12:34
멋져요~~~~ >_<
Commented by 어플로잇 at 2010/02/10 10:35
감사합니다. 제가 헛다리 긁고 있지 않다는 혹은 과하지 않았다는 믿음을 주시네요. 감사합니다.
Commented by 낭망백수 at 2010/02/10 01:55
'코드 컴플릿'이 필독서여야 하는 이유. 절절합니다. 한번도 들어보지 못했다니. ㅜㅜ;
감사합니다. 꾸벅~!
Commented by 어플로잇 at 2010/02/10 10:36
저도 읽어는 봤는데 내용은 거의 기억이 나지 않습니다. 하지만 그 느낌은 녹아들었다 싶습니다. 근데 쫌 두꺼워서 편히 보긴 그렇죠.

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >