本科生的编程水平到底有多高

时间:2022-03-15 02:28:24

 原文地址:http://liji-amethyst.blog.hexun.com/235944_d.html

 

在学校学了三四年,语言学了好几种,但学会的都是一些最简单不过的东西,整天就是字符串的排序删除,要不就是DOS下编程,对着个黑窗口。各位高手给指个方向,到底应该怎么学编程,是不是全国的高校毕业生都这样?这种水平离编出一些有实用价值的程序还有多远?

------------摘自编程专区 ID:en007 于2004-12-18 22:43:34发布的帖子.

_________________________________________________________________

 

写一个QQ2000(2000以后的界面处理看起来比较费劲)其实真的不是很难,只不过是你没有学一些相关的东西罢了。用VB的话只需要拖几个winsock控件,再找一个叫做ctListView的OCX(用来显示好友列表),再加上一些从MSDN可以直接抄来用的函数,再挂上一个数据库基本就够了,我曾经试写过一个(大半成品,cc)。

如果你的志向就是写一个看起来像QQ,用起来也像QQ的东西,那么对VB掌握得多一点就完全可以了。如果想写一个运行得好一点,资源占用少一点的QQ,那么就要用C++写了(我对JAVA没什么了解,见谅)。一用上C++麻烦就来了,至少可以随便地使用STL吧;至少可以随便地使用常用的Win32API吧;至少要对设计模式有些许了解吧;至少写出来的东西不能被各种BUG淹没吧。当学会这些东西之后再去写QQ,你会发现写起来更困难了,但你写出来的东西绝对要好很多。

要做到最后这一点其实是最难的。这需要你对C/C++有一个比较深入的理解,至少要知道在什么地方容易出BUG。写字符串相关的程序不设缓冲区,写指针相关的程序不delete回去,在类的方法中返回内部指针,混乱地进行类继承,这是最大的几个危险所在。你在写所有程序的时候都注意到了么?

----------------摘自编程专区版主 ID:NuclearG 于2004-12-19 18:31:47的回复

___________________________________________________________

高手.......试想如果真的通过某一条路就可以达到高手的话,那么《编程高手速成》这样的书应该比探讨C++的书还要多。

这里基本没有人敢称自己为高手,真的。所以,没有人可以告诉你这条路应该怎么走。但是基本上有几点是一定的,那就是多看好书,多编长~~~~~点的程序。好书多看几本后的好处自不必说,当你可以将一个上200K的程序源码运行成功并以你平生之所学找不出任何BUG的时候,你就会对这种语言有一些深入的了解了。多编几个,你就会多几分了解。

到那时,你就不会天天想着成为一个高手了。因为到那时候,你就会发现自己不会的越来越多了,根本没精力、没办法成为一个所谓的“高手”了。你所学到的越来越多的时候,你就会发现自己不会的也越来越多,该学的也是越来越多了。成为高手的理想会渐渐淹没在想看更多书、想学更多东西的更“现实”的愿望里的。

-------------------摘自编程专区版主: ID:NuclearG 于2004-12-20 17:07:15的回复

_____________________________________________________________

本来在论坛上只是看看,很少回帖,今天看到斑竹说的这些话和大家的讨论突然很想说两句。首先肯定一下斑竹说的话,斑竹真的是把这些事情想明白,事实上就是这样,我不认识编程天才,也不知道天才学起来是什么样的,这个世界上真的有没有学几天就会的天才?我认识的大家认为的高手,都是辛辛苦苦写了好多年的程序,看了无数的书的,而且几乎都是自学的。其实所有学编程的人一开始都会去想楼主提出的问题,但是你如果真的喜欢它(编程)你肯定会去想怎么办,而你肯定会在自己的进步中慢慢明白的。   (先发了,再写一条~~~)

-------------摘自编程专区  ID:小猪飞上天 于2004-12-20 18:16:25的回复

发帖IP:219.216.74.2

_____________________________________________________________

再对楼主提出的问题讨论一下:我们本科所开的科目基本上都是计算机的基础课程,老师面对是大部分的普通学生,课本的东西其实已经很多了,而且很重要,有些东西真的需要慢慢学慢慢领会 像数据结构和编译原理,对计算机科学来说,真的很重要,虽然一般老师都讲不好,但肯定要自己仔细地学的。基础知识和实际的工程是不一样,不是说会做东西就是高手了,不是那样的,东西肯定要会做,但不要急,把基础打地很好了,到时候做起东西会得心应手的。主要是时间,不是说本科就不要做东西,光学理论,还是时间问题,如果你用较短的时间把基础打得差不多了,也可以学一些工程性的东西,照着例子做一些东西,学学vb vc++,但如果你想只是做一个程序工匠的话,根本没必要读本科了~~

就像windows程序设计开篇说的~~勿在浮沙筑高台~~,我觉得很有道理

------------------摘自编程专区 ID:小猪飞上天 于2004-12-20 18:33:25的回复

______________________________________________________________

web程序的代码行数含金量不如c高的……
比如delphi轻松拖拖,敲几行,几百航的代码救出来了 所以光看代码量不重要,但是c写的却是工作量大些
我们c当时的大作业也是要图形界面的学生成绩管理系统,根本没告诉图形的函数库,全靠自己查

另外看了各位爱好者的言论,还是再次感觉,中国的软件业,离服务越来越近,离底层技术越来越远……


---------------摘自编程专区 ID:blueoxygen(大连理工大学)  于2004-12-27

18:37:58的回复.发帖IP:222.26.209.160

____________________________________________________________

也不能说就是弯路啊

自学学到的东西肯定会杂而不精,但既然会闲着没事自学编程,必然说明他对编程极为热爱。这时学得杂一点反倒有利于从众编程语言中选出一个最爱来之后再专攻,如果有了很多语言的基础和一个语言的专长,他就会更快更深刻地领悟到编程之道。只是这样的话基础必会不牢,但只要肯花时间来多研究书本就肯定会有所成就。

因为他爱好编程,与那些被逼着编程的人学习的目的是不一样的,取得的成就也必然会是不一样的。如果你就是那个爱好编程的人,那么,祝福你!

---------------摘自编程专区版主  ID:NuclearG 于2004-12-29 22:27:38的回复

__________________________________________________________

精华醒目:

大家似乎都对本科生应有的编程水平比较感兴趣阿,我也讨论一下下。

也许是参与竞赛的关系,我接触到了各校的计算机顶尖的人才,深知自己的浅薄,也深知自己有很长的路要走。

一个本科生的水平到底应该有多高?这应该是一个仁者见仁的问题。对于一个一直都在及格线上挣扎的人来说,他的水平只要到能看懂别人试卷上的答案就可以了。对于一个成绩优异的学生来说,他的水平只要到能够完整的背下来书上的几个必考Class以及其中的运算符重载就可以了。但是对于一个真正热爱编程的人来说,大学四年过的如此肤浅似乎真的对不起自己的良心。

据我所知,中国软件开发方面最顶尖的本科生之一是浙江大学的吴嘉之,TopCoder.com上开发组曾经拿过第一,也一直是世界前20名的人。也许有人说:他也没作出什么像样的东西啊。不知道大家看没看过《精武英雄》。里面有一段经典对白:

船越文夫:现在在日本比我功夫高的还有很多。
山田光子:船越先生不是第一高手吗?
陈  真:那是说船越先生的修为第一。

道理就在这里。其实作为一个正在修炼中的程序员来说,根本没有必要去做这个做那个,以显示自己的水平。因为无论是对算法和数据结构的理解层次上,还是代码的准确性和风格上,都没有达到一个很高的标准。所以本科期间我的意见还是打好基础,脚踏实地。不是说你能作出一个QQ来你就是高手,别人就不是。

我觉得衡量一个程序员就是要看他的个人修为和团队开发能力。个人修为包括代码的风格和准确性,对计算理论、算法、DS等基础知识的深入理解,对各种系统结构的熟悉,还要有很强的学习能力。而团队开发能力就是说要有和别人共同开发的协作性。另外,如果到达了一定的境界,就可以独立设计,再交由自己的开发团队来实现。

计算机方向太多,没法有一个统一衡量标准。其实这也只是计算机技术方向而已,对于计算机科学方向,则更多的要求数学方面的知识,高等数学、离散、数论、组合数学(计数与非计数)、……

计算机博大精深,大家还是先选好一个方向,然后一步一个脚印的走下去吧

------------摘自编程专区版主: nasi  于2005-1-6 15:25:19的回复.