程序员:差距在哪里,你与开发高手的距离到底有多远?

开发者的技术成长是个永恒的话题。《如何成为一个专家级的开发者》文中虽然界定了专家的概念和开发者成长为专家级的一般路径,但却忽视了一个问题:为什么只有少数人能成长为开发高手和专家级程序员?一般程序员与开发高手的差距在哪里?

  事实上,我们一直在关注这一问题,并就此进行了数月的调查走访,受访的十几位技术专家对此问题的回答有些出乎我们的意料,也与众多入门级开发者所想象的“差距”大不相同。

  入门者说

  我们在一些具有1-2年开发经验的程序员就“你与开发高手的差距在哪里”的问题进行调查,得到的答案大致可以归纳为以下几种:

  • 项目经验。多数入门级程序员认为,大量的项目经验是提高自身技术水平的关键;高手们往往具有更多的项目经验,解决问题有更广泛的思路和方法。
  • 对语言和平台的理解掌握。有相当一部分人觉得自己的技术积累还不够,很多语法和API并不熟悉,甚至有人还要翻看语法手册才能完成一段代码的编写。而高手们对语言和平台早已烂熟于心,很多东西都到了“信手拈来”的境界。
  • 良师高徒。少数开发者抱怨没有高手和主程序员代领,无法获得好的项目实操技能和指导。而高手们往往一开始就有好的机遇得到更好的经验传授。
  • 努力程度。一些开发者觉得自己不够努力,很多知识没有深入学,很多项目没有用心做。他们认为,高手们的技术水平与勤奋刻苦的技术积累有必然的关系。

  这些差距的确存在,且带有一定的普遍性。但仔细想来,却多少有些主观:同样的项目,同一个团队,为什么有人可以获得更多的经验并逐渐成长;同一个SDK同样的IDE,为什么高手就可以“信手拈来”;一个主程代领3-5名程序员,为什么有人会脱颖而出?

  高手说

  “差距在哪里”的问题在受访的专家级开发高手看来有不一样的答案。这些答案多是指向技术内涵和开发者本身。

  代码的“斟”与“酌”

  高手在编程效率方面可能并不比普通程序员快多少,因为他们会吝啬自己敲下的每一行代码。这种“吝啬”有两方面的含义,一是项目的架构性和整体性考量,二是从性能和优化的角度进行Coding。其实,这里所映射的是一个开发者的技术视野。

  有多位技术专家强调项目执行时的全局观。面对一个项目,即使是团队中的普通一员,也要力求从项目整体架构的角度审视开发需求,对各个模块、接口和通信做最优化的预想和配置。这样可以从全局审视整个项目的技术布局,预判可能出现的问题。

  在确定了整体之后,落实到具体的模块实现,每一行代码不但有上下文的考量与规划,还要具备模块间的整体布局。这是模块内的技术视野,比如接口的定义、注释的可读性、代码的执行效率等。当你写下一行代码前,要考虑它是否会对整个系统造成影响,是否方便其他接口进行调用,这些都是一个开发高手的“技术潜意识”。

  据一些经常带领入门级开发者的技术经理介绍,多数人只考虑自己所负责的模块进行开发,缺乏一个全局性的技术视野和对代码性能苛刻的态度,这样虽然能按交付日期完成项目,却对项目质量和开发者的自我提高有很大阻碍。

  喜欢大麻烦

  一般开发者对工作中的一些技术问题相当排斥,每个人都希望手里的项目可以顺利进行,一旦遇到问题就会有负面情绪。而我们所看到的一些开发高手对待技术问题则是一种非常积极的态度。

  问题、难点是提高的机会。解决一个问题,能力就提升一点;解决一个大问题,能力就提升一大截。很多技术高手喜欢大麻烦,如果开发工作可以顺利进行当然是好事,但没有难度就没有高度;高手们会认为没有技术挑战性,很难让高手们在项目中发挥应有的激情。

  同样有技术经理反映,用一个开放的态度迎接问题、解决问题,这是目前入门级程序员所缺乏的心态。“喜欢大麻烦”的态度也是程序员向开发高手进阶的必备心里素质。

  代码阅读者

  开发高手是代码阅读者。大多数技术专家的代码阅读量是普通程序员的百倍,代码阅读的时间比写代码的时间要长得多。《Java编程思想》的作者Bruce Eckel对阅读代码的好处做出两种说明:

  • 代码被阅读的时间比写代码的时间要长,这有助于你的代码被人理解,并改善或者修改其中的Bug。
  • Code Review是最有成效的改善软件缺陷的方法,但在我们却经常“没有时间来考虑它”。

  关注代码的可读性有助于团队的其他同事帮助你修正技术问题,而技术问题的修正可以使你不再犯同样的错误。Code Review可以让你有更高的视角来审视已完成的项目,这样做,往往能有意外的收获——你发现同样一个项目,你可以做的更好。

  除了自己和团队中的代码,高手们还愿意花大量的时间研究“代码大全”,从别人的代码中吸收不同的技术思想并与自己的技术风格融汇贯通。而普通程序员多数只阅读与自己项目相关的程序代码,很少分配精力阅读优秀代码。

  其他“差距”

  • 参与开源项目。高手们往往都会参加2-3个开源项目,从头到尾完成一个项目的实现和后期升级。开源项目可以与世界各地的优秀程序员接触,协同完成工作,学习和应用最前沿的技术;并得到更多人对你的技术反馈。
  • 技术探索者。专家级开发者往往是技术探索者和新技术的布道者。高手们往往对现有技术并不满足(而且经常抱怨这些技术的不足之处),能清晰看到现有技术的缺陷。与开源社区的结合让高手们有更多机会接触到最前沿的技术和应用理念,这些技术往往是解决现有技术缺陷的最佳方案。高手们还会把新发现的技术带到国内加以推广和应用,成为这门新技术的专家。

  与之前入门者的答案想对比,你是否想到了什么?

  技术与梦想

  事实上,在“高手说”的部分我们还有一个答案没有列出——技术热情。虽然受访的几位开发高手给出的答案虽各有侧重,但却几乎同时提到了这一点,“要有足够的技术热情”。

  多数程序员只把程序开发当成一份工作,他们在乎平台的前景、语言的优劣、报酬的高低;他们不愿为一个技术点反复钻研,不愿为一个bug精心测试,不愿为自身技术水平的提高多花时间。而开发高手往往具有单纯的技术梦想,愿意为技术付出自己全部的时间

  归根结底,这还是技术与梦想的话题:你想用技术成就怎样的梦想?在你的梦想中,技术占到几分?

  这个比例,才是你与开发高手的真正“差距”,也是你与开发高手的最大“距离”。


转自:http://news.cnblogs.com/n/72217/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值