成为更优秀的开发人员:第二步-知道你的核心竞争力
编者按:原文作者罗布·沃林(RobWalling)从事Web应用开发10年之久,担任过业内顾问、自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理。现居住于加州中部城市弗雷斯诺(Fresno)。关注并指导IT创业,著有《开发人员创业指南 / ADeveloper’s Guide to Launching a Startup》一书。以下是此系列的第二篇。
多年来,商业顾问一直指导企业要“知道你的核心竞争力。”也就是说,要“了解自己的优势,并坚持下去。”。例如:哈雷戴维森的摩托车世界闻名。但在香水行业,他们可能就不那么优秀了。世界上最好的六发式左轮手枪有一部分出自史密斯威森公司,但是我却不认为他们的自行车也能如此成功。麦当劳嘛…好吧,我不会说他们很会做食物,但是他们却非常擅长卖出大量的食物。但是他们绝不会,我的意思是永远不会把它兑换成现金,然后到拉斯维加斯赌场去做龙虾三明治。
知道自己的核心竞争力可以帮助开发人员远离麻烦。在我的职业生涯中,我大多是在编写web应用程序,并且自认为很擅长这个工作。但是也有一些我从未做过,也不会马上做好的事情:编写编译器、创建一个超高速搜索应用程序和实现一些我想到的加密算法。这使我想起了一个故事…
我当时在合作维护一个很成功的电子商务网站,我们在思考一个加密密码的方法,这样它们就不用以纯文本形式储存了。网站是用Java写的,我大约6个月之前用过Java,但即便是6个月过去了,无论如何我还是不能在Sun公司提供的文档中查到任何信息(有人知道如何高效地使用搜索工具么?)。(编注:推荐阅读《如何使用搜索技巧来成为一名高效的程序员》。)
对文档进行了几个小时的彻底搜查之后,我放弃了,打算编写一个快速简单的加密算法对密码进行散列处理。取每个字符的ASCII值,加点什么数,除以点什么数…不管怎样,始终都是数字,对吧?
我最终实现了。然后我们发布了这个应用程序。不出所料,几天之内人们一直抱怨无法登录。最初我想这肯定是某种诡异的巧合;十个人同时忘记他们的密码。我已经准备好调用文件了,直到大约调查了20分钟以后,我发现,当字符串中有两个字符是可见的ASCII码范围的边缘字符时,我的加密算法并不能真正地起作用。它确实处理了那些值,可是加密结果却是不可见字符,也被称为“控制”字符。
控制字符每跨越一个边界,不管是从数据库到应用程序、还是从应用程序到浏览器,都可能会因为层与层之间错误的编码而产生意外变化,所以这给我增添了许多困难。果然,一些错误的ASCII解码导致了一大批人无法登录。
这个案例让我学到了坚持自己优势的重要性。多次成功之后,我们经历了第一次挫折。好在我们没费多大力气就修复了它。
坚持自己的优势绝不表示你不该涉及新事物。恰恰相反,你必须不断学习来加固自己的核心竞争力,否则就可能落伍。当然,在这点上一定要明智。(编者注:Rob文中蕴含的意思可能是:要有选择性地学习新事物。例如:核心竞争力是Web开发,那么,应该选择和Web开发相关的新事物学习,而不是转而钻研加密。)
从web应用程序到桌面应用程序的跨渡并不是很大。从web应用程序转到编译器,(虽然有可能)这是很困难,远非看一两个教程就可以搞定的事情。当然,还要远离加密那个更繁琐的东西!对于那些完全超出你知识范围的任务,你先要花大量的时间做调查、渐渐熟悉这个主题、然后要慢慢学习,而不是复制粘贴你第一眼看见的示例代码。(编注:对于一位自由开发人员,Web开发或许是一个不错的选择,仅2010年12份,全球主要项目网站新增Web开发项目15,641个,涉及项目预算超过1700万美元。参见伯乐在线最新项目资讯)
译文出处:伯乐在线 - 职场博客
译文链接:http://www.jobbole.com/entry.php/428
原文作者:Rob Walling 编译:伯乐在线 敏捷翻译组 - 高志翔
如需转载,但请注明原文/译文出处、译文超链接和译者等信息,否则视为侵权,谢谢合作!