最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > 移动开发 >
从这些方面可以判断程序员的能力
IT168发表于 2020-11-06 15:38 次浏览
       是什么造就了一个优秀的程序员?首先问问你自己吧,这会是个有趣的问题。它让你反思自己的软件开发技术。这个问题也适合问问你的同事们。它可以带来一些关于如何协同工作的有趣讨论。下面是我认为成为一个优秀程序员必备的五个重要技能。

  一、什么是开发者驱动的文化

  码农们做热衷的雇主是Facebook, 世界最大最受欢迎的社交网站。这个巨大的怪兽为世界上超过6亿(还在增加)用户提供服务。依靠一个全能的软件工程师和开发者团队去维护整个项目。尽管在频繁改变用户界面、为通知用户的情况下改变隐私设定,Facebook受到了很多抨击,他们的核心价值——总可到达、所有社交一站式服务中心还在继续延续。这不是发生在真空中:

  “一个成长型的公司总是以不断革新为标志,Facebook恰恰符合这一标准。但是除了伟大的价值和创新,部分网站的成功可能与开发者驱动的文化有关,就像Facebook在编写和维护代码所采用的的使平台运行在一个更加流畅,动态的经验一样。 Facebook的例子的确说明了当正确变量存在时,开发者驱动的文化在某些情况下能起作用。在一些情况下,公司可能不得不通过试验和错误来确定这个模块在他们的环境里是否工作。当然,并不是所有公司都可以吸纳一个授予太多职权给开发者的系统的。” - RegularGeek.com,“开发者驱动的文化”

  “权力给工程师”(或开发者,视情况而定)是一个有趣的前提,但是这究竟是什么意思?有一个很酷的办公室,充满了Dr. Who和星级战争怪物的图案,现场免费按摩室,和大量的免费垃圾食品,这当然很棒,但是它不能阻止开发者必须处理无聊的办公室政治,或更糟的是微观管理。Facebook看起来做正确的是鼓励发散思维,创造充满想象力的环境从而不会扼杀创新。这需要两方面事情是正确的:一个聪明的开发者团队,彼此工作顺畅;一个聪明的管理团队分辨出什么是必须的,什么不是,这样开发者就可以完成他们的工作。这是一个艰巨的任务,但是当你的产品像Facebook一样热,你只能这么做。

  二、哪些事情可以有助于产生一个很浓厚的开发氛围呢?

  在Quora,一个在线问答网站,一个关于“如何产生一个良好的工程师氛围”?很显然回答的观点是来自于工程师角度的。但是大部分回答也可以同样适用于开发者。关于如何产生一个浓厚的开发者氛围的回答之一是快速迭代:

  “对明智的团队而言,快速迭代速度意味着有一组强势的领导帮助协调和推动团队努力工作,关键利益关系人在做一个决策时需要有效率和致力于把他们的选择付诸行动。借用Bill Walsh的一段话,他是49ers队的教练并且三次率队进入Super Bowl,强势的领导人需要“承诺,激发,恢复”,这就意味着制定一个攻击计划,并且执行它,最后对结果做出回应。一个缺少决策的团队将仅仅引起个人努力在去瞎折腾。”

  我们或多或少因为他人或项目里面遇到不愉快的经历,但生活有时候就是这样进行下去的。快速和高效的团队可以使工作流程更容易实现,而且最终完美地完成最终目标。随着快速迭代来尽可能多的自动化的想法,这将有助于软件设计更简单:

  “选择正确的方法,编程才能舒服地实现,模块的界面才会变得小而简单,新的功能会更容易适应在没有广泛的重用。测试者和开发者将是一个讨厌的惊喜:接口系列将成为巴洛克式的,笨拙的,因为他们被迫以适应意料之外的相互作用,即使是最简单的变化将是很难的。“

  有一句老的格言K.I.S.S(保持简单和直白)似乎可以应用在这里。特别的工具或者程序被开发者利用是为了完成一种像禅一样简明的工作,甚至连他们最后努力完成的是什么都没关系;这基本上是通往项目的结尾的一个无障碍路径。

  三、20%时间

  你应该听说过Google的“20%时间策略”,这在技术产业里面是十分有名的。这个概念可以追溯到1948:

  “在1974年,3M 科学家Art Fry提出了一个聪明的发明。他认为他可以把粘合剂(几年前被同事Spencer Silver梦见)应用到一张纸的背后,这样可以制作一个完美的书签,一个便放在他的教堂圣诗集里面。他把这个叫做贴标签。Fry 在他的“15%时间”期间提出现在标志性的产品(他在Smithsonian面前提起过),一个在3M那里可以让员工们使用他们带薪时间的一部分来追逐思维以产生他们自己的想法。这看起来像是一个压扁的员工福利。但是这时间实际上产出了公司的最畅销的产品并且在同时间在有些顶尖的公司如谷歌和惠普公司就已经树立了先例”Lifehacker.com,“使你感到你的工作像是少于20%的时间”

  Google有些最有趣、最知名的产品孕育于这20%的时间,包括Gmail,谷歌新闻和Adsense。很明显,这对他们是有效的。可以得出这样的结论:鼓励工程师把他们真正有热情的方面作为工作的一部分,其实是很聪明的做法:

  “举个例子,很多在软件测试方面与我密切合作的人,其实是真正的硬件极客,但是除了更换正式职业之外,他们很难找到鼓励他们兴趣的地方,尽管公司里有数百个志同道合的极客。对于这些员工探索个人兴趣的官方认可,不仅会使员工感到愉快,也将有助于促使他们适当切换到那些职业.....关键是,无论工程师对什么事物有兴趣,你都有方法可以培育它,即使没有任何显着的预算投资。“ - arc90.com,“创建一个繁荣的开发者文化”

  四、实施意见

  在Jet Cooper就职的前端工程师Monika Piotrowicz近期发表的一篇演讲,提出了几条非常实际的建议,来讲述他们如何创建一个更具包容性的开发者文化,尤其是调动设计师和开发工程师在项目上协同工作,而不是陷入争论。

  他们的设计团队和开发团队之间的协同工作,为他们的公司带来了巨大成果。在项目期间,他们尝试着一起工作,而不是各自为政;他们已经发现这种方式激发出了更多的研究,更多的原型,并且他们能够更好地定位自己,以便尝试新技术。

  团队也尝试超越单纯的工作项目环境进行合作,用一些不同的活动方式:

  每月演示日:这允许每个团队炫耀他们的成果,获得支持和反馈;

  每周开发者谈话:所有开发者会面共享新的技术,谈论他们面对的问题,或者任何别的他们正思考的东西;

  创意体会:每月两天整个公司休息,只工作自己的项目,自主引导的(这在前面详述的谷歌的百分之20时间策略中已经模式化);

  Piotrowicz的描述推进了一个信念,即公司内部设计者与开发者应该提倡更具合作性,以便拥有一个更强大的整体的团队,看起来明显的他们正在这么做。

  五、为什么健康的开发者文化很重要

  一个强大的开发者文化是良好工作的关键:

  “当你关注文化,就具备了指导原则。人们会知道你的这一点。员工会适应它。它会帮助你渡过难关。你会基于此原则做出聘用和解雇决定。它可以帮助所有员工为同一使命而工作。从某种意义上说,它是保持公司凝聚力的黏合剂。” - Kissmetrics.com,“伟大企业文化的四元素”

  无论在什么地方 - 漫画店,面包店,或办公室 - 工作将形成自己的文化。这种工作文化至关重要。如果你害怕每天去工作,而不仅仅是星期一,则是个问题。

  渴望把事情做好的雇员是富有生产力的,生产力又会产生更多的生产力。这使一些公司相对另一些公司脱颖而出,这使他们扩张,因为能够收获利益而使雇员快乐。

  好的文化也使得找到优秀的人变得容易。我们来看看:给开发者提供高额津贴,有趣的工作,以及鼓励创造力的前瞻性环境,这样的办公室会有更多的人来敲人力资源的门,不像奥威尔隔间农场希望你的生命鲜血却很少有回报。优秀的开发者文化吸引优秀的开发者,句号。

  那还会有一种友情的感觉,来自于知道你工作在一个安全,创造性的,鼓舞人的地方。在其公司文化中受益并感知他们被尊重的开发者,更愿意呆在那个地方,工作更努力,并且互相帮助。

  “文化规范任意的行为,它捡起员工手册的遗漏的地方。文化告诉我们怎样响应一个无前例的服务请求。他告诉我们是否冒险告诉老板我们的新思想,是否浮现或隐藏问题。雇员们每天自己做数百个决定,文化是我们的向导。文化告诉我们CEO不在房间的时候我们该做什么,这当然是大多数时间的事。“ — 哈佛商业回顾

  您认为什么可以造就或破坏一种好的开发者文化?

  到了请您来告诉大家您持什么观点的时候了。您在工作场所亲自经历过哪些事情是好的和不好的?构成一种健康的开发者文化的因素有哪些?请在评论中和我们一起分享您的想法和观点。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐