明次 发表于 2009-10-4 14:29

编程高手是怎样练成的

我不是高手,是个初学者。在论坛中发现很多人和我一样,编程这条路不知道该如何走。
    近日偶得一书,对我启发很大,解答了我近日来一直思考和迷惑的问题。现将书中介绍的高手成长的六个阶段写下来,与和我同样迷茫但又同样对编程有爱好和兴趣的朋友们共享之。

    第一阶段:熟练地使用某种语言。相当于练武中的套路和架式这些表面的东西。
      (作者推荐学习C语言。我学的是C++。其实C++的思想是面向对象,C面向的是更底层的东西。要想成为真正的高手,懂得C语言和BASIC语言是必不可少的。作者强烈反对一开始就从JAVA,MFC开始,这些高级的东东对底层的东西进行了多次包装,你永远不可能清楚底层的东西,你也永远成不了高手。我对此有同感:最开始学的是JAVA,三个月就编出来一个信息查询系统,后面又开始学MFC,半年后还不清楚是怎么回是。经高人指点,才开始走上C++学习之路)

    第二阶段:精通某种平台的接口(如Win 32的API函数)以及所对应语言的自身的库函数。相当于可以进行真实散打对练了。
      (我认为这个阶段学习windows界面编程是比较好的,既能熟悉API函数,又能加深对语言自身的库函数的理解,同时还有一定的成就感。推荐一本入门书,《windows程序设计》。)

    第三阶段:深入地了解某个平台系统的底层。相当于开始由修炼硬功转变成修炼初级内功了,也就是“手中有剑,心中无剑”。
      (我也还没有到达这个阶段,我的感觉就是对CPU、计算机硬件、操作系统原理、软件调试技术等方面的内容的学习。)

    第四阶段:能直接在平台上进行比较深层次的开发,比如能进行VxD或操作系统内核的修改,语言已经不再束缚你了。相当于进行了高级内功的修炼。
      (这个阶段就要对内核加以深入研究了,掌握进程、线程、内核等方面的知识。推荐一本进阶的书,《windows核心编程》)

    第五阶段:能够从全局上把握和设计一个比较大的系统体统结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。
      (我认为这时应该学习软件架构和设计模式了。)

    第六阶段:这是最高境界,任何问题都纯粹变成了一个思路的问题。也就是“手中无剑,心中也无剑”。
      (这时还有什么说的呢?耐心 + 兴趣 + 开放性思维 + 天赋。)

llight 发表于 2009-10-4 15:16

哟西
相当滴不错啊,支持

惜双双 发表于 2009-10-4 15:40

本帖最后由 惜双双 于 2009-10-4 15:46 编辑

呵呵..指出一个不恰当的地方..但不是错误..

第四阶段..

既然能开发内核模块.比如VXD和SYS.等.这个时候绝对不应该是推荐看windows核心编程..

windows核心编程我看过...也是讲述基本的Win32编程原理.只不过是基于SDK的.比MFC或者其他的学起来有点

棘手...所以这本书我建议应该换成第三阶段.你想一下.基本的windows win32的运行机制都不懂的情况下.就先钻内核..这个..我觉得未必好处很大..

第四阶段才是 学习内核运作机制.....(内核不公开.学习资料匮乏..相对来说更加磨人和打击学习者的信心...)...

当然了.这两种想法都各有利弊.就拿我来说.先学win32原理.那个时候windows核心编程上说呀.互斥..内存区对象..还有什么内核对象啊.我都根本不知道是什么东西.怎么一回事.然.等我学了内核后才恍然大悟..

如果先学内核.你先知道了.这些.但是你不一定不知道这些东西有什么用..在平台下能做些什么...

OK..就扯这么多吧..这些东西都是概念性.争议性超大的..多说无益..只有自己才能走出一条符合自己的学习之路.

chenfu01 发表于 2009-10-4 17:42

恩 谢谢指教 跟着学学

salman 发表于 2009-10-4 19:17

很不错!感谢分享经验!

4135343 发表于 2009-10-4 22:32

= =我路过看看,我以前稍微学过,但放弃了= =

maomingao 发表于 2009-10-4 23:35

值得学习,。。。。。。。。。。。。。。。。。。。。。。。

shungxin 发表于 2009-10-12 23:46

路过看看,值得学习

一片叶子 发表于 2009-10-13 07:35

学习了,理论基础

a7600999 发表于 2009-10-16 00:24

貌似先要学习汇编啊。!!!!
页: [1] 2
查看完整版本: 编程高手是怎样练成的