由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Internet版 - 糟糕程序员和优秀程序员的区别?
相关主题
邮件永远不会被替代给经常修理电脑的朋友16点忠告zz
(转载)微软公司承认软件中加入了隐藏的密码怎么成为一个优秀的程序员,而不是一个优秀的码农?
Re: 关于Visual Studio.Net问题怎样才能相对公平的判断程序员的贡献大小
[转载] Ask again ... any software to make help file20行可完成的代码写出十数个文件.....
Windows 英文到中文没有ide,我觉得一个项目,两万多行就差不多了
优秀程序员请进 (转载)刘淇:建设学习型党组织要抓好三个关键
Google程序员的一天请问hr这个问题是什么意思
情侣双方都是程序员是一种怎样的体验?公司里都是这样的吗?
相关话题的讨论汇总
话题: 程序员话题: 代码话题: 优秀话题: 问题话题: 实现
进入Internet版参与讨论
1 (共1页)
x*******i
发帖数: 86
1
软件蚕食一切,未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好
程序员。在你做出决定前还是先看看自己能不能当好程序员吧。
要记住的是,编程不是什么精英才能干的事情。
这个行业永远都缺人。所以除非你一点都不喜欢编程,或者也没有准备好看在钱的份上
忍住这种不喜欢,否则都可以来编程。
如果纯以编码能力来看,可分为五类:
1. 拷贝型
拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事
情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运
行项目出现了期望结果,则表示任务完成。这类人只会改代码,却不会写代码。他们大
多对编程毫无兴趣,只是希望以此糊口而已。
2. 新手型
当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要
通过学习、寻找资料等方式来解决问题。这种情况下的编码过程,程序员的主要目标是
“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编
码规范等问题,因此代码bug可能较多,稳定性不高,常常会发生开发花费1个月,改
bug却要改上好几个月的事情。
3. 学习型
这类程序员对所在领域的语言已经比较了解,对于一般功能可以有较为清晰的实现思路
,给出需求时可以通过自己的思路来实现,并且会一定程度上考虑边界条件和性能问题
。但仅此而已,他们对可读性和可扩展性考虑很少,也没有项目级别的考虑,主要是希
望通过实现代码来练手或是学习。
4. 实现型
这类程序员一般有较为丰富的经验,由于写得太多,因此不再追求“创造代码”来进行
学习,同时对所在领域可能涉及的很多第三方框架或是工具都比较熟悉,当接受到产品
需求时,对功能实现方案已经了然于胸,因此他们可以快速的实现需求,并且对边界、
性能都有一定程度的考虑。
优秀程序员的几个表现:
1、先进行实验是他们的本能反应
编译器和运行环境通常能比人更快地解释一个问题。一个优秀的程序猿在拿着问题去向
别人寻求帮助之前,会自己试试看并判断方法是否有用,而不是直接找一个高级程序员
问“我这么做有用吗?”。
2、对待代码和设计不要情绪化
代码就像纸巾:它有用你就用,没用了就扔掉。几乎我们所有人都认为代码复用(
code-reuse )很重要,尽管确实如此,但是这也不意味着要像养孩子那样去对待代码
。代码没有感觉也不会在乎,它们会像法兰克斯坦( Frankenstein )怪物那样攻击你
。代码只是一堆字节,是一种责任( liability )。
3、对编程有激情
很多程序员干这一行只是为了挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员
的工作。而优秀的程序员热爱编程,喜欢钻研代码中的问题,他们感到能指挥电脑来帮
助人们和自己解决现实生活中的问题是一种神奇的能力。当遇到问题无法解决时,他们
会茶不思、饭不想,无法入睡。
4、君子善假于物
优秀的程序员知道如何能更高效的完成任务,如何更能有效的解决问题。当遇到问题时
,不钻牛角尖,善于利用外部工具解决自己的问题,特别是能熟练应用搜索引擎。初级
的程序员只会使用百度和百度知道搜索问题,而高级的程序员/优秀程序员使用谷歌和
Stack Overflow或者MSDN forums这类网站寻找更优秀的答案。
5、不断学习
我们生活在一个有趣的时代。随着软件开发逐渐遍布全球各地,你会发现有很多人都可
以干你的工作。所以你需要不断学习以保持竞争力。否则,你就会落伍,停滞不前,直
到有一天,这份工作不再需要你,或外包给一些更廉价的劳动力。
那么我们能做些什么?有些雇主很慷慨,会提供培训以拓宽你的技能。也有的人会说我
没时间或者没这个资金去接受任何培训。所以,关键是要摆正心态,学习是对自己的负
责。
6、不要害怕破坏东西
每个具备行业经验的程序员肯定参与过代码库岌岌可危的项目。系统很糟糕,并且改变
这边总是会破坏另一边不相关的功能。每次添加模块,程序员只能想着尽可能少地改变
代码,每次发布都胆战心惊。这座软件的摩天大楼随时有坍塌的可能。之所以改动代码
会如此伤脑筋是因为系统太糟糕了。但是即使你知道系统出了问题,却又因为投鼠忌器
,而不得不听之任之。
要成为优秀的程序员(geek),都是自己一步一步努力的结果,从不吹嘘自己多么多么
能干,多么多么 NB,他们很低调,甚至有时候有点闷。请谨记:
素质高:他们都有较高的的思想道德素质,说话谈吐都很舒服,不带脏话,虽然有点屌
丝;
逻辑思维:理工科的男生思维都比较活跃,清晰;写代码之前都理清实现的原理再下笔
;话说我们这还有个清华的女程序员,做事超级认真,职业素养非常高,程序都是一次
性通过很佩服;
注重细节:代码缩进,变量命名,标点符号都需要做到规范,便于后期维护以及改版等
等;
注重安全开发:程序员开发的代码不出现 bug 肯定是不可能的,除了修复 bug,一定
要注意安全技术;
效率:不做无用功,碰到不能解决的问题,自己解决,不能解决就主动问,汲取教训,
收获经验;
耐心:需求改变或者程序错误都需要静下心来不停的调试错误以及修改;就算有时候做
自己不喜欢的事情,你也要坚持,也许会的达到意想不到的收获
另外还有一点可以通过自身的学习来获取一大进步。
1 (共1页)
进入Internet版参与讨论
相关主题
公司里都是这样的吗?Windows 英文到中文
请给老程序员给推荐一本C#的书优秀程序员请进 (转载)
说说python (转载)Google程序员的一天
求类似国内程序员的杂志推荐情侣双方都是程序员是一种怎样的体验?
邮件永远不会被替代给经常修理电脑的朋友16点忠告zz
(转载)微软公司承认软件中加入了隐藏的密码怎么成为一个优秀的程序员,而不是一个优秀的码农?
Re: 关于Visual Studio.Net问题怎样才能相对公平的判断程序员的贡献大小
[转载] Ask again ... any software to make help file20行可完成的代码写出十数个文件.....
相关话题的讨论汇总
话题: 程序员话题: 代码话题: 优秀话题: 问题话题: 实现