如何成为一个管理者?沟通 沟通是所有问题的关键。我曾经见过项目和公司由于团队成员沟通不畅,而导致闹矛盾,甚至分解破裂。 忽略所有沟通中的“中间人”,简单直接的沟通是最有效的。因为在沟通过程中,任何一个中间人的信息都有可能是不完全对的,从而容易导致信息被曲解。 企业应该是最深有感受的,这也是它效率慢的原因,因为做出的每一个决定都必须经过十几个人,而这正是小团队的优势所在。简单明了的沟通方式意味着你可以比别人更快得到信息,你可以更清晰明确得理解你的任务,对你来说这是一个优势,所以千万不要害怕去问一些具体的问题。 协作 除了成为一个好的交流者,你还需要一个好的合作者,让我们面对现实吧,程序员其实并不是最社会的人。 你不仅需要和其他开发人员进行合作,还要与你的经理,也许还有你的直接客户进行协作。合作不仅意味着共同协作完成工作,还意味着你要知道其中的利害攸关,这是一种很好的团队协作精神。如果你觉得很难和其他人有效地合作,可以尝试一下结对编程,结对编程的本质就是合作。 知识偏差 维基百科的解释:“知识偏差是一种认知上的偏差,这种偏差导致聪明的人很难从知情人士的角度来正常思考问题。” 基本上,资深开发人员很难解释一个简单的问题,来让初级开发人员理解。这是因为他们都非常熟悉这些问题,并且可以通过自己的技术来解决它,但是当他们尝试去解释给别人的时候,却失败了,因为他们的解释只是他们脑中的一个总结。 简单的说,当你认为知道一些东西的时候,其实你还没有真正了解它。为了打破这点,你需要使用特定的语言。在解释一个简单的细节的时候,你可能会觉得很可笑,但是请继续,因为你的心态并不等于接受者的心态。也许你认为很简单,但是听讲的人可不一定这样认为。 了解你的领域 如果你认为自己是编程专家,然后要做一个在编程领域有所建树的专家。那么请了解并熟知你的领域,不要害怕说不,即使你觉得说多了不合适。 简而言之,作为一个专家,你要敢于说不,因为那意味着你在捍卫你的真理,在你的同龄人当中,你大多数时间都可能是对的。了解你的领域并不意味着你一定要有一个CS学位,而是说你要在你所在的领域中,有一定的经验和实践。你需要提高自己的技能,不仅仅局限于编程,而是在整个计算机领域。作为一个专家也意味着你可以找到一个问题的最佳编程设计方案,这也是编码的“副作用”。 了解你的业务 在不知道业务的问题,以及他们正在试图解决你的代码的情况下,没有人可以创造出良好的软件。 你需要对你的业务积极主动,并且要有兴趣,因为那将反映出你的工作状态。如果没有清晰的目标和具体的问题,代码会在不经意间变得很混乱,这就是代码如何运作的。你需要严控哪些功能,特别是如何控制,但是对于业务的价值,你必须十分清楚。 如果你觉得你的专业知识和业务目标调整的不是很好,那么请不要接受这份工作。珍惜你的时间,因为它是无价的。 代码套路 要不断完善自己,首先要清楚的知道自己处于什么水平。 对于程序员来说,代码套路是种练习方式,通过实践和寻找更好的不同问题的解决方案,来提高自己的技能。你可以在Euler、CodeKata或者Topcoder这些项目中试着研究代码套路。Topcoder甚至为那些找到更好的解决方案的编程人员提供了奖品。 总结编程体现出的更多的则是社交技巧。要成为一个优秀的程序员,首先你必须独立工作,如果你是一个比较内向的人。然后,熟练掌握编程原理。 你要不断地提升自己,不断地学习。要真正实现职业化,你需要了解你的业务,以及你正在试图解决的代码问题。代码是整个问题解决方案的一个副产品,只是贡献了一小部分力量。而解决方案的思路,协作技能,以及你解决问题需要使用的工具才是让你成为一个受人尊敬的专业人士的关键。 更多关于成为一名专业人士的要素,或者任何你想添加到这个列表中的要素,大家都可以添加到评论中。 |