• 心态和想法,是提高编程水平的关键
    时间:2012-08-01   作者:mixer-a   出处:blogjava.net/mixer-a

    你是否有时候会觉得自己的技术水平停滞不前,想突破但又找不到门路?最近在stackexchange上看到了一个非常好的问答。有人问:你做过的最有效的提高你的编程水平的一件事情是什么?

    回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能 —— 阅读代码,编写程序,阅读书籍,听讲座,看视频,等等。

    我的问题是:你做过的最有效的提高你的编程水平的一件事情是什么?对于那些想提高水平的程序员,你的建议又是什么?

    我希望你们提供的答案是各种各样的,并且不是那种“放之四海而皆准”的答案 —— 我希望得到适用于不同人的不同的答案。

    有很多人给出了自己的答案,这里挑选其中三种答案。

    回答一:学无止境

    没有特别的先后次序…

    和比自己更聪明的人一起工作
    永远乐意听取他人的意见,不管对方是低级水平,一般水平,资深,还是大师。职称头衔并不代表一切。
    学习其它的框架/语言,学习它们是的工作原理和思想,拿它们跟你已知的技术做比较。
    学习各种设计模式,最佳实践理论,然后用它们检查自己先前的知识,在需要的时候使用这些模式。
    结对编程
    反对Joel说的一切。

    回答二:成为多面手

    争取成为一个‘多面手万事通’。

    在我职业生涯的早期,我在一种数据库和编程语言上是个专家。不幸的是,这种数据库在“数据库战争”中落败了,我才发现我的职业道路…很窄。在此之后,我下定决心以后决不能把自己封在一个小空间里。我开始学习所有手头上能接触到的东西:Windows,Unix,C,C++,Java,C#,Perl,Python,Access,SQL Server,Oracle,Informix,MySQL,等等。不管什么样的新的,不常见的工具或技术,我都成为“大拿” —— “去问克雷格(作者自己),他要是不会,他会去学会的。”结果,我做了各种各样的项目,从为环境监测做嵌入式系统,到为导弹防御做命令和控制系统。

    我在各种的公司里唯一遇到的问题是:它们坚持要把我固定在一个专门的研究方向内,而我的专门研究是要成为一个多面手。(也叫做学识渊博的人或多才多艺的人或多领域专家。)

    有些事情需要留意 … 高科技界里知识的半衰期是多少?根据摩尔定律(Moore’s law):18-24月内,半数你学到的知识都会过时。错误的遵循这种规律的专家会轻易的在这种技术发展的压力崩溃;一个多面手要做的事就是不断的丰富自己的技能,并从应用这些技能的经历中吸取教训。

    回答三:不要跟臭棋篓子下棋

    我一直认为自己在不错的程序员中也算是个“灌篮高手”。直到有个家伙——我们叫他艾伦——被招进团队。艾伦很显然在很多方面都比我优秀。也比我年轻。他让我认识到,在过去的这些年里,我没有多少长进。我是一个特定技术方向的程序员,而且是水平一般。

    这惊醒我应该自觉的不断提高自己的水平,特别是我写的代码的水平。

    艾伦引导我学会了很多东西。他告诉我,大部分我写的代码在今后的数年里都将一直维护和进行扩展,写代码时要将这点铭记在心。我应该为我的代码写自动测试程序。艾伦说代码的开发一定不能停止在第一版上,应该不断的重构,提炼,让它达到完美。我发现,我对这些语言和工具的使用都还有还很大的改进空间。

    从艾伦那我学到的最重要的一件事情是:永远不要停止学习。

    数年后,艾伦离开了公司。我的心里突然感觉空荡荡的。这些年与他为伴让我在技能上提升到了一个全新的水平,我知道现在我比团队里的其他人优秀很多。他们仍然写着糟糕的代码,犯着以前犯过的错误。我努力教育他们,但他们对此不感兴趣。事实上,他们讨厌有人这样傲慢自大的指出他们犯的错误。

    于是,几个月后,我也离开这这个公司。我去了一个很小的公司,在一个很出色的团队里工作。那里每个人都渴望学习更多知识,我喜欢这样的。

    我很幸运能遇到艾伦。没有他,我也许现在仍然待在那家死气沉沉的公司和那帮食古不化的家伙在一起,哪都去不了,想的全是自己的私利。

    网友留言/评论

    我要留言/评论

    相关文章

    提升Android应用视觉效果的10个UI设计技巧:在Android应用开发中,风格和设计或许不是最关键的要素,但它们在决定Android应用成功与否上确实扮演重要的角色。以下是10个Android应用的UI设计技巧,还有个附加技巧,能够提供你的Android应用的视觉吸引力。
    Android 4.0设计初体验:Android系统是目前智能移动设备中增长速度最快的平台,但App的设计却没有形成自己的风格,绝大都数都是ios风格的移植适配。Google 在去年的10月份发布了Android 4.0 的界面规范,在样式、控件上都做了非常个性化的革新,但由于Rom的多样化,设备的不统一,新的4.0设计规范并没有得到广泛的普及。但以移动设备更新换代的速度,Android 4.0将会是趋势,与ios的差异性也会越来越明显。由于博主的性格属于典型的喜新厌旧,所以打算结合手上的项目做一个吃螃蟹的人…
    浅谈如何留住用户:应用中心,顾名思义就是应用的集合,是承载各种应用的平台。其主要特点是娱乐性强、沉浸感强。它像是一个商店,里面有供人们随意挑选产品的货架,更像是一个游乐场,里面有各种各样让人眼花缭乱、流连忘返的产品。因此,如何吸引用户到我们的产品来,如何让他们在我们的产品上停留更多的时间,这些都是设计师们的必研课题。笔者经过一段时间对应用中心类产品的研究和设计积累,总结了一些设计思考,在此与大家分享。
    你需要一个简单的开始 – Logo设计:所有的LOGO设计师都会经历一个过程。它是“幼稚的”、“可笑的”,我们并不爱公开地展示它们。或许最后并没有给我们带来任何灵感。但是它们将必不可少地存在着,在我们思维层的任何地方,都会潜意识地让我们思考。
    10个让朋友对你刮目相看的CoffeeScript单行代码绝技:或许你已经看过了Marcus Kazmierczak的这篇在HN上颇受欢迎的“10个让朋友对你刮目相看的Scala单行代码绝技”了, 尽管我对Scala并不了解(Java也是),但是这看起来还真不错,于是我也有点手痒, 想让我的朋友们也对我刮目相看一小下——不过不是从Java到Scala,我是从Javascript到CoffeeScript, 下面的例子都是基于node.js环境的。
    程序员学英语:老实说,我对于英语的认识,从没有把它的重要性放到一个足够的高度上来,从去年下半年开始,接触到越来越多的英文材料,也随着视野的开阔,逐渐发现英文能力,是程序员个人发展的必备技能。在很多情况下,它的重要性可以用“致命”来形容。以前有同事说,程序员职业生涯的发展,起到决定作用的,绝大多数时候都不是技术和业务,而是其他被人忽视的“软实力”,譬如沟通、性格、英文等等。兴许我现在正在渐渐参悟这句话的含义。
    程序员看法上的几个典型错误:今天我不谈抱负理想,也不谈具体的技术,我来谈几个看法上的典型错误。下面的这些问题都是我曾经遇到,或者是我的朋友们遇到过的问题,这些都是我个人的理解,希望对大家有帮助。
    读《神一样的产品经理》:随着iPhone的风靡全球,乔帮主也把产品经理推到了极致,在看了《神一样的产品经理》后,借着ITeye的活动,发一点牢骚。
    技术文化建设实践:众所周知,良好的技术文化不仅有助于人才成长和提升团队内聚力,更是吸引和留住优秀人才的一大法宝。然而,该如何营造良好的技术文化呢?且听本期三位嘉宾的经验分享。本文是专题《怎样营造良好的技术文化》中的第三篇。第一篇是张克军带来的《悉心营造良好的技术文化》,第二篇是许晓斌分享的《分享促进技术文化建设》。
    有关创业公司融资最常被问的问题集锦:很多的创业公司都是沿着一个老套路:一个创业者,一个理想,一个计划就开始自己的创业。往往一提到创业人们就是人潮涌动,而单独一人上路的比有自己的雇员的创业者更加数不胜数。但是谈到成功,许多创业公司必要更深度的一整套的技能和经验。相信创业者们融资时面对投资商所提的这些问题可以引起一些反思。