Main task in ComputerScience. 적절한 ProgrammingLanguage를 익히는 것도 중요하며 ProgrammingParadigm을 알아야 하고, 문제에 맞는 [[Algorithm]]을 만들 수 있어야 하며, 프로그래밍시 CodingStandard를 준수하며, [[Refactoring]], CodeBumming, [[Debugging]]등을 통해 기존 프로그램을 개선한다. 최근 인터넷시대의 영향때문인지 가장 많이들하고 있는 것은 NetworkProgramming. 프로그래밍에 관한 [[Metaphor]]로 건축 보다는 최근 정원관리 쪽에 좀 더 비중을 두고있는 듯 싶다. 정원관리는 건축에 비해 꾸준하게 관리되어야 하는 성향이 깊다. 이는 [[XP]]에서 추구하는 것과도 일치한다. ---- ComputerProgramming과 일상생활은 비슷하다고 느낀다. 책 ThePragmaticProgrammer를 보면, 어떻게 살아야하는가도 눈치챌 수 있다. 적절한 프로그램을 만들면, 적당한 SoftwareLicense로 보호받는다. 관련도서 * ThePragmaticProgrammer * ThePsychologyOfComputerProgramming * DesignPatterns * RefactoringImprovingTheDesignOfExistingCode * TestDrivenDevelopmentByExample * DomainDrivenDesign * ---- ComputerProgramming이 재미있을때. * FastFeedback이 되어서, 그때그때의 결과를 쉽게 확인할 수 있을때 * 코드가 계속 다듬어져서([[Refactoring]]) 볼수록 또 보고싶어질때. 재미없고, 하기싫어질때 * 결과의 확인이 쉽지않을때 * 맨땅에 헤딩할때 * 엉성한 코드위에 기능을 덧붙혀야할때 프로그래밍을 계속하려면, 아무래도, 내 주변의 개발환경을 위의 재미있을때로 맞춰야하지 않을까. 잦은 [[Refactoring]]의 이유도 여기서 찾을 수 있다. 코드가 엉성해지기전에 계속해서 손봐줘야 다듬어진 소스에 해피할 수 있다. --[[yong27/2004-10]]-13 ---- SeeAlso ProgrammingParadigm