|
신입의 c코딩을 지도하면서 걱정된 것이 뭘 지도해야 하는 가였다. 진행 방법은 이미 교재로 있는 문제를 풀어오게 하고, 그 코드를 리뷰하고 보완하는 방식이다. 신입은 대학원 졸업이었고, c 코딩은 할 줄 알고 있다 들었다. 어쨋든 교제를 주고 풀어 오라고 했다. 그리고 코드를 살펴 봤다.
학교와 현업무 간의 거리를 느낄 수 있었다. 특정 코드가 아닌 전반적인 것으로 언급했던 사항은 다음과 같다. - 전역변수 사용 금지 - 상수로 뽑기 - 함수명을 적절하게. 함수명만 가지고는 무얼 하는 함수인지 도저히 추측이 안됨 - 무의미한 변수명 사용 금지 - 함수명, 변수명 작명법에 일관성 유지(소대문자, 언더바) - 임의의 함수에서 프로그램 종료 금지 - 데이타 파싱과 처리, 출력을 분리. - 함수의 입력값 유효성 검사 - 함수의 출력값 유효성 검사 - 반복되는 그리고 중첩되는 if 블럭 금지 - 과도한 길이의 블럭 금지 - 코드 중복 금지 - 루프 경계조건의 일관성 당연하다고 했던 것들이 전혀 당연하지 않고 있었다. c 자체의 구문에 대해서는 별로 언급할 것이 없었다. pointer도 잘 쓰는 것 같고, 비트 연산도 그렇고, 로직도 엉성하지 않고. 그런데 위와 같은 것들에서는 전혀 아니였다. 학교에서는 재활용이나 유지보수 보다는 동작하는 그리고 효율 보다는 알고리즘만을 고려한 코딩이 우선이었던 것 같다 .우선이기 보다는 그 외의 것들에 신경을 쓸 여력이나 필요를 몰랐었던 것 같고. 리뷰한 결과를 가지고 같이 얘기하면서 했던 대부분의 것은 유지보수성이었다. 문제를 알고 알고리즘을 알고서 코드를 봐도 보기가 어려운데, 나중에 코드를 유지보수 하는 입장에서는 이 코드를 보기가 어렵다고. 코딩은 어찌 보면 습관이다. 어떤 구조이고, 어떤 처리이고 등은 머리로 고민하고 생각하지만, 이를 구현하는 것은 몸에 묻어 있는 습관에 의해 결정된다. 위의 사항들이 몸에 베어 있어서, 그렇지 않은 코드를 볼 때 혹은 작성할 때 무의식적인 거부감을 느끼게 되어야 한다. 언급했던 품질 속성들은 따로 신경쓰지 않아도 당연하게 나와야 하게끔 몸으로 익혀져 있어야 한다. 신입에게는 지금의 교육 과정이 그러한 습관을 몸이 익히기 위한 과정이라 얘기하였다. 작성한 코드를 가지고 잘했다 잘못했다라고 따지는 것은 중요하지 않고, 어떤 점이 교정할 것인지 듣고 그에 따라 연습해 보고, 이를 반복하여 습관을 익히게 하는 과정이라고 설명했다. 개발자는 누구나 고집을 가지고 있다. 하지만 코딩에서는 고집이라기 보다는 습관이 맞을 것 같다. 습관이 잘못 들었을 경우 자신 뿐만 아니라 주변까지 같이 괴로와 진다. 스스로는 열심히 한다고 하지만 그것은 비효율적인 삽질일 뿐이다. 코딩에서의 습관은 구문, 알고리즘, 데이타 구조, 디자인 페턴, 프레임웤, 라이브러리등보다 더 중요하다고 생각한다. 이러한 습관은 누구도 가르쳐 주지 않는다. 개인적으로 알아서 고쳐야 한다. 그런데 이를 고칠만한 사람이라면 알아서 찾아보며 느껴서 고치겠지만, 그 수준도 안되면 고칠 필요도 느끼지 못할 것이고 오직 삽질만을 하게 될것이다. 스스로 삽질이란 것도 인식하지 못하고. 어쨋든 내가 담당한 신입은 이러한 나의 관점에 무척이나 신기해 하고 이해하는 듯 하다. 한번도 이러한 것을 듣거나 느껴보지 못했는데 많이 다르다고 한다. 그리고 고민하고 고쳐보려고 노력하는 듯 하다. 다행이다. 한 달 일정으로 진행하는데 이런 과정이 있다는 것이 다행이다. 현 업무에 투입할만한 역량을 갖추도록 교육하는 것은 당연한 것이다.
|
![]() by 어플로잇 카테고리
이전블로그
이글루링크
최근 등록된 덧글
동일한 문제로 고민하다..
by purity at 12/16 ㅇㅇ by 되게 부정적이시네 at 12/07 역시 static type이 아니.. by 성큼이 at 11/17 linux에서 eclipse .. by 어플로잇 at 11/17 저도 파이선이 좋다고 해.. by 미루엘 at 11/17 사실 원 글은 근본적인 많.. by 어플로잇 at 11/16 생각이 변하지 못할 회사.. by 아길라스 at 11/16 분명 과격한 것 맞네요. .. by 어플로잇 at 11/15 일찍 망하라는 말 분명히.. by 미루엘 at 11/15 그러네요. 수정했습니다.. by 어플로잇 at 11/15 메모장
메모장 테스트 라이프로그
| |||