[TL] {讨论}零起点,一年成为高级Windows程序员的最佳学习路线

62 views
Skip to first unread message

Devymex

unread,
Apr 29, 2010, 2:57:25 AM4/29/10
to pon...@googlegroups.com
此学习路线按照由浅到深、循序渐近的过程设计,并考虑了初学者的兴趣所在。必免了一开始就接触复杂的定理和概念,这样可以始初学者在每个阶段都会有满足的 成就感,以便于增强信心,持之以恒。

各阶段的时间是以每天花8小时学习来计算的,如果你每天只能花4小时,则需延长一倍的时间。如果你在 某阶段的学习少于最短时间,要么你是天才,要么就可能没有吃透。而超过最多时间的学习很可能会令你在当前的阶段感到困挠。

1. C++语言入门。可看任一本C++入门书,如果没有C语言基础应先学习C语言的基本语法。重点学习C++新的代码形式,养成良好的编程习惯,熟练掌握内存 的管理技术,了解类的定义和使用方法,较复杂的类继承关系和泛型技术可不看。各部分主题不要过于深入的探索,但熟练掌握此阶段的内容则需一定量的练习(比 如书中各章节后所附的简单的练习题),因各人基础不同需2-4个月。

2. MFC入门。可看《VC++技术内幕》或任一本常见的VC++入门书籍。此阶段要大量练习,熟悉掌握Visual Studio的开发环境,包括代码编辑、编译、调式和查阅MSDN的技巧,可加入http://community.csdn.net论坛参与讨论。熟练 掌握Windows窗体程序的建立和基本编程方法。通过查阅MSDN,了解MFC库中各常用类的功能和基本用法,了解常用Windows API的基本使用方法和Windows的消息机制。关于SDK的深层次内容以及MFC内部实现和设计方法可先不作了解,此阶段需3-6个月。

3. SDK入门。学习脱离MFC,仅依靠SDK编写各种Windows程序界面。可看《Windows高级编程指南》,如能熟练查阅MSDN和利用互联网,可 不必看书。熟练掌握WindowsAPI的调用方法,深入理解消息传递机制,掌握Windows内存管理机制。利用之前所学知识,练习和体会利用C++面 向对象技术对API进行封装的基本方法。若有需要还可使用相应的参考书初步学习数据库、网络编程、多线程编程、GDI+、COM、OpenGL、 DirectX、WDK/DDK等专门编程技术。依所学内容的不同,需3-6个月。

4. C++语言精通,可参看《C++ Primer》,《Think In C++》,《(More) Effective C++》,《Essential、C++》,《C++ STL》等名著,熟练掌握C++泛型编程技术,深入理解类的继承机制,熟悉掌握STL的使用方法。在参考书的指导下阅读STL的内部实现代码,理解其设计 思路,并可利用新学到的技术对上一阶段的内容进行实践。此阶段需2-4个月。

5. MFC和SDK的精通,可看《深入浅出MFC》,《Windows核心编程》。另可选择性概览《设计模式》,《人月神话》,《快速软件开发》,《UML和 模式应用》以便了解当前大型项目的设计和管理模式。综合利用MFC、SDK和C++的面向对象与泛型技术解决实际问题,开发2-3个代码量在2000行以 上的小项目。时间因人而异,需2-4个月。此阶段为入门学习的最后一个阶段,完成后就可以称之为一名高级的Windows程序员了。

6. 如要进行更深层次的学习,应脱离语言和系统,学习专业编程知识或各类算法。如果要走学术型路线,可深入学习各类数学,包括高等微积分、高等代数、数值分 析、数理统计、离散数学等。可参考的计算机专业书籍有《数据结构》、《算法导论》、《现代优化算法》、《模式识别与机器学习》、《人工智能导论》、 《TAOCP》……学海无崖,祝君好运!


我坚信我活的比党久。
欢迎 Follow @devymex

Cai Jimin

unread,
Apr 29, 2010, 3:18:50 AM4/29/10
to pon...@googlegroups.com
我觉得只有最后一句话“我坚信我活的比党久”有些道理 :)

但C++和“成为高级Windows程序员”有多大相关性?
并且不太可能一年成为高级Windows程序员, 基本上1年时间在绝大多数技术领域都远远不够。

guihua wu

unread,
Apr 29, 2010, 3:23:16 AM4/29/10
to pon...@googlegroups.com
怎么感觉c++primer是很基础的书啊。。。?

Kenny Yuan

unread,
Apr 29, 2010, 3:26:53 AM4/29/10
to pon...@googlegroups.com
在这个谭浩强盗流行的国度,C++ Primer可不是什么基础的书,例证:关于重载解析的讲解

在 2010年4月29日 下午3:23,guihua wu <guihua...@gmail.com>写道:
怎么感觉c++primer是很基础的书啊。。。?




--
Kenny Yuan
-->CS, MMA, Psychology, Automobile...
http://twitter.com/kenny_yuan
http://csbabel.wordpress.com/
http://blog.csdn.net/yuankaining/

Milo Yip

unread,
Apr 29, 2010, 3:28:13 AM4/29/10
to pon...@googlegroups.com
《Essential C++》 也是入門的吧。

比較高級的有《Modern C++》、《C++ Templates》、《Imperfect C++》、《Exceptional
C++》之類。最理想是看一遍C++ ISO Standard...

另外,《现代优化算法》是甚麼?

在 2010年4月29日下午3:23,guihua wu <guihua...@gmail.com> 寫道:
>> 怎么感觉c++primer是很基础的书啊。。。?
>

--
Milo Yip

Twitter @miloyip
http://www.cnblogs.com/miloyip/
http://miloyip.seezone.net/

Mikster.Z

unread,
Apr 29, 2010, 3:40:18 AM4/29/10
to pon...@googlegroups.com
记得这也是本不错的入门书 Inside The C++ Object Model,初学者在看c++ primer的时候配合这个,容易理解的多

Mikster.Z

unread,
Apr 29, 2010, 3:41:56 AM4/29/10
to pon...@googlegroups.com
另外我还觉得6.中的很多知识,才是基础,要先基础而后语言吧.....

guihua wu

unread,
Apr 29, 2010, 3:43:54 AM4/29/10
to pon...@googlegroups.com
是啊。。。这个路线好乱~~~

2010/4/29 Mikster.Z <china...@gmail.com>

Jeffrey Zhao

unread,
Apr 29, 2010, 3:47:14 AM4/29/10
to pon...@googlegroups.com
我其实在想一年够不够我学C++的……我以前也看过半本C++ Primer,但就是没看下去……

From: Devymex
Sent: Thursday, April 29, 2010 2:57 PM
Subject: [TL] {讨论}零起点,一年成为高级Windows程序员的最佳学习路线

此学习路线按照由浅到深、循序渐近的过程设计,并考虑了初学者的兴趣所在。必免了一开始就接触复杂的定理和概念,这样可以始初学者在每个阶段都会有满足的成就感,以便于增强信心,持之以恒。

各阶段的时间是以每天花8小时学习来计算的,如果你每天只能花4小时,则需延长一倍的时间。如果你在某阶段的学习少于最短时间,要么你是天才,要么就可能没有吃透。而超过最多时间的学习很可能会令你在当前的阶段感到困挠。

1. C++语言入门。可看任一本C++入门书,如果没有C语言基础应先学习C语言的基本语法。重点学习C++新的代码形式,养成良好的编程习惯,熟练掌握内存的管理技术,了解类的定义和使用方法,较复杂的类继承关系和泛型技术可不看。各部分主题不要过于深入的探索,但熟练掌握此阶段的内容则需一定量的练习(比如书中各章节后所附的简单的练习题),因各人基础不同需2-4个月。

2. MFC入门。可看《VC++技术内幕》或任一本常见的VC++入门书籍。此阶段要大量练习,熟悉掌握Visual Studio的开发环境,包括代码编辑、编译、调式和查阅MSDN的技巧,可加入http://community.csdn.net论坛参与讨论。熟练掌握Windows窗体程序的建立和基本编程方法。通过查阅MSDN,了解MFC库中各常用类的功能和基本用法,了解常用Windows API的基本使用方法和Windows的消息机制。关于SDK的深层次内容以及MFC内部实现和设计方法可先不作了解,此阶段需3-6个月。

3. SDK入门。学习脱离MFC,仅依靠SDK编写各种Windows程序界面。可看《Windows高级编程指南》,如能熟练查阅MSDN和利用互联网,可不必看书。熟练掌握WindowsAPI的调用方法,深入理解消息传递机制,掌握Windows内存管理机制。利用之前所学知识,练习和体会利用C++面向对象技术对API进行封装的基本方法。若有需要还可使用相应的参考书初步学习数据库、网络编程、多线程编程、GDI+、COM、OpenGL、 DirectX、WDK/DDK等专门编程技术。依所学内容的不同,需3-6个月。

4. C++语言精通,可参看《C++ Primer》,《Think In C++》,《(More) Effective C++》,《Essential、C++》,《C++ STL》等名著,熟练掌握C++泛型编程技术,深入理解类的继承机制,熟悉掌握STL的使用方法。在参考书的指导下阅读STL的内部实现代码,理解其设计思路,并可利用新学到的技术对上一阶段的内容进行实践。此阶段需2-4个月。

5. MFC和SDK的精通,可看《深入浅出MFC》,《Windows核心编程》。另可选择性概览《设计模式》,《人月神话》,《快速软件开发》,《UML和模式应用》以便了解当前大型项目的设计和管理模式。综合利用MFC、SDK和C++的面向对象与泛型技术解决实际问题,开发2-3个代码量在2000行以上的小项目。时间因人而异,需2-4个月。此阶段为入门学习的最后一个阶段,完成后就可以称之为一名高级的Windows程序员了。

6. 如要进行更深层次的学习,应脱离语言和系统,学习专业编程知识或各类算法。如果要走学术型路线,可深入学习各类数学,包括高等微积分、高等代数、数值分析、数理统计、离散数学等。可参考的计算机专业书籍有《数据结构》、《算法导论》、《现代优化算法》、《模式识别与机器学习》、《人工智能导论》、《TAOCP》……学海无崖,祝君好运!


我坚信我活的比党久。
欢迎 Follow @devymex

Mikster.Z

unread,
Apr 29, 2010, 3:50:58 AM4/29/10
to pon...@googlegroups.com
楼主的学习路线,给我一种强烈的北大青鸟感....无恶意,觉得很像速成班什么的

Milo Yip

unread,
Apr 29, 2010, 3:49:53 AM4/29/10
to pon...@googlegroups.com
看到老趙,想起,Windows程序員應該要學 .NET 吧?
我就從來沒學過MFC,做GUI只用win32或其他庫(如wxWidget)。

居振梁

unread,
Apr 29, 2010, 3:51:53 AM4/29/10
to pon...@googlegroups.com
这个 Inside The C++ Object Model ,建议英语再差的人也去看原版。
因为这本书是侯老先生翻译的,但是充斥这大段中英混杂的句子,读起来很累人。

2010/4/29 Mikster.Z <china...@gmail.com>

记得这也是本不错的入门书 Inside The C++ Object Model,初学者在看c++ primer的时候配合这个,容易理解的多

--
御剑乘风来,除魔天地间。有酒乐逍遥,无酒我亦颠。
http://www.xspirithack.org
一饮尽江河,再饮吞日月。千杯醉不倒,唯我酒剑仙。

Fei Yan

unread,
Apr 29, 2010, 3:58:22 AM4/29/10
to pon...@googlegroups.com
这本书,算不得是C++的入门书吧?至少得有相当基础才能来看。难度是比c++ Primer深入一些。

JJHou 的翻译我觉得还是挺对口味的,我有一中文版并仔细看了2遍(也是好久以前的了);倒是英文版没仔细再看

Devymex

unread,
Apr 29, 2010, 3:59:28 AM4/29/10
to pon...@googlegroups.com
是速成,这个贴子当然不是给计算机专业的人参考的。只是希望有各多非计算机专业的人能够对编程产生一些兴趣,让他们大致了解一下编程的一种学习过程。另外,生活中遇到一些其它行业的朋友,想快速转行到计算机,或是学一点编程技巧以解决他们专业上的小问题。因此写了这篇贴子。

鄙人才疏学浅,文中多有不周,见笑了。

我坚信我活的比党久。
欢迎 Follow @devymex



2010/4/29 Mikster.Z <china...@gmail.com>

qiaojie

unread,
Apr 29, 2010, 4:00:50 AM4/29/10
to pon...@googlegroups.com
这种速成法是不值得提倡的。学习编程是一个积累和迭代的过程,不是先A再B再C这样的一条直路。
比方说让一个初学者先去学C++,花上几个月时间看完《C++ Primer》,他可能连1%都没学进去,
因为没有任何实践,学到的东西都是纸上谈兵,而且前学后忘,无法学以致用。
正确的方法应该是一边实践一边学习,有了一点实践基础再回过头加深理论知识,这样才能真正搞
懂。很多人批评中国的教育有问题,其实就是理论跟实践的脱节所造成的,大学里教的算法导论,
操作系统,编译原理等等有几个人现在还记得呢。


 
2010/4/29 Devymex <dev...@gmail.com>
此学习路线按照由浅到深、循序渐近的过程设计,并考虑了初学者的兴趣所在。必免了一开始就接触复杂的定理和概念,这样可以始初学者在每个阶段都会有满足的成就感,以便于增强信心,持之以恒。

各阶段的时间是以每天花8小时学习来计算的,如果你每天只能花4小时,则需延长一倍的时间。如果你在某阶段的学习少于最短时间,要么你是天才,要么就可能没有吃透。而超过最多时间的学习很可能会令你在当前的阶段感到困挠。

1. C++语言入门。可看任一本C++入门书,如果没有C语言基础应先学习C语言的基本语法。重点学习C++新的代码形式,养成良好的编程习惯,熟练掌握内存的管理技术,了解类的定义和使用方法,较复杂的类继承关系和泛型技术可不看。各部分主题不要过于深入的探索,但熟练掌握此阶段的内容则需一定量的练习(比如书中各章节后所附的简单的练习题),因各人基础不同需2-4个月。

2. MFC入门。可看《VC++技术内幕》或任一本常见的VC++入门书籍。此阶段要大量练习,熟悉掌握Visual Studio的开发环境,包括代码编辑、编译、调式和查阅MSDN的技巧,可加入http://community.csdn.net论坛参与讨论。熟练掌握Windows窗体程序的建立和基本编程方法。通过查阅MSDN,了解MFC库中各常用类的功能和基本用法,了解常用Windows API的基本使用方法和Windows的消息机制。关于SDK的深层次内容以及MFC内部实现和设计方法可先不作了解,此阶段需3-6个月。

3. SDK入门。学习脱离MFC,仅依靠SDK编写各种Windows程序界面。可看《Windows高级编程指南》,如能熟练查阅MSDN和利用互联网,可不必看书。熟练掌握WindowsAPI的调用方法,深入理解消息传递机制,掌握Windows内存管理机制。利用之前所学知识,练习和体会利用C++面向对象技术对API进行封装的基本方法。若有需要还可使用相应的参考书初步学习数据库、网络编程、多线程编程、GDI+、COM、OpenGL、 DirectX、WDK/DDK等专门编程技术。依所学内容的不同,需3-6个月。

4. C++语言精通,可参看《C++ Primer》,《Think In C++》,《(More) Effective C++》,《Essential、C++》,《C++ STL》等名著,熟练掌握C++泛型编程技术,深入理解类的继承机制,熟悉掌握STL的使用方法。在参考书的指导下阅读STL的内部实现代码,理解其设计思路,并可利用新学到的技术对上一阶段的内容进行实践。此阶段需2-4个月。

5. MFC和SDK的精通,可看《深入浅出MFC》,《Windows核心编程》。另可选择性概览《设计模式》,《人月神话》,《快速软件开发》,《UML和模式应用》以便了解当前大型项目的设计和管理模式。综合利用MFC、SDK和C++的面向对象与泛型技术解决实际问题,开发2-3个代码量在2000行以上的小项目。时间因人而异,需2-4个月。此阶段为入门学习的最后一个阶段,完成后就可以称之为一名高级的Windows程序员了。

6. 如要进行更深层次的学习,应脱离语言和系统,学习专业编程知识或各类算法。如果要走学术型路线,可深入学习各类数学,包括高等微积分、高等代数、数值分析、数理统计、离散数学等。可参考的计算机专业书籍有《数据结构》、《算法导论》、《现代优化算法》、《模式识别与机器学习》、《人工智能导论》、《TAOCP》……学海无崖,祝君好运!


我坚信我活的比党久。
欢迎 Follow @devymex


wang carl

unread,
Apr 29, 2010, 4:03:51 AM4/29/10
to pon...@googlegroups.com
LOL,我也差不多。
Win32 GUI还写不好,故直接用wxWidgets。

居振梁

unread,
Apr 29, 2010, 4:06:11 AM4/29/10
to pon...@googlegroups.com
难度我比较不出来,
我看过的c++书半个手都数的过来,
而且看这本书时已经多少能自己推断处来了。

不过JJHou的风格就是术语不翻译,包括那些有成熟中译的术语。
因此我感觉大脑里频繁的母语-第二语言切换很累人,
也许就是这个原因导致有些地方,自己推断比看书更“不容易理解错”

2010/4/29 Fei Yan <skyscr...@gmail.com>

这本书,算不得是C++的入门书吧?至少得有相当基础才能来看。难度是比c++ Primer深入一些。

JJHou 的翻译我觉得还是挺对口味的,我有一中文版并仔细看了2遍(也是好久以前的了);倒是英文版没仔细再看

Mikster.Z

unread,
Apr 29, 2010, 4:09:35 AM4/29/10
to pon...@googlegroups.com
....那也不用变成高级windows程序员这么吓人吧.....

Milo Yip

unread,
Apr 29, 2010, 4:14:40 AM4/29/10
to pon...@googlegroups.com
我坚信我活的比党久。 -> title party... :)

在 2010年4月29日下午4:09,Mikster.Z <china...@gmail.com> 寫道:
> ....那也不用变成高级windows程序员这么吓人吧.....
>> 我坚信我活的比党久。
>> 欢迎 Follow @devymex

kroody

unread,
Apr 29, 2010, 4:17:58 AM4/29/10
to pon...@googlegroups.com
楼下的大牛们  能不能给出个*nix 程序员的最佳路线 

2010/4/29 Milo Yip <mil...@gmail.com>



--
彪悍的人生不需要解释!
360.gif

AWu

unread,
Apr 29, 2010, 4:27:16 AM4/29/10
to TopLanguage
嘿,俺从unix下的开发转投微软了(大家别鄙视俺)
看了这个列表,感觉还是有用的,大约知道了自己需要补啥知识了~~~

Unix下的开发,好歹得unix环境编程,unix shell编程,C++(或者C),各种工具的学习(aCC?CC?GCC?VI,
makefile等~~~),这堆是基础~
然后,再看自己的方向学习更灵活的脚本,学习网络编程,进程,数据库等了吧。。。
拙见~轻拍

Ken

unread,
Apr 29, 2010, 4:36:54 AM4/29/10
to pon...@googlegroups.com
忍不住了,楼主分析得很有道理。

1 C++ 语言入门
  应该看 C++ Programming Language,个人以为 c++ primer 和此书不在一个档次上。
 
2 MFC 不应该在这个时候看,第二个阶段应该是SDK入门
  做法是抱着MSDN啃

3 C++ 精通
  还是 C++ Programming Language,但是得加上 STL, 深度探索C++ Object对象等

4 开始研究 WTL, 模板,设计模式等技术了

MFC 永远都不要看,为什么?
因为MFC设计在90年代,现在语言变化太大了,还要抱着玩具不放么?



2010/4/29 Devymex <dev...@gmail.com>

Ken

unread,
Apr 29, 2010, 4:40:45 AM4/29/10
to pon...@googlegroups.com
再一条,一年可能可以成为Java,Python 等语言的高手,但是永远成不了 C++ 高级程序员

"高级Windows程序员",不知楼主以为和 "C++高级程序员"有什么不同。

2010/4/29 Ken <ken....@gmail.com>

guihua wu

unread,
Apr 29, 2010, 4:48:11 AM4/29/10
to pon...@googlegroups.com
俺只提不同的意见:
说实话C++ Programming Language是我的c++入门书,但是基于当时对语言及像数据结构、算法之类接触还很少,所以对此书的理解是很少的。个人认为如果这本书作为c++入门书,也要看是什么样的人入门,如果已经有了一定的编程经验,对数据结构、操作系统等基础知识已经有所掌握,可以去看,如果这些还没有的话,此书是不适合做c++入门的。个人觉得《accelerate c++》是本真正的入门书。
以上拙见。。轻拍轻拍

hayate

unread,
Apr 29, 2010, 4:49:09 AM4/29/10
to pon...@googlegroups.com
WTL这种东西看不看无所谓,但是搞Native Win开发,特别是advanced一点的,COM是必须要学习的。
其实这贴提到很多东西都和Win无关,属于通用的基础,比如C++的学习,个人感觉学习Win开发需要看的三本书

Programming Windows -- 讲GUI的
Windows via C++ -- 就是Windows核心编程 主讲各种内核对象的概念
Essential COM -- 讲COM没有比这更好的啦,当然讲COM的也不多,虽然COM"过时"了,但是这本书每次看都有新体会,没事儿看看也蛮好

2010/4/29 Ken <ken....@gmail.com>:

>> 《TAOCP》......学海无崖,祝君好运!
>>
>>
>> 我坚信我活的比党久。
>> 欢迎 Follow @devymex
>>
>
>

qiaojie

unread,
Apr 29, 2010, 4:51:37 AM4/29/10
to pon...@googlegroups.com
Essential COM没啥好看的,看完了你也不会开发COM,学COM还是看ATL Internals好,顺便对提升C++水平也很有好处。


 
2010/4/29 hayate <haya...@gmail.com>

Ken

unread,
Apr 29, 2010, 4:59:59 AM4/29/10
to pon...@googlegroups.com
>> 说实话C++ Programming Language是我的c++入门书,但是基于当时对语言及像数据结构、算法之类接触还很少,所 以对此书的理解是很少的。
哥们需要再读

此书有两点是其他书籍没有的
1 作者始终在讲语言为何如此设计,如果读者能学会其思考方式,将是受益终身的
2 此书后面讲了一些如何写大规模C++程序的一些做法,如何掌控数百万行代码?是有很多技巧的
  如何让几十万行代码能持续更新(能不断添加新功能,不断演化),能保证质量(不是经常到处崩溃)?
  这是一个项目组中高级程序员的责任。

2010/4/29 guihua wu <guihua...@gmail.com>

Ken

unread,
Apr 29, 2010, 5:01:53 AM4/29/10
to pon...@googlegroups.com
COM内涵是很博大精深的,Don Box的Com本质论 是不错的开始

Mozilla 的XPCOM是不错的实现,ATL是MS Com的好工具

2010/4/29 qiaojie <qia...@gmail.com>

guihua wu

unread,
Apr 29, 2010, 5:04:07 AM4/29/10
to pon...@googlegroups.com
呵呵,这个我同意,,

2010/4/29 Ken <ken....@gmail.com>
>> 说实话C++ Programming Language是我的c++入门书,但是基于当时对语言及像数据结构、算法之类接触还很少,所以对此书的理解是很少的。
哥们需要再读

Tinyfool

unread,
Apr 29, 2010, 5:04:35 AM4/29/10
to pon...@googlegroups.com
我倒是看com本质论的,觉得还好,直接写com的时候,也觉得很好玩。atl后来也用过,当然要方便很多了,不过懂点本质也没坏处。

2010/4/29 Ken <ken....@gmail.com>:

--
Tinyfool的开发日记 http://www.tinydust.net/dev/
代码中国网 http://www.codechina.org
myTwitter: http://twitter.com/tinyfool

hayate

unread,
Apr 29, 2010, 5:09:11 AM4/29/10
to pon...@googlegroups.com
Essential COM当然不是step by
step了,且不论是否需要看essential,但是一上来就学ATL是不实际的,不理解COM怎么用得好ATL呢。
ATL Internals重点在于如果用 CRTP 这种idiom构建一个灵活得模板库,但是对于COM基本概念,譬如激活,套间就讲的很少了

2010/4/29 qiaojie <qia...@gmail.com>:

hayate

unread,
Apr 29, 2010, 5:16:32 AM4/29/10
to pon...@googlegroups.com
补充一点,为什么说Essential
COM真的好,它当然不是入门书籍了。因为它回答了太多的为什么,有些为什么是一开始就告诉你的,有些为什么是多年以后重读的时候才体会到的。一本好书就是因为可以在反复阅读中获得新的认识和体会。我只是单纯的觉得这本书写的很好,而不是谈COM这种技术本身。
另外,国内似乎没有出过影印版的Essential COM,潘爱民的那本翻译的只能说尚可看,如果能读原版就会觉得比翻译的好太多了。

2010/4/29 hayate <haya...@gmail.com>:

jiang yu

unread,
Apr 29, 2010, 5:17:49 AM4/29/10
to pon...@googlegroups.com
嗯,深表赞同,学而时习之,不亦说乎。

首先学习
hello world

然后学习打印一个塔(不要笑,我最初在学习机上就对这个很惊奇)
*
**
***
****

解决一些数学问题
比如求素数

然后写个打砖块
---------------------------
---------  ----------------
    o
   ---

然后写个俄罗斯方块

|

---   ---------------------
---------  ----------------

成了
如果可以把AI和网络对战加上你这一年就大成了。

Serenade

unread,
Apr 29, 2010, 5:18:09 AM4/29/10
to pon...@googlegroups.com
直接上手做东西,半年左右就出一个能实现功能的库(对代码质量没有要求)
比纱布呵呵地学东西
学习速度快得多

张怡

unread,
Apr 29, 2010, 11:11:34 AM4/29/10
to pon...@googlegroups.com
光看标题,以为楼主在开Windows的玩笑,没想到楼主居然是认真的,
从严肃的内容看,楼主其实在开程序员的玩笑;
不过从结尾来开,楼主在开自己的玩笑。

Sili

unread,
Apr 29, 2010, 8:02:51 PM4/29/10
to TopLanguage
这是个天方夜谭的学习计划......
而且这些东西,还包括COM,我都懂,也没有觉得自己是哪门子windows高级程序员,还是觉得自己只是个劣拙的初级程序员而已。

On Apr 29, 2:57 pm, Devymex <devy...@gmail.com> wrote:
> 此学习路线按照由浅到深、循序渐近的过程设计,并考虑了初学者的兴趣所在。必免了一开始就接触复杂的定理和概念,这样可以始初学者在每个阶段都会有满足的

> 成就感,以便于增强信心,持之以恒。
>
> 各阶段的时间是以每天花8小时学习来计算的,如果你每天只能花4小时,则需延长一倍的时间。如果你在
> 某阶段的学习少于最短时间,要么你是天才,要么就可能没有吃透。而超过最多时间的学习很可能会令你在当前的阶段感到困挠。
>

> 1. C++语言入门。可看任一本C++入门书,如果没有C语言基础应先学习C语言的基本语法。重点学习C++新的代码形式,养成良好的编程习惯,熟练掌握内存


> 的管理技术,了解类的定义和使用方法,较复杂的类继承关系和泛型技术可不看。各部分主题不要过于深入的探索,但熟练掌握此阶段的内容则需一定量的练习(比

> 如书中各章节后所附的简单的练习题),因各人基础不同需2-4个月。
>
> 2. MFC入门。可看《VC++技术内幕》或任一本常见的VC++入门书籍。此阶段要大量练习,熟悉掌握Visual
> Studio的开发环境,包括代码编辑、编译、调式和查阅MSDN的技巧,可加入http://community.csdn.net论坛参与讨论。熟练
> 掌握Windows窗体程序的建立和基本编程方法。通过查阅MSDN,了解MFC库中各常用类的功能和基本用法,了解常用Windows
> API的基本使用方法和Windows的消息机制。关于SDK的深层次内容以及MFC内部实现和设计方法可先不作了解,此阶段需3-6个月。
>

> 3. SDK入门。学习脱离MFC,仅依靠SDK编写各种Windows程序界面。可看《Windows高级编程指南》,如能熟练查阅MSDN和利用互联网,可


> 不必看书。熟练掌握WindowsAPI的调用方法,深入理解消息传递机制,掌握Windows内存管理机制。利用之前所学知识,练习和体会利用C++面

> 向对象技术对API进行封装的基本方法。若有需要还可使用相应的参考书初步学习数据库、网络编程、多线程编程、GDI+、COM、OpenGL、
> DirectX、WDK/DDK等专门编程技术。依所学内容的不同,需3-6个月。
>
> 4. C++语言精通,可参看《C++ Primer》,《Think In C++》,《(More) Effective
> C++》,《Essential、C++》,《C++
> STL》等名著,熟练掌握C++泛型编程技术,深入理解类的继承机制,熟悉掌握STL的使用方法。在参考书的指导下阅读STL的内部实现代码,理解其设计
> 思路,并可利用新学到的技术对上一阶段的内容进行实践。此阶段需2-4个月。
>

> 5. MFC和SDK的精通,可看《深入浅出MFC》,《Windows核心编程》。另可选择性概览《设计模式》,《人月神话》,《快速软件开发》,《UML和


> 模式应用》以便了解当前大型项目的设计和管理模式。综合利用MFC、SDK和C++的面向对象与泛型技术解决实际问题,开发2-3个代码量在2000行以

> 上的小项目。时间因人而异,需2-4个月。此阶段为入门学习的最后一个阶段,完成后就可以称之为一名高级的Windows程序员了。
>
> 6. 如要进行更深层次的学习,应脱离语言和系统,学习专业编程知识或各类算法。如果要走学术型路线,可深入学习各类数学,包括高等微积分、高等代数、数值分
> 析、数理统计、离散数学等。可参考的计算机专业书籍有《数据结构》、《算法导论》、《现代优化算法》、《模式识别与机器学习》、《人工智能导论》、

> 《TAOCP》......学海无崖,祝君好运!
>
> 我坚信我活的比党久。
> 欢迎 Follow @devymex

Michael

unread,
Apr 29, 2010, 8:49:03 PM4/29/10
to pon...@googlegroups.com
我跳过了 MFC..
对MFC还只是一个概念,是不是欠的总是要还的呀?
ps:现在搞游戏客户端。


2010/4/30 Sili <uni...@gmail.com>



--

--
    此致
敬礼!
                                                            周中良
--
Michael Zhou
C++,  Python,Linux,MySQL,Game,Football,Basketball,Mua MM.

OxFAN

unread,
Apr 29, 2010, 8:55:43 PM4/29/10
to pon...@googlegroups.com
个人认为第六条应该提到第一条。程序员应该先学习好数学和算法,养成良好的思维习惯。

sagasw

unread,
Apr 29, 2010, 9:27:46 PM4/29/10
to pon...@googlegroups.com
从水里冒泡一下吧,多少也算是个windows下的MFC常用的程序员,谈谈个人看法。

1,Essential C++这本书不是高阶的,如Milo所言,另外也不算是初学的,我翻看过钱能那本书,如果是follow了国内的教育体系,这书可以看。

2,这个学习路线基本上用处不大,每天8小时,那么这个人既不学习也不工作,只是为了学而学,傻啦。学东西要有个目的,为了赚钱或者为了乐趣或者为了泡妞,没有目的的长时间学习是无法坚持的。

3,”吃透“这个词很有意思,楼主写了比党更长久,不知能否做到,但我相信,一定会比里面提到的一些技术活的更长久,所以只要吃透本质性的东西就好了。比如算法、操作系统、内存管理、socket编程、消息循环机制、多线程编程基础等等,其它的,真的没有必要吃透,会用就好了。样样想精通,只能痒痒稀松。

哪些东西算是本质性的,我有一个办法,可以去图书馆看看10年前的计算机书,如果那些书还有用,还有人推荐推广,那个技术应该算是本质性的了,时间是最好的标杆。

4,MFC不必深学,照猫画虎即可,MFC的好处是他所有的源代码都给你,可以读,可以改,可以模仿克隆。而且MFC没有死,VC2010依然对它继续加强,Windows系统下搞界面设计还是用它比较容易。

5,SDK是否需要深学,也未必,我的感觉是知道大体有什么,到时候能查到就OK,SDK的开发例程是基于C的,所以跟你前面推荐的不太配合。另外有没有必要非得学SDK呢?还是有些怀疑的,MFC也好,ATL也好或者WTL也好,都对SDK做了包装,就是让程序员更简单的使用,非得赤裸裸用SDK的时候很少,这个投入产出比例就不合算了。当然,我说的是操作系统的SDK,其它的不论。

总而言之,一年这个期限是远远不够的,而且一年的程序员,眼界或者能达到的水平是有限的,开发这件事其实就是个熟练工种,除了少数计算机科学家,大多数人都是在重复做工。只要有心,从小工达到工匠的水平并不难,但是需要时间,看看过去的学徒如何出师就知道了。小工算是一般程序员的话,工匠也就是高级程序员了,大师嘛,可望不可及,就不说了。

------------------------------------------
blog: http://sunxiunan.com/
C++, Lua, living in Dalian
http://twitter.com/sagasw
http://t.qq.com/sagasw
------------------------------------------


2010/4/29 Devymex <dev...@gmail.com>
此学习路线按照由浅到深、循序渐近的过程设计,并考虑了初学者的兴趣所在。必免了一开始就接触复杂的定理和概念,这样可以始初学者在每个阶段都会有满足的 成就感,以便于增强信心,持之以恒。

各阶段的时间是以每天花8小时学习来计算的,如果你每天只能花4小时,则需延长一倍的时间。如果你在 某阶段的学习少于最短时间,要么你是天才,要么就可能没有吃透。而超过最多时间的学习很可能会令你在当前的阶段感到困挠。

1. C++语言入门。可看任一本C++入门书,如果没有C语言基础应先学习C语言的基本语法。重点学习C++新的代码形式,养成良好的编程习惯,熟练掌握内存 的管理技术,了解类的定义和使用方法,较复杂的类继承关系和泛型技术可不看。各部分主题不要过于深入的探索,但熟练掌握此阶段的内容则需一定量的练习(比 如书中各章节后所附的简单的练习题),因各人基础不同需2-4个月。

2. MFC入门。可看《VC++技术内幕》或任一本常见的VC++入门书籍。此阶段要大量练习,熟悉掌握Visual Studio的开发环境,包括代码编辑、编译、调式和查阅MSDN的技巧,可加入http://community.csdn.net论坛参与讨论。熟练 掌握Windows窗体程序的建立和基本编程方法。通过查阅MSDN,了解MFC库中各常用类的功能和基本用法,了解常用Windows API的基本使用方法和Windows的消息机制。关于SDK的深层次内容以及MFC内部实现和设计方法可先不作了解,此阶段需3-6个月。

3. SDK入门。学习脱离MFC,仅依靠SDK编写各种Windows程序界面。可看《Windows高级编程指南》,如能熟练查阅MSDN和利用互联网,可 不必看书。熟练掌握WindowsAPI的调用方法,深入理解消息传递机制,掌握Windows内存管理机制。利用之前所学知识,练习和体会利用C++面 向对象技术对API进行封装的基本方法。若有需要还可使用相应的参考书初步学习数据库、网络编程、多线程编程、GDI+、COM、OpenGL、 DirectX、WDK/DDK等专门编程技术。依所学内容的不同,需3-6个月。

4. C++语言精通,可参看《C++ Primer》,《Think In C++》,《(More) Effective C++》,《Essential、C++》,《C++ STL》等名著,熟练掌握C++泛型编程技术,深入理解类的继承机制,熟悉掌握STL的使用方法。在参考书的指导下阅读STL的内部实现代码,理解其设计 思路,并可利用新学到的技术对上一阶段的内容进行实践。此阶段需2-4个月。

5. MFC和SDK的精通,可看《深入浅出MFC》,《Windows核心编程》。另可选择性概览《设计模式》,《人月神话》,《快速软件开发》,《UML和 模式应用》以便了解当前大型项目的设计和管理模式。综合利用MFC、SDK和C++的面向对象与泛型技术解决实际问题,开发2-3个代码量在2000行以 上的小项目。时间因人而异,需2-4个月。此阶段为入门学习的最后一个阶段,完成后就可以称之为一名高级的Windows程序员了。

6. 如要进行更深层次的学习,应脱离语言和系统,学习专业编程知识或各类算法。如果要走学术型路线,可深入学习各类数学,包括高等微积分、高等代数、数值分 析、数理统计、离散数学等。可参考的计算机专业书籍有《数据结构》、《算法导论》、《现代优化算法》、《模式识别与机器学习》、《人工智能导论》、 《TAOCP》……学海无崖,祝君好运!


我坚信我活的比党久。
欢迎 Follow @devymex


sail tsao

unread,
Apr 29, 2010, 9:41:19 PM4/29/10
to pon...@googlegroups.com
浮躁啊!零起点、一年、高级windows程序员、真如楼上某位所说,和某青鸟诈骗集团的广告很像!
“零起点”的一年就能成为高级windows程序员,你让我这么一个上了大学四年并工作两年的普通程序员情何以堪啊,你们别拦我,我不活了~泪奔~
--
Sail Tsao
I'm Just a Simple Person.
My Webpage:
http://sailtsao.spaces.live.com/

朱晋玄

unread,
Apr 30, 2010, 2:50:45 AM4/30/10
to pon...@googlegroups.com
其实我觉得LZ的每天八小时即使在已经相当于是一个计算机系一个学年还多了......
并且同问什么是高级windows程序员

Push Chen

unread,
Apr 30, 2010, 5:43:06 AM4/30/10
to pon...@googlegroups.com
这样一年学下来估计连什么是内核对象都没搞清楚……
是不是还需要知道进程调度、多线程、网络通讯、消息机制?
那必然就需要先搞懂P/V源语、等待队列、Socket、TCP/IP、UDP、7层模型、Hook、Hook List。
再下去搞P/V搞多线程势必得数据结构和算法得要有一定的功底……

吖,对了,Windows的开发由于2010出来,更多的会转向WPF来做UI,C#写逻辑。个么又要去学一下.NET,又要学XML,又要学XXXXXXX...

然后,所谓“高级Windows程序员”,是不是至少要懂基本的软件开发流程、懂什么叫单元测试、懂瀑布模型、敏捷开发、CMMI……?

一年时间?别搞笑了。

Push Chen
--
A Web Developer, current project WOScript.
MSN: drunka...@msn.com
Mail: push...@gmail.com
Web: http://pushchen.com
Twitter: http://twitter.com/littlepush
Mobile: (86)13524446040


2010/4/30 朱晋玄 <zhuji...@gmail.com>
其实我觉得LZ的每天八小时即使在已经相当于是一个计算机系一个学年还多了......
并且同问什么是高级windows程序员

Kula

unread,
Apr 30, 2010, 5:54:42 AM4/30/10
to pon...@googlegroups.com
这个不是零起点吧。起码他英文要会吧。不然怎么看资料

2010/4/30 Push Chen <littl...@gmail.com>

sail tsao

unread,
Apr 30, 2010, 6:33:34 AM4/30/10
to pon...@googlegroups.com
吖,对了,Windows的开发由于2010出来,
更多的会转向WPF来做UI,C#写逻辑。个么又要去学一下.NET,又要学XML,又要学XXXXXXX...

哎,visual studio 2010出来也不一定就能推广wpf,wpf现在还没啥杀手级的应用,vs2010也只是用wpf开发了代码编辑框而已,如果完全用wpf开发出vs2010,我相信wpf一定能一下子火起来,因为vs2010的编辑框确实会让用户眼前一亮,界面上的美化提升了不少。我倒是期待微软能在silverlight上下点力气在webgame领域抢flash一杯羹,这样我就可以去做webgame客户端了!

额,再弱弱的问下,楼主文章写的如此精辟,敢问楼主成为“高级windows程序员"花了多久时间?

Jeffrey Zhao

unread,
Apr 30, 2010, 10:31:02 AM4/30/10
to pon...@googlegroups.com
VS 2010只用WPF开发了代码编辑器?我为什么听到的官方非官方的消息都是说重写了呢?可有资料可以参考一下?

Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn

qiaojie

unread,
Apr 30, 2010, 10:35:44 AM4/30/10
to pon...@googlegroups.com
vs2010的UI是全部用WPF实现的,花哨是花哨了,但是比较糟糕的是我所喜欢的Fixedsys字体没了
 


 
2010/4/30 Jeffrey Zhao <je...@live.com>
<