荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Version (Who makes history and why), 信区: Program
标  题: 如何成为一名优秀的程序员?  (四)
发信站: 荔园晨风BBS站 (Thu Apr 10 22:11:32 2003), 站内信件

如何成为一名优秀的程序员?  (四)

偶从初中的时候就开始学编程(数据结构和C),高中的时候帮大四的朋友 做计算机

专业的毕业设计... 后来高考,也许是舆论影响,也许是家庭压力,也许是受同学感
染,
还是奋力于这个天知道有没有意义的考试, 并且成功录取了一所名牌大学的计算
机系. 可是现在呢? 偶几乎读不下去,每天上的课,那些和计算机八杆子也打不着的

数学分析, 物理什么的不算,还要上一大堆代表80年代的技术的所谓"专业课",
每门课的教学还不约而同的脱离实践... 学这些东西简直就像做噩梦一样,偶还真
怀
念从前能够有许多时间去自学 该学想学的东西的时候. 偶不止一次想退学了,真是

搞不懂当初为什么会要想去念大学呢? 可是如果不念大学的话,将来可能会连去应

聘的机会都没有. 重视实践的公司确实存在不少,可是我也看到过更多更多只知道

看一纸文凭的. 那些公司里面的员工啊,学历高的吓人,真正有本事的却没有几个,
 偶
自己接触下来的感想,那些人放着就像公司里的摆设.
等到有某某某来参观了,彼老总又是得意洋洋的说道:
"我们公司里有xx个博士,xx个硕士...." 这个问题的症结恐怕并不那么浅,反映在
教学
上还只是一个现象, 本质上有着那么广泛的社会基础. 我国的所谓"人才培养机制

",改称为"人才摧残机制"或许更合适点.
看了大家的全排列算法,想指出一点,算法的主要目的是减少 程序执行时间,首

先要考虑的是减少循环次数,象用筛法从 n*n个递增数组里去掉有相同值的方法
是不可取的,然后就是 控制循环的嵌套层数,尽可能的将多重循环变为更少层数

的循 环,然后就是函数调用,要知道当一个算法执行的次数越多, 由于函数调
用带来的附加机器指令就不可忽视,阿蓉的程序就 有这个问题,由于采用了外部

函数的调用,每次入栈出栈就增 加了不少的附加指令,所以在写这样的程序时要

尽量减少函数 调用,最好所有的循环操作在一个函数里完成。这也是答7b序结 构

化与执行效率的矛盾,我以前为了赶工写的很多程序,结果 在后期整理时为了增

强程序的可读性,将很多为了不想调用来 调用去而全部写在一个主函数的功能代

码做成函数形式移出 main(),结果发现□
'7b序的执行效率大大降低。这是很好笑的 一件事。 另外就是算法对内存的要求

这个我倒是一般不注意,我用的 机器上一般都有2G以上的内存,但是在PC平台
上,这也是应该 注意的。
我一般是注重程序的结构化,但必要时考虑运行速度。编 了太多的程序,经常一

年后别人又提出新要求,所以程序的可 读性对我来说相当重要。我认为七八分钟

和十来分钟运行一个 程序,速度是差不多的,但需要七八个小时,那就需要改动

一 下了。有人甚至需要七八天,那我是非改不可了──即使这不 该我管。提起
内存,惭愧!我刚上班时,用8086,求118*118 矩阵的逆,我用FORTRAN(那是还
没学C)只能将将开了个这么大 的长整型数组用来存数(把l[i][j]=(long)(double

x*N), N足够大),计算是再转换为double,连后面的单位矩阵都不敢 开,幸亏

学过sweep变换求逆。现在好了。

我是一个非计算机专业的但又十分向往成为一名程序员的已经工作三年的人,
为了实现这个梦想,我最近炒了单位鱿鱼,干自己爱干的事,但现实是残酷的,
仅仅“计算机专业本科毕业,两年以上经验”的条件就足足把我打倒了十八层
地狱,不能干自己想干的事,这可能是世界上最大的痛苦,我该咋么办了,继续

去干那不喜欢干的是吗?没有爱情的婚姻能幸福吗?

找找吧,我刚找工作时也是看见这样的告示,不过有的单位还是不错,只看中
人的素质,不是很看重学历,我也不是计算机专业的,学的是大杂烩,不过实
践中学了很多东西,现在有时候感到不足,但是也将就了,朽木不可雕了。
只好看看将来有儿子是不是能够当比尔。

同志。我现在还在后悔算法与编译原理没有学好,要不然...... 您还能在国内见

我? 朋友很 COOL 吗!
我绝对赞成你,什么文凭,什么博士,什么硕士, 全部靠边站。什么中国的
人才。全是废屁!中国人就爱那些假东西,就爱走形式,在哪都是一样。
没治了!最重要的是实力,有派场没实力有个屁用。 不好意思,语气重了一点,

但是我实在讨厌中国人这种爱形式的风气,版主 就请你将这封帖子保留一天吧。

一天后你们要没删,我自己把他删掉,谢谢了!
朋友记住我的话,该学的还是要学。人在江湖生不由己,至少混个及格吧。
但是我要告诉你计算机软件开发,这几门一定要精。你如果不精,你就别想在
计算机界出人头地:编译原理、数据结构、网络原理、数据库原理。至于其他
的就看你的发展方向。我为什么强调编译原理呢,因为编译原理的算法很
COOL! 学通编译原理中的算法保证你技术大不一样。数据库和网络是计算机最
重要的 分支也是最大的肥肉。你要丢了这两块肉,吃了再多也没用。数据结构自

然是 基础之基础。至于操作系统我就不敢说了,难道让我鼓励你去干微软,至少

目 前还不现实。要真想干败微软必须要从其他方面入手,那有往人家最硬的地方

撞 的!好了就这么多,痛快,爽! 顺便问一下你最擅长什么?说不定我们可以
在继续交流! 对了,高手能不能帮我解决一个实际问题。就是前几篇那个我发的
帖子,谢谢了! 大学里的基础课程很重要的说.个人观点. 当然会
VC,PB,ORACAL,SQL...一大堆东东很帅,可是 基础不好的话,是很难搞深的. 而有好

础,学上面的东东不会太难的,概念清楚了,什么 都会容易些的. 了解操作系统对写

较底层的program有很大帮助的啦.

 大家能不能也给我点“过来人”的经验之谈呢? 先说说我自己: 在读初一时,

学校开了BASIC,其他同学把新发的电脑书翻一翻就丢在了旁边,

只有我反反复复连着看了三遍,也许从那时起我的人生就改变了。 高一时,父母

给我买了电脑,我开始真正钻研电脑,从TSR到病毒,从DOS到 Windows,从
BASIC到C,我感兴趣的很多,梦想要当一个编程大师。 在重点中学理科班读书
竞争激烈,成绩不进则退,在不知不觉中,我从名列 前茅又回到了默默无闻,可

我却不顾这些,当其他同学高考前在拼搏时,我 却常常抱着一本电脑书进入梦乡

我得到了很多,但也许失去的更多。 现在的我,在一所很一般的大学读生物工程

专业三年级,一些人梦寐以求 的地方对我来说却毫无意义。小时候很喜欢的生物

学,现在却已无法打动 我的心,在迷惘中读书,在迷惘中生活,在迷惘中我度过

了两年的光阴,每 当我拿起电脑书时,才又仿佛找回了自己。
想在学好生物学的同时,又学好电脑也许是不可能的,人的精力是有限的,
我不想把它分成两份,只因我想做得更好! 在巨大的痛苦中,我醒悟了,我又开

始拼搏了,可是,我还有机会吗? 我能放弃我的文凭吗?这会是我人生的第二大

错误吗?也许,没有大学文凭 我连工作也找不到,即使是与电脑无关的。可是,

就算我有生物系的文凭, 又有什么用呢?招聘程序员的人会要一个生物系的人
吗?而我却要为这张文凭 再白白花上两年的时间,代价太大了。如果这两年我用

来专心学习编程,也许 水平能提高很多。 我到底应该怎样选择呢?
希望各位能给我指条道路,让我能找准我的目标。

脑可以迟两年学,可是有一样东西你必须在大学里学的,就是学习新知识
的能力。 或许另外一个角度想想,不能同时学好,但是如果只是为了文凭,学得

合格 也就是了,多花点课外时间在电脑上也行吧?
在国内转专业是几乎不可能的,所以不管是什么专业的学位 先拿下来再说。至于

以后的发展,有很多选择,如果两个专业 都不想放弃的话,现在生物学也有很多

跟计算机结合的方向 我有朋友在美国学的就是生物信息处理,平时搞的差不多全

 是计算机。如果一心想搞电脑,也有很多外专业在IT业成功的
例子,我知道有一个学环境的,转行进了计算机公司,自己 考了高程
,cne,mcse...一堆证书,最近又拿下了CCIE,据说 全国只有30多个CCIE,已经有

公司愿意出50万年薪挖他了。 作乐的文章大家都看过了,现在面对的就是这样一

个问题,没有文凭就不能当程序员了吗我觉得这个问题应该这样看,文凭只能说
明过 去,只能说1、考大学的时候学得好,2、考大学的时候运气好(我就
属于这样的人)。但是考上了大学,当了程序员是不是就可以说水平 高了,答案
是"否",以我身边的经历来说,我开掉了两个硕士,就是 因为动手能力太差,整

天空讲一堆名词,实际编程水平不怎么地,而 最近手下来了一个新手,自学的文

凭,但是在他的身上我看到了程序 员的素质,就是多动手,多实践,勤看书,善

于自学,现在他干的很 好,被派往前线独自开发一套东西去了。 这说明什么,
我看只能说中国目前的教育还存在很大的问题,不是说 大学里出来的个个都能成

才,有的在学校里还不错,但是出来挣扎几 下就被打到浪下去了,动手能力低下

是中国大学生的普遍缺点,所以 作乐你不要太难过,路是自己走出来的,我上学

时总想要是能够有一个 工作就好了,每个月有1000元就不错,但是毕业几年后发

现,这样的 目标太容易实现了,现在挣多少钱来说都不是主要的,还是想如何体

 现自我价值,做到No.1 不要灰心,前途是在自己手中,种下什么样的种子,就会

收获什么样 的果实,这就是我想说的 天空下着雨,我从背后望着你,就这样走
出,我的生命 随风随浪飘荡随着一生里的浪
歌声、心声。 于1993年离开学校的我,当时正读初一级(第一学期),却
也敢喊“程序人生”,从前写些小程序,后来有人提拔,终 于“成才”,如今在

某互联网公司搞程序开发。 没文凭确实可以当一句程序员,至少我已经是程序员

但会 少了很多基础学校里学不到的东西,一些很系统化的学习。 在逻辑思维上
面,有时可能要转多几圈。 无论如何,我一直都希望新人将书好好读好,对于自

己,只 能说,过来人,后悔。

既然只有半年了,就先把文凭拿了 再说,有没有用先不管。学校差是遗憾,但也

没关系,记得c版以前有人说过,真 正的程序员很少有直接从学校里学来的,大
都是自己辛勤钻研出来的。自己肯钻 研,别说当个程序员,干任何事都行呀。
具体的主意还得你来拿,你会找到答案的。我相信你是个挺能干的人,哪怕 你去

装机开书店,也会比别人干得好。
每个心中有远大抱负的人都会像你一样遇到这样进退维谷的彷徨阶段.很多东西重

 要不重要关键看他是不是能促成你的理想实现.一句话,一切为了理想.
文凭比较重要.重要在哪,要想明白.文凭和能力不能划等号的.但学历不一样,你接

触的社会阶层就不一样,没文化的人扫马路,技校生卖力气,职高生吃青春饭.本科

生研究生搞科研.都是因为学历不同而导致所处社会阶层不同.
当然,有能力的话,可以从底层跳到高层,但你现在明明就在大专这个层次上,为什

么要自己降低自己的层次,给自己实现理想制造障碍呢?踏踏实实沿着你的路坚定

的走下去吧,文凭只是你在社会中的一张名片,不要太在意它,也不要成心放弃它.

用它做你的敲门砖,敲开社会的大门后,尽情的展现你的才华吧

如果你想帮助我,就请别忘记顺便回复一封邮件给我,在这里先谢谢你的支持.
你的情况与我当年上学时差不多,我当时除了上课、自习以外,所有的 时间都用

在学计算机上了。为了学计算机,我想尽了一切办法。我的家 里也不富裕,我上

机、买书的钱全是从饭里省下来的。我1.80的个子, 一天只吃不到3元钱。上了三

年(我也是专科),最大的收获是学了计算 机,代价是我的眼睛与身体。我不能

向家里要钱,又不能放弃计算机, 不得已才只好出此办法。最后,我凭自己的实

力,找到了现在这份工作, 虽然并不理想。天道酬勤,只要你努力,总会有收获

的。不要怨天尤人, 努力吧,朋友!会有出头之日的!
个问题很难回答。不管怎么说,

最近,我有一个感觉,其实一个人多学几门程序语言比较好些. 我有一个朋友一直想

找一个多元回归的函数,但他只懂C语言, 我给了他一个FORTRAN源答7b序,他竟看
不懂,只好临时来学FORTRAN. 哈哈. 如果一个人,尤其是编程爱好者,多掌握几门编

程语言, 至少可以很方便地学到许多编程技巧.难道你没看到,网上关于VB的文章最

多, 如果你看得懂,你也可以译成C++来完成它,我在BCB里实现结系统菜单的操作就

是 参考了VB的一个源程序.很多人在VB里使用大量的API函数,其实我用BCB也想这

样  照抄,当然,也有不灵的时候. 如果你对科学计算方面的问题比较有兴趣,建议

一定要懂FORTRAN, 如果你对数据库感兴趣,你若懂FOXPRO肯定有帮助,当然
,FOXBASE也够了. 总之,如果你爱好编程,不妨多学几门语言,这有帮助的.
以上个人观点,如有不同意见的,愿意讨论.
: .......
比较赞同你的观点,这个问题就象以前的练武之人,只懂一门拳法 是不行的,高

手都喜欢与各门各派的武功切磋,从而发现自己招数 中的不足,达到取长补短的

效果。不过首先还是应该精通一门语言, 哪怕是比较简单的语言,就象小说里描

写的,武功发挥到了极至, 什么招数都有化腐朽为神奇的作用,罗汉拳这样的入

门武□c也能 击败凶恶的敌人(ps:说不定哪天有人用basic编个操作系统),在 编
程语
言上很多东西都是触类旁通的,主要还是一些基本概念搞清楚 ,fortran是一种非

好的计算语言,在计算方面比C强,但是格式 检查太严格,这也许是一种制约。
另外我觉得pascal是一种非常优秀 的语言,语法严谨,现在很多可视化开发工具

的script语法都与之 相近,大家在感兴趣的时候应该多学一点别的知识,不要只

泥于 一个小的范围。

最近看了讨论区的一些问题,发现很多属于概念问题,有的 概念对于每种编程语

言都是基本的,有的对于不同的语言有 不同的解释。我觉得要学习C这种中级语
言,特别是有指针 这种可以直接操纵内存的数据结构,一定要学习一些数据结
构,操作系统基础知识,系统结构,汇编知识,如果对计算 机原理比较熟悉的话

学习起来就会事半□
谁有比较好的流程调试工具,主要用于程序结构循环调 试,我现在比较缺这种工

具,清b在我的程序主要运行在Unix 下,每次都要去读数据库,而且时间比较长,

简直不能承受。
呵呵,不会吧,最近我的手下来了一个程序员,也是自学毕业, 但是很好用,我

很多问题都要向他请教,他上手也很快, 我现在的工作轻松多了,别急,天生我

才必有用。 可以去考个程序员的本本拿着,这样心里会踏实一些。
--------------------------------------------------
学历事情小,经验事情大,
在广州虽然很多招聘程序员的广告要求本科以上,但更紧的是经验,一般是要 两

到三年经验!去年刚来广州找工作的时候,深感经验比命都重要 我们公司的程序

员大都不是计算机专业,有一位只是大专毕业,专业是统计 ,接触VC也是去年
7月份到公司后的事。但他在公司的现在职位是项目负责主管,每天不到凌晨1:
00是不会睡的,他和其它几位同事一到星期六日,就去天河购书 中心或其它书店

买书,MCSD也已过了一门VC了 从他的身上我看到了:不断的学习对程序员来说,

才是最基本的 如果能有时间,我一定会再去上一次学,因为老师当年讲的 很多
东西我都认真去听,如果能有时间,我一定会将以前的 课本翻出来重新看一下,

因为有很多基础的东西现在也记不 清了,如果能有时间,我一定会将以前写的程

序重写一遍, 因为里面有太多的垃圾,如果能有时间,我一定会将买的每 一本
书认真的再看一遍,因为每本书中,都有我没看过的地 方,如果能有时间,我一

定记下以前学到的每一点点东西, 因为我的记忆力正在下降。 可是我没有时间,

每天太多的事要做,每天要给老板写报告, 每天要和客户沟通,每天要维护一堆

破烂,我想脱离这堆枷 锁,重归简洁的C的世界,宁可每月只有数百元的生活费。

 什么时候程序员能够写自己想写的程序,做自己想做的事情, 没有烦恼,回到
破烂,我想脱离这堆枷 锁,重归简洁的C的世界,宁可每月只有数百元的生活费。

 什么时候程序员能够写自己想写的程序,做自己想做的事情, 没有烦恼,回到
那美好的old good time.
C是我们的工具,对于它的一切我是不会有什么保留的, 如果大家有什么问题,
我能够帮助的,我一定会告诉你, 如果我有什么问题,也希望能够得到大家的帮

助,对于 每个人是有国界的,但是对于技术,我们应该是没有国 界的,在这里
的每一位朋友,都是我的好朋友,我来这 里的时间很短,但是的确感到了大家的

热心,谢谢你们。 希望以后在C语言板出现更多的高手。
: 最近学习VC发现进展很慢,总是在原地打转,今天晚上仔细地
: 看了看SDK与MFC的例程,发现自己的问题在于总是用ANSI C的概念
: 地去考虑C++的问题,以结构化编程的思想去想象面向对象的设计方
: 法,其实还是自己在观念上没有这种转变,可能对于VC的初学者,要




--
                      *
          *                                  *
                          *             *
                      no more to say
                  ★     just wish you   ★
                            good luck

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.50]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店