薛辉的C++博客

同各位学习交流的平台

 

2006年3月27日

高手成长的六个阶段(转载<<程序高手箴言>>)感觉写的确实不错!

高手成长的六个阶段

程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。

我认为,一个程序员的成长可分为如下六个阶段。

Ø          第一阶段

此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。

Ø          第二阶段

此阶段能精通基于某种平台的接口(例如我们现在常用的 Win 32 API 函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。

Ø          第三阶段

此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。

Ø          第四阶级

此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行 VxD 或操作系统的内核的修改。

这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会呢?这就是因为很多人的思想转变不过来

Ø          第五阶级

此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是 MS Word 这样的大型软件,只要有充足的时间,也一定会设计出来。

Ø          第六阶级

此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。

此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拿来就用。这就是真正的大师级的人物。这时, Win 32 Linux 在你眼里是没有什么差别的

每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。

要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。

现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。

但是,也还有一大堆处在第一阶段的程序员,他们一般就能玩玩 VB ,做程序时,去找一堆控件集成一个软件。

现在一种流行的说法是,中国软件人才现在是一个橄榄型的人才结构,有大量的中等水平的程序员,而初级和高级程序员比较少。而我认为,现在中国绝大多数都是初级的程序员,中级程序员很少,高级的就更少了。所以,现在的人才结构是“方塔”形,这是一种断层的不良结构。而真正成熟的软件人才结构应该是平滑的三角形结构。这样,初级、中级、高级程序员才能充分地各施所长。

posted @ 2006-03-27 15:33 薛辉 阅读(608) | 评论 (4)编辑 收藏

2006年3月23日

编程功力和学历无关

通过一段时间的学习感觉感觉对C++的了解不断加深了.但是还必须不断努力.感觉水平提高完全是编程练习出来的和学历无关.其实编程并不需要太高的学历.想想C#之父的安德尔森是学工学出生不是计算机科班出身有没有高学历照样练成了绝世高手.成了Delphi和C#之父.大家只要努力一定会成功的!要相信自己!不断鼓励自己向高目标挑战!

posted @ 2006-03-23 14:22 薛辉 阅读(677) | 评论 (6)编辑 收藏

2006年3月22日

初学者选择那种编译器学习C/C++语言比较好(我的一点想法)

很多朋友都曾经问过我初学者应该选择什么编译器学习C/C++语言.所以我把我的

一点想法发表在这里希望对大家有一定的帮助.这仅仅是我个人的一些建议,供大

家参考.


我个人觉得C/C++语言十分庞大就语法本身已经非常复杂了更何况应用领域甚广需

要学习了解的东西非常多.所以一定要首先把语言基础打好,把语言用熟.

基于上面的考虑我比较推荐DEV-C++ 4.0.(可以到我的个人主页上下载)

主要原因有:

1.软件很小压缩包只有7M,解压安装之后20多M占用硬盘空间很小,占用的资源也 

很小.

2.符合ANSI C++标准.该软件内核是著名的GCC编译系统质量高,稳定性好.
  编译效率相当高.比如完全相同的C++控制台程序在DEV-C++下编译只有
  70K左右.但是在VC下编译就达到了500-600K.当然VC编译结果这么大可能是
  从安全等多方面考虑后的结果.

3.查错能力很强.这里要强调的是DEV-C++ 4.0版本.能够比较精确的定位出错的
  位置和原因.不知道怎么搞的现在的DEV-C++ 5.0在这方面做的比较差?所以我
  现在还是在用4.0版本的.

4.使用简单.这是选用的一个重要原因.使用VC建立工程之后在那个文件夹下面有
  大量的编译中生成的目标文件,感觉比较杂乱.DEV-C++没有这么多文件,一个源程序
  对应一个可执行文件,简单清晰.便于整理

    我们在开始阶段主要是想学习C/C++语言本身,功能过于强大的开发工具往往提供了
很多暂时我们还不需要的功能,把时间精力都花在这些工具的学习上不利于我们迅速
掌握C/C++语言本身.但是必须强调的是VC是非常强大的工具,熟练使用它可以快速
开发出很多功能强大的软件,很值得我们学习了解!公司里一般要求熟悉VC开发.
如果对C++了解很深入基础十分扎实学习VC速度应该是很快的.因此我到现在还
没有开始学习VC.我已经用DEV-C++编写了1500多个程序,共9万多行,仍然感觉C++
十分庞大需要下功夫仔细学习.还有像数据结构,编译原理等等知识都是很好的练习内容.
后面准备把以前写的程序整理成CHM格式文件发到网上大家一起讨论.


仅仅是自己一点看法.大家可以根据自己的情况选择学习.

posted @ 2006-03-22 13:48 薛辉 阅读(2636) | 评论 (3)编辑 收藏

2006年3月21日

如果让我参加一个开发项目我会学的很快(初学者的一些错误观点)

很多初学者喜欢说如果让我参加一个实际的开发项目我就会学的很快.

我觉得这种观点很幼稚.如果你没有真本事有哪家公司会要你呢?即使你免费给别人作,别人也会担心你的工作效率低影响别人的进度.所以你必须自己先把本事练好有了能力才能进入公司然后才有机会进一步提升水平和积累工作经验.所以必须做到自强!




posted @ 2006-03-21 18:54 薛辉 阅读(461) | 评论 (6)编辑 收藏

2006年3月5日

李开复给计算机系大学生的建议

李开复给计算机系大学生的建议 

原作者:李开复

(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。不妨试试Donald Knuth的Art of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面的功力不错了。

(2)多实战。通过编程的实战积累经验、内化知识。建议大家争取在大学四年中积累编写十万行代码的经验。

(3)求实干。不要轻视任何的实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与职业精神。

(4)不放弃数学。数学是思维的体操,数学无处不在。尤其当你对一些“数学密集型”的领域有兴趣,例如视频、图像处理等等,你需要使它成为你的利器。

(5)培养团队精神,学会与人合作。

(6)激励创新意识,不为书本和权威意见所束缚。

(7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习,是你的目的。打工和找工作一样,“不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司,最后,要挑一个好老板。”



李开复的建议真是非常有道理!我也好好努力,坚持每天写C++程序!

posted @ 2006-03-05 14:40 薛辉 阅读(1345) | 评论 (12)编辑 收藏

仅列出标题  

导航

统计

常用链接

留言簿(8)

随笔档案

文章档案

相册

搜索

最新评论

阅读排行榜

评论排行榜