WizardWu 編程網

一位台灣的工程師,接觸 .NET 逾十年,近年研究 SQL Server、Performance Tuning、手機應用

博客园 首页 新随笔 联系 订阅 管理

新的一年,您在学习和工作上,想坚守所学,还是尝试转型呢?

 

(1) 继续钻研 C# 4.0 / AJAX / LINQ to ADLINQ to JavaScript / WF, WCF, WPF, Silverlight 4.0 / Design Patterns / Entity Framework / MVC / OR Mapping / jQuery / 并行计算 & PLINQ / 云计算 / Data Services & REST / Velocity (已被纳入 AppFabric) / .NET 4,5,6,7,8,9,10,11,12,13 .....很多很多新技术。从程序员变资深程序员,钱少一点也无所谓,顺便祈祷这间公司不要倒闭,或因为自己年纪大被裁员。世界上没有比技术更有趣的事。

(2) 接触 SD / Architecture 架构设计 / UML / Design Patterns / 组件、控件和框架的开发,或成为 R & D 人员,尽管相关职缺较少也无所谓,将来仍有机会转作企业的技术雇问或某公司的技术总监,或自己开工作室。若创业失败,至不济,回去软件公司当个老屁股程序员,和年轻人拼技术。世界上没有比技术更有趣的事。宁愿当宅男工程师 + 草食男,死也绝不考虑转型当油头粉面的 IT 业务员。

若要走这条路,建议一定要接触 Java / J2EE 的设计书籍或好手,而不要仅限于 .NET 领域 (不是 3-Tier 就是 MVC,不然顶多就是 PetShop),否則企業級应用在設計思维上,會永遠跳脱不了既有的巢臼,尤其是中大型应用系统的分层设计、组件设计,写过 J2EE 应用的人,在组件设计上有许多独到之处,Java 在这方面甚至还有 SCEA 企业架构师的证照。此外,像是跨异质操作系统的分布式事务,.NET 平台上会受限于 Windows 里才有的 DTC 事务协调器组件;而 Java 方面,则有 JTA (Java Transaction API),可达到跨 Windows 以外的异质操作系统上的数据库的分布式事务。

(3) 接触 SA 相关技能,如: UML、OOAD、MDA、BPM、企业流程的分析和规划,和业务员及客户的沟通技巧、对客户和主管的简报技巧、加强口才和忽悠能力…等等,可了解许多产业的 know-how 和特性。但要开始穿西装打领带、逐渐远离编程技术,但收入比程序员稍优,至少不怕一辈子没钱买房、结婚。

(4) 接触 PM 相关技能,如: 团队沟通技巧,和业务、客户的沟通技巧、对客户和主管的简报技巧、加强口才和忽悠能力…等等。没事再去考个 PMP 证照。逐渐远离所有技术,但相对的会有项目时程压力,工作压力也大得多,晚上还常会失眠,但收入比程序员优很多,至少不怕一辈子没钱买房、结婚。

(5) 钻研某种少人玩,或很少有人有耐心研究的技术,如: SAP、Oracle ERP 和 AP 开发、BI、OLAP、资讯安全(考個 CISSP、TCSE、CISA …证照),或某个高贵的 workflow 产品。学成之后,辞掉现在这间接不到项目做的软件公司;新工作的求职目标,锁定金融业,或火红的电子、蕊片或光电大厂,或某个非 IT 行业的 MIS 程序员职缺,准备在某间非 IT 的公司 (金融、电子、传产或买卖业),当后勤单位而非生财单位的 IT 通才,养老至死。

(6) 从编程人员,转作网络和系统管理、考个 MCSE 或 CCxE 证照。最后却发现自己要全包所有的 IT 工作,包括修水电、换电灯炮。但最后仍免不了要继续写程序,而且工作反而变多。每天接公司员工和老板臭骂的电话,说 E-mail 收不到信或垃圾信太多、公司网络速度变慢…等抱怨,连休假都要常赶回公司救火。

(7) 花个几年深入钻研 SQL 语句,学到有能力改善企业的旧系统中,旧 SQL 语句的性能,并专攻 SQL Server 或 Oracle 其中一种数据库变成专家。从编程人员,转作 DBA、考个 OCP 或 MCDBA 证照。最后却发现公司的系统,性能不佳时,明明超低超烂性能的代码不是你写的 (可能是外包或离职员工乱写的),但所有人却都臭骂你这个 DBA。老板限期,要你一个月内改善系统性能。最后自己仍要跳下来写程序、包下旧系统维护的工作,工作量反而变多。

我曾听台湾 IT 业界的人提到,某位数据库的稀有专家,帮别人公司的数据库做一次完整的 Tuning,收费可高达 30 万元台币 (人民币大约再除以 4)。不过其人必然是浸淫在 SQL 语句十几年的资深怪物级高手,绝非我等僅接触入门等级 SQL 语句的程序员,可与之比拟。

(8) 学习另一个 know-how,花个一年时间钻研: 会计、财务、金融、IT法律…等其中一至两项,最好再考个 会计…等相关证照,以期结合本身 IT 编程技能,能维护或写出需要特定 know-how 的系统,甚至写出可销售的产品,加强自己在公司的不可取代性。你一离职的话,系统就没人可维护,老板也要看你眼色。

(9) 转行,去当业务,练习口才和打扮得油头粉面,靠一张嘴吃饭,要加强忽悠和开会时说废话的能力,要接受专业的说废话训练。开始从宅男变型男,开始有女性会主动和你示好,运气好的话还可报公帐上酒店。且可避免像程序员,哪天眼睛会因为看萤幕看到瞎掉,或除夕夜还只能闭门猛啃 .NET 10 或 J2EE 10 的原文书,或大半辈子当工程师存的钱,最后都花在医院和复健。

(10) 转行,去卖羊肉串或香鸡排。但要先研究出好吃的秘方,并准备好打点流氓和警察、白道和黑道的地头费。否则每天日晒雨淋还赚不到钱,下场比写程序更惨。

(11) 整合 (2)、(8) 的技术能力,及对特定产业的深入了解,加上运气好的话进入对的公司,去撰写特定产业 (如: 金融、电信、电子、制造业、…),跨系统,甚至跨公司、跨上下游产商的 Middleware,联系不同系统的中间件,实现 SOA 的整合服务概念。不过要能接触到这一块,可能需要一些机运和一流的研发能力。

(12) 学习手机上的应用程序开发、靠创意突破,或转做嵌入式系统、重新学习 driver 或 firmware 的撰写,如果你的年纪还来得及转的话。

 

 

如果您问我自己要选哪一项的话,我暂时会选第 (8) 项吧?

玩技术累了,在做 ASP.NET 项目的公司又不被重视。准备花几个月,看纯纸本的 会计学、成本会计、ERP 财会系统开发…相关书籍。晚上不开计算机感觉也满不错的,不会被声光和音效占满一整天的时间。重点是…会计只要学一套、学一次就行了,不用每年追逐新版本,而我已经准备报考半年后的会计证照了。

而其中,我绝不可能选的是第 (9) 项,因为本人对该种嘴炮领域毫无兴趣。另一个原因,如同以下这份文章所描述的:

 

以下转贴自台湾在 2001 年 5 月发行的 Java 周报,原作者:洪志鹏 先生。 

----------------------------------------------

 

我爱比尔盖茨

 

五一劳动节放假那天,我带儿子到诚品敦南店儿童馆看书 (注:台湾 24 小时营业的知名书店)。在书架上看到小时候常看的一套,东方出版社的世界伟人传记,怀旧之情油然而生。在爱迪生、哥白尼、爱因斯坦等伟人之中,忽然发现一个新的名字,仔细一看,居然是 “比尔盖茨 (Bill Gates)”。 拿出这本新的伟人传记一看,果然是那个比尔盖茨没错,封面除了他的手绘肖像之外,还有微软和 Windows 的 Logo。当时心想世风已经沦落至此,原本用来激励儿童奋发向上的伟人传记中,也得加上这位强取豪夺的世界首富。忿忿不平之余,也不禁用力思考,比尔盖茨何德何能和诸位世界伟人并列。想来想去,居然还让我想到一些比尔老兄的好处。虽然还不足以和爱迪生、达文西并列,但至少不会觉得那么格格不入。我甚至开始有点喜欢比尔盖茨了,下面是我的理由:

  

第一,他是一个 “技术人”。 “非我族类,其心必异”,要是用最简单的方式,把我们一般科技公司的人分成两类的话,就是 “懂技术” 和 “不懂技术”,“技术人” 和 “非技术人” 两种。一般我们程序员、系统分析师、项目经理都具有技术背景、技术知识,所以是 “技术人”。 其它的大老板、业务部门的 Sales,营销部门,则是 “非技术人”。 科技公司当然以科技产品为主,所以 “技术人” 是直接制造产品的功臣。 在 “技术人” 眼中,Sales,Marketing 最好都有技术背景,这样大家都很清楚问题出在哪儿,比较好沟通,因为大家都讲 “行话”。 如果碰到不懂技术的 Sales 甚至主管,相信这是技术人最大的梦魇。 项目时程乱订,随便更改规格,任意答应客户的无理要求,一切向钱看。 而且最让技术人受不了的是,这些 “非技术人” 往往都自以为是技术人的上司,自以为穿西装打领带、油头粉面就胜过 T 恤牛仔裤。“非技术人” 以为技术人只懂技术,光凭好技术成不了大事,非得靠他们这些 “懂得卖” 的人才能使公司成功。

 

不过比尔盖茨的故事打破了这些神话,比尔盖茨是个 “技术人”,而且是个功力很强的 “技术人”。 没有人能否认他是一个好的 CEO,好的 Sales,好的 Marketing,是一个让对手闻风丧胆,或是咬牙切齿的公司领导人。但是基本上,他就是一个技术人。 在各大科技公司 MBA 挂帅的今日,比尔盖茨、Steve Jobs、杨致远 (注:以及后来的 Google 创办人),这些都是技术人出头天的例子。如果就 “技术人” 和 “非技术人” 两边站开,比尔盖茨毫无疑问是 “技术人”,是 “我们这边的人”。 所以这是我开始喜欢他的第一个理由。

 

理由二,他懂得技术的价值。记得之前比尔盖茨署名的信函上,他附加的头衔都是 “ CEO, and a Basic Programmer”,DOS 中的 BASIC 是他一炮而红的关键,也是他念念不忘的最爱。 从 BASIC,QUICK BASIC,VISUAL BASIC,到未来的 VB.NET,虽然 BASIC 这个字占的比例越来越小,事实上也已经面目全非,但是这块神主牌永远不可能拿掉。 在他卸任 CEO 之后,新的头衔就是技术总监。 他很清楚技术是一切的根本,所以对技术高手一向礼遇有佳,从 NT、Windows 2000 的诞生,到现在连 Turbo Pascal 和 Delphi 的创始者 Anders Hejlsberg 也投入门下,协助打造 C# 以对抗强敌 Java。虽然他多年来不断推出漏洞百出的软件,却一样大发利市,而逐渐丧失对技术质量的要求。不过至少在表面上,他是非常尊重技术的价值。 比较起那些不学无术、花言巧语、天花乱坠,以为只靠 “销售技巧”、“沟通技巧”就能让公司成功的人,比尔盖茨还是可爱得多。

 

理由三,他证明技术人可以不用 “转型”。什么叫 “转型”? 尤其在我们台湾的科技界,有一种奇怪的说法,是写程序写久了就要“转型”,转成 Sales,或是 Project Leader。常常见到某种 Sales 自称有 “技术背景”,不过 “已经很久没 Coding 了”,“现在连代码都看不懂了”,还以此沾沾自喜,好像自此高人一等。其实我敢保证这种人就算真有 “技术背景”,也是鸦鸦乌的技术背景,现在看不懂代码,以前也没看懂过代码。 这种人我们真巴望他们都尽快“转型”,以免留在开发团队中,每天产生一堆垃圾代码。 哪有“转型”之后技术就全忘光的? 难道换上西装领带,挂上 Sales 头衔,马上就得了失忆症,智商立刻减半? 真懂技术的人,就算想换换跑道,当个 Sales 或 Marketing 人员,深厚的技术背景是自己的本钱,是如虎添翼的秘密武器,这些是丢不掉的。 像比尔盖茨,从 “BASIC Programmer” 起家,干了多年叱咤风云的 CEO,现在回到技术总监老本行,相信仍是技术高手。就算转型,随时可以再转回来,这才是真正的技术人。在科技这一行工作就是得具备技术知识,不然去卖保险、卖直销好了。

 

所以,就技术眼光来看,比尔盖茨还是个不错的人。至少从这些角度想想,我就不会冲动地想发动群众来威胁书店禁止陈列这本书。不过即使这个人还可以,并不代表他们公司的产品没问题。事实上,这个星期我的 Notebook 又重灌了两次 Windows ME,想到这点我的怒气又上升了。还是赶快就此打住,免得破坏了本期赞扬比尔盖茨的和谐气氛。总而言之,比尔盖茨是一个技术人的成功范例,相信这点是无庸置疑的。

 

----------------------------------------------

 

但话说回来,遇到有「专业的傲慢」的技术人员,或不爱和人沟通的工程师,也是很让人头痛。以我自己来说,虽然不期望能辩才无碍,但在开发团队中,仍会尽量主动和工作同仁及客户,作有效且友善地沟通,尽量补足自己在编程技术以外,各方面的不足之处,而非死守住自己会的那一小块领域。


感觉满累的,新的一年,换换口味学别的技能,半年内可能不碰新 IT 技术,说不定会有新的转机。Windows 桌面也不再放美女图,改放风景图换换口味,来张台湾東部,花蓮的「海传民宿」房间遥望出去的海景图:

 

 

---------------------------------------------- 

 

相关新闻:

 

posted on 2009-12-27 10:58  WizardWu  阅读(4227)  评论(38编辑  收藏  举报