높은 생산성을 가지면 적게 일하고 많이 벌 수 있습니다. 회사 코딩테스트도 생산성 평가 시험이라고 생각하면 됩니다. 높은 생산성이란, 1.남들보다 빠르게 코딩, 2.남들보다 에러 없이, 3.남들보다 수정하기 쉬운, 4.남들보다 빠른, 5.남들보다 저용량의 코드입니다.
빠른 엘레베이터를 만드는 것보다, 옆에 거울을 설치해서 엘레베이터 기다리는 시간을 지루하지 않게 만드는 창의적인 정답도 있습니다.
하지만, 제목처럼 프로그래밍 잘하는법! 특히 짧고 에러를 줄이기 위한 방법입니다.
- 만들고자하는 프로그램의 기능을 종이에 ADT로 표현하기. ADT를 설명하자면… e.g. a.숫자가 1~12가 시각적으로 표현되어야한다. b.초가 60이 되면, 분이 1증가, 분이 60이 되면 시가 1증가한다. 위의 예시는 딱 봐도 시계라는 것을 알 수 있죠? 시계를 만들려면, 이런식으로. 핵심 기능을 글로 나타내야합니다. 기능에 대한 프로그래밍이 끝날때마다 주석을 달고, 종이에 체크를 해줍니다.
- TAB 키 적극 사용하기. VS Code나 Pycharm 같은 개발환경을 쓰신다면, 명령어에 일부만 쓰고 TAB 키 누르면 자동 완성이 됩니다.
- 괄호를 열면 바로 괄호를 닫고 시작하기. if() {} else {}//else문은 아무것도 안하더라도, 작성을 하세요. 최종 코드 작성이 끝나면, 주석처리하세요. 수정할 때 편해요. 이렇게 만들고 코드 작성을 하는 습관을 만들어두세요.
- 연산자 사용할 때는, (1) 뺄셈보다는 덧셈으로 나타내기 if (a-b>1)은 a=1 b=2일때, a와 b의 변수 형태가 signed냐 unsigned냐에 따라 기능이 달라집니다. if (a>b+1)은 signed이든 unsigned이든 같은 결과 값이구요. (2) 곱셈 나눗셈보다 비트 연산자 쓰기 a=b/2; -> a=b»1; (b가 4라면 2진수로 100인데, 1번 밀면 010이 되니까 2가 되네요.)
- if문보다 switch문 쓰기.
- switch는 enum의 짝꿍. 위와 같은 코드를 쓰면, ‘1번 주세요~’라는 말을 안하고, 주스 주세요~ 해도 컴퓨터가 이해할 수 있습니다. 프로그래머도 코드를 보고 이해하기 쉽구요.
- 변수가 많아지면, 변수끼리 구조체로 같이 쓰이는 변수끼리 묶어주기.
- 함수의 이름은 동사-목적어 순으로 짓기. int get_score()
- 무조건 하나로 이어져야 하는 코드는 하나의 함수로 만들어주거나, 주석으로 강조 표시하기.
- Stack overflow 같은 코딩 사이트 북마크하기, 알고리즘 책 사기, 백준 등 코딩 사이트에서 코드 공부하기.
- 계속 문제가 생길 경우에는 내 코드를 주변 사물에게 설명해보기. 그래도 안되면, 다른 사람에게 코드 설명하기. 러버덕디버깅
- Warning message 구글에 검색해보기. 코드 다 작성하면 코딩 잘하는 사람에게 리뷰 받아보기.
- 모르는 사람에게 내게 아는 것 가르쳐주기. Stack overflow도 좋고, 지식인도 좋고, 주변 지인도 좋음.