码迷,mamicode.com
首页 > 其他好文 > 详细

引用别人对编程的理解,挺好

时间:2015-06-26 16:25:13      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

编程对我来说是工作,同时也是我的爱好。喜欢自己的工作,我想我是幸福的人吧。我工作这么多年,唯一真正觉得自己干的好的工作其实也就是编程。而我对编程的理解,我觉得我现在也有资格谈谈自己的理解了。我对编程的理解,说的简单一些,其实就是实用。创新或者探索不是我的工作,我没有受过正规的大学教育,对学术那一套看不太上,我明白我之所以还能够胜任编程的工作更多的靠的是自己的天分以及头脑的聪明,教育对我来说可能有一些潜移默化的影响,但是我心里面明白,我不喜欢那些教育的方式,从而也没有很好的接受过教育对我的帮助,现在看来是我错了,知识对人的作用其实很大,而教育的机会同时也是不多的,一旦错过,永无可追。

在我看来,所谓编程的工作其实就是实用主义至上,一切以实用为目的,同时尽可能的提高效率。有效的技术就是好技术。所以不要问该学什么不该学什么,在我看来,编程相关的所有技术都要学习。而且要时刻明白一点,学是为了用,不是为了搞研究,除非你真的是搞研究的。所以我对那些研究算法的程序员,以及研究java虚拟机的程序员不以为然。程序员真正关心的应该是clean code,如何写好代码,而不是去关心如何运行好代码(不包括C++等没有虚拟机或者平台的编译语言。使用这些语言,程序员必须考虑如何运行好代码)。后者是计算机科学家的事情。我的书架上,从来没有关于虚拟机的任何一本书,也没有关于操作系统的任何一本书,也没有关于数据库的任何一本书,SQL的书倒是有一本。

对于程序员来说,关心如何写好代码,比关心技术本身更加的重要。所以我其实没有认真研究过任何一门技术,包括,java虚拟机,各种数据库,spring框架,各种ORM框架,各种js引擎。我真正关心的其实就是如何写好代码,我的书架上,大多是这类书籍,以及各种语言的相关的书籍。包括c++primer,虽然我不认为c++会出现在我的工作领域里面,(但是其实它真的出现过)不要认为会用c++有什么了不起的,在我看来,用c++来开发,是一件很悲惨的事情。

我始终觉得要想写好代码,不能仅仅学习一门语言,而是需要了解多种风格各异的语言,同时不要去研究过于冷门的语言。我们学习的目的还是应用,永远不能应用的语言对我们来说其实毫无价值。编程语言从风格上大体分为两类,一类是命令式的,代表是c语言,一类是函数式的,代表是scheme语言(lisp)。现在还有一种混合风格的语言scala,所以scala很值得一学,它很有特色,是一个经过认真设计的学术化的语言。这类语言大多野心勃勃,但是学的人多,用的人少。

不过,归根结底,编程的工作是解决问题的工作,而不是学术研究。编程中最大的两个问题一个是需求,一个是(代码)质量。技术从来不是需要考虑的重点。反正发明创造某种技术不是我们的工作,我们的工作其实就是应用这些技术。所以学习其实还是挺重要的,但是学习并不是研究,我们学习一下成果就可以了,这还是比较轻松的。想想你高中时代学习的那些数学公式,你知道他们是怎么推演出来的么?有很多数学的理论都是经过了几百年才逐渐被人认识到的。钻研这些东西其实对工作毫无帮助。你能读懂java class的字节码有啥用?证明你很牛么?用户的需求可能是白菜式的,你是不是觉得自己很委屈(平天下之才,却在这里种菜)?当然,作为爱好没有问题。

提高代码质量,最基本的方法就是在写代码的时候就重视它,要为自己写的代码负责。不要抱着完成任务的想法。当然初学者以完成任务为目标是没错的,因为这已经很有挑战了,但是真正的程序员,永远都应该以高效,优质为目标。这里面其实没有什么高深的学问,关键是你是否用心。比如提高效率的一个基本就是你对键盘是不是很熟悉,会不会盲打。键盘很差的人是不可能高效的编程的,每打一个字都要看键盘,怎么可能高效。对于程序员最重要的按键其实都是右手小拇指负责的,你知道是那些按键么?不用看键盘能打出来么?(;"[]{}+=-)。好的程序员键盘一定很好。

同时开发工具也很重要,一看就知道你对编程有没有追求。

程序员要对编程语言很熟悉,特别是你日常工作用的语言。同时一定要深入了解面向对象技术。抽象是非常重要的提高代码质量的手段。我觉得正常智力的人,熟悉日常的工作应该不是难事。但是面试还总是让我吃惊。

程序员不能畏惧学习,其实我想说人类不能畏惧学习。学习能力是人类唯一区分其他物种的根本特征,如果你放弃了,那你基本上都不能称之为人类。

实用,效率,质量。这些才是程序员应该关心的。技术不是重点,技术层出不穷。但其实真正编程相关的技术没有多少,除了面向对象我也想不出来其他的了。乱七八糟的技术很多和编程都无关,什么大数据,云计算,各种数据库技术,各种虚拟机技术,这些和编程无关。和JS相关的一大堆:什么nodejs,angularjs,requirejs,等等。都学会了你也不见得能写出好的js。 好代码的唯一标准: 量少 好代码的标准:

  1. 少(
    1. 高内聚,低耦合
    2. 抽象程度极高。
    3. 尽可能的使用类库。)
  2. 没有拼写错误
  3. 没有IDE的警告,JS除外。(如果有警告一定要用注释说明一下,为什么会有这个警告)
  4. 注释说明用意
  5. 关键的标识符要认真命名,命名同时是有相关含义的。比如说字段,方法名称,类名称。
  6. 用Java之类的面向对象语言,不要把MAP作为你的数据类型,而要用类。

此外:

  1. 在改动别人的代码之前要知会他。尊重别人的设计,尊重别人也是对自己的尊重,同时也是对编程工作的尊重。
  2. 不要试图隐藏想法,如果要和现实妥协,那就妥协。
  3. 好的代码一般是改出来的,编程基本没有一气呵成的可能。

引用别人对编程的理解,挺好

标签:

原文地址:http://my.oschina.net/weiweiblog/blog/471272

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!