在微软的八个月里,我学到了这些

来源:互联网 发布:mysql启动错误1067 编辑:程序博客网 时间:2024/04/28 17:34

期望企业里没有文件。我在公司看到的大部分知识传送是通过交谈和实践会议,知识库某些部位的产生只是通过电子邮件,而且不会被永久保存,这就能够避免信息流进入数字世界里。如果有人不在工作岗位,没人能够顶替他的工作该怎么办?没关系,如果在我的公司,会有大量的wiki网页可供搜索。

你做什么事并不重要,重要的是你在推销什么。你可以花数日来制作更好的代码库,写更多的健康代码,修补其他的错误。但只要没有大的业务影响你就没办法出售它,这就意味着它一文不值。没人会因为你在他们的核心里有固定软件开发模式或在架构上有研究而欣赏你,事实上他们对你根本不服气。当我还是学生的时候我并没有意识到这些。

并不是每个人都对工程学有热情。你不要一直和别人一起满腔热忱的制造美妙的软件,想写出更好的代码也不是当务之急。通常人们还有很多其他事要做(比如家庭和孩子)。总之我已经知道了,别期望着每个人都是热情洋溢的。

一天花2-3小时编程就很不错了。在接手这项工作之前,我每天能花8-10小时来为我的个人项目编码,但是在微软这种工作环境里,几乎抽不出2小时来编码。我花了大部分时间试着想出其他人是怎样完成非注释/非文件的代码工作,怎样调节除工作以外的事情,并出席每天的会议。很显然,不仅仅是我有这样的困惑,一个团队很可能几天都没有人向源代码控制提交信号任务。

不回馈技术社区是很正常的。我在我的组织里几乎没看到任何一个博客或开源开发者愿意奉献他们的时间来回馈组织,每个人都热爱在搜索结果里找到Stack Overflow答案,但没人愿意贡献出那些答案,我现在能理解了。

这里对外界的了解知之甚少。我敢打赌,你每天看的那些最新的技术和工具书本都是在博客,Reddit或者Hacker News上。这种情况在这里却不那么普遍,令我惊奇的是,我在Windows Azure团队里遇到的人当中没一个听过他们的直接竞争对手Heroku和Rackspace。这也能理解,并不是每个人都要知道这些。

在公司里完成任务是最重要的。如果你的经理需要一个正在做的按钮,没人关心你弄得乱七八糟,只要功能齐全就行了。在学校里我以为代码质量和结果是一样重要的,结果证明我错了。

复制黏贴代码也行得通。如果有人看到你在公司外面复制黏贴代码,那么你肯定免不了吃拳头。我见过源文件复制黏贴贯穿整个项目,只要它最后能完成任务就行了(就像上面提到的),没人关心你是否创造了一个不可维护的代码。

代码审查可以被跳过。为了敏捷性,代码审查可以被跳过。这也是我的团队文化的一部分,如果你把别人的代码搞得一团糟,那么代码审查就会被发送出去。通常情况下它是不会停下来的,你可以等一段时间直到它的爆鸣声引起别人的注意,可能会有人回复。

最新软件。并不是这里的每个人都喜欢最新版本的软件。差不多90%的同事使用 Office、Windows、Visual Studio 和.NET Framework的老版本。一个普遍观点就是最新版本会打破现存的工作流程。这可能是同样的原因为什么一些企业任然在Java 1.3-1.5上运行软件。所以我明白了在这样的工作环境里不要指望最新软件了。

你的专长通常情况下无用武之地。每年有上千名大学毕业生被企业录用,并常常被随机分配到一个团队(1.5年内不能改变)。不管你是否已经掌握了MongoDB,创造了iOS 开发,还是Apache committer,亦或制作了属于你自己的Web库,设计了用户界面等等。你被雇佣就是去做那些需要被做的事,我不希望那样,因为在企业很难找到和你的爱好相匹配的工作。

最后,在大学的时候我没意识到这个事实:你为你的老板做事的同时也是为了钱而工作。

原创粉丝点击