编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问、自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理。现居住于加州中部城市弗雷斯诺(Fresno)。关注并指导IT 创业,著有《开发人员 创业指南 / A Developer’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万美元。

成为更优秀的开发人员:第二步-知道你的核心竞争力相关推荐

  1. 成为更优秀的开发人员:第一步-“制造”粉丝

    编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问.自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理.现居住于加州中部城市 ...

  2. im和音视频开发哪个更好_找时间成为更好的开发人员

    im和音视频开发哪个更好 There's no time for anything. At least that's how it feels doesn't it? No time to learn ...

  3. 一名优秀的开发人员,空闲时间会敲代码吗

    原网页:Do I Need to Code in My Free Time to Be a Good Developer? 作者:Maxim Chechenev "只有在空闲时间也敲代码,才 ...

  4. 开发java流程步骤,优秀Java开发人员的10个步骤

    一.对OO原则有很强的基础和理解 对于Java开发人员来说,必须对面向对象编程有很强的理解.没有在OOPS上有很强的基础,就不能实现像Java这样的面向对象编程语言的美.如果你不知道什么是OOPS,即 ...

  5. [译]优秀的开发人员是培养出来的,不是招聘过来的

    译者:baiyutang 作者:Eduards Sizovs 招聘市场上,每一家公司都在寻找技术最优秀的人才.这些公司都在等着天才工程师会从不知道什么地方突然出现,就好像哪里有什么天才秘密工厂似的.这 ...

  6. 做一名优秀的软件开发qa_如何成为一名优秀的开发人员

    做一名优秀的软件开发qa As a PHP developer, or any kind of developer as a matter of fact, you need to constantl ...

  7. This is why you never end up hiring good developers 这就是为什么你永远招不到优秀的开发人员

    中文为我的译文,英文为原文 英文原文地址:http://qz.com/258066/this-is-why-you-dont-hire-good-developers/ 这就是为什么你永远招不到优秀的 ...

  8. 业余软件开发_我需要在业余时间编码才能成为一名优秀的开发人员

    业余软件开发 "You need to code in your spare time to be a good developer" - I've been hearing th ...

  9. 致谢 开源开发者的贡献_对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点...

    致谢 开源开发者的贡献 by Luciano Strika 通过卢西亚诺·斯特里卡(Luciano Strika) 对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点 (How contr ...

最新文章

  1. Linux修改主机名的方法
  2. 元学习Meta-Learning
  3. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
  4. 如何站在期刊角度上看论文写作
  5. php 微信开发 菜单,微信公众号中个性化菜单的开发实例
  6. 亲手完成4大企业实战项目,挑战Python全栈高薪岗位!
  7. 依赖注入:一个Mini版的依赖注入框架
  8. Java工程师必备技能
  9. Linux下如何抓取串口码流,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系...
  10. IDEA访问数据库时,某一个字段数据库中有值但是访问到的数据始终是null
  11. 信息学奥赛一本通(1122:计算鞍点)
  12. jQuery焦点图插件
  13. SQL Server 2014,表变量上的非聚集索引
  14. PyCharm修改主题和修改背景
  15. CAD图形不闭合问题的解决方法
  16. Vue进阶-异步动态加载组件
  17. 数据分析实战——淘宝母婴用品购买情况
  18. skyfire塞班_Symbian Foundation的灯光熄灭
  19. pythonend什么意思_Python中的 \t 和 end=” 是什么意思?
  20. U盘装系统:魔方U盘启动制作

热门文章

  1. eclipse java maven_java – 非常轻量级的Eclipse-Maven集成 – 仅...
  2. 网络通道数2的倍数_限流笔记-通道限流(二)
  3. professional中文_Microsoft office 2007 简体中文版
  4. 【Codeforces - 977D】Divide by three, multiply by two(思维构造)
  5. 【HDU - 4055】Number String(dp,思维)
  6. 【CodeForces - 689D】Friends and Subsequences(RMQ,二分 或单调队列)
  7. 【CodeForces - 1152C 】Neko does Maths(数学数论,lcm,gcd性质)
  8. 【2018ACM山东省赛 - C】Cities(最小生成树变形优化,贪心思维)
  9. springboot 不响应字段为空_面试官扎心一问:Tomcat 在 SpringBoot 中是如何启动的?...
  10. Tomcat6.0.37,tomcat6.0.37,下访问Web项目,jsp项目不需要输入项目名称和端口号的配置方法...