당신이 말하는 것은 프로그래밍보다 더 많은 소프트웨어 엔지니어링입니다. 약간의 아키텍처, 약간의 "모범 사례"및 "디자인 패턴"이며 다른 사람들과 약간의 작업을합니다. 도움을 줄 수있는 책이 있지만 대부분은 경험에서 비롯됩니다. 아무도 Microsoft Word를 쓰기 시작 하지 않습니다 .
작성하고 싶은 큰 "실제"프로그램에 대해 생각해보십시오. 이제 원하는 방식으로 작동하도록 제작해야하는 다양한 요소에 대해 생각해보십시오. 예를 들어, 현대 1 인칭 게임에서는 3D 그래픽 엔진, 비 플레이어 캐릭터 AI, 음악 / 사운드 모듈, 물리 엔진 및 게임 규칙을 적용하는 최상위 모듈이 필요합니다 (알고 있음) "지도", 다양한 캐릭터의 상호 작용 방법 등). 그리고 작품과 캐릭터 디자인, 음악이 있는데, 그 중 어느 것도 코드는 아니지만 게임을 완성하는 데 필요합니다.
지금 :이 중 어떤 것을 스스로 만들고 다른 곳으로 갈 것입니까? 대부분의 대규모 소프트웨어 프로젝트는 처음부터 프로그래밍되지 않습니다. 아마도 상용 3D 엔진과 음악 / 사운드 모듈을 사용하고 게임을 독특하게 만드는 것들만 프로그래밍 할 것입니다. 자, 어떤 써드 파티 모듈을 사용할 것인지, 비용, 작동하는 언어, 가지고있는 기능, API 설계 방법 (즉, 완성도 등)을 고려해야합니다. 개인 프로그래밍 스타일에 얼마나 잘 맞는지 등). 다양한 타사 모듈에 대해 하나 또는 두 개의 후보를 사용하여 "개념 증명"을 작성하거나 테스트 프로그램을 사용하여 필요한 모든 작업을 수행하고 사용하기 쉽게 할 수 있습니다.
또한 자신이 작성하려는 코드조차도 생각한 시간 내에 혼자 완료하기에는 너무 큰 작업 일 수 있습니다. 프로젝트를 진행하는 다른 프로그래머는 몇 명입니까? 직업을 어떻게 나눌 것인가? 다양한 사람들이 다른 사람들이 작성한 경우에도 다양한 모듈이 어떻게 서로 맞도록 설계됩니까? 서로의 변경 사항을 지우지 않고 모두 동일한 소스 코드로 작업하는 방법 (답변 : 버전 제어는 혼자 작업 할 때 매우 유용하지만 다른 사람과 작업 할 때 반드시 필요합니다).
사내에서 작성할 모듈을 파악한 후에도 동일한 프로세스를 수행합니다. 각 모듈의 조각들, 그것들이 어떻게 맞아야하는지, 그리고 당신이 직접 쓸 수있는 것과 다른 곳에서 얻을 수있는 것을 알아 내십시오. "네, 나는 그것을 쓸 수 있습니다!" 그리고 그렇게하십시오. 그렇게하면서, 프로그램의 다양한 부분들이 어떻게 조화를 이루는가에 예상치 못한 장애가 발생합니다. 이것들은 실망 스러울 것이지만, 당신이 당신의 기술에 대해 더 많이 배울 수있는 기회이며, 그런 식으로보아야합니다.
처음에는 개별 기능과 같은 아주 작은 부분의 프로그램 만 생각할 수 있으므로 코딩을 시작하기 전에 많은 부분을 분해해야합니다. 경험을 쌓으 면서 기능 에 대해 생각 하고 객체 에 대한 생각을 시작 하기보다는 기능 에 대해 생각하게 됩니다. 그리고 당신은 생각하고있을거야 에서 객체와 생각 에 대해 더 큰 모듈. 마지막으로, 당신은 생각됩니다 에 모듈과 생각 에 대해 전체, 큰, 실제 프로그램.
그리고 아직도 배울 것이 많다는 것을 알게 될 것입니다. 프로그래머로서 학습을 중단하면 쓸모없고 새로운 모델로 대체 될 것입니다.
어쨌든, 두려워하지 말고, 이것이 끔찍하거나 불가능하다고 들리더라도 걱정하지 마십시오. 결국 프로그래머가되고 싶지 않습니다. 모두를위한 것은 아닙니다. 나는 음악과 디저트를 좋아하고, 키를 약간 연주하고 요리를 요리 할 수 있지만, 훌륭한 음악 가나 마스터 셰프가되기 위해 시간을 투자하지는 않습니다.
대형 실제 데스크톱 응용 프로그램을 작성하는 프로그래머가되고 싶지 않다면 다른 유형의 프로그래밍 작업이 있습니다. 예를 들어 임베디드 프로그래머가 될 수 있습니다. 임베디드 프로그램 작성과 관련하여 분명하고 흥미로운 과제가 있으며 유용한 작업을 수행하고 있지만 일반적으로 프로그램은 데스크탑 응용 프로그램보다 다소 작습니다. 또는 웹 응용 프로그램을 작성할 수 있습니다. 웹에서는 약간의 기능을 쉽게 붙일 수 있으므로 웹 주석 시스템 (예 : 웹 주석 시스템)을 작성할 수 있으며 전체 웹 응용 프로그램이 아닌 경우에도 유용합니다. 웹에서 자료를 점진적으로 향상시키는 것도 쉬우므로 기본 웹 메일 클라이언트로 시작하여 시간이 지남에 따라 Gmail과 같은 것으로 진화시킬 수 있습니다. (하지만 Gmail과 경쟁하게되므로 그렇게하지 마십시오.)
프로그래머가되고 싶지 않지만 여전히 컴퓨터로 작업하고 싶다면 IT 또는 다른 기술 분야로 갈 수 있습니다. 이 경우 이미 많은 프로그래밍을 아는 것이 동료에게 그다지 많지 않기 때문에 매우 유용합니다. 또는 오늘날 대부분의 분야와 마찬가지로 오늘날 컴퓨터와 관련이 있기 때문에 음악가가되는 경우도 있습니다. 다양한 영리한 방식으로 오디오 또는 MIDI 파일을 조작하는 작은 프로그램을 작성하여 더 나은 음악가를 만드십시오. 당신은 당신의 직업에 더 나은 만들기 위해 당신이 가진 프로그래밍 기술을 많은 분야에 적용 할 수 있습니다 찾을 수 있습니다.