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

编者按:原文作者罗布·沃林(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万美元。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 字体间间隔,TextView设置行间距、字体间距

一、设置行间距1、设置行间距:android:lineSpacingExtra,取值范围:正数、负数和0,正数表示增加相应的大小,负数表示减少相应的大小,0表示无变化2、设置行间距的倍数:android:lineSpacingMultipl…

破解mysql数据库的密码

发现的1小问题 语句打错以后应该退出本语句,再继续打新语句.也可以打\c,退出本语句. 如何破解数据库的密码: 1:通过任务管理器或者服务管理,关掉mysqld(服务进程) 2:通过命令行特殊参数开启mysqld Mysqld --skip-grant-tables 3:此时,mysqld服务进程已经打开,并且,不需要权限检…

Diango博客--6.Markdown 文章自动生成目录

文章目录0.思路引导1.在文中插入目录2.在页面的任何地方插入目录3.美化标题的锚点 URL0.思路引导 Markdown 在解析内容的同时还可以自动提取整个内容的目录结构,本文内容将从以下几个方面展开: 1)在文中插入目录; 2)在…

Java中对象和引用的理解

2019独角兽企业重金招聘Python工程师标准>>> 偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两方面去更形象的认识理解,再去记忆。12一、对…

android怎样封装,如何封装属于自己的博客网站安卓APP 源码家园

说实话我今天在写这个文章的时候是我使用易语言(E4A\易安卓)的第一天,我也是易小白,但是的确可以用!我为什么写这个文章呢?因为之前我也想封装自己的网站,然后去网上找的在线封装生成APP,果然能封装好了&am…

程序员常犯的5个非技术性错误

一个好的软件开发人员需要培养两种技能:技术技能和非技术技能。不幸的是一些开发者只注重技术的部分,以致养成一些陋习,下面是最常犯的5个非技术性错误: 0. 缺乏自律 Jim Rohn曾经说过:自律是目标和成果之间的桥梁。我…

Redis进阶实践之二十 Redis的配置文件使用详解

一、引言   写完上一篇有关redis使用lua脚本的文章,就有意结束Redis这个系列的文章了,当然了,这里的结束只是我这个系列的结束,但是要学的东西还有很多。但是,好多天过去了,总是感觉好像还缺点什么…

web流程设计器 工作流的 整合视频教程 activiti画图 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器)本视频共讲了两种整合方式1. 流程设计器和其它工作流项目分开部署的方式2. 流程设计器和SSM框架项目整合在一起的方式视频大小 1.13 GB ~【…

Diango博客--7.自动生成文章摘要

文章目录0.思路引导1.方法一:覆写 save 方法2.方法二:使用 truncatechars 模板过滤器0.思路引导 博客文章的模型有一个 excerpt 字段,这个字段用于存储文章的摘要。 若在 django admin 后台手动为文章输入摘要,每次手动输入摘要…

android 增加触摸范围,android seekBar 增加点击和滑动范围

seekBar的的范围有限,有时候设计师要求高度为4dp,此时范围太小,很难滑动成功。因此,我们需要在不改变 UI 的前提下,增加点击和滑动范围。直接上代码:public class MainActivity extends AppCompatActivity …

特斯拉股价暴跌,疯狂烧钱是否真的能够带来高额回报?

“疯狂烧钱”并不能成为公司持续亏损的理由,反而可能成为公司升级转型的关键所在。 上周三,特斯拉发布第四季度财报,其后特斯拉CEO马斯克在电话会议上表示,特斯拉亏损收窄,营收同比增长88%,但与此同时其首…

android gravity参数,Gravity - [ Android中文手册 ] - 在线原生手册 - php中文网

Gravity版本:Android 4.0 r1结构继承关系public class Gravity extends Objectjava.lang.Objectandroid.view.Gravity类概述用来在一个更大容器中布置对象的标准常量和工具。常量public static final intAXIS_CLIP原始位控制右/底边界是否被剪切到它的容器中&#x…

Diango博客--8.解锁博客侧栏

文章目录0.思路引导1.[最新文章] 模板标签2.[归档] 模板标签3.[分类] 模板标签4.[标签云] 模板标签5.使用自定义的模板标签0.思路引导 博客侧边栏有四项内容:最新文章、归档、分类和标签云,效果展示如下: 这些内容相对比较固定和独立&…

十五、详述 IntelliJ IDEA 插件的安装及使用方法

正文 首先,进入插件安装界面: Mac:IntelliJ IDEA -> Preferences -> Plugins;Windows:File -> Settings -> Plugins.标注 1:显示 IntelliJ IDEA 的插件分类, All plugins:显示 Inte…

编程巨星的唯一秘诀

别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚…

面向数据流的设计方法

面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。 在软件工程的需求分析阶段,信息流是一个关键考虑。通常用数据流图描绘信息在系统中加工和流动的 情况。面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图…

AI研究的盲点:无解的神经网络内在逻辑

论人工神经网络内在逻辑的研究历史及现状。 伴随着大数据,人工智能(AI)在沉寂了多年之后,又迎来了新的高潮。在这场涉及大部分科学的革命中,人工神经网络释放了人工智能(AI)。但科学家们发现&a…

Diango博客--9.归档、分类和标签页

文章目录0.思路引导1.回顾2.归档页面3.分类页面4.标签页面0.思路引导 侧边栏已经正确地显示了最新文章列表、归档、分类、标签等信息,现在来完善归档、分类和标签功能。 当用户点击归档下的某个日期、分类栏目下的某个分类或者标签栏目下的某个标签时,…

android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程

写在前面本节将介绍如何使用Android Studio开发Android APP,和前面Eclipse ADT SDK搭建Android开发环境一样,本节也只是介绍一些基本东西,深入的,比如快捷键,小技巧等会再另一篇文章中详细地介绍!1.下载A…