培训首页  >  培训新闻  >  软件开发新闻  >  南通科迅JAVA培训-程序员的特质

南通科迅JAVA培训-程序员的特质

来源:

科迅教育

    发表于:2017-01-04 10:33:45  


    程序员专业度越高,意味着更好的职业发展,意味着更高的收入,意味着更牛的技术造诣,成为一个专业人士是所有程序员的目标,如何才能成为一个更专业的程序员呢?本文科迅java培训为大家整理了专业程序员的特质,欢迎对号入座,还不具备的要努力赶上啊:

笔者在硅谷待了将近3年,在这里近距离观察了Google, Facebook, Uber等公司的大拿,并有幸与其中的一部分一起工作。在此分享大牛程序员的行为风格以及我自己的所思所想,希望对大家有所帮助。

特此声明:此为我个人主观观点,欢迎异见以及讨论。

承担责任

这是专业和不专业的分水岭。对于一般的程序员来说,他的责任就是及时、高质量的完成任务;对于Tech Lead来说,其责任就是统领全组,合理安排任务,让组员各司其职。这里包括3点:

承担合适的责任。选择自己能力范围内、自己喜欢做的。一旦选择了工作,请承担完成的责任;

学会说不。经常看到,产品经理或者领导会催促在极短的时间内完成任务,而程序员这个时候总是欲拒还休,说我来试试吧。专业的程序员对于任务有靠谱的预判和掌控力。当完成不了的时候,一定要说不。否则既是对自己不负责任,也是对他人不负责任。

对于程序员来说,没有try这种事

应对坏的情况。程序员悲催的莫过于搞不定任务,这个时候一定不要推卸责任。这时候重要的是给出一个切实可行的补救方案,好有一个完成任务的时间点。老板不在乎你为什么完不成,在乎的是究竟怎样能完成。

高质量的代码

没有Bug,每一段代码都要有相应测试。很多人不写测试,那是因为他们抱着侥幸心理觉得自己代码没问题,同时写测试又很浪费时间。实际上保证代码质量的要素就是测试,测试可以让你检测不同输入所产生的输出,有时候甚至可以推动你去修改开发代码以提高质量。

可读性要高。刚学计算机的同学,变量随性命名,整个文档看不到注释。笔者认为,所有public的类、结构体、枚举、变量、方法都需要注释,因为public是外部可见的,极有可能是常见的API,这时候让别人看懂就十分重要。

可扩展性和解耦性。好的代码不仅针对当前特殊的情况,还可以应对其他情况;以后即使对现有的代码进行大量修改,也不应该影响其他模块。

代码上的时间

一个专业的程序员一周的花在计算机上的时间应该为每周60小时。基本的40小时,要花在工作中。剩下的20小时,要花在提高自己身上。提高可以是多种多样的:读博客、做项目、看文档、上公开课。

有人说没时间,我们来算一笔账。一周有168个小时,假设你睡8小时,吃喝拉撒2小时,这样你还剩168 - (8 + 2) x 7 = 98小时。然后你花在代码上60个小时,你还剩98 - 60 = 38小时。你完全可以用20个小时陪伴家人(我知道很多人没有成家),再用10个小时与朋友聚会出游,就算这样,你也还有8个小时可以自由支配。

之所以要在代码上花费这么长时间,是因为软件这一行这一行变化太快了:乔布斯逝世才5年,Google已经声称移动时代已经过去,现在是人工智能时代;Objective-C还没火几年,转眼Swift已经出到了第3个版本;Html 5刚刚落寞,Facebook又推出了React Native试图整合Android和iOS两个平台。。。技术的进步,总是让程序员有太多的东西要去学习。

就在上周,Oculus宣布React支持VR

对自己领域的精通

无论是前端、后端、还是移动端,都有自己的一套架构体系。作为一名专业的程序员,我觉得应该至少对自己领域所有的知识都有涉猎了解;对于核心的部分,则要做到烂熟于心的程度。

我有点反感简书上的一类文章《再不学XXX你就Out了》。这类文章一般都是说新技术又新又酷,鼓励大家快来学啊。学习新技术的原因永远不是因为它新、它潮,而是因为它可以更好的解决当前问题。对于深度和广度两个维度谁先谁后的问题,我个人永远支持深度优先。只有本专业弄通的情况下,才能融会贯通。Andrew Ng出名是因为他在Machine Learning的专长;提到John Carmack,大家都会想到游戏编程狂人;谈起乔布斯,大家都绕不开iPhone。专业程序员能做普通程序员不能做的,这才叫专业。

思维模式

很多程序员平常写代码只在乎能解决问题,不在乎选择解决问题的方法和原因,这是典型的不知其所以然。专业的程序员,理应对每一个问题、每一步设计都有自己的理解。

举个iOS开发中的例子。假如遇到一个新App,你发现整个App运用了大量的RxSwift技术。你就要想为什么用RxSwift?是方便测试?是整合逻辑?还是为了解耦架构?再进一步思考,为什么这个iOS App用的是RxSwift而不用ReactiveCocoa?是为了和Android端用RxJava保持一致的代码风格吗?

也许上面的问题和你工作需要解决的具体问题毫无关系,但是理解清楚个中要害却是提升内功的关键所在。

沟通

很多程序员只想写代码,做个安安静静的美男子,这当然无可厚非。但是你真的确定,正在在做的东西是老板希望、客户期待的吗?作为一名程序员,理解自己应该做什么、达到什么效果、同时让老板知道什么能够实现、什么实现不了,才是专业的表现。

举个Google中工作的实例:

部门经理:我们组A这个项目要赶紧干完,VP盯着我们。

程序员甲:好,那我赶紧做。

程序员乙:好。但能问一下这个项目为什么VP盯着?做了对整个组或者Google有什么好处?A项目的所有功能都要完成吗?有没有具体的截止日期?

上面我们可以看到,也许程序员甲和乙技术能力相同,但是甲更偏向于兢兢业业、努力干活的老黄牛程序员,他写出的代码很有可能是他认为非常好的代码;而乙则更擅长沟通,更有大局观的程序员,他写出的代码就更有可能被大家都认可。他们的专业程度高下立判。

合作

与组员的合作是专业程序员工作学习中重要的一环。除了沟通很重要以外,我想着重谈的一点,就是程序员在合作中不能掺杂着办公室政治。我所认识或者听说的硅谷的大牛,跟同事皆是坦诚相待,对后辈也是倾囊相授。

为什么会这样?因为首先,大家都理解了相关的知识,项目才能的推动,整体的工作效率才会提升;再者,自己懂知识,不代表自己能讲清楚它,随着与同事的交流和分享,知识本身会更加完善,对其理解也会更加扎实;最后,无私的分享和帮助有利于构建良好的工作环境和团队氛围。

技术的发展各有各的不同,但是专业程序员的行为方式,却总能看出相似的影子。我在硅谷的几年,技术学了不少,但我觉得自己真正进步的地方,乃是身体力行了很多硅谷大牛的工作作风。我很荣幸与一群专业的程序员一起工作。以同事相称。

哪里能学到新的java技术?怎样才能成为更专业的程序员?零基础成为专业程序员需要哪些条件?马上报名科迅java课程,一站式帮你入门,成为java技术大牛。通过公众号:南通科迅教育即可报名,科迅java培训。帮你了解更多java技术课程,带你入行,帮你实现梦想!

请联系网站,了解详细的优惠课程信息~
优质、、便捷、省心

文中图片素材来源网络,如有侵权请联系删除
分享到:

南通科迅JAVA培训-程序员的特质 原创内容,请点击南通软件开发培训

  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

热门课程

  • 南通大数据培训

    询价

  • 南通电脑编程培训

    询价

  • 南通C#培训-科迅教育

    询价

  • 南通Python课程

    询价

  • 南通web前端培训软件开发IT

    询价