해당 분야를 공부하기 위해선 어떠한 순서로 보는 것이 더 효율적일까? (또는 커리큘럼 작성?) 해당 언어에 대해서는 어느정도 언제쯤 적당한 깊이를 가져야 할까?
'What' 의 영역과 & 'How' 의 영역.
Scientist . Engineer . Programmer 의 영역. (꼭 이분법적으로 나누는건 좀 그렇지만. 일종의 간단한 분류체계정도?)
Windows Programming (Windows Platform Programming) ¶
GUI Programming ¶
예전에 Windows Programming 을 배운다고 한다면 기본적으로 GUI Programming 을 의미했다. Windows 가 기본적으로 GUI OS 이기에 기본이 이것이라고 생각하는 것이다. 하지만, GUI 는 어디까지나 'User Interface' 이다. 즉, 이건 Input/Output 에 대한 선택사항이다. 필요할때 공부하자. (하지만, 보통 User-Friendly 한 프로그램들은 대부분 GUI 이다.)
Windows 에서 GUI Programming 을 하는 방법은 여러가지이다. 언어별로는 Python 의 Tkinter, wxPython 이 있고, Java 로는 Swing 이 있다. C++ 로는 MFC Framework 를 이용하거나 Windows API, wxWindows 를 이용할 수 있으며, MFC 의 경우 Visual Studio 와 연동이 잘 되어서 프로그래밍 하기 편하다. C++ 의 다른 GUI Programming 을 하기위한 툴로서는 Borland C++ Builder 가 있다. (C++ 중급 이상 프로그래머들에게서 오히려 더 선호되는 툴)
가장 쉽게 GUI Programming 을 배우는방법이라 생각되는건, Python 에서의 Tkinter Programming 또는 Jython Interpreter 에서 Swing Tutorial 을 이용하는것이다. (Jython 페이지의 JythonTutorial 참조)
GUI Programming 을 하면서 익힐 수 있는 소중한 개념으로서 Event Driven Programming, Design 으로는 CompositePattern 이 있다. 대부분의 GUI Framework 들은 Event Driven Style 의 프로그래밍 방식이며, 대부분 CompositePattern 을 이용한다. Framework 들의 디자인 개념들이 비슷하므로, 하나의 GUI 관련 Framework 에 익숙해지면 다른 Framework 도 쉽게 익힐 수 있다.
- 개인적 충고 : MFC 를 선택했다면, Code Generator 가 만들어주는 코드를 제대로 이해하라.; MFC 책으로는 Jeff Prosise 의 책을 추천. --1002
- 내 생각엔 일단.. : 윈도우 컨트롤(VC 등의 리소스 편집기에서 제공 되는 모든 컨트롤들) 을 다루는 법을 완전히 습득 하자. 리스트 컨트롤, 트리 컨트롤, 탭 컨트롤 등의 모든 컨트롤을 자유자재로 원하는 모양(비트맵) 으로 바꿔서 사용할 수 있을때 까지 하자. 완전히 습득하면 어떤 프로그램이든 50% 이상 개발 기간이 단축될 것이다. -- 김정욱
Network Programming ¶
모든 학습과 마찬가지로 피드백 회수, 시간을 높이면 효과적, 효율적인 학습이 된다.
이를 위해 Interactive Shell이 지원되는 인터프리터 언어(e.g. Python)와 패킷 스니퍼(e.g. tcpdump, ethereal, etherpeek, ...), 웹 브라우져, FTP, TELNET 클라이언트 등을 이용할 수 있다.
안내 서적으로는 W. Richard Stevens나 Douglas E. Comer의 책을 많이 본다. 후자 쪽이 조금 더 개념적이고, 더 쉽다.
--JuNe
See Also HowToStudyXp, HowToReadIt, HowToStudyDataStructureAndAlgorithms, HowToStudyDesignPatterns, HowToStudyRefactoring