设为首页 | 收藏本站
首页>求职心得>正文
一个程序员给初学编程人的建议
WWW.DBIT.CN 2006-8-7 9:54:18 热度:
 

本篇文章是作者多年来的一些感受,主要写给那些想学习程序设计而又很迷惘的朋友,希望可以带来一点帮助。
我第一次接触电脑是在小学二年级的时候。那时纯粹是因为喜欢打电子游戏,听别人说电脑上的游戏十分好玩,于是就漫漫开始与之接触了。在三年级时父母出于我对计算机浓厚的兴趣送我去了一个BASIC编程学习班,从那时起我才真正开始走上编程这条不归之路。虽然说现在程序设计这门专业在社会上很热,竞争十分激烈,但是这只是学习编程的人比较多而已。真正能够掌握以至于精通的人实际上很少,毕竟中国的软件业才刚刚起步不久。现在社会对优秀的程序设计人员的需求量还是相当大的,但是前提是必须要优秀。我自己虽然也谈不上优秀,但多少还是有些感触。在这里想讲述自己对于一般程序员和优秀程序员之间在技术上的一些认识(什么敬业精神生活态度我就不多说了):

    首先作为一个优秀的程序员,数学是十分重要的。数学是自然科学的基础,计算机科学实际上是数学的一个分支。数学主要能让人懂得一种分析问题的方法,然后再通过编程去实现它。计算机内部的许多原理也都牵涉到比较复杂的数学知识。它是我们用来解决现实问题的最高效的工具。很多学习编程的朋友对数学觉得不屑一顾,觉得对于编程没有什么关系。实际上优秀程序员和一般程序员拉开档次很大一个程度上就是取决于对数学的能力。一些项目有时需要很复杂的数学建模和利用数学对于系统效率进行分析,而这些项目对于一般的程序员是很困难的。正确应用数学知识有时候能使你的程序的效率产生质的飞跃。现在的程序员在数学上普遍是薄弱环节,这点是大家应该引起足够重视的。当别人对于这些项目感到无从下手,而你却能够完成,这个时候你的价值也就表现出来了。真正优秀的程序员是能够最基本的一点就是要能够通过自己的知识来解决一般程序员所无法完成的问题。而数学能力就是一个很重要的环节。

    其次就是要对数据结构引起足够的重视。如果说计算机专业的学生与非计算机专业的最根本的差别绝对是数据结构(数学大家都一样学了,主要看你自己学得好坏)。对数据结构的掌握与运用能力是衡量你编程能力的一个很重要的指标。有的人对于看了链表,栈,树,广义表这些东西就头痛。然而这些东西往往能使你的程序的效率比别人高出百倍。由于一直搞信息学竞赛,到了大学又搞ACM,所以我对数学和数据结构都掌握得相对较好。这使我在应聘与工作中明显感到胜人一酬。记得自己大学时去一家公司应聘的经历,当时去应凭的还有3个人,有2个大学毕业,有个也工作了一段时间了。他们几个都在大讲自己的能力如何之强,会使用的语言及编程工具如何之多,经验如何之丰富。按理说我应该是资质最浅的。当时也是初生牛X不怕虎,也就硬着头皮去了。当时面试的题目是一个公司的资金管理项目的一个问题,要求每个人都在思考后给出自己的设计方案。其中比较核心的一个问题就是要计算一个资金最小波动值的问题,给出的数据量相当大,对效率要求很高。对于整个程序的面向对象化的分析我们几个都是差不多的,毕竟这些东西在学校里是很重视的,而且不是真正的难点。然而到了最关键的问题时其余的人都卡壳了,有两个是用简单的双重循环,时间复杂度(N^2),惨不忍睹。还有一个在冥思苦想了好一阵以后说用树,具体技术细节又讲不清楚,效率分析也很马虎。只有我当时很快就给出了采取AVL树的方案,并且利用高等数学推导作出了很详细的效率分析和时空换算,并提出了引入汇编的方法。很自然的我得到了这分工作。在这里大家显然可以看到数学和数据结构对于一个优秀程序员是多么重要,它们是和一般的程序员打开档次的最关键的地方。这样向“枣子”碰到的那种情况应该很轻松的就可以想到。

本新闻共3页,当前在第1页  1  2  3  

 
上一篇:一位软件设计师对程序员的忠告
下一篇:中国学生为什么学不好计算机
打印】【关闭
  相关文章:
·程序员,建立你的商业意识(二)·程序员,建立你的商业意识(一)
·“浅薄”绝不该是中国程序员的性格·程序员四大忌你该如何避免呢?
·什么样的环境是程序员成长最快的环
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破