- 我是一个线程(修订版)
- 我是一个 Java class
- Javascript:一个屌丝的逆袭
- Java : 一个帝国的诞生
- JSP 一个装配工的没落
- TCP/IP 之 大明王朝邮差
- TCP/IP 之大明内阁
- TCP/IP 之蓟辽督师
- CPU 阿甘
- CPU 阿甘之烦恼
- CPU 阿甘:函数调用的秘密
- 我是一个网卡
- 我是一个路由器
- 我是一个进程
- 我是一块硬盘(上)
- 我是一块硬盘(下)
- 我是一个键盘
- 张大胖的 socket
- 张大胖学递归
- 学习面向对象的令狐冲
- 张大胖学数据库
- 数据库村的旺财和小强
- 小李的数据库之旅(上)
- 小李的数据库之旅(下)
- 漫画:什么是机器学习?
- 那些烦人的同步和互斥问题
- IE 为什么把火狐和 Chrome 给打伤了?
- 对浏览器村的第二次采访
- 节约标兵 IE 的自述
- EMail 诞生记
- Email 诞生记(下)
- Http 历险记(上)
- Http 历险记(下)-- Struts 的秘密
- 动物王国的面向对象
- 冯·诺伊曼计算机的诞生
- Http Server : 一个差生的逆袭
- 张大胖的加法器
- 从 1 加到 100:一道简单的数学题挑战下你的大脑
- 编程语言
- Javascript:一个屌丝的逆袭
- 计算机语言之战
- 我和编程语言的爱恨情仇(上)
- 我和编程语言的爱恨情仇(下)
- Android 为什么选择了 Java
- iOS 为什么选择了 Object-C?
- Basic : 一个老兵的自述
- Node.js : 我只需要一个店小二
- 命令式编程 vs 声明式编程
- 编译还是解释?
- 程序人生
- “架构师"小赵
- 师兄说
- 师姐说
- 小王的架构师之路
- 小李的版本管理系统
- 小超穿越记
- 小李的 Build 之路(上)
- 小李的 Build 之路(下)
- 张大胖改 Bug
- 我的编程之路--大学趣事
- 码农小王的一天
- 小李在外企
- 张大胖的需求估算
- 从厨师到码农
- 聊一聊那些神一样的程序员们(上)
- 聊一聊那些神一样的程序员们(中)
- 聊一聊那些神一样的程序员们(下)
- 谁是互联网之父?
- 一个价值百万的创业教训
- 让自己与众不同 - 提升工作的价值
- 看看你的“易燃性”
- 从无聊的工作中寻找价值
- 什么样的学生适合报考计算机?
- 谈谈程序员的职业方向(上)
- 谈谈程序员的职业方向(中)
- 谈谈程序员的职业方向(下)
- 谈谈培训班的作用
- 码农需要知道的“潜规则”
- 学习编程的加速度
- 码农在工作中的必备能力
- 码农和英语
- 老司机经验
- 假如时光能够倒流, 我会这么学习 Java
- 假如我是计算机系老师
- 学会编程, 而不是学会 Java
- 从增删改查中突围
- 抽象:程序员必备的能力
- 懒就一个字
- 编程的自学方法
- 小王买房记
- 从一道面试题谈谈一线码农应该具备的基本素质
- 想写框架的看过来
- 苹果手机变砖头以后
- 如何快速的学习一门技术?
- 唯一不变的是变化: 谈谈微信应用号
- 什么是企业应用?
- 勿以浮沙筑高台
- 为什么敏捷开发难于成功?
- localhost vs 127.0.0.1
- GitHub/Stackoverflow 找工作时有什么用?
- 动词 or 名词 :这是一个问题
- 如何选择入行语言
- 有时候,沉默是金
- 零 Bug 的代码是怎么炼成的?
- 浮点数为什么不精确?
- 文章错误大全
- Open Source--不要为了开源而开源
- 一不留神,代码就腐化了
- 先做个“键盘侠”, 再来写程序
- 不加断点调试的程序员是好程序员
- 码农必备技能:烂代码的处理之道(上)
- 码农必备技能:烂代码的处理之道(下)
- 学习数据结构有用吗?
- 从现在开始,丰富你的简历
- 那些永不过时的书,你看过几本吗?
- 学好编程必备的一个品质你知道吗?
- 你最爱的 Java
- 搞懂了这几点,你就学会了 Web 编程
- Spring 的本质系列(1) -- 依赖注入
- Spring 本质系列(2)-AOP
- 三层架构和 MVC 那点事儿
- Java 帝国之拨云见日识回调
- 小张的 Duck Typing
- JDBC 的诞生
- JDBC 后传
- 一个不安分的 JDBC 驱动
- Java 帝国之 Java bean (上)
- Java 帝国之 Java bean(下)
- Java 帝国之函数式编程
- Java 帝国之函数式编程(下)
- 关于 Java 初学者需要知道的 10 件事
- JUnit 你不知道的那些事儿
- 圣诞礼物:Java EE 的历史
- Java EE 读书指南
- 给小白的 Java EE 指南
- 给小白的 Java EE 指南(2)
- 给小白的 Java EE 生存指南(3) : XML
- 给小白的 Java EE 生存指南(4) : 一只叫 Tom 的猫
- 给小白的 Java EE 指南(5) : AJAX
- 给小白的 Java EE 生存指南(6) :Java 反射
- 闲聊
- "饿了么"初体验
- 来自大脑的控诉
- 一个高中生是怎么玩自媒体的?
- 尝试 分答
- 到底应不应该上培训班?
- 自学编程中遇到问题怎么办?
- 据说 99%的初级程序员看完后都不迷茫了
- 一行代码引发的“血案”
- 对一个死锁问题的思考
- 通过外包进入名企
- 请开往十年前的今天
- 为什么自学中最好有个师傅指导一下?
- 这个网站值得你花时间投入
- 为什么你无法坚持自学编程?
让自己与众不同 - 提升工作的价值
前言
让自己与众不同,让自己在人群中脱颖而出, 这种很多码农都想做到的。
怎么才能做到与众不同呢? 梁悦的文章分享了自己的故事,朴实无华,看似都是不太起眼的小事, 但慢慢累积就成就了一个与众不同的人。 文章比较长, 但全是操作性很强的干货, 强烈推荐阅读。
如果你想联系梁悦, 可以通过微信号 lion829 找到他。
我的职业生涯的大部分时间都是在大公司作为技术工程师度过的,我个人一直不赞同在大公司工作就是做螺丝钉,这往往取决于个人的适应性和学习能力。能够在工作中发现机会,培养和建立自己的特长,理解和体会做每件事情的意义,做到自我驱动(Self Directed),我觉得非常重要。这一篇结合自己的一些小故事,从几个方面和大家分享一下。
1. 创新工具提升工作效率 作为技术工程师,不论在哪里工作,如果发现一些重复性的工作,总会想办法通过现有工具或者自己写个小程序去提升工作效率,我相信很多同事都有类似的想法和实践。
我记得 2006 年在 ODS 工作的时候,当时主要从事数据库相关的开发工作,我们 CVS 里的数据表以及存储过程文件等等,和 DB2 数据库里取出来的对象定义 DDL 格式不匹配,这造成我们没法通过直接比较的方式确认我们的 change 确实部署成功了,整个团队都要花很多手工的工作去做比对。我当时做了一个小工具叫 DB2ExtractDDL,去把 DB2 DDL 按照我们 CVS 里文件内容的格式输出,这样两边就可以很容易比较了。工具没有多酷炫,当时技术底子很薄,就是一个 Java class 1000 多行代码,命令行 BAT 执行,但是足够解决团队的难题。后来有别的人基于我的 class 开发和 beyond compare 集成起来做更快速的比较,再后来 2009 年作为 regular 加入 IBM 以后我和同事 Will 又继续在这个基础上开发了 myDB2, 让数据库相关的重复工作都可以一键完成。
很高兴今天仍然有人在使用这些工具; 也正因为做这个工具,我对 DB2,SQL,数据字典更加了解,既帮助了团队,也丰富了自己的技术知识。 2. 把项目所学应用到更广的领域 技术工程师的技能都是日积月累,非一日之功,工作更没有高低贵贱之分。今天研究的技术和问题,说不定以后什么地方就用到了。
2010 年上半年的时候在 DSW Quote team 的时候开发过 Excel 和 Symphony(IBM Open Office 的前身) 的报表导入导出,当时和我的 team lead Max 一起把这块当时流行的技术和难题(POI, JXL, XML) 都看的很通透,PS: 怀念当时每天都有很多很多时间 coding:-)。2010 年下半年的时候忽然有一天我的经理 Harry 转发了一个深圳华为的客户请求,恰好是关于 Excel 报表导出的性能问题,当时看了以后心里有一些把握可以解决,所以就征得了 Harry/Max 的同意,和 IBM 当地的项目经理以及客户确定了出差行程。当时去深圳出差了两个星期,因为第一次在客户现场,陌生的环境和问题背后复杂的业务逻辑,还是有一些困难需要时间去学习和了解,不过因为自己在之前项目上的积累最后还是顺利的完成了任务,把客户原先基于 POI 的实现基于纯 XML 的 spreadsheet 格式重写了一遍,规避了 Apache POI 在处理大数据量上的性能问题。
还有一个例子是 Web 安全和 AppScan。当时 AppScan 作为 Web 安全的知名产品被 IBM 收购没有多久,DSW 所有的 team 都开始用 AppScan 做安全扫描和漏洞修复,DSW team 里已经有很资深的安全专家 Pipin 等等因为 AppScan 的 skill 可以去客户做咨询服务,这在当时是一个 team 的新热点。我所在的 DSW Quote team 也一样,当时的 owner 是 Gavin。有一天 Harry 找到我说 Gavin 要做手术休长假,想请我帮忙继续负责 Quote team 的 AppScan 工作,当时我并没有想到 AppScan 日后给我带了很多机会。现在已经不记得当时做了多少个月的 AppScan focal,AppScan 的产品知识和 Web 安全漏洞都在那段时间慢慢掌握了。当时有很多 IBM 的银行客户急需 Web 安全扫描和漏洞修复的咨询服务,有很多出差机会。我自己作为咨询顾问帮助过工商银行,台湾的中华信托银行和上海大众。我们也成立了 AppScan 的学习小组,一起把 AppScan 白盒扫描,黑盒扫描,企业版等逐步了解,和同事们一起把 Web 安全变成了 DSW China team 的核心竞争力的一部分。 3. 在团队合作中发挥自己的优势 在研发团队当中,有很多机会去培养和建立自己的专长,通过团队协作以及跨团队合作,能够让更多的人知道你的专长,提升自己的技术声望。
在 SQO 工作的时候,Quote Status Search 的性能一直是个大问题,特别是第三季度结尾(3rd Quarter End) 和年终(Year End) 的时候,所有 IBM 销售人员都在收单,DSW 生产环境经常支撑不住,每次 DBA 找到的根源都是 Quote Status Search 太慢了,因为大部分的业务逻辑都在数据库存储过程中执行起来很慢,占用了大量的数据库连接。那个时候没有架构上的重要改变(比如缓存,读写分离等等),主要就是一次又一次的对存储过程进行性能调优,积累了大量的经验。2012 年的时候 DBA 发现性能问题出在了另一个应用身上,那个时候我们建议对 DSW 所有应用的所有存储过程来一次性能审查,每个 team 都出人组成了虚拟团队专门进行集中调优工作,我有机会去审查别的 team 的性能问题并帮助进行调优。最后的效果非常的好,DSW 顺利度过了 2012 年的 3rd Quarter End 和 Year End,没有明显的性能问题,保证了生产环境的使用率。通过这次团队合作,也 让更多的同事具备了性能调优的基本技能,别的团队有 DB2 的性能问题也经常会像我咨询;我个人也因为跨团队的支持碰到了更多的疑难问题,对性能调优有了更多新的解决方法。 4. 在工作中快速提高英语能力 在外企工作英语是必备的技能,跨国项目需要用英语汇报进度和讨论问题。我承认多看美剧能够提高英语水平,但是其实工作中的英语环境其实也足够帮我们适应了。
一开始可能参加英语会议的机会并不多,但是每天都可以看到很多新的邮件。刚进入项目读这些邮件可能有些困难,不能了解所有的背景,但是至少可以学习到有经验的人是怎么写邮件的,看得多了,自己写邮件的时候也会自然的引用类似的句式,会觉得越来越顺,查翻译软件的次数越来越少。
对于技术或者问题讨论的邮件或者文档,我会尽量写的很详细,锻炼自己的写作能力,但是也会考虑看的人的关注点。比如一个 production defect,如果是第一次做分析,我会尝试把完整的分析过程、问题定位、问题影响、修复建议都分段写上,这样同时可以方便 Business Analyst 或者 team lead 做决定。
在邮件和文档里摸爬滚打了一段时间以后,参加英语会议不会有什么恐惧,因为很多句子和词语已经在邮件里耳濡目染了。我作为 team member 刚到 SQO team 的时候还没有 daily scrum, 几个国内外的 leader 也就是一周开一次一个小时的会,我就请 Max 把会议邀请转给我了,每个礼拜都拨进去听一个小时,逐渐熟悉几个人的发音。我现在不再操心没有机会听说英语了,主持会议也很自如。 5. 参加社区活动提高沟通能力 工程师都是低调安静的,但是还是需要一定的沟通能力,把做的事情和具备的能力准确表达出来。我去年去参观 ThoughtWorks 北京研发中心,他们每天早上有一个固定节目叫做 CodingCon, 主要是工程师来分享一下最近的代码实现和技术难题。现在 SCW 项目组也有 CodingCon 这个节目了,每天都有半个小时,在不占用大家太多时间的情况下,同事们轮流做一些技术和业务的分享,共同提高。
其实在二线和三线经理的部门,都有很多分享交流的机会,只要觉得分享的内容对更多的人有帮助,就可以拿出来讲,让更多的人认识你。在公司层面也有很多社区,QSE(Quality Software Engineering, 质量软件工程),AI(Academic Initiative, 校园人才培训) 等等,我以前都有参与过,可以认识更多的同事。 6. 寻找自己的导师和榜样 作为技术工程师,职业规划很重要,职业的发展方向也有很多。在公司和项目里,我们可以寻找自己的导师(Mentor),也可以请经理安排自己的 mentor,而且也不是说只能有一个 mentor,多和有经验的同事沟通,可能会帮助你做职业发展的规划。
个人有很明确的方向非常好,暂时没有也没有关系,可以通过观察别人做的好的地方,看适合不适合自己从事。如果你想做 Business Analyst(业务分析),不妨在开发或者测试的工作中多花一点点时间像 BA 一样把业务问题描述清楚,我很开心现在 SCW 项目组的 WYNTK(What You Need To Know) 终于用起来了,每天都有同事在上面更新业务规则。如果你想做架构师,可以去仔细留意架构师的 Solution Design Document,学习架构师关注的系统关系、方案设计、接口定义。 结语 工作的时间久了,才能体会到工作的多样性,人的多样性。我自己因为工作的需要有很多的尝试,业务、架构、开发、测试、运维甚至项目管理我都投入了精力做了一些,我也非常尊重在某一个领域精专的同事。我们的工作说来普通,但是也一样可以因为热情的投入让工作变得与众不同。
Distinguish yourself, to be Distinguished Engineer.
感谢能够读到这里的朋友,这篇文章纯属个人观点,希望能够有所帮助。也欢迎各位分享你的故事,共同进步。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论