문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 코더 (문단 편집) ==== 완성된 개발 경험의 부족 ==== 입문자들 중 굉장히 많은 사람들이 기초적인 문법 공부에서 더 나아가질 않는다. 프로그래머는 기술직이다. 후술되어 있듯이, 과정이 어떻게 되든 눈으로 보이는 결과물을 만들어내는 게 가장 중요하다. 이러한 능력을 키우려면 간단한(CLI 수준에서 동작하는) 프로그램을 실제로 만들어 보는 것이 코드를 자신의 의도대로 작성하는 방법을 키우는 데 유리하다. 그리고 [[이산수학]]과 [[자료구조]] 공부를 통해 이론적인 지식까지 갖춰야 더욱 효율적으로 프로그래밍을 하는 방법을 깨우치게 되는 것이다. C/C++와 Java는 목적 의식을 분명히 갖고 공부해야 한다.[* 자신의 진로와 맞는 방향으로 공부해야한다.] 그렇지 않으면 복잡한 메모리 관리와 OOP 기법, 수많은 라이브러리 및 모듈, 그 외 각종 비즈니스 로직에 사용되는 여러 기능들만 배우다가 제대로 된 기초를 다지지도 못한 채 끝나버리는 수가 있다. 기초도 모르는 상태로 [[C언어|C]]/[[C++]], [[Java]]처럼 문법이 어려운 언어로 구현하는 것을 고집하는 것은 자칫 시간 낭비가 될 수 있다. 알고리즘 구현이나 관련자료 검색 등 다른 부분에 쓸 수 있는 시간을 굳이 문법 성분 구현에 낭비하는 꼴이기 때문. 그리고 이렇게 낭비된 시간은 당연히 업무 효율에도 악영향을 끼치며, 나아가 인사고과에도 불이익이 된다. 이런 문제를 좀 더 잘 접근하는 방법 중 하나가 문법적으로 쉬운 언어로 working-prototype을 구현해서 테스트하는 것이다. 시스템의 복잡도 때문에 새로운 아이디어가 있다 해도 working-prototype을 구현해보기 전에는 가능한 지 아닌지 여부를 예측하기가 거의 불가능하다. 따라서 이런 작업을 할 때 가장 중요한 것은 시스템 내의 여러 서드파티 HW/SW와 함께 작동시켰을 때 '''작동하는지 안 하는지'''다. 최소한의 시간과 노력으로 알고리즘을 구현할 수 있어야만 working-prototype을 만들 수 있고 이를 통해 GO/NO-GO 타입의 의사결정을 할 수 있게 된다. 따라서 이런 종류의 프로젝트에서는 문법이 쉬운 언어로 개념을 검증한 뒤 실제 개발은 (빠른 성능이 필요할 때) 코어 부분만 C/C++를 이용하여 개선하는 식으로 이루어진다. 여러 언어를 사용하는 환경의 직군이라면 위의 방법이 좋은 선택일 수 있다. 그러나, 사용해야할 언어가 지정된 직군이라면 쉬운언어로 테스트를 하는 것이 불가능함은 물론 비효율적이다. 가장 중요한건 똑바로 설계하는 방법밖에 없다. UML을 활용하거나, 의사코드를 활용해서 설계해본 후, 이를 팀원들과 리뷰하고 코드로 변환한다. --코드가 얼마나 지저분하고 비효율적으로 만들어졌든 간에, 결과물을 내놓지 못하는 것보단 훨씬 낫다.-- 그러나 비효율적인 코드를 계속 만든다면, 더 높은 개발자로 성장하지 못하고 계속 코더로 남을 수 밖에 없다는 사실을 기억하면된다. 당장 코드를 납품하는 것도 중요하지만, 코드를 유지보수하는 것도 중요하다는 것을 잊으면 안된다. 그리고 규모가 작은 회사가 아닌 이상 코드 리뷰 중에 선임급에게 까일 가능성이 높으며, 이를 납품하였을때 고객사가 알아챌 확률이 높다. 다만, 문법적으로 어려운 언어만 알더라도 재능이 있다면 상관 없다. 정보올림피아드 출신들을 보면 문법적으로 어려운 언어들 밖에 할 줄 모르는데도 복잡한 시스템을 곧바로 만들어내기도 한다. 물론 이게 가능한 사람은 애초에 이런 글을 볼 필요가 없겠지만.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기