不是每个程序猿都能成为优秀的软件project师。

在过去的6年时间里,我在Ooyala、Quora和now Quip这3个创业公司面试过许很多多挺有发展潜力的“种子选手”。他们都有着5年以上的工作经验。而且曾为类似于谷歌这种顶级技术公司服务过,可是就是搞砸了面试。

毫无疑问,这些应聘人员都是不错的软件project师,而且,他们甚至可能非常擅长他们眼下的工作。我之所以否决他们,仅仅是由于我不觉得他们能成为一名优秀的软件project师。

我多年的面试、培训和指导经验告诉我。具备一些特殊的品质能让软件project师更easy在创业环境中取得成功。而且,这些品质在初创企业比在一个更成熟的公司更为关键。由于在一家初创企业:

  • 1.对产品、软件系统、团队及其文化有一个更为深刻的认识。
  • 2.成功更依赖于团队的表现。而非你自己。当然,假设在一家更大更成熟的公司,你的出色表现可能会成为你向上爬的踏脚石。可是在一家又小又新的公司,这根本无足挂齿。

  • 3.时间是关键因素,一方面是由于初创企业大多没有盈利,还有一方面则是相较于那些盘根错节根深蒂固的老牌子公司,敏捷是他们最大的优势。时间有限就意味着你必须马不停蹄、加班加点,不能拖拖拉拉磨磨蹭蹭。也没有太多的时间供你挥霍在须要解决的问题上。

我以前有幸合作过的最有效率的软件project师。有着熟练的技术和卓越的决策能力。他们大多内涵下面7种特质:

1.系统调试技巧

编程非常大一部分时间事实上是花在调试上的。实用户报告紧急问题。尽快将其修复。server的CPU出现负载高峰。尽快找出原因。数据莫名遭到破坏,尽快找出罪魁祸首,等等。都是你的工作。

而良好的调试技巧则能让我们干净利落地解决这些问题。

在调试时。我们应该用一种科学严谨的思维看待问题:先如果出错的地方,然后用最有效的方法或者最小可重现的情况去验证。此外调试过程还须要涉及各种的工具:发现瓶颈的分析器、单步运行代码的调试器、缩小回归原因范围的git bisect、交叉分析现状的UNIX命令行等等。

只是。调试的应用范围不只局限于技术领域。

假设产品的增长率和使用率趋于平稳,我们该怎么假设和測试用户的行为以调试未来目标的重心?假设一个团队完不成他们的项目目标,我们该怎么调试才干知道导致项目流产的根本原因是技能不足,团队沟通不畅还是别的其它原因?招聘有的时候并不能尽如人意——你也知道,大家对于你是怎样调试的过程并不能一目了然,不是吗?(关键:先从数据入手)

2.勇于面对未知

作为一名软件project师,你须要常常专研那些又大又不熟悉的代码库:可能你须要好好研究你正在使用的那个开源工具的代码。才干随心所欲地挥洒自如;又或者你须要搞清楚其它团队成员写的代码。由于他没有改动时间等等。所以,高速驾驭大型代码库和精通相关区域的能力显得至关重要。而这样的能力大部分来自于经验。通过阅读过大量代码积累的经验。另一小部分则须要靠我们熟悉能搜索代码库、跳转到相关部分的工具了,以及会查找有关提交历史中的版本号控制——这些捷径都能降低我们去了解新代码所需的时间。假设是在更为成熟的公司,这样的勇于面对未知的精神也能让我们受益匪浅,只是不同的是,我们往往仅仅须要专注并精通一部分代码库就能成果斐然了。

当然。其它非代码领域有时候也须要你去探索。软件project师经常须要接待客户、与销售人员讨论客户要求的可行性、给新的project师培训。以及其它领域的非常多你甚至全然没有接触过的事宜。在这些经历中成长。会让你受益无穷。

3.对决策的务实态度

可能在一家大规模公司,在代码审查和单元測试坚持己见有助于改善组织平衡。

可是在一家初创公司,务实更重要,由于这能让团队高速完毕任务。在这里我所说的务实指的是,知道什么时候应该积极辩论,而一旦有了决策,即便你再不允许,也能一丝不苟地作为团队的一份子认真运行。我以前看到过由于编码风格而相互争执的现象,一个说在源码起码得有80。100,或120个字符和大括号,而还有一个认为应该另起一行。呵呵。我深深地认为,我们还不如把这些宝贵的时间和精力用到更重要的决策上。

对决策的指导启示式评估应该側重于“是否终于能添加团队成功的概率?”。

非常多因素都会对这个问题产生影响:产品的选择、架构的側重点、团队的文化、人才结构,等等。

我们在决策前最好限定讨论的时间,然后坚决运行,各抒己见。

4.善于运用工具

工欲善其事。必先利其器。工具的合理运用能让我们节约大量的时间,而时间则是我们最重要的资源。高效的project师经常是那些善于利用工具的人,而这一点在创业公司尤为重要,由于这里的时间更紧迫。一些大型的组织可能会有专门的工具团队。而在初创公司。你善用工具的能力越强。完毕的任务数量就越多。假设这些工具也为其它团队成员所接受,那么团队生产力将会发生乘数效应。

5.牛逼的多面手

初创企业早期出现的非常多问题事实上并不须要非常专业的知识。具备的技能越多。在解决这个问题时遇到的瓶颈就越少,哪怕我们仅仅是对这些技能有一个最主要的了解,还在摸索熟悉技能的过程中。假设前端Webproject师也装备了主要的server技术(server skill),那下次再遇到与此相关的问题就不必去请serverproject师在百忙之中拨冗相见了。

而后端project师,假如会一些主要的HTML、CSS和JavaScript技能,就能将他所制作的工具设计成一个Web界面,以方便其它团队成员使用。从而不必由于缺乏web设计师而裹足不前。

一个成长中的project师,应该是那种能顺利使用主要的数据分析工具分析实验数据,而不必受制于数据分析员的多面手。

只是,有一种更欢迎“专家”的例外是。假设是在利基、重技术的环境里,比如启动数据库,那么拥有精深的专业知识工作效率会更高。并且。随着创业公司的发展,对于博而不精的多面手,越到后期,能代替你的人就越多。

6.保持玩家心态,而非受害者心态

在Fred Kofman的《Conscious Business》一书中,他描写叙述了人们对待问题採取的两种不同态度。能够是受害者心态,怨天尤人,责备他人的不是(项目时间太少、产品推出不当、以及和队友发生争执等等),通通归咎于外部原因。还有一种就是玩家心态,审视自己的能力,一旦确定能做补救。毫不犹豫地贡献自己的能量。

尽管短时间内,受害者心态能抚慰我们受伤的心情,可是从长远角度看,拥有玩家心态的人才干不断进步与发展。

在创业公司工作压力是非常大的。而且随着压力程度的添加,人们往往不但不能勇于承担个人责任。反而非常easy陷入互相推诿以逃避责任的怪圈。

而这样做,我不得不遗憾的说,最后终将导致失望和解聘。

7.不断学习与回想,持之以恒

研究发现。仅仅要我们有足够的激情和动力,上述种种品质通过学习和培养都是能够后天养成的。而学习这些技巧的全部能量来源于一种叫做“坚忍不拔”的品质。

Angela Lee曾在她的TED演讲《The key to success?

Grit》(《成功的关键:坚持》)中。提及这个概念:

坚忍不拔是一种专注于长远目标的激情和毅力。坚持梦想。坚持未来,不是一天两天,也不是一周两周,更不是一个月两个月。而是持续多年。不畏艰辛、勇往直前。为了目标而奋斗。

假设我们也能拥有这样的坚忍不拔的品质,愿意投入时间回想自己的所作所为,那么就能发现自己的薄弱之处和须要改进的地方。然后随着时间的推移,不断进步的你必将会成为一个更为优秀的软件project师。在早期假设能得到大咖的指点迷津。尽早行进在正确的方向,也能让我们走的更远。

上述这些技能即便是在更为成熟的公司也是能助你一臂之力的,只是在初创公司发挥的作用更大,原因么,上面也有提到,由于初创公司的时间更紧凑。当然。并非说不具备这些技能就不是一个好的project师了。这仅仅能说明。可能你不大适合这样的创业环境。

可是。假设你立志要成为一个优秀的软件project师。不要让上面这7点品质限制你的发展。那么,从如今開始,写个计划学习和提高这些技能吧。

译文链接:http://www.codeceo.com/article/7-feature-programmer-need.html

英文原文:What
Qualities Make a Good Startup Engineer?


翻译作者:码农网 –
小峰

优秀软件project师必备的7大特性的更多相关文章

  1. 软件project师的属性与发展

    工作近十年了.[软件project师] 一直是我职业 title 的中心词,仅仅是前面的修饰语在不断变化,从0基础.中级.高级到资深. 事实上 [软件project师] 是一个非常泛化的定义.工作现实 ...

  2. Atitit. 高级软件project师and 普通的差别 高级编程的门槛总结

    Atitit.  高级软件project师and 普通的差别 高级编程的门槛总结 1. 完备的知识体系 2 2. 编程理论/原理的掌握 2 1.1. 掌握经常使用的概念(ORM,IOC.AOP,eve ...

  3. 怎样以学习单片机为契机,逐步成为优秀的project师

    现状 不知道阅读本文的读者,在初学单片机时是否和我以前一样迷茫.看到各种新的术语,疑惑不解:不知道从何学起:照着书中的样例一步一步做都没有问题,可是自己试着做东西,遇到各种问题却不会解决,向别人提问, ...

  4. 软件project师周兆熊给IT学子的倾情奉献

    [来信] 贺老师: 你好,我是中兴通讯的一名软件开发project师,名叫周兆熊. 近期看了您的新书<逆袭大学:传给IT学子的正能量>,感觉你真心为当代学子答疑解惑.非常值得敬佩! 从上大 ...

  5. 全端project师必备技能汇总

    首先,看一张前端知识结构图:  (原文: ithomer) 图片的形式具有诸多的不便.缺失源图的我们.无法为此图贡献些什么,随着时间的迁移,也许有些技术点会发生改变.所以有了这个GitHub项目.我们 ...

  6. 招一位安防软件project师,嵌入式开发project师

    岗位职责 1.负责海思平台IPC产品应用层软件设计及维护 2.私有平台协议对接及为第三方提供技术支持. 任职资格: 1.较强的学习.领悟能力,能够高速熟悉公司现有代码. 2.熟练掌握C.C++开发语言 ...

  7. 美国程序猿(软件project师)平均年薪状况调查

    来源站点:Indeed.com&computerengineeringsalarydata.com Average Software Engineer Salary by 50 States ...

  8. 2014年java软件project师面试题收集

    如果页面中于五个li标签.写个js使点击每个li返回他的index <!doctype html> <html> <head> <style> li{c ...

  9. 单片机project师必备的知识

    C语言编程 程序编译过程  哪部分干什么 数据结构  链表 二叉树 算法   数组  堆栈 队列算法 遍历 常量在内存中的表现形式 语法和内存的相应关系 数电 UML 类图 时序图 状态图 用例图   ...

随机推荐

  1. 【Codeforces576E_CF576E】Painting Edges(可撤销并查集+线段树分治)

    题目 CF576E 分析: 从前天早上肝到明天早上qwq其实颓了一上午MC ,自己瞎yy然后1A,写篇博客庆祝一下. 首先做这题之前推荐一道很相似的题:[BZOJ4025]二分图(可撤销并查集+线段树 ...

  2. 【BZOJ2565】最长双回文串 (Manacher算法)

    题目: BZOJ2565 分析: 首先看到回文串,肯定能想到Manacher算法.下文中字符串\(s\)是输入的字符串\(str\)在Manacher算法中添加了字符'#'后的字符串 (构造方式如下) ...

  3. 【转】MySQL存储引擎中的MyISAM和InnoDB区别详解

    转自:http://www.jb51.net/article/62457.htm MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Ac ...

  4. BOM 标记

    BOM 是 Byte Order Mark 的简称,即字节序标记.用于标记文本流: 表示文本流的字节顺序,是小端序(little-endian)还是大端序(big-endian); 表示文本流是 Un ...

  5. [ HNOI 2006 ] 公路修建问题

    \(\\\) \(Description\) 一个\(N\)个点\(M\)条边的图,每条边可以选择\(w_i,p_i\)两个边权之一,现求一个生成树上的最大边权最小值,要求这棵生成树上至少有\(K\) ...

  6. 常用animation动画

    /*编辑动画名*/ animation-name: myDemo; /*动画持续时间*/ animation-duration: 6s; /*动画方向*/ /*reverse 反向*/ /*alter ...

  7. Android 检查手机上是否安装了指定的软件(根据包名检测)

    Android检查手机上是否安装了指定的软件(根据包名检测) /** * 检查手机上是否安装了指定的软件 * @param context * @param packageName * @return ...

  8. PHP开发之旅-表单验证

    一.创建表单 <form name = "login" method = "post" action="contact.php?action=l ...

  9. ScrollView在调试状态一点击就挂的原因(OnMouseActivate)

    这几天做的一个任务是做一个Dialog,需要在这个Dialog中添加一个自定义的CSrollvew类,但是遇到一个比较扯淡的问题,程序直接运行时可以的,调试状态下一点击CSrollview就挂了.而且 ...

  10. JS高级——静态成员与实例成员

    静态成员:构造函数的属性和方法 实例成员:实例化之后对象的属性和方法 // $("#id").css(); // $("#id").text(); // $.t ...