`
xiaolanglang123
  • 浏览: 24572 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类

如何让优秀的程序员更上一层楼

阅读更多

现在已经有很多的程序员伙伴们已经是非常优秀了,也挺努力学习的,那么你有没有更深入的研究怎么样再上一个台阶呢?
 
作为工作了好些年的程序员,是否你的思想已经出现升华?目标不再是停留在“优秀”层面,而是打算向更高级别的“伟大”而迈进?现在的你想要让写出的所有程序都遵循自己的理念;现在的你想要成为编程方面的大师——而不是那种碌碌无为,守着.Net接口苟活度日的书呆子;现在的你认为编程学是一门艺术而不再是科学,而你想要成为程序员中的毕加索,受人尊敬。
 
(本图为:如何让优秀的程序员更上一层楼之程序员正在迈向成功之道)
 
(本图为:如何让优秀的程序员更上一层楼之程序员正在迈向成功之道)
 
言归正传,现在最重要的是如何去实现这个变得“伟大”的目标。
 
作为资深的程序员,你应当认识到“伟大”区别于“优秀”的地方并不只限于技术方面。其中一个很重要的区别是“伟大”的程序员能够从客户的角度去分析需求,使设计更加人性化。而“优秀”的程序员只会完成既定的功能。当然,如果知道客户的需求,而无法提供有用的技术支持也无法被称为“伟大”。那么我们来看看迈向“伟大”应具备的一些特性吧。
 
定期清理重复代码
 
复制和粘贴的程序员不是真正的程序员。如果你发现自己编写的代码行不止一次的出现相同的(或类似的)情形,那么你就该考虑将这些代码片断进行清理整顿了。这种使代码变得更小,更加容易进行维护,出现程序错误概率更低的工作我们称之为代码重构,这是必做的日常工作的一部分。
 
保持代码简短实用的风格
 
在你掌握了清理和重构代码的技巧之后,下一步,你要学习保持代码简短实用的风格。想像一下,一篇长的离谱的主程序代码对于维护它的人来说会有多么的恐怖。那么在主程序前加入头文件,将繁琐的主程序进行分块打包,会让程序维护起来简单一目了然,且编译的时间完全相同,我们何乐而不为呢?
 
了解YAGNI原则和编程的艺术
 
YAGNI全称为You Ain’t Gonna Need It,即为“你不会需要它”之意。作为程序员,我们常希望自己设计的东西能够涵盖所有基本需求。可事实往往是这样的,最开始客户希望应用程序完成其中的a功能,在你完成后,他们又认为应该加上b和c功能。然后,我们又花上几天时间去完成b和c 功能,毕竟这是客户的需求。这样的需求变更一次又一次,最后会得到一个比计划大很多的代码库和应用程序,而你曾经编写的一半代码都没用。为了减小更改需求带来的影响,让你的解决方案保持灵活性、可定制性和可预见性是工作中的一个非常重要的部分。在这里,编程真的就成为了一门艺术了——没有硬性规定,完全自由的裁量度,灵活性全部由程序员自己决定——这和绘画一样,多一笔少一笔,是轻还是重全由艺术家来权衡。
 
学会尊重他人
 
代码审查是将代码提交给有经验的程序员来帮助检查源代码与编码标准的符合性以及代码质量的活动,很多人会以为这就是给代码挑刺的活动,事实上代码审查最重要的并不是去关注技术细节,而是去留意设计理念,设计方法和实现过程,并提出参考性的建议。如果你觉得应该把别人的每个BUG的细节都一一罗列出来,展示别人的代码有多么的糟糕,那就错了。这在无意之间传递了一条错误讯息:我是来找碴的,是来让你难堪的。别人会因此刻意回避与你讨论,而你也将失去一个学习的机会。在这里,你应当学会尊重他人,就算他比你差很多,你也应该抱着这样的心态:“我们是来互相学习的。”
 
灵活运用设计模式
 
阅读设计模式的经典书籍常会为你带来灵光突现的时刻——“哈,这就是我解决这个混乱编码问题的方法。”设计模式可以在软件工程的开发中给人们带来便利,但是,往往其结果却是使程序变得更加混乱。这是因为人们在掌握了设计模式这个“锤子”后,往往会把所有的问题都想像成是“钉子”,而不根据实际情况进行具体分析,这样常使结果适得其反。灵活理性的使用设计模式很重要。
 
对最新的框架和库了然于心
 
对于最新的框架和库,你可能不会使用它们,但是你得清楚它们能够干什么。这里我举一个自己的例子——在SignalR出现以前,我一直坚信到目前为止还没有方法能够轻易实现网络应用实时通告的功能,我用了许多的代码来完成这项功能,费时又费力。但事实上,pubnub这样的库已经能够轻松实现这样的功能了,只是我不知道而已。因此,如果你无法对所有的框架和库都了然于心的话,在编写程序的时候,难免会干出许多低效率且无意义的事。滴水穿石,聚沙成塔,你要记住,伟大源自不断的积累和坚持。
 
不要忘记为代码添加注释
 
这无疑是一个利己利人的好习惯,不要因为它的麻烦而拒绝它忽略它。试想一下,你要对半年以前自己写的程序进行维护,如果没有注释的话,单凭半年以前的零星记忆,要在成千上万条代码行里去寻找你想找的东西无疑是大海捞针。 另外,使用注释也是对设计理念,算法流程的最好保存,当别人问及你算法中“X功能是如何实现的”,你难道 要跑去翻半年前的算法设计图纸或者挨着把程序从头到尾看一遍?添加注释虽然费时但却能为以后的工作省时省力,磨刀不误砍柴工,说的就是这个道理。
 
重视单元测试
 
编写测试用例能够确保你的代码能够持续正常工作。通过对用例的单元检测,你可以及时的搞清楚程序的哪一块运行正常,而哪一块与设计的预期不符,并及时更正,而不是等到几天后应用程序出来,只发现有数据异常,却无法及时找出这些异常的所在。另外,你还应当学习TDD(驱动开发测试)。
 
了解控制反转(IOC)与依赖注入(DI)
 
控制反转是目前备受争议的一种技术,它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。而依赖注入是其中最流行的IOC类型,其中包含接口注入,设值注入和构造器注入三种方式。如果你仍不了解IOC是怎么一回事,你可以这么想像:把代码比做曾经的对象掌权者,它现在被剥夺了控制权,被排挤出了核心领导层。
 
学习多种编程语言的精髓
 
论坛上经常有程序员在争论编程语言的孰优孰差,这其实是没有意义的。在你了解了多种编程语言后, 你会惊奇的发现每种语言都有其可取之处。例如,python的简单易用和ruby on rails在 web应用程序开发的闪光点是硬币的一面。硬币的另外一面是严谨整洁,功能强大的javascript和C++。同样的,硬币两边的c#开发者和Java开发者眼里看对方都会不同。盲人摸象,只有尽可能广泛的去触摸编程语言这头大象,它的形象才会更加完整。
 
懂得与其它程序员友好相处
 
程序员是一个奇怪的物种,这里面不乏有疯子,狂人,呆瓜和奇葩,当然你也可能是其中之一。如何和这些人相处是一门挑战,在这里,我推荐卡内基的《如何影响朋友和他人》,这本书很经典。
 
其实技术这些东西也真是博大精深的,你一不留神它就更新新的技术出来了,所以不断的学习还是非常重要的。

文章来源于:http://www.alqsoft.com/xinwenzixun/qitaruanjiankaifazixun/2014/0725/147.html

分享到:
评论

相关推荐

    程序员1000套简历模板大全

    程序员1000套简历模板大全,有很多非常经典的简历模板,适合各种不一样的程序员岗,让面试官一看就很清新的感觉,大家可以挑一种适合自己的模板,面试更上一层楼

    程序员面试题精选100题(经典!)

    一份可以让大家在求职时更能自信的题解,经典的100题,让大家可以感受到算法的经典,当然,自己要更加努力,要懂得举一反三才能更上一层楼!

    RPG游戏实例.rar

    为了让C++程序员更上一层楼,我把这个基于RPG游戏实例的源代码送给大家,将中国游戏进行到底

    accp5.0Y2-51Job登陆界面--程序员必学的程序

    accp5.0Y2-51Job登陆界面--程序员必学的程序,非常有用,如果您学会了这里面的东西,那您就更上一层楼了

    24种设计模式介绍与6大设计原则

    我希望这本书的阅读者具备基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 ... 看完此书您绝对会在java的天地中更上一层楼的!

    c++程序设计课件-谭浩强

    谭浩强c++程序设计课件,愿所有中国程序员水平更上一层楼。

    c++程序设计课件-谭浩强-程序代码

    c++程序设计,谭浩强课件配套代码。愿所有中国程序员水平更上一层楼。

    如何成为一名专家级的软件开发者

    运用一门程序设计语言对大多数程序员来说是小菜一碟,但是更上一层楼成为一名专家级的软件开发者,恐怕目前还是大多数人的梦想。《程序员的思维修炼》一书中将程序员分为5个层级:新手、高级新手、胜任者、精通者、...

    传智播客PHP培训 韩忠康 PHP视频教程 Mysql PPT

    MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用...让您在PHP领域上更上一层楼!

    简历 : 敲开苹果、微软、谷歌的大门PDF

    为求职者详细介绍了招聘程序,如何应用、设计和定制简历,如何准备面试并在面试中胜出,如何处理被拒的情况,如何就录用条件进行谈判,以及如何卓有成效地处理工作中的事务,使自己的职业生涯更上一层楼。...

    java数据结构和算法(第二版)[含书中Dome源码]

    之前一直对数据结构和算法这块比较薄弱,后来找到了一些这本书得PDF版,没事看看,...当然,它还适用于专业程序员和那些虽然仅有一些编程语言基础但是还想更上一层楼得人(此处省略20字)...”。 废话不多说,上货。。。

    NumPy攻略 Python科学计算与数据分析.

    《NumPy攻略:Python科学计算与数据分析》介绍了70多种...《NumPy攻略:Python科学计算与数据分析》的目标读者是对Python和NumPy有基本了解,并且希望自己的水平能更上一层楼的科技工作者、工程师、程序员和分析师。

    学习C++经典书籍

    提供了学习C++的经典书籍,相信不论是菜鸟还是资深程序员都能够得到很好的收获,特别是windows的核心编程可以让自身编程水平更上一层楼

    李维新书《Inside VCL》的前两章预读

    到现在的SOAP/Web Service、dbExpress,DataSnap等技术,程序员们不断地学习和使用新的技术,以便用来开发新的应用系统或是增加程序员个人的附加价值,以求在信息领域能够更上一层楼。不过这些技术大都是属于“应用...

    ASP.NET 2.0角色及成员管理初窥

    ASP.NET 2.0角色及成员管理初窥,是asp。net程序员必看的书籍,学会它可以使你的编程水平更上一层楼

    Java数据结构和算法

    本书使用于专业程序员和那些有一些编程基础但还想更上一层楼的人,本书还可以作为其他正式教科书的补充教材!

    基于C++和DOS界面开发的家庭财务收支管理系统源码+代码注释+答辩PPT+实验报告(程序设计项目).zip

    系统可以改进的地方,1、由于本系统使用的是DOS设计,所以界面给人的感觉还是不够完美,如果可以使用MFC的话用户体验就可以更上一层楼了。2、家庭成员的文件保存不能自己指定,只能由程序员指定,对用户来说不太友好...

    程序员5个刷题网站-python201bookcode:本书的代码示例:Python201:IntermediatePython

    的基础知识,并且现在想要更上一层楼,那么这本书适合您! 本书仅适用于中级 Python 程序员。 这里不会有任何初学者章节。 本书基于Python 3 。 本书将分为五个部分。 就是这样: 第一部分 - 中级模块 第 1 章 - ...

    程序员的新年祝福 Happy New Year

    再见,2017,你好,2018!祝大家在新的一年里,快快乐乐,编程技术更上一层楼,元旦快乐

    C语言大学教程

    相对于上一版,这一版在内容方面新增加了C安全程序设计、“更上一层楼”练习集,更新了C++和面向对象程序设计、基于Allegro的游戏编程、C99标准介绍等内容。, “活代码”方法(即通过可执行的代码来讲解理论概念的...

Global site tag (gtag.js) - Google Analytics