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

...偶从初中的时候就开始学编程(数据结构和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的世界,宁可每月只有数百元的生活费。什么时候程序员能够写自己想写的程序,做自己想做的事情, 没有烦恼,回到那美好的old good time.
C是我们的工具,对于它的一切我是不会有什么保留的, 如果大家有什么问题,我能够帮助的,我一定会告诉你, 如果我有什么问题,也希望能够得到大家的帮助,对于 每个人是有国界的,但是对于技术,我们应该是没有国 界的,在这里的每一位朋友,都是我的好朋友,我来这 里的时间很短,但是的确感到了大家的热心,谢谢你们。 希望以后在C语言板出现更多的高手。


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值